> With this patch (which would describe why it gimplifier sees
> integer-type nodes here):
>
> Index: gcc/gcc/ada/gcc-interface/trans.c
> ===================================================================
> --- gcc.orig/gcc/ada/gcc-interface/trans.c      2011-05-12
> 20:06:01.000000000 +0200
> +++ gcc/gcc/ada/gcc-interface/trans.c   2011-05-15 15:33:32.305516200 +0200
> @@ -7101,7 +7110,7 @@ convert_with_check (Entity_Id gnat_type,
>      {
>        /* Ensure GNU_EXPR only gets evaluated once.  */
>        tree gnu_input = gnat_protect_expr (gnu_result);
> -      tree gnu_cond = integer_zero_node;
> +      tree gnu_cond = boolean_false_node;
>        tree gnu_in_lb = TYPE_MIN_VALUE (gnu_in_basetype);
>        tree gnu_in_ub = TYPE_MAX_VALUE (gnu_in_basetype);
>        tree gnu_out_lb = TYPE_MIN_VALUE (gnu_base_type);
>
> I was able to do a bootstrap for ada and run 'make check-ada' without
> seeing gimplification errors.

The patch is OK, but it doesn't change anything for c52103x as this is a pure 
gimplifier problem.  Try running ACATS at -O0:

Index: ada/acats/run_all.sh
===================================================================
--- ada/acats/run_all.sh        (revision 173756)
+++ ada/acats/run_all.sh        (working copy)
@@ -9,7 +9,7 @@
 # gccflags="-O3 -fomit-frame-pointer -funroll-all-loops -finline-functions"
 # gnatflags="-gnatN"

-gccflags="-O2"
+gccflags=""
 gnatflags="-gnatws"

 target_run () {

and you'll see the failures.

> The only failure I see in testrun is 'cxg2001.adb' test with 'GCC
> error: in compensate_edge, at reg-stach.c:2781' Error detect around
> cxg2001.adb:322:5.  But well, this bug seems to me unrelated here to
> gimplication.

Yes, the cxg2001 failure is PR rtl-optimization/48633.

-- 
Eric Botcazou

Reply via email to