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