summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-11-11 23:10:10 +0000
committerTed Kremenek <kremenek@apple.com>2010-11-11 23:10:10 +0000
commit843c53828fa7ae1f6e121d9ab5352054173ea31d (patch)
tree9a7ba3d85ca67afc2b3fff3ea6afe48f05a1c956 /clang/test/Analysis
parent667429d6b184a00e039de025c8f6fc61b2188b71 (diff)
downloadbcm5719-llvm-843c53828fa7ae1f6e121d9ab5352054173ea31d.tar.gz
bcm5719-llvm-843c53828fa7ae1f6e121d9ab5352054173ea31d.zip
RegionStore/BasicStore: do not return UndefinedVal for accesses to concrete addresses; instead return UnknownVal. This
leads it up to checkers (e.g., DereferenceChecker) to guard against illegal accesses (e.g., null dereferences). Fixes PR 5272 and <rdar://problem/6839683>. llvm-svn: 118852
Diffstat (limited to 'clang/test/Analysis')
-rw-r--r--clang/test/Analysis/misc-ps.m14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/Analysis/misc-ps.m b/clang/test/Analysis/misc-ps.m
index 12e51023a9e..9b923bf0f80 100644
--- a/clang/test/Analysis/misc-ps.m
+++ b/clang/test/Analysis/misc-ps.m
@@ -1179,3 +1179,17 @@ void baz_pr8440(int n)
saved_pr8440.data[i] = foo_pr8440(); // no-warning
}
+// Support direct accesses to non-null memory. Reported in:
+// PR 5272
+// <rdar://problem/6839683>
+int test_direct_address_load() {
+ int *p = (int*) 0x4000;
+ return *p; // no-warning
+}
+
+void pr5272_test() {
+ struct pr5272 { int var2; };
+ (*(struct pr5272*)0xBC000000).var2 = 0; // no-warning
+ (*(struct pr5272*)0xBC000000).var2 += 2; // no-warning
+}
+
OpenPOWER on IntegriCloud