Bugzilla – Bug 332
[adce] Crash handling unreachable code that unwinds
Last modified: 2004-05-04 12:02:43
You need to log in before you can comment on or make changes to this bug.
The -adce pass crashes optimizing this function: declare void %exp() void %_ZN10polynomialIdE11inverse_fftERKS_ISt7complexIdEE() { entry: invoke void %exp( ) to label %tmp.0.i.noexc unwind label %invoke_catch.0 invoke_catch.0: ; preds = %entry br bool false, label %UnifiedUnwindBlock, label %cond_true.i.i cond_true.i.i: ; preds = %invoke_catch.0 ret void tmp.0.i.noexc: ; preds = %entry ret void UnifiedUnwindBlock: ; preds = %invoke_catch.0 unwind }
Here's a reduced testcase: void %test() { entry: br label %UnifiedReturnBlock UnifiedReturnBlock: ret void invoke_catch.0: ; No predecessors! br bool false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock UnifiedUnwindBlock: unwind }
Fixed. Testcase here: ADCE/2004-05-04-UnreachableBlock.ll Patch here: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20040503/014111.html -Chris