41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
# RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs -emit-merged-ifs | \
 | 
						|
# RUN: FileCheck %s --check-prefixes=CHECK-IFS
 | 
						|
 | 
						|
# RUN: %clang -emit-interface-stubs -o - %s %S/object.ifs | llvm-readelf --all - | \
 | 
						|
# RUN: FileCheck %s --check-prefixes=CHECK-ELF
 | 
						|
 | 
						|
# RUN: %clang -emit-interface-stubs -o - %s %s -emit-merged-ifs | \
 | 
						|
# RUN: FileCheck %s --check-prefixes=CHECK-MERGE-IFS
 | 
						|
 | 
						|
# CHECK-IFS: --- !experimental-ifs-v2
 | 
						|
# CHECK-IFS-NEXT: IfsVersion: 2.0
 | 
						|
# CHECK-IFS-NEXT: Triple:          x86_64-linux-gnu
 | 
						|
# CHECK-IFS-NEXT: ObjectFileFormat: ELF
 | 
						|
# CHECK-IFS-NEXT: Symbols:
 | 
						|
# CHECK-IFS-DAG:   - { Name: a, Type: Func }
 | 
						|
# CHECK-IFS-DAG:   - { Name: b, Type: Object, Size: 4 }
 | 
						|
# CHECK-IFS: ...
 | 
						|
 | 
						|
# CHECK-ELF: ELF Header:
 | 
						|
# CHECK-ELF:   Class:                             ELF64
 | 
						|
# CHECK-ELF:   Type:                              DYN (Shared object file)
 | 
						|
# CHECK-ELF:   FUNC    GLOBAL DEFAULT  1 a
 | 
						|
# CHECK-ELF:   OBJECT  GLOBAL DEFAULT  1 b
 | 
						|
 | 
						|
# Here we are testing to see if two identical symbols will merge.
 | 
						|
# CHECK-MERGE-IFS: --- !experimental-ifs-v2
 | 
						|
# CHECK-MERGE-IFS-NEXT: IfsVersion: 2.0
 | 
						|
# CHECK-MERGE-IFS-NEXT: Triple:          x86_64-linux-gnu
 | 
						|
# CHECK-MERGE-IFS-NEXT: ObjectFileFormat: ELF
 | 
						|
# CHECK-MERGE-IFS-NEXT: Symbols:
 | 
						|
# CHECK-MERGE-IFS-NEXT:   - { Name: a, Type: Func }
 | 
						|
# CHECK-MERGE-IFS-NEXT: ...
 | 
						|
 | 
						|
--- !experimental-ifs-v2
 | 
						|
IfsVersion: 2.0
 | 
						|
Triple: x86_64-linux-gnu
 | 
						|
ObjectFileFormat: ELF
 | 
						|
Symbols:
 | 
						|
  - { Name: a, Type: Func }
 | 
						|
...
 |