blob: 8eb307250330125ab8424376dd9264193b7e1400 [file] [log] [blame]
Eli Friedman688db1d2011-10-21 20:45:19 +00001; RUN: opt -inline -S < %s | FileCheck %s
2; PR10162
3
Gerolf Hoflehner734f4c82014-07-01 00:19:34 +00004; Make sure doit is not inlined since the blockaddress is taken
5; which could be unsafe
6; CHECK: store i8* blockaddress(@doit, %here), i8** %pptr, align 8
Eli Friedman688db1d2011-10-21 20:45:19 +00007
8@i = global i32 1, align 4
9@ptr1 = common global i8* null, align 8
10
11define void @doit(i8** nocapture %pptr, i32 %cond) nounwind uwtable {
12entry:
13 %tobool = icmp eq i32 %cond, 0
14 br i1 %tobool, label %if.end, label %here
15
16here:
17 store i8* blockaddress(@doit, %here), i8** %pptr, align 8
18 br label %if.end
19
20if.end:
21 ret void
22}
23
24define void @f(i32 %cond) nounwind uwtable {
25entry:
26 call void @doit(i8** @ptr1, i32 %cond)
27 ret void
28}