summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorNaomi Musgrave <nmusgrave@google.com>2015-09-08 16:38:17 +0000
committerNaomi Musgrave <nmusgrave@google.com>2015-09-08 16:38:17 +0000
commit4e213984ddd254cedb1ed9f33d8245b18ba97740 (patch)
tree37aeacecb328b8305a77989ed31eab8c9d920909 /clang
parentfa84aa3fa18869f9ddd435180e92ea0c458afb2c (diff)
downloadbcm5719-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.cpp15
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
OpenPOWER on IntegriCloud