1 // REQUIRES: x86-registered-target
2 // RUN: %clang -target x86_64-linux-gnu -o - -emit-interface-stubs \
3 // RUN: -interface-stub-version=experimental-tapi-elf-v1 %s | \
4 // RUN: FileCheck %s
5 
6 // RUN: %clang -target x86_64-linux-gnu -o - -emit-interface-stubs \
7 // RUN: -interface-stub-version=experimental-yaml-elf-v1 %s | \
8 // RUN: FileCheck --check-prefix=CHECK-YAML %s
9 
10 // RUN: %clang -target x86_64-unknown-linux-gnu -o - -c %s | llvm-nm - 2>&1 | \
11 // RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s
12 
13 // CHECK: Symbols:
14 // CHECK-DAG:  _Z8weakFuncv: { Type: Func, Weak: true }
15 // CHECK-DAG:  _Z10strongFuncv: { Type: Func }
16 
17 // CHECK-YAML: Symbols:
18 // CHECK-YAML-DAG:   - Name:            _Z8weakFuncv
19 // CHECK-YAML-DAG:     Type:            STT_FUNC
20 // CHECK-YAML-DAG:     Binding:         STB_WEAK
21 // CHECK-YAML-DAG:   - Name:            _Z10strongFuncv
22 // CHECK-YAML-DAG:     Type:            STT_FUNC
23 // CHECK-YAML-DAG:     Binding:         STB_GLOBAL
24 
25 // CHECK-SYMBOLS-DAG: _Z10strongFuncv
26 // CHECK-SYMBOLS-DAG: _Z8weakFuncv
27 __attribute__((weak)) void weakFunc() {}
28 int strongFunc() { return 42; }
29