; RUN: llc -function-sections -mtriple=x86_64-windows-itanium < %s | FileCheck %s
; RUN: llc -function-sections -mtriple=x86_64-windows-msvc < %s | FileCheck %s
; RUN: llc -function-sections -mtriple=x86_64-w64-windows-gnu < %s | FileCheck %s --check-prefix=GNU
; RUN: llc -function-sections -mtriple=i686-w64-windows-gnu < %s | FileCheck %s --check-prefix=GNU32
; RUN: llc -function-sections -mtriple=x86_64-w64-windows-gnu < %s -filetype=obj | llvm-objdump - --headers | FileCheck %s --check-prefix=GNUOBJ

; GCC and MSVC handle comdats completely differently. Make sure we do the right
; thing for each.

; Modeled on this C++ source, with additional modifications for
; -ffunction-sections:
; int bar(int);
; __declspec(selectany) int gv = 42;
; inline int foo(int x) { return bar(x) + gv; }
; int main() { return foo(1); }

$_Z3fooi = comdat any

$gv = comdat any

@gv = weak_odr dso_local global i32 42, comdat, align 4

; Function Attrs: norecurse uwtable
define dso_local i32 @main() #0 {
entry:
  %call = tail call i32 @_Z3fooi(i32 1)
  ret i32 %call
}

; CHECK: .section        .text,"xr",one_only,main
; CHECK: main:
; GNU: .section        .text$main,"xr",one_only,main
; GNU: main:
; GNU32: .section        .text$main,"xr",one_only,_main
; GNU32: _main:

define dso_local x86_fastcallcc i32 @fastcall(i32 %x, i32 %y) {
  %rv = add i32 %x, %y
  ret i32 %rv
}

; CHECK: .section        .text,"xr",one_only,fastcall
; CHECK: fastcall:
; GNU: .section        .text$fastcall,"xr",one_only,fastcall
; GNU: fastcall:
; GNU32: .section        .text$fastcall,"xr",one_only,@fastcall@8
; GNU32: @fastcall@8:

; Function Attrs: inlinehint uwtable
define linkonce_odr dso_local i32 @_Z3fooi(i32 %x) #1 comdat {
entry:
  %call = tail call i32 @_Z3bari(i32 %x)
  %0 = load i32, i32* @gv, align 4
  %add = add nsw i32 %0, %call
  ret i32 %add
}

; CHECK: .section        .text,"xr",discard,_Z3fooi
; CHECK: _Z3fooi:
; CHECK: .section        .data,"dw",discard,gv
; CHECK: gv:
; CHECK: .long 42

; GNU: .section        .text$_Z3fooi,"xr",discard,_Z3fooi
; GNU: _Z3fooi:
; GNU: .section        .data$gv,"dw",discard,gv
; GNU: gv:
; GNU: .long 42

; GNU32: .section        .text$_Z3fooi,"xr",discard,__Z3fooi
; GNU32: __Z3fooi:
; GNU32: .section        .data$gv,"dw",discard,_gv
; GNU32: _gv:
; GNU32: .long 42


define linkonce_odr dso_local i32 @_Z3fooj(i32 %x) !section_prefix !0 {
entry:
  %call = tail call i32 @_Z3bari(i32 %x)
  %0 = load i32, i32* @gv, align 4
  %add = add nsw i32 %0, %call
  ret i32 %add
}

; Make sure the assembler puts the .xdata and .pdata in sections with the right
; names.
; GNUOBJ: .text$_Z3fooi
; GNUOBJ: .xdata$_Z3fooi
; GNUOBJ: .text$unlikely$_Z3fooj
; GNUOBJ: .xdata$unlikely$_Z3fooj
; GNUOBJ: .data$gv
; GNUOBJ: .pdata$_Z3fooi
; GNUOBJ: .pdata$unlikely$_Z3fooj

declare dso_local i32 @_Z3bari(i32)

attributes #0 = { norecurse uwtable }
attributes #1 = { inlinehint uwtable }
!0 = !{!"function_section_prefix", !"unlikely"}
