First Last Prev Next    No search results available
Details
: [adce] Crash handling unreachable code that unwinds
Bug#: 332
: libraries
: Scalar Optimizations
Status: RESOLVED
Resolution: FIXED
: All
: All
: 1.0
: P2
: normal
: 1.3

:
: compile-fail
:
:
  Show dependency tree - Show dependency graph
People
Reporter: Chris Lattner <sabre@nondot.org>
Assigned To: Chris Lattner <sabre@nondot.org>

Attachments


Note

You need to log in before you can comment on or make changes to this bug.

Related actions


Description:   Opened: 2004-05-02 21:17
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
}
------- Comment #1 From Chris Lattner 2004-05-04 11:36:32 -------
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

}
------- Comment #2 From Chris Lattner 2004-05-04 12:02:43 -------
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

First Last Prev Next    No search results available