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