[LLVMbugs] [Bug 1439] NEW: invoke has no landing pad after codegen
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Tue May 22 14:10:31 PDT 2007
http://llvm.org/bugs/show_bug.cgi?id=1439
Summary: invoke has no landing pad after codegen
Product: new-bugs
Version: unspecified
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: baldrick at free.fr
In the testcase there are two calls to @__cxa_throw,
one of which is an invoke the other a normal call.
[Only the invoke one should be called when the program
is run].
After codegen
llc -enable-eh -asm-verbose e.bc
there is only one call to @__cxa_throw but it
is the wrong one! First of all, from the assembler
comment (#finally) you can see that it is the normal
call version that got put in (the other is in finally.i):
.LBB2_1: #finally
movl $_ZTI1A, 4(%esp)
movl $_ZN1AD1Ev, 8(%esp)
movl %esi, (%esp)
call __cxa_throw
.LBB2_2: #unwind
Secondly, in the exception handling table there is no
landing pad for this code range, there is only
.long .Llabel4-.Leh_func_begin2 # Region start
.long .Llabel5-.Llabel4 # Region length
.long 0x0 # Landing pad
.uleb128 0 # Action
which does not cover this.
My guess is that codegen cleverly saw that it could collapse
the two calls to @__cxa_throw into one call, thinking that they
were equivalent, without noticing that they differed in that
one was an invoke.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list