diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-10-01 19:07:19 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-10-01 19:07:19 +0000 |
commit | 28c06b268eb2db0ba5df054279da9dc2f7e018e9 (patch) | |
tree | 5ce2a6c3fb246c4bd2059d8693a57c1d243d9df7 /clang/test/Analysis/array-struct.c | |
parent | 12024f8776fdfbf2c85e1b366d6709db6e56576f (diff) | |
download | bcm5719-llvm-28c06b268eb2db0ba5df054279da9dc2f7e018e9.tar.gz bcm5719-llvm-28c06b268eb2db0ba5df054279da9dc2f7e018e9.zip |
[analyzer] Add a test for PR13927 "offsetof replacement flagged as null deref"
This seems to be legal according to C11 6.5.3.2.
No functionality change.
llvm-svn: 164959
Diffstat (limited to 'clang/test/Analysis/array-struct.c')
-rw-r--r-- | clang/test/Analysis/array-struct.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/Analysis/array-struct.c b/clang/test/Analysis/array-struct.c index 223069f9258..c22f9796e58 100644 --- a/clang/test/Analysis/array-struct.c +++ b/clang/test/Analysis/array-struct.c @@ -175,3 +175,11 @@ void f18() { if (*q) { // no-warning } } + + +// [PR13927] offsetof replacement macro flagged as "dereference of a null pointer" +int offset_of_data_array(void) +{ + return ((char *)&(((struct s*)0)->data_array)) - ((char *)0); // no-warning +} + |