This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ada bootstrap failure on x86


    I still got a bootstrap failure but at a different place:

    stage2/xgcc -Bstage2/ -B/home/guerby/work/gcc/install/install-20040721T203639/i686-pc-linux-gnu/bin/ -c -g -O2      -gnatpg -gnata -I- -I. -Iada -I/home/guerby/work/gcc/version-head/gcc/ada /home/guerby/work/gcc/version-head/gcc/ada/erroutc.adb -o ada/erroutc.o
    +===========================GNAT BUG DETECTED==============================+
    | 3.5.0 20040721 (experimental) (i686-pc-linux-gnu) Storage_Error heap exhausted|
    | Error detected at erroutc.adb:996:8                                      |

I don't get that one.  Can you take a quick look and see if you can find
the miscompilation?

    I noticed there's another set_mem_alias_set (targ, 0) with an identical
    comment at line 355 of expr.c

That line number looks like a typo, but when I search I see three occurrences
of the code.  In one of them the setting of aliase set zero is conditional
on flag_optimize_sibling_calls, but not that other two.  That seems wrong.

But, even though I probably wrote that code, it seems fundamentally wrong
to use set_mem_attributes on stores into the outgoing argument area since
the same location is going to be used for arguments of different types.

Can you try with all three of those calls gone?

I think the right approach might well be to make an alias set just for
the outgoing args and always use that alias set without /u.

I'm concerned about the sibcall comment, though, but don't understand it
or know if it still applies with the tree optimizer.  But if the goal were
really to avoid such conflicts, none of them can be /u.  However,
incoming args can be, so do we have another bug here?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]