Peter:
(Sorry about the duplicate message to your personal address, please ignore it.)
Oh - sorry I didn't catch that. Are these messages archived somewhere?
Using the search function, I could not even locate any entries with the word 'goto'!
Hmm. Is that because there are no entries for Nov 1999?
Is it broken?
Then you have never seen a Turbo/Borland Pascal compiler. ;-)
Nope! :-)
Seriously, the problem is in how the GCC backend handles a GCC extension not present in ANSI C: `goto's with declared labels from a sub-function to the parent. (ANSI C does not have sub-functions; GNU C has.) Since global procedures are _not_ sub-functions of the main program in GPC, this mechanism is modified in GPC in a way which worked under gcc-2.8.x and egcs-1.1.x, but breaks under gcc-2.95.x. (For entry points to the GPC source, see my other mail.)
This strikes me as related to another problem. I was forced by the Sun Pascal compiler no longer to use 'main' as a procedure name because the C compiler objected. However, that is a violation of the scope principle. It seems to me that a compiler writer could avoid all these issues by encasing the entire program under one more layer of scope. Then 'main' or any other non-keyword could be used without conflict with the C compiler.
In the same way, encasing the program as a 'sub-function' might mean that your difficulty with would go away.
Tom
Dr. Thomas D. Schneider National Cancer Institute Laboratory of Experimental and Computational Biology Frederick, Maryland 21702-1201 toms@ncifcrf.gov permanent email: toms@alum.mit.edu http://www.lecb.ncifcrf.gov/~toms/