summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/call-invalidation.cpp
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2019-04-03 18:21:16 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2019-04-03 18:21:16 +0000
commit3d90e7e8db2c522c87f0fbfcdcb9aeed62680922 (patch)
tree32fcd49ab9ea9d85079d3a5eea2a42046fb843da /clang/test/Analysis/call-invalidation.cpp
parent1362d7ef885d1e8136e19d85c0eeba3477b53020 (diff)
downloadbcm5719-llvm-3d90e7e8db2c522c87f0fbfcdcb9aeed62680922.tar.gz
bcm5719-llvm-3d90e7e8db2c522c87f0fbfcdcb9aeed62680922.zip
Revert "[analyzer] Toning down invalidation a bit".
This reverts commit r352473. The overall idea is great, but it seems to cause unintented consequences when not only Region Store invalidation but also pointer escape mechanism was accidentally affected. Based on discussions in https://reviews.llvm.org/D58121#1452483 and https://reviews.llvm.org/D57230#1434161 Differential Revision: https://reviews.llvm.org/D57230 llvm-svn: 357620
Diffstat (limited to 'clang/test/Analysis/call-invalidation.cpp')
-rw-r--r--clang/test/Analysis/call-invalidation.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/test/Analysis/call-invalidation.cpp b/clang/test/Analysis/call-invalidation.cpp
index dade8db9ac2..c107e107054 100644
--- a/clang/test/Analysis/call-invalidation.cpp
+++ b/clang/test/Analysis/call-invalidation.cpp
@@ -132,21 +132,18 @@ void testInvalidationThroughBaseRegionPointer() {
PlainStruct s1;
s1.x = 1;
s1.z = 1;
- s1.y = 1;
clang_analyzer_eval(s1.x == 1); // expected-warning{{TRUE}}
clang_analyzer_eval(s1.z == 1); // expected-warning{{TRUE}}
// Not only passing a structure pointer through const pointer parameter,
// but also passing a field pointer through const pointer parameter
// should preserve the contents of the structure.
useAnythingConst(&(s1.y));
- clang_analyzer_eval(s1.y == 1); // expected-warning{{TRUE}}
clang_analyzer_eval(s1.x == 1); // expected-warning{{TRUE}}
// FIXME: Should say "UNKNOWN", because it is not uncommon to
// modify a mutable member variable through const pointer.
clang_analyzer_eval(s1.z == 1); // expected-warning{{TRUE}}
useAnything(&(s1.y));
- clang_analyzer_eval(s1.x == 1); // expected-warning{{TRUE}}
- clang_analyzer_eval(s1.y == 1); // expected-warning{{UNKNOWN}}
+ clang_analyzer_eval(s1.x == 1); // expected-warning{{UNKNOWN}}
}
OpenPOWER on IntegriCloud