Index: clang/test/Driver/test-cfi.cpp =================================================================== --- /dev/null +++ clang/test/Driver/test-cfi.cpp @@ -0,0 +1,31 @@ +// RUN: %clang -g -fexceptions --target=x86_64-apple-darwin %s -S -emit-llvm -o - | FileCheck %s --check-prefix=X86_64_UWTABLE_EXCEPTIONS +// X86_64_UWTABLE_EXCEPTIONS: attributes #0 = { {{.*}} uwtable +// X86_64_UWTABLE_EXCEPTIONS: !{{[0-9]+}} = !{i32 7, !"uwtable", i32 2} + +// RUN: %clang -g -fexceptions --target=x86_64-apple-darwin %s -S -o - | FileCheck %s --check-prefix=X86_64_EXCEPTIONS +// X86_64_EXCEPTIONS-NOT: .cfi_sections .debug_frame + +// RUN: %clang -g -fno-exceptions --target=x86_64-apple-darwin %s -S -emit-llvm -o - | FileCheck %s --check-prefix=X86_64_UWTABLE +// X86_64_UWTABLE: attributes #0 = { {{.*}} uwtable +// X86_64_UWTABLE: !{{[0-9]+}} = !{i32 7, !"uwtable", i32 2} + +// RUN: %clang -g -fno-exceptions --target=x86_64-apple-darwin %s -S -o - | FileCheck %s --check-prefix=X86_64 +// X86_64-NOT: .cfi_sections .debug_frame + +// RUN: %clang -g -fexceptions --target=arm64-apple-darwin %s -S -emit-llvm -o - | FileCheck %s --check-prefix=ARM64_UWTABLE_EXCEPTIONS +// ARM64_UWTABLE_EXCEPTIONS: attributes #0 = { {{.*}} uwtable +// ARM64_UWTABLE_EXCEPTIONS: !{{[0-9]+}} = !{i32 7, !"uwtable", i32 1} + +// RUN: %clang -g -fexceptions --target=arm64-apple-darwin %s -S -o - | FileCheck %s --check-prefix=ARM64_EXCEPTIONS +// ARM64_EXCEPTIONS-NOT: .cfi_sections .debug_frame + +// RUN: %clang -g -fno-exceptions --target=arm64-apple-darwin %s -S -emit-llvm -o - | FileCheck %s --check-prefix=ARM64_UWTABLE +// ARM64_UWTABLE-NOT: attributes #0 = { {{.*}} uwtable +// ARM64_UWTABLE-NOT: !{{[0-9]+}} = !{i32 7, !"uwtable", i32 2} + +// RUN: %clang -g -fno-exceptions --target=arm64-apple-darwin %s -S -o - | FileCheck %s --check-prefix=ARM64 +// ARM64: .cfi_sections .debug_frame + +int main() { + return 1; +}