diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-02-27 02:13:03 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-02-27 02:13:03 +0000 |
| commit | 09a4201d3ca6f03aa59ad504ec0d6a0b63f69de6 (patch) | |
| tree | ca74bb4d1f5fdce99fdd77ab08e2a4e0bd4e8e30 /llvm/test | |
| parent | 6491c8020e0b31c66a7c82bd3334106f5c86f203 (diff) | |
| download | bcm5719-llvm-09a4201d3ca6f03aa59ad504ec0d6a0b63f69de6.tar.gz bcm5719-llvm-09a4201d3ca6f03aa59ad504ec0d6a0b63f69de6.zip | |
Fix this assert. IP can point to an instruction with strange dominance
properties (invoke). Just assert that the instruction we return dominates
the insertion point.
llvm-svn: 151511
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll b/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll index 89f2f603349..b87bf620dec 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll @@ -38,3 +38,33 @@ bb8: bb9: resume { i8*, i32 } zeroinitializer } + + +define void @h() { +bb1: + invoke void @g() optsize + to label %bb2 unwind label %bb5 +bb2: + %arrayctor.cur = phi i8* [ undef, %bb1 ], [ %arrayctor.next, %bb3 ] + invoke void @g() optsize + to label %bb3 unwind label %bb6 +bb3: + %arrayctor.next = getelementptr inbounds i8* %arrayctor.cur, i64 1 + br label %bb2 +bb4: + ret void +bb5: + %tmp = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) + cleanup + invoke void @g() optsize + to label %bb4 unwind label %bb7 +bb6: + %tmp1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) + cleanup + %arraydestroy.isempty = icmp eq i8* undef, %arrayctor.cur + ret void +bb7: + %lpad.nonloopexit = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) + catch i8* null + ret void +} |

