I did put it in a separate file (comparison-implicit-casts.cpp). I considered adding the target triple but decided that once we were dealing with bool comparisons instead of int, it shouldn't be a problem. The test should be successful on /any/ platform now.
I did just check the standard, though, and sizeof(bool) is not guaranteed to be 1. I'll have that test run under i386 and x86_64. Jordy On May 16, 2012, at 16:59, Anna Zaks wrote: > How about putting it in a separate file and test on only one target (add > -triple x86_64 to the command line)? > > Anna. > On May 16, 2012, at 1:37 PM, Jordy Rose wrote: > >> I should have known when I wrote the comment about requiring sizeof(size_t) >> > sizeof(1 == 1) that this was going to come back to haunt me. This worked >> before because we could early-exit and /avoid/ triggering warnings, but >> clang_analyzer_eval with -verify is a little stronger... >> >> Moved the test to a C++ file in r156941. If any platform has sizeof(size_t) >> == sizeof(bool), we're in trouble, but I don't think we support any of >> those. :-) >> >> Thanks for handling this, Anna. >> >> Jordy >> >> >> On May 16, 2012, at 14:46, Anna Zaks wrote: >> >>> Author: zaks >>> Date: Wed May 16 13:46:25 2012 >>> New Revision: 156932 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=156932&view=rev >>> Log: >>> [analyzer] Revert a regression committed in r156920. >>> >>> This breaks the build with -triple i386-apple-darwin9. >>> >>> Modified: >>> cfe/trunk/test/Analysis/string.c >>> >>> Modified: cfe/trunk/test/Analysis/string.c >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/string.c?rev=156932&r1=156931&r2=156932&view=diff >>> ============================================================================== >>> --- cfe/trunk/test/Analysis/string.c (original) >>> +++ cfe/trunk/test/Analysis/string.c Wed May 16 13:46:25 2012 >>> @@ -1062,12 +1062,11 @@ >>> >>> // Constrain the length of x. >>> if (strlen(x) != value) return; >>> - >>> // Test relational operators. >>> - clang_analyzer_eval(strlen(x) >= 2); // expected-warning{{TRUE}} >>> - clang_analyzer_eval(2 <= strlen(x)); // expected-warning{{TRUE}} >>> + if (strlen(x) < 2) { (void)*(char*)0; } // no-warning >>> + if (2 > strlen(x)) { (void)*(char*)0; } // no-warning >>> >>> // Test equality operators. >>> - clang_analyzer_eval(strlen(x) != 1); // expected-warning{{TRUE}} >>> - clang_analyzer_eval(1 != strlen(x)); // expected-warning{{TRUE}} >>> + if (strlen(x) == 1) { (void)*(char*)0; } // no-warning >>> + if (1 == strlen(x)) { (void)*(char*)0; } // no-warning >>> } >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> [email protected] >>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
