67 lines · plain
1; RUN: opt < %s -passes=globalopt -S | FileCheck %s2 3@foo1 = alias void (), ptr @foo24;; foo2 is dso_local and non-weak. Resolved.5; CHECK: @foo1 = alias void (), ptr @bar26 7@foo2 = dso_local alias void(), ptr @bar18;; bar1 is dso_local and non-weak. Resolved.9; CHECK: @foo2 = dso_local alias void (), ptr @bar210 11@bar1 = dso_local alias void (), ptr @bar212; CHECK: @bar1 = dso_local alias void (), ptr @bar213 14@weak1 = weak dso_local alias void (), ptr @bar215;; weak1 may be replaced with another definition in the linkage unit. Not resolved.16; CHECK: @weak1 = weak dso_local alias void (), ptr @bar217 18@bar4 = private unnamed_addr constant [2 x ptr] zeroinitializer19@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 @bar523; CHECK: @priva = private alias void (), ptr @bar524 25define dso_local void @bar2() {26 ret void27}28; CHECK: define dso_local void @bar2()29 30define weak void @bar5() {31 ret void32}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 void58}59 60@foo3 = dso_local alias void (), ptr @bar361; CHECK-NOT: bar362 63define internal void @bar3() {64 ret void65}66;CHECK: define dso_local void @foo367