g++.eh/unwind1.C
Andrew Macleod
amacleod@cygnus.com
Tue Apr 27 07:08:00 GMT 1999
>> >This test is failing for me on x86-linux-gnu. It's possible *I* broke
>> >it, but I don't think so; I've got a compiler with most of my recent
>> >changes in that works. The problem is that the EH tables contain
>> >wrong information about where to put the stack pointer;
>> >coincidentally, the amount by which they're off is, I think, the size
>> >of the stack frame for the function. I'm wondering if the recent
>> >leaf-function changes could have had something to do with this?
>>
>> Hmm, I don't get this one on powerpc-linux-gnu
>> ( http://egcs.cygnus.com/ml/egcs-testresults/1999-04/msg00202.html ). Maybe
>> this is related to Andrew's EH stuff not completely checked in yet? I
>> currently use an older snapshot of his work on top of the mainline.
>> Andrew, when will you check in the rest of your EH stuff?
>>
Shortly after we branch the new release of egcs I think. There's no real
reason it can't go in. Have you had to make any changes to it, or
has it been working fine?
One thing to try if you are using sjlj on powerpc is this patch:
(It remains to be seen what the reason the change originally was made for
was, but reverting solves this problem. Its also a part of the EHTable patch
for powerpc too. We're trying to figure out what it is that the original
removal of this check was trying to fix (Any suggestions are welcome :-):
Anyway, it causes r30 to have the wrong value..
*** rs6000.md.bak Tue Apr 20 11:05:00 1999
--- rs6000.md Tue Apr 20 10:13:44 1999
***************
*** 10220,10226 ****
(define_insn "nonlocal_goto_receiver"
[(unspec_volatile [(const_int 0)] 1)]
! "TARGET_TOC && TARGET_MINIMAL_TOC"
"*
{
rs6000_output_load_toc_table (asm_out_file, 30);
--- 10220,10226 ----
(define_insn "nonlocal_goto_receiver"
[(unspec_volatile [(const_int 0)] 1)]
! "TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size() != 0"
"*
{
rs6000_output_load_toc_table (asm_out_file, 30);
More information about the Gcc-bugs
mailing list