49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
# REQUIRES: x86
 | 
						|
# RUN: llvm-mc -triple=x86_64-windows-msvc %s -filetype=obj -o %t1.obj
 | 
						|
# RUN: llvm-mc -triple=x86_64-windows-msvc %S/Inputs/associative-comdat-2.s -filetype=obj -o %t2.obj
 | 
						|
 | 
						|
# RUN: lld-link -entry:main %t1.obj %t2.obj -out:%t.gc.exe
 | 
						|
# RUN: llvm-readobj --sections %t.gc.exe | FileCheck %s
 | 
						|
 | 
						|
# RUN: lld-link -entry:main %t1.obj %t2.obj -opt:noref -out:%t.nogc.exe
 | 
						|
# RUN: llvm-readobj --sections %t.nogc.exe | FileCheck %s
 | 
						|
 | 
						|
# CHECK: Sections [
 | 
						|
# CHECK:   Section {
 | 
						|
# CHECK:     Number: 2
 | 
						|
# CHECK-LABEL:     Name: .rdata (2E 72 64 61 74 61 00 00)
 | 
						|
#             This is the critical check to show that only *one* definition of
 | 
						|
#             foo_assoc was retained. This *must* be 8, not 16.
 | 
						|
# CHECK-NEXT:     VirtualSize: 0x8
 | 
						|
# CHECK:   Section {
 | 
						|
# CHECK:     Number: 3
 | 
						|
# CHECK-LABEL:     Name: .data (2E 64 61 74 61 00 00 00)
 | 
						|
# CHECK-NEXT:     VirtualSize: 0x4
 | 
						|
 | 
						|
        .text
 | 
						|
        .def     main;
 | 
						|
        .scl    2;
 | 
						|
        .type   32;
 | 
						|
        .endef
 | 
						|
        .globl  main                    # -- Begin function main
 | 
						|
        .p2align        4, 0x90
 | 
						|
main:                                   # @main
 | 
						|
# BB#0:
 | 
						|
        movl    foo(%rip), %eax
 | 
						|
        retq
 | 
						|
                                        # -- End function
 | 
						|
 | 
						|
# Defines foo and foo_assoc globals. foo is comdat, and foo_assoc is comdat
 | 
						|
# associative with it. foo_assoc should be discarded iff foo is discarded,
 | 
						|
# either by linker GC or normal comdat merging.
 | 
						|
 | 
						|
        .section        .rdata,"dr",associative,foo
 | 
						|
        .p2align        3
 | 
						|
        .quad   foo
 | 
						|
 | 
						|
        .section        .data,"dw",discard,foo
 | 
						|
        .globl  foo                     # @foo
 | 
						|
        .p2align        2
 | 
						|
foo:
 | 
						|
        .long   42
 |