blob: f11fdb5e2bb215123632bc8988fb62b0df0f7eae [file] [log] [blame]
Reid Kleckner22b19da2014-02-13 02:18:36 +00001; RUN: opt < %s -globalopt -S | FileCheck %s
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +00002
David Blaikie2f408302015-09-11 03:22:04 +00003@foo1 = alias void (), void ()* @foo2
4; CHECK: @foo1 = alias void (), void ()* @bar2
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +00005
David Blaikie2f408302015-09-11 03:22:04 +00006@foo2 = alias void(), void()* @bar1
7; CHECK: @foo2 = alias void (), void ()* @bar2
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +00008
David Blaikie2f408302015-09-11 03:22:04 +00009@bar1 = alias void (), void ()* @bar2
10; CHECK: @bar1 = alias void (), void ()* @bar2
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +000011
David Blaikie2f408302015-09-11 03:22:04 +000012@weak1 = weak alias void (), void ()* @bar2
13; CHECK: @weak1 = weak alias void (), void ()* @bar2
Rafael Espindola24a669d2014-03-27 15:26:56 +000014
David Majnemer0e2cc2a2014-07-01 00:30:56 +000015@bar4 = private unnamed_addr constant [2 x i8*] zeroinitializer
David Blaikie2f408302015-09-11 03:22:04 +000016@foo4 = linkonce_odr unnamed_addr alias i8*, getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
17; CHECK: @foo4 = linkonce_odr unnamed_addr alias i8*, getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
David Majnemer0e2cc2a2014-07-01 00:30:56 +000018
Rafael Espindolaf3336bc2014-03-12 20:15:49 +000019define void @bar2() {
20 ret void
21}
22; CHECK: define void @bar2()
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +000023
24define void @baz() {
25entry:
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +000026 call void @foo1()
Rafael Espindola24a669d2014-03-27 15:26:56 +000027; CHECK: call void @bar2()
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +000028
29 call void @foo2()
Rafael Espindola24a669d2014-03-27 15:26:56 +000030; CHECK: call void @bar2()
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +000031
32 call void @bar1()
33; CHECK: call void @bar2()
34
Rafael Espindola24a669d2014-03-27 15:26:56 +000035 call void @weak1()
36; CHECK: call void @weak1()
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +000037 ret void
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +000038}
Rafael Espindola8d304802013-06-12 16:45:47 +000039
David Blaikie2f408302015-09-11 03:22:04 +000040@foo3 = alias void (), void ()* @bar3
Rafael Espindola8d304802013-06-12 16:45:47 +000041; CHECK-NOT: bar3
42
43define internal void @bar3() {
44 ret void
45}
46;CHECK: define void @foo3