1; RUN: llc < %s | FileCheck %s 2 3; Check that we come up with appropriate section names that link.exe sorts 4; well. 5 6; CHECK: .section .CRT$XCA00042,"dr" 7; CHECK: .p2align 3 8; CHECK: .quad f 9; CHECK: .section .CRT$XCC,"dr" 10; CHECK: .p2align 3 11; CHECK: .quad i 12; CHECK: .section .CRT$XCC00250,"dr" 13; CHECK: .p2align 3 14; CHECK: .quad k 15; CHECK: .section .CRT$XCL,"dr" 16; CHECK: .p2align 3 17; CHECK: .quad j 18; CHECK: .section .CRT$XCT12345,"dr" 19; CHECK: .p2align 3 20; CHECK: .quad g 21; CHECK: .section .CRT$XCT23456,"dr",associative,h 22; CHECK: .p2align 3 23; CHECK: .quad init_h 24 25target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" 26target triple = "x86_64-pc-windows-msvc19.14.26433" 27 28$h = comdat any 29 30@h = linkonce_odr global i8 55, comdat, align 1 31 32@str0 = private dso_local unnamed_addr constant [6 x i8] c"later\00", align 1 33@str1 = private dso_local unnamed_addr constant [6 x i8] c"first\00", align 1 34@str2 = private dso_local unnamed_addr constant [5 x i8] c"main\00", align 1 35 36@llvm.global_ctors = appending global [6 x { i32, ptr, ptr }] [ 37 { i32, ptr, ptr } { i32 12345, ptr @g, ptr null }, 38 { i32, ptr, ptr } { i32 42, ptr @f, ptr null }, 39 { i32, ptr, ptr } { i32 23456, ptr @init_h, ptr @h }, 40 { i32, ptr, ptr } { i32 200, ptr @i, ptr null }, 41 { i32, ptr, ptr } { i32 400, ptr @j, ptr null }, 42 { i32, ptr, ptr } { i32 250, ptr @k, ptr null } 43] 44 45declare dso_local i32 @puts(ptr nocapture readonly) local_unnamed_addr 46 47define dso_local void @g() { 48entry: 49 %call = tail call i32 @puts(ptr @str0) 50 ret void 51} 52 53define dso_local void @f() { 54entry: 55 %call = tail call i32 @puts(ptr @str1) 56 ret void 57} 58 59define dso_local void @init_h() { 60entry: 61 store i8 42, ptr @h 62 ret void 63} 64 65define dso_local void @i() { 66entry: 67 store i8 43, ptr @h 68 ret void 69} 70 71define dso_local void @j() { 72entry: 73 store i8 44, ptr @h 74 ret void 75} 76 77define dso_local void @k() { 78entry: 79 store i8 45, ptr @h 80 ret void 81} 82 83; Function Attrs: nounwind uwtable 84define dso_local i32 @main() local_unnamed_addr { 85entry: 86 %call = tail call i32 @puts(ptr @str2) 87 ret i32 0 88} 89