blob: 9d70c708aad865bf3f710ed7d877c3f2c18348c6 [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
Rafael Espindola64c1e182014-06-03 02:41:57 +00003@foo1 = alias void ()* @foo2
Rafael Espindola24a669d2014-03-27 15:26:56 +00004; CHECK: @foo1 = alias void ()* @bar2
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +00005
Rafael Espindola64c1e182014-06-03 02:41:57 +00006@foo2 = alias void()* @bar1
Rafael Espindola24a669d2014-03-27 15:26:56 +00007; CHECK: @foo2 = alias void ()* @bar2
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +00008
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +00009@bar1 = alias void ()* @bar2
Rafael Espindolafb3fc0b2013-06-12 16:35:53 +000010; CHECK: @bar1 = alias void ()* @bar2
Anton Korobeynikova9b60ee2008-09-09 19:04:59 +000011
Rafael Espindola24a669d2014-03-27 15:26:56 +000012@weak1 = alias weak void ()* @bar2
13; CHECK: @weak1 = alias weak void ()* @bar2
14
David Majnemer0e2cc2a2014-07-01 00:30:56 +000015@bar4 = private unnamed_addr constant [2 x i8*] zeroinitializer
16@foo4 = unnamed_addr alias linkonce_odr getelementptr inbounds ([2 x i8*]* @bar4, i32 0, i32 1)
17; CHECK: @foo4 = unnamed_addr alias linkonce_odr getelementptr inbounds ([2 x i8*]* @bar4, i32 0, i32 1)
18
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
40@foo3 = alias void ()* @bar3
41; CHECK-NOT: bar3
42
43define internal void @bar3() {
44 ret void
45}
46;CHECK: define void @foo3