Files
clang-p2996/clang/test/CodeGen/asan-destructor-kind.cpp
Dan Liew 2d42b2ee7b [ASan] Rename -fsanitize-address-destructor-kind= to drop the -kind suffix.
Renaming the option is based on discussions in https://reviews.llvm.org/D101122.

It is normally not a good idea to rename driver flags but this flag is
new enough and obscure enough that it is very unlikely to have adopters.

While we're here also drop the `<kind>` metavar. It's not necessary and
is actually inconsistent with the documentation in
`clang/docs/ClangCommandLineReference.rst`.

Differential Revision: https://reviews.llvm.org/D101491
2021-04-29 11:55:42 -07:00

50 lines
2.0 KiB
C++

// Frontend rejects invalid option
// RUN: not %clang_cc1 -fsanitize=address \
// RUN: -fsanitize-address-destructor=bad_arg -emit-llvm -o - \
// RUN: -triple x86_64-apple-macosx10.15 %s 2>&1 | \
// RUN: FileCheck %s --check-prefixes=CHECK-BAD-ARG
// CHECK-BAD-ARG: invalid value 'bad_arg' in '-fsanitize-address-destructor=bad_arg'
// Default is global dtor
// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-apple-macosx10.15 \
// RUN: -fno-legacy-pass-manager %s \
// RUN: | FileCheck %s --check-prefixes=CHECK-GLOBAL-DTOR
//
// RUN: %clang_cc1 -fsanitize=address -emit-llvm -o - -triple x86_64-apple-macosx10.15 \
// RUN: -flegacy-pass-manager %s \
// RUN: | FileCheck %s --check-prefixes=CHECK-GLOBAL-DTOR
// Explictly ask for global dtor
// RUN: %clang_cc1 -fsanitize=address \
// RUN: -fsanitize-address-destructor=global -emit-llvm -o - \
// RUN: -triple x86_64-apple-macosx10.15 -fno-legacy-pass-manager %s | \
// RUN: FileCheck %s --check-prefixes=CHECK-GLOBAL-DTOR
//
// RUN: %clang_cc1 -fsanitize=address \
// RUN: -fsanitize-address-destructor=global -emit-llvm -o - \
// RUN: -triple x86_64-apple-macosx10.15 -flegacy-pass-manager %s | \
// RUN: FileCheck %s --check-prefixes=CHECK-GLOBAL-DTOR
// CHECK-GLOBAL-DTOR: llvm.global_dtor{{.+}}asan.module_dtor
// CHECK-GLOBAL-DTOR: define internal void @asan.module_dtor
// Explictly ask for no dtors
// RUN: %clang_cc1 -fsanitize=address \
// RUN: -fsanitize-address-destructor=none -emit-llvm -o - \
// RUN: -triple x86_64-apple-macosx10.15 -fno-legacy-pass-manager %s | \
// RUN: FileCheck %s --check-prefixes=CHECK-NONE-DTOR
//
// RUN: %clang_cc1 -fsanitize=address \
// RUN: -fsanitize-address-destructor=none -emit-llvm -o - \
// RUN: -triple x86_64-apple-macosx10.15 -flegacy-pass-manager %s | \
// RUN: FileCheck %s --check-prefixes=CHECK-NONE-DTOR
int global;
int main() {
return global;
}
// CHECK-NONE-DTOR-NOT: llvm.global_dtor{{.+}}asan.module_dtor
// CHECK-NONE-DTOR-NOT: define internal void @asan.module_dtor