summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/array-struct.c
diff options
context:
space:
mode:
authorJordy Rose <jediknil@belkadan.com>2010-07-29 06:40:33 +0000
committerJordy Rose <jediknil@belkadan.com>2010-07-29 06:40:33 +0000
commitdaa1c83413e7624d4b390080dc2155177c0c7ccb (patch)
treea8cec5e030d9f43d521938f5cf0df768d0fe10a3 /clang/test/Analysis/array-struct.c
parentfe34c1d53e15a9717a313120e4df3b35a10c708e (diff)
downloadbcm5719-llvm-daa1c83413e7624d4b390080dc2155177c0c7ccb.tar.gz
bcm5719-llvm-daa1c83413e7624d4b390080dc2155177c0c7ccb.zip
Use a LazyCompoundVal to handle initialization with a string literal, rather than copying each character.
llvm-svn: 109734
Diffstat (limited to 'clang/test/Analysis/array-struct.c')
-rw-r--r--clang/test/Analysis/array-struct.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Analysis/array-struct.c b/clang/test/Analysis/array-struct.c
index 3e46a0a6223..ef9907bb579 100644
--- a/clang/test/Analysis/array-struct.c
+++ b/clang/test/Analysis/array-struct.c
@@ -178,3 +178,26 @@ void f18() {
if (*q) { // no-warning
}
}
+
+int f19() {
+ char a[] = "abc";
+ char b[2] = "abc"; // expected-warning{{too long}}
+ char c[5] = "abc";
+
+ if (a[1] != 'b')
+ return 5; // expected-warning{{never executed}}
+ if (b[1] != 'b')
+ return 5; // expected-warning{{never executed}}
+ if (c[1] != 'b')
+ return 5; // expected-warning{{never executed}}
+
+ if (a[3] != 0)
+ return 5; // expected-warning{{never executed}}
+ if (c[3] != 0)
+ return 5; // expected-warning{{never executed}}
+
+ if (c[4] != 0)
+ return 5; // expected-warning{{never executed}}
+
+ return 0;
+}
OpenPOWER on IntegriCloud