1 # RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs -emit-merged-ifs | \
2 # RUN: FileCheck %s --check-prefixes=CHECK-IFS
4 # RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs | llvm-readelf --all - | \
5 # RUN: FileCheck %s --check-prefixes=CHECK-ELF
7 # RUN: %clang -emit-interface-stubs -o - %s %s -emit-merged-ifs | \
8 # RUN: FileCheck %s --check-prefixes=CHECK-MERGE-IFS
10 # CHECK-IFS: --- !ifs-v1
11 # CHECK-IFS-NEXT: IfsVersion: 3.0
12 # CHECK-IFS-NEXT: Target: x86_64-linux-gnu
13 # CHECK-IFS-NEXT: Symbols:
14 # CHECK-IFS-DAG: - { Name: a, Type: Func }
15 # CHECK-IFS-DAG: - { Name: b, Type: Object, Size: 4 }
18 # CHECK-ELF: ELF Header:
19 # CHECK-ELF: Class: ELF64
20 # CHECK-ELF: Type: DYN (Shared object file)
21 # CHECK-ELF: FUNC GLOBAL DEFAULT 1 a
22 # CHECK-ELF: OBJECT GLOBAL DEFAULT 1 b
24 # Here we are testing to see if two identical symbols will merge.
25 # CHECK-MERGE-IFS: --- !ifs-v1
26 # CHECK-MERGE-IFS-NEXT: IfsVersion: 3.0
27 # CHECK-MERGE-IFS-NEXT: Target: x86_64-linux-gnu
28 # CHECK-MERGE-IFS-NEXT: Symbols:
29 # CHECK-MERGE-IFS-NEXT: - { Name: a, Type: Func }
30 # CHECK-MERGE-IFS-NEXT: ...
34 Target: x86_64-linux-gnu
36 - { Name: a, Type: Func }