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

Reply via email to