File: test-uwtable.cpp

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (26 lines) | stat: -rw-r--r-- 1,457 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// This test is added to provide test coverage for the uwtable attribute. It
// aims to make sure that for an X86_64 output compiled with -fexceptions or
//  -fno-exceptions, a uwtable attribute is emitted. However, for an AArch64
//  output with -fexceptions a uwtable attribute is emitted, but with 
// -fno-exceptions a uwtable attribute is not emitted.

// 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 -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 -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 -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}
// ARM64_UWTABLE: attributes #0 =

int main() {
    return 1;
}