Mercurial > hg > CbC > CbC_llvm
view test/MC/COFF/weak-symbol.ll @ 33:e4204d083e25 LLVM3.5
LLVM 3.5
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 14:32:10 +0900 |
parents | 95c75e76d11b |
children | 54457678186b |
line wrap: on
line source
; Test that weak functions and globals are placed into selectany COMDAT ; sections with the mangled name as suffix. Ensure that the weak linkage ; type is not ignored by the backend if the section was specialized. ; ; RUN: llc -mtriple=i686-pc-win32 %s -o - | FileCheck %s --check-prefix=X86 ; RUN: llc -mtriple=i686-pc-mingw32 %s -o - | FileCheck %s --check-prefix=X86 ; RUN: llc -mtriple=x86_64-pc-win32 %s -o - | FileCheck %s --check-prefix=X64 ; RUN: llc -mtriple=x86_64-pc-mingw32 %s -o - | FileCheck %s --check-prefix=X64 ; Mangled function ; X86: .section .text,"xr",discard,__Z3foo ; X86: .globl __Z3foo ; ; X64: .section .text,"xr",discard,_Z3foo ; X64: .globl _Z3foo define weak void @_Z3foo() { ret void } ; Unmangled function ; X86: .section .sect,"xr",discard,_f ; X86: .globl _f ; ; X64: .section .sect,"xr",discard,f ; X64: .globl f define weak void @f() section ".sect" { ret void } ; Weak global ; X86: .section .data,"r",discard,_a ; X86: .globl _a ; X86: .zero 12 ; ; X64: .section .data,"r",discard,a ; X64: .globl a ; X64: .zero 12 @a = weak unnamed_addr constant { i32, i32, i32 } { i32 0, i32 0, i32 0}, section ".data" ; X86: .section .tls$,"w",discard,_b ; X86: .globl _b ; X86: .long 0 ; ; X64: .section .tls$,"w",discard,b ; X64: .globl b ; X64: .long 0 @b = weak_odr thread_local global i32 0, align 4