From c34b7aaefc29e7d3d27edc1a05ec146f5006150c Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Sat, 24 Aug 2019 01:31:38 +0000 Subject: [PATCH] NFC: Rename some sanitizer related lifetime checks llvm-svn: 369830 --- .../{lifetime-asan.c => lifetime-sanitizer.c} | 10 ++-- clang/test/CodeGenCXX/lifetime-asan.cpp | 42 ---------------- clang/test/CodeGenCXX/lifetime-sanitizer.cpp | 50 +++++++++++++++++++ 3 files changed, 55 insertions(+), 47 deletions(-) rename clang/test/CodeGen/{lifetime-asan.c => lifetime-sanitizer.c} (52%) delete mode 100644 clang/test/CodeGenCXX/lifetime-asan.cpp create mode 100644 clang/test/CodeGenCXX/lifetime-sanitizer.cpp diff --git a/clang/test/CodeGen/lifetime-asan.c b/clang/test/CodeGen/lifetime-sanitizer.c similarity index 52% rename from clang/test/CodeGen/lifetime-asan.c rename to clang/test/CodeGen/lifetime-sanitizer.c index c5f25a2eaf75..7979c2679a9b 100644 --- a/clang/test/CodeGen/lifetime-asan.c +++ b/clang/test/CodeGen/lifetime-sanitizer.c @@ -1,21 +1,21 @@ // RUN: %clang -target x86_64-linux-gnu -S -emit-llvm -o - -O0 %s | FileCheck %s -check-prefix=CHECK-O0 // RUN: %clang -target x86_64-linux-gnu -S -emit-llvm -o - -O0 \ // RUN: -fsanitize=address -fsanitize-address-use-after-scope %s | \ -// RUN: FileCheck %s -check-prefix=CHECK-ASAN-USE-AFTER-SCOPE +// RUN: FileCheck %s -check-prefix=LIFETIME extern int bar(char *A, int n); // CHECK-O0-NOT: @llvm.lifetime.start int foo(int n) { if (n) { - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.start.p0i8(i64 10, i8* {{.*}}) + // LIFETIME: @llvm.lifetime.start.p0i8(i64 10, i8* {{.*}}) char A[10]; return bar(A, 1); - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.end.p0i8(i64 10, i8* {{.*}}) + // LIFETIME: @llvm.lifetime.end.p0i8(i64 10, i8* {{.*}}) } else { - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.start.p0i8(i64 20, i8* {{.*}}) + // LIFETIME: @llvm.lifetime.start.p0i8(i64 20, i8* {{.*}}) char A[20]; return bar(A, 2); - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.end.p0i8(i64 20, i8* {{.*}}) + // LIFETIME: @llvm.lifetime.end.p0i8(i64 20, i8* {{.*}}) } } diff --git a/clang/test/CodeGenCXX/lifetime-asan.cpp b/clang/test/CodeGenCXX/lifetime-asan.cpp deleted file mode 100644 index 9ccb28c876a1..000000000000 --- a/clang/test/CodeGenCXX/lifetime-asan.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// RUN: %clang -target x86_64-linux-gnu -S -emit-llvm -o - -fno-exceptions -O0 %s | FileCheck %s -check-prefixes=CHECK,CHECK-O0 --implicit-check-not=llvm.lifetime -// RUN: %clang -target x86_64-linux-gnu -S -emit-llvm -o - -fno-exceptions -O0 \ -// RUN: -fsanitize=address -fsanitize-address-use-after-scope %s | \ -// RUN: FileCheck %s -check-prefixes=CHECK,CHECK-ASAN-USE-AFTER-SCOPE - -extern int bar(char *A, int n); - -struct X { X(); ~X(); int *p; }; -struct Y { Y(); int *p; }; - -extern "C" void a(), b(), c(), d(); - -// CHECK-LABEL: @_Z3foo -void foo(int n) { - // CHECK: call void @a() - a(); - - // CHECK: call void @b() - // CHECK-ASAN-USE-AFTER-SCOPE: store i1 false - // CHECK-ASAN-USE-AFTER-SCOPE: store i1 false - // CHECK: br i1 - // - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.start - // CHECK-ASAN-USE-AFTER-SCOPE: store i1 true - // CHECK: call void @_ZN1XC - // CHECK: br label - // - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.start - // CHECK-ASAN-USE-AFTER-SCOPE: store i1 true - // CHECK: call void @_ZN1YC - // CHECK: br label - // - // CHECK: call void @c() - // CHECK-ASAN-USE-AFTER-SCOPE: br i1 - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.end - // CHECK-ASAN-USE-AFTER-SCOPE: br i1 - // CHECK-ASAN-USE-AFTER-SCOPE: @llvm.lifetime.end - b(), (n ? X().p : Y().p), c(); - - // CHECK: call void @d() - d(); -} diff --git a/clang/test/CodeGenCXX/lifetime-sanitizer.cpp b/clang/test/CodeGenCXX/lifetime-sanitizer.cpp new file mode 100644 index 000000000000..8b6cb7dcc053 --- /dev/null +++ b/clang/test/CodeGenCXX/lifetime-sanitizer.cpp @@ -0,0 +1,50 @@ +// RUN: %clang -w -target x86_64-linux-gnu -S -emit-llvm -o - -fno-exceptions -O0 %s | \ +// RUN: FileCheck %s -check-prefixes=CHECK,CHECK-O0 --implicit-check-not=llvm.lifetime +// RUN: %clang -w -target x86_64-linux-gnu -S -emit-llvm -o - -fno-exceptions -O0 \ +// RUN: -fsanitize=address -fsanitize-address-use-after-scope %s | \ +// RUN: FileCheck %s -check-prefixes=CHECK,LIFETIME + +extern int bar(char *A, int n); + +struct X { + X(); + ~X(); + int *p; +}; +struct Y { + Y(); + int *p; +}; + +extern "C" void a(), b(), c(), d(); + +// CHECK-LABEL: @_Z3foo +void foo(int n) { + // CHECK-LABEL: call void @a() + a(); + + // CHECK-LABEL: call void @b() + // CHECK: store i1 false + // CHECK-LABEL: br i1 + // + // CHECK-LABEL: cond.true: + // LIFETIME: @llvm.lifetime.start + // LIFETIME: store i1 true + // LIFETIME: call void @_ZN1XC + // CHECK-LABEL: br label + // + // CHECK-LABEL: cond.false: + // LIFETIME: @llvm.lifetime.start + // LIFETIME: store i1 true + // LIFETIME: call void @_ZN1YC + // CHECK-LABEL: br label + // + // CHECK-LABEL: cond.end: + // CHECK: call void @c() + // LIFETIME: @llvm.lifetime.end + // LIFETIME: @llvm.lifetime.end + b(), (n ? X().p : Y().p), c(); + + // CHECK: call void @d() + d(); +}