This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: EH tree is invalid
Piotr Wyderski wrote:
> Dave Korn wrote:
>
>> Are you using SJLJ or DW2 exceptions?
>
> SJLJ only -- DW2 doesn't work on Windows if the exception
> handling scope crosses DLL boundaries.
It does these days as long as you're using shared libraries, but that's a
separate issue.
>> If SJLJ, does the patch at
>>
>> http://gcc.gnu.org/ml/gcc-patches/2009-04/msg01628.html
>>
>> help the problem?
>
> Hm, it seems that rev 146517 does not build on Cygwin,
> so I am unable to check it right now. But I'll try the patch
> ASAB (as soon as buildable :D)
I just ran into this problem as well, try the attached.
cheers,
DaveK
Index: gcc/sdbout.c
===================================================================
--- gcc/sdbout.c (revision 146515)
+++ gcc/sdbout.c (working copy)
@@ -771,7 +771,7 @@
return;
SET_DECL_RTL (decl,
- eliminate_regs (DECL_RTL (decl), 0, NULL_RTX));
+ eliminate_regs (DECL_RTL (decl), VOIDmode, NULL_RTX));
#ifdef LEAF_REG_REMAP
if (current_function_uses_only_leaf_regs)
leaf_renumber_regs_insn (DECL_RTL (decl));
@@ -1271,9 +1271,9 @@
/* Perform any necessary register eliminations on the parameter's rtl,
so that the debugging output will be accurate. */
DECL_INCOMING_RTL (parms)
- = eliminate_regs (DECL_INCOMING_RTL (parms), 0, NULL_RTX);
+ = eliminate_regs (DECL_INCOMING_RTL (parms), VOIDmode, NULL_RTX);
SET_DECL_RTL (parms,
- eliminate_regs (DECL_RTL (parms), 0, NULL_RTX));
+ eliminate_regs (DECL_RTL (parms), VOIDmode, NULL_RTX));
if (PARM_PASSED_IN_MEMORY (parms))
{