diff options
author | Reka Kovacs <rekanikolett@gmail.com> | 2018-08-03 20:42:02 +0000 |
---|---|---|
committer | Reka Kovacs <rekanikolett@gmail.com> | 2018-08-03 20:42:02 +0000 |
commit | bfd9cfdeeb20c0c48c71447140ca0cdc55b7b5dd (patch) | |
tree | a15d3029bc65af59d28846ef7179ec7b876909c7 /clang/test/Analysis/inner-pointer.cpp | |
parent | 4dfe279e00d56f23c37a526b3abe0a7c89269fa7 (diff) | |
download | bcm5719-llvm-bfd9cfdeeb20c0c48c71447140ca0cdc55b7b5dd.tar.gz bcm5719-llvm-bfd9cfdeeb20c0c48c71447140ca0cdc55b7b5dd.zip |
[analyzer] Add test for a crash fixed in r338775.
Do not crash if a CXXRecordDecl cannot be obtained for an object.
Special thanks for the reproduction to Alexander Kornienko.
llvm-svn: 338918
Diffstat (limited to 'clang/test/Analysis/inner-pointer.cpp')
-rw-r--r-- | clang/test/Analysis/inner-pointer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Analysis/inner-pointer.cpp b/clang/test/Analysis/inner-pointer.cpp index 6f9c8a8e8a0..fb8cc8ec33e 100644 --- a/clang/test/Analysis/inner-pointer.cpp +++ b/clang/test/Analysis/inner-pointer.cpp @@ -382,3 +382,13 @@ const char *escape_via_return_local() { // expected-note@-1 {{Inner pointer invalidated by call to destructor}} } // expected-warning {{Use of memory after it is freed}} // expected-note@-1 {{Use of memory after it is freed}} + + +char *c(); +class A {}; + +void no_CXXRecordDecl() { + A a, *b; + *(void **)&b = c() + 1; + *b = a; // no-crash +} |