> 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