From 4e213984ddd254cedb1ed9f33d8245b18ba97740 Mon Sep 17 00:00:00 2001 From: Naomi Musgrave Date: Tue, 8 Sep 2015 16:38:17 +0000 Subject: 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 --- clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp (limited to 'clang') 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 -- cgit v1.2.3