// 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 %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 %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 %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