llvm-6502/test/MC/COFF/tricky-names.ll
Rafael Espindola 823c9c725d Use simple section names for COMDAT sections on COFF.
With this patch we use simple names for COMDAT sections (like .text or .bss).
This matches the MSVC behavior.

When merging it is the COMDAT symbol that is used to decide if two sections
should be merged, so there is no point in building a fancy name.

This survived a bootstrap on mingw32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195798 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-27 01:18:37 +00:00

39 lines
1.6 KiB
LLVM

; Check how tricky symbols are printed in the asm output.
; RUN: llc -mtriple=i686-pc-win32 %s -o - | FileCheck %s --check-prefix=ASM
; Check that we can roundtrip these names through our assembler.
; RUN: llc -mtriple=i686-pc-win32 %s -o - | llvm-mc -triple i686-pc-win32 -filetype=obj | llvm-readobj -t | FileCheck %s --check-prefix=READOBJ
@"\01??__E_Generic_object@?$_Error_objects@H@std@@YAXXZ" = global i32 0
@"\01__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4" = global i32 0
@"\01@foo.bar" = global i32 0
define weak i32 @"\01??_B?$num_put@_WV?$back_insert_iterator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@@std@@51"() section ".text" {
%a = load i32* @"\01??__E_Generic_object@?$_Error_objects@H@std@@YAXXZ"
%b = load i32* @"\01__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4"
%c = load i32* @"\01@foo.bar"
%x = add i32 %a, %b
%y = add i32 %x, %c
ret i32 %y
}
; Check that these symbols are not quoted. They occur in output that gets passed to GAS.
; ASM: .globl __ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4
; ASM-NOT: .globl "__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4"
; ASM: .globl @foo.bar
; ASM-NOT: .globl "@foo.bar"
; READOBJ: Symbol
; READOBJ: Name: .text
; READOBJ: Section: .text
; READOBJ: Symbol
; READOBJ: Name: ??_B?$num_put@_WV?$back_insert_iterator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@std@@@std@@51
; READOBJ: Section: .text
; READOBJ: Symbol
; READOBJ: Name: ??__E_Generic_object@?$_Error_objects@H@std@@YAXXZ
; READOBJ: Symbol
; READOBJ: Name: __ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4
; READOBJ: Symbol
; READOBJ: Name: @foo.bar