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: --- !experimental-ifs-v2 11# CHECK-IFS-NEXT: IfsVersion: 2.0 12# CHECK-IFS-NEXT: Triple: x86_64-linux-gnu 13# CHECK-IFS-NEXT: ObjectFileFormat: ELF 14# CHECK-IFS-NEXT: Symbols: 15# CHECK-IFS-DAG: - { Name: a, Type: Func } 16# CHECK-IFS-DAG: - { Name: b, Type: Object, Size: 4 } 17# CHECK-IFS: ... 18 19# CHECK-ELF: ELF Header: 20# CHECK-ELF: Class: ELF64 21# CHECK-ELF: Type: DYN (Shared object file) 22# CHECK-ELF: FUNC GLOBAL DEFAULT 1 a 23# CHECK-ELF: OBJECT GLOBAL DEFAULT 1 b 24 25# Here we are testing to see if two identical symbols will merge. 26# CHECK-MERGE-IFS: --- !experimental-ifs-v2 27# CHECK-MERGE-IFS-NEXT: IfsVersion: 2.0 28# CHECK-MERGE-IFS-NEXT: Triple: x86_64-linux-gnu 29# CHECK-MERGE-IFS-NEXT: ObjectFileFormat: ELF 30# CHECK-MERGE-IFS-NEXT: Symbols: 31# CHECK-MERGE-IFS-NEXT: - { Name: a, Type: Func } 32# CHECK-MERGE-IFS-NEXT: ... 33 34--- !experimental-ifs-v2 35IfsVersion: 2.0 36Triple: x86_64-linux-gnu 37ObjectFileFormat: ELF 38Symbols: 39 - { Name: a, Type: Func } 40... 41