Hi Roger,
> My sincere apologies for the breakage. I'm currently regression testing a
> solution to the ICEs introduced by my "small const struct" patch, which
> fingers-crossed might also fix this Ada bootstrap. For a while when
> Rainer also reported the bootstrap failure is visible, on
> x86_64-pc-linux-gnu,
> I thought I'd be able to diagnose and fix the issue myself, but alas my
> --enable-languages="all" builds (still) fail earlier with:
>
> gcc -std=gnu99 -c -g -gnatpg -gnatwns -gnata -W -Wall -I- -I.
> -Iada/generated -Iada -I../../gcc/gcc/ada ../../gcc/gcc/ada/osint.adb -o
> ada/osint.o
> osint.adb:438:31: "strlen" not declared in "CRTL"
> osint.adb:441:14: "strncpy" not declared in "CRTL"
> osint.adb:675:21: "strlen" not declared in "CRTL"
> osint.adb:728:16: "Open_Append" is undefined
> osint.adb:1108:41: "int64" not declared in "CRTL"
> osint.adb:3144:28: "strlen" not declared in "CRTL"
> osint.adb:3147:11: "strncpy" not declared in "CRTL"
>
> The one experiment I'd like to be able to try, to investigate the cause/cure
> of this, is:
>
> diff --git a/gcc/calls.cc b/gcc/calls.cc
> index a4336c1..05fdd24 100644
> --- a/gcc/calls.cc
> +++ b/gcc/calls.cc
> @@ -2177,7 +2177,7 @@ load_register_parameters (struct arg_data *args, int
> num_a
> VAR_DECL with a simple constructor, expand that constructor
> via a pseudo rather than read from (possibly misaligned)
> memory. PR middle-end/95126. */
> - else if (nregs == 1
> + else if (0 && nregs == 1
> && partial == 0
> && !args[i].pass_on_stack
> && VAR_P (tree_value)
>
> My "small const structs" patch affected code generation in three places, and
> identifying
> which of these is causing the miscompilation issue for gnat will help narrow
> down the
> problem, or worst case allow reverting less of the problematic patch.
I just tried this on i386-pc-solaris2.11: unfortunately, it made no
difference.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University