[Ada] Bootstrapping mainline GNAT fails
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Mon Mar 18 18:40:00 GMT 2002
It's really hard to guess what is going on here. Especially since we
don' t duplicate this bomb. I wonder what is different about your
setup and ours?
I'm guessing this is compiling snames.adb and I think we *do* take the
exception here, which is a latent bug.
The real problem is that builtin setjmp/longjmp seems to be broken.
Zack, try compiling and running the following with the same compiler you
built gnat1 with:
int buf[20];
int
main ()
{
char *p = (char *) alloca (20);
strcpy (p, "test\n");
if (__builtin_setjmp (buf))
{
printf (p);
exit (0);
}
{
int *q = (int *) alloca (p[2] * sizeof (int));
int i;
for (i = 0; i < p[2]; i++)
q[i] = 0;
while (1)
sub2 ();
}
}
sub2 ()
{
__builtin_longjmp (buf, 1);
}
More information about the Gcc
mailing list