1; RUN: opt < %s -passes=globalopt -S | FileCheck %s 2 3@foo1 = alias void (), ptr @foo2 4;; foo2 is dso_local and non-weak. Resolved. 5; CHECK: @foo1 = alias void (), ptr @bar2 6 7@foo2 = dso_local alias void(), ptr @bar1 8;; bar1 is dso_local and non-weak. Resolved. 9; CHECK: @foo2 = dso_local alias void (), ptr @bar2 10 11@bar1 = dso_local alias void (), ptr @bar2 12; CHECK: @bar1 = dso_local alias void (), ptr @bar2 13 14@weak1 = weak dso_local alias void (), ptr @bar2 15;; weak1 may be replaced with another definition in the linkage unit. Not resolved. 16; CHECK: @weak1 = weak dso_local alias void (), ptr @bar2 17 18@bar4 = private unnamed_addr constant [2 x ptr] zeroinitializer 19@foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1) 20; CHECK: @foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1) 21 22@priva = private alias void (), ptr @bar5 23; CHECK: @priva = private alias void (), ptr @bar5 24 25define dso_local void @bar2() { 26 ret void 27} 28; CHECK: define dso_local void @bar2() 29 30define weak void @bar5() { 31 ret void 32} 33; CHECK: define weak void @bar5() 34 35define void @baz() { 36entry: 37 call void @foo1() 38;; foo1 is dso_preemptable. Not resolved. 39; CHECK: call void @foo1() 40 41 call void @foo2() 42;; foo2 is dso_local and non-weak. Resolved. 43; CHECK: call void @bar2() 44 45 call void @bar1() 46;; bar1 is dso_local and non-weak. Resolved. 47; CHECK: call void @bar2() 48 49 call void @weak1() 50;; weak1 is weak. Not resolved. 51; CHECK: call void @weak1() 52 53 call void @priva() 54;; priva has a local linkage. Resolved. 55; CHECK: call void @priva() 56 57 ret void 58} 59 60@foo3 = dso_local alias void (), ptr @bar3 61; CHECK-NOT: bar3 62 63define internal void @bar3() { 64 ret void 65} 66;CHECK: define dso_local void @foo3 67