xref: /llvm-project/clang/test/InterfaceStubs/func.ifs (revision 61fa9afe4c5b014181ce41a35c84fb0f3be975db)
1# RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs -emit-merged-ifs | \
2# RUN: FileCheck %s --check-prefixes=CHECK-IFS
3
4# RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs | llvm-readelf --all - | \
5# RUN: FileCheck %s --check-prefixes=CHECK-ELF
6
7# RUN: %clang -emit-interface-stubs -o - %s %s -emit-merged-ifs | \
8# RUN: FileCheck %s --check-prefixes=CHECK-MERGE-IFS
9
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 }
16# CHECK-IFS: ...
17
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
23
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: ...
31
32--- !ifs-v1
33IfsVersion: 3.0
34Target: x86_64-linux-gnu
35Symbols:
36  - { Name: a, Type: Func }
37...
38