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)) {