On Fri, Nov 06, 2015 at 04:48:02PM +0000, Alan Lawrence wrote:
> Sorry Jakub, can you clarify please, how to reproduce this failure? I've
> just bootstrapped gcc-5-branch with ada and run the Ada testsuite, which has
> build me gcc/ada/rts/libgnat{.a,.so,-5.so}, and I see all tests passing.
> (Same with --disable-bootstrap FWIW.)

I have installed a GCC 5.1.1 version including Ada on the system,
now bootstrap goes fine, but when doing make check the macrosub process just
hangs.  It happened to me only on Fedora 23/24 and not on Fedora 22.
I bet the issue why it sometimes can be reproduced and sometimes can't is
that due to the register passing changes Item'First and Item'Last are
uninitialized, and it the process only hangs if you are unlucky (the
difference Item'Last - Item'First is negative).

In any case, to manually reproduce, compile
gnatmake -g -gnatws macrosub.adb
with GCC 5.1.1 (before the ARM changes) and then try to run that process against
GCC 5.2.1 (after the ARM changes) libgnat-5.so, which is what make check
does (it uses host_gnatmake to compile the support stuff, so ideally the
processes built by host gcc/gnatmake should not be run with the
LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH
in the environment, and others should).
In macrosub in particular, the problem is in:
          WHILE NOT END_OF_FILE (INFILE1) LOOP
               GET_LINE (INFILE1, A_LINE, A_LENGTH);
in FILL_TABLE, where A_LINE'First is 0 and A_LINE'Last is 400 (if I remember
right), but if you step into GET_LINE compiled by GCC 5.2.1, Item'First
and Item'Last don't match that.

        Jakub

Reply via email to