Chris Lattner | eae2202 | 2010-04-20 00:46:50 +0000 | [diff] [blame^] | 1 | ; rdar://7879828 |
| 2 | ; RUN: opt -inline -argpromotion %s |
| 3 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" |
| 4 | target triple = "x86_64-apple-darwin10.0.0" |
| 5 | |
| 6 | define void @foo() { |
| 7 | invoke void @foo2() |
| 8 | to label %if.end432 unwind label %for.end520 |
| 9 | |
| 10 | if.end432: |
| 11 | unreachable |
| 12 | |
| 13 | for.end520: |
| 14 | unreachable |
| 15 | } |
| 16 | |
| 17 | define internal void @foo2() ssp { |
| 18 | %call7 = call fastcc i8* @foo3(i1 (i8*)* @foo4) |
| 19 | %call58 = call fastcc i8* @foo3(i1 (i8*)* @foo5) |
| 20 | unreachable |
| 21 | } |
| 22 | |
| 23 | define internal fastcc i8* @foo3(i1 (i8*)* %Pred) { |
| 24 | entry: |
| 25 | unreachable |
| 26 | } |
| 27 | |
| 28 | define internal i1 @foo4(i8* %O) nounwind { |
| 29 | entry: |
| 30 | %call = call zeroext i1 @foo5(i8* %O) ; <i1> [#uses=0] |
| 31 | unreachable |
| 32 | } |
| 33 | |
| 34 | define internal i1 @foo5(i8* %O) nounwind { |
| 35 | entry: |
| 36 | ret i1 undef |
| 37 | } |
| 38 | |