diff options
| author | Naomi Musgrave <nmusgrave@google.com> | 2015-09-08 16:38:17 +0000 |
|---|---|---|
| committer | Naomi Musgrave <nmusgrave@google.com> | 2015-09-08 16:38:17 +0000 |
| commit | 4e213984ddd254cedb1ed9f33d8245b18ba97740 (patch) | |
| tree | 37aeacecb328b8305a77989ed31eab8c9d920909 /clang | |
| parent | fa84aa3fa18869f9ddd435180e92ea0c458afb2c (diff) | |
| download | bcm5719-llvm-4e213984ddd254cedb1ed9f33d8245b18ba97740.tar.gz bcm5719-llvm-4e213984ddd254cedb1ed9f33d8245b18ba97740.zip | |
Failing test highlighting no poisoning if dtor undeclared.
Summary:
If class or struct has not declared a destructor,
no destructor is emitted, and members are not poisoned
after destruction. This case highlights bug in current
implementation of use-after-dtor poisoning (detailed
in https://github.com/google/sanitizers/issues/596).
Reviewers: eugenis, kcc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12616
Only check simplest object for existence of sanitizing callback.
Rename test.
llvm-svn: 247025
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp b/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp new file mode 100644 index 00000000000..39f580af97e --- /dev/null +++ b/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp @@ -0,0 +1,15 @@ +// Test -fsanitize-memory-use-after-dtor +// RUN: %clang_cc1 -O0 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-optzns -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -disable-llvm-optzns -std=c++11 -triple=x86_64-pc-linux -emit-llvm -o - %s | FileCheck %s + +// TODO Success pending on resolution of issue: +// https://github.com/google/sanitizers/issues/596 +// XFAIL: * + +struct Trivial { + int a; + int b; +}; +Trivial t; + +// CHECK: call void @__sanitizer_dtor_callback |

