diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-07-21 21:03:30 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-07-21 21:03:30 +0000 |
commit | ac7c7240f0baaae27cceed4084e789d70ef14ec2 (patch) | |
tree | 14dc1b6e0bc90cb318e47d24c85a3a4c7e4e1681 /clang/test | |
parent | df3f1447e424b6c1d2e5647b63afb5b52a41fc3e (diff) | |
download | bcm5719-llvm-ac7c7240f0baaae27cceed4084e789d70ef14ec2.tar.gz bcm5719-llvm-ac7c7240f0baaae27cceed4084e789d70ef14ec2.zip |
Fix PR 4594 by refactoring almost all casting logic from GRExprEngine::VisitCast
to SValuator::EvalCast. In the process, the StoreManagers now use this new cast
machinery, and the hack in GRExprEngine::EvalBind to handle implicit casts
involving OSAtomicCompareAndSwap and friends has been removed (and replaced with
logic closer to the logic specific to those functions).
llvm-svn: 76641
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Analysis/misc-ps.m | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/test/Analysis/misc-ps.m b/clang/test/Analysis/misc-ps.m index 1eef2ba9688..de39a0004bc 100644 --- a/clang/test/Analysis/misc-ps.m +++ b/clang/test/Analysis/misc-ps.m @@ -437,7 +437,6 @@ void test_block_cast() { (void (^)(void *))test_block_cast_aux(); // expected-warning{{expression result unused}} } -// ** THIS TEST FAILS ** // Test comparison of 'id' instance variable to a null void* constant after // performing an OSAtomicCompareAndSwap32Barrier. // This previously was a crash in RegionStoreManager. @@ -454,5 +453,9 @@ void test_block_cast() { } @end - - +// PR 4594 - This was a crash when handling casts in SimpleSValuator. +void PR4594() { + char *buf[1]; + char **foo = buf; + *foo = "test"; +} |