summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/simple-stream-checks.c
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-03-20 20:35:53 +0000
committerJordan Rose <jordan_rose@apple.com>2013-03-20 20:35:53 +0000
commit5413aaa791c2c35eca1ea041899e1666e8d46602 (patch)
tree7547b1c188c032583ac4f4b52b34b7d549fec6df /clang/test/Analysis/simple-stream-checks.c
parent153c81b7c4736de0627e7b885e1d957dbf19cbf4 (diff)
downloadbcm5719-llvm-5413aaa791c2c35eca1ea041899e1666e8d46602.tar.gz
bcm5719-llvm-5413aaa791c2c35eca1ea041899e1666e8d46602.zip
[analyzer] Invalidate regions indirectly accessible through const pointers.
In this case, the value of 'x' may be changed after the call to indirectAccess: struct Wrapper { int *ptr; }; void indirectAccess(const Wrapper &w); void test() { int x = 42; Wrapper w = { x }; clang_analyzer_eval(x == 42); // TRUE indirectAccess(w); clang_analyzer_eval(x == 42); // UNKNOWN } This is important for modelling return-by-value objects in C++, to show that the contents of the struct are escaping in the return copy-constructor. <rdar://problem/13239826> llvm-svn: 177570
Diffstat (limited to 'clang/test/Analysis/simple-stream-checks.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud