Martin G C Davies wrote:
It is not set (althought my Ultra is a machine where it could be - it's a sun4u). I have attached my /etc/system so you can see it isn't set. What's more I compiled and ran the program below (from the GPC Pascal Manual) that demonstrates procedure parameters working (from what I understood from (*)).
So this doesn't seem to be the issue.
In case it's of use to someone I have attached the assembler (gpc -S) and it appears to be on the assembler "restore" that the SIGSEV occurs. If there is more info I can provide just let me know (and probably tell me how).
I now have some more info on this bug in 20010924, and that is that it seems to have been introduced since 19990118. So compiling with version:-
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/specs gpc version 19990118, based on gcc-2.8.1
the program runs:-
level_1 level_2 level_3 goto 1 label 1
but compiling with version:-
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/specs gpc version 20010924, based on 2.95.3 20010315 (release)
This *might* also be a difference between the backend versions. If you can, please try to build GPC 20010924 with gcc-2.8.1 to see if that works (that's what I'm using, so it would explain why it works for me).
the program runs:-
level_1 level_2 level_3 goto 1 Segmentation Fault(coredump)
I captured the assembler from both version (with -S), performed an "sdiff -W" and the output is attached (as is the source).
I'm not used to reading this format. I'd prefer a unidiff (or the other assembler file, so I can make a diff myself).
Frank