; 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$_Z3foo ; X86: .linkonce discard ; X86: .globl __Z3foo ; ; X64: .section .text$_Z3foo ; X64: .linkonce discard ; X64: .globl _Z3foo define weak void @_Z3foo() { ret void } ; Unmangled function ; X86: .section .sect$f ; X86: .linkonce discard ; X86: .globl _f ; ; X64: .section .sect$f ; X64: .linkonce discard ; X64: .globl f define weak void @f() section ".sect" { ret void } ; Weak global ; X86: .section .data$a ; X86: .linkonce discard ; X86: .globl _a ; X86: .zero 12 ; ; X64: .section .data$a ; X64: .linkonce discard ; X64: .globl a ; X64: .zero 12 @a = weak unnamed_addr constant { i32, i32, i32 } { i32 0, i32 0, i32 0}, section ".data"