> 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