------- Additional Comments From hubicka at ucw dot cz 2005-09-27 22:22 ------- Subject: Re: [4.1 Regression] ACATS FAIL 17 regressions on x86-linux, fixed and decimal arithmetic broken
> > ------- Additional Comments From laurent at guerby dot net 2005-09-23 19:46 > ------- > Beginning of the -fdump-tree-all diff before and after patch. > > -- before/s-arit64.adb.00.expand 2005-09-23 20:01:11.000000000 +0200 > +++ after/s-arit64.adb.00.expand 2005-09-23 19:41:23.000000000 +0200 > @@ -2795,143 +2795,119 @@ > (call_insn/u 18 17 19 (set (reg:SI 0 ax) > (call (mem:QI (symbol_ref:SI ("system__arith_64__hi") [flags 0x3] > <function_decl 0x40196d80 system__arith_64__hi>) [0 S1 A8]) > (const_int 8 [0x8]))) -1 (nil) > - (nil) > + (expr_list:REG_EH_REGION (const_int 0 [0x0]) > + (nil)) While trying to track down this problem I got lost in the handling of EH and libcall blocks. It looks like emit_libcall can detect possibly trapping libcalls but elliminates the the EH_REGION note when -fnon-call-exceptions is set. When it is not the EH_REGION notes are set to -1, while for non-trapping calls in calls.c the region 0 is used. I am somwhat lost in this code and it seems to me that the failures might come from different EH delivery. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24003