I wrote:
Martin G C Davies wrote:
Thanks for that suggestion (and the subsequent private email help about the build). Indeed this has fixed the problem for me - so it appears to be a GCC problem as opposed to GPC.
Thus, I can now continue with my new:-
gpc -v Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/specs gpc version 20010924, based on gcc-2.8.1
Is there anything I should do to notify anyone about the GCC problem or should it get picked up from this mailing list anyway?
Not yet. I'll first try to find out if it's really a GCC bug or just something in the interface between GPC and GCC which broke with the new version. I have access to Solaris systems where I can try to reproduce the problem with a 2.95.x based GPC.
OK, I can reproduce it, and it is a GCC bug. The following C program (using GCC extensions for nested functions and label declarations) is a direct translation from the Pascal program and it has the same problem (also only with 2.95.x on Solaris).
If you have access to a GCC 3.0 on Solaris, you might test it with that version.
So I think it's time to report it to the GCC maintainers. Will you do that (see the GCC documentaion for how and where), or should I?
extern int puts (const char *);
int main() { __label__ l1;
void foo() {
void bar() { puts ("goto l1"); goto l1; }
bar (); }
foo (); abort (); l1: puts ("label l1"); return 0; }
Frank