Updated test regex and flags
authorNaomi Musgrave <nmusgrave@google.com>
Thu, 30 Jul 2015 17:59:48 +0000 (17:59 +0000)
committerNaomi Musgrave <nmusgrave@google.com>
Thu, 30 Jul 2015 17:59:48 +0000 (17:59 +0000)
llvm-svn: 243669

clang/lib/CodeGen/CGClass.cpp
clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp

index a078beb..0426f69 100644 (file)
@@ -1369,8 +1369,8 @@ static bool CanSkipVTablePointerInitialization(ASTContext &Context,
 
 // Generates function call for handling object poisoning, passing in
 // references to 'this' and its size as arguments.
-// Disables tail call elimination, to save emitted callback from
-// being optimized away.
+// Disables tail call elimination, to prevent the current stack frame from
+// disappearing from the stack trace.
 static void EmitDtorSanitizerCallback(CodeGenFunction &CGF,
                                       const CXXDestructorDecl *Dtor) {
   const ASTRecordLayout &Layout =
index c82f074..8c92c55 100644 (file)
@@ -1,5 +1,5 @@
 // Test -fsanitize-memory-use-after-dtor
-// RUN: %clang_cc1 -O1 -fsanitize=memory -fsanitize-memory-use-after-dtor -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
 
 struct Simple {
   int x_;
@@ -14,7 +14,6 @@ struct Simple {
 Simple s;
 // Simple internal member is poisoned by compiler-generated dtor
 // CHECK-LABEL: define {{.*}}SimpleD2Ev
-// CHECK: {{\s*}}call void @__sanitizer_dtor_callback
-// CHECK-NOT: {{\s*}}call void @__sanitizer_dtor_callback
-// CHECK-NOT: {{\s*}}tail call void @__sanitizer_dtor_callback
+// CHECK: {{^ *}}call void @__sanitizer_dtor_callback
+// CHECK-NOT: call void @__sanitizer_dtor_callback
 // CHECK: ret void