------- Comment #5 from tobi at gcc dot gnu dot org 2006-05-08 12:59 ------- Wow. This is actually a bad bug, but after trying some stuff, I believe that it only does bad things when the code is non-standard anyway (lines beginning with ';').
E.g. [EMAIL PROTECTED]:~/src/pr/20440> cat t.f program a ; i = j ; end end [EMAIL PROTECTED]:~/src/pr/20440> ~/src/gcc/build/gcc/f951 t.f -fdump-parse-tree Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4) procedure name = MAIN__ symtree: MAIN__ Ambig 0 symbol MAIN__ (UNKNOWN 0)(PROCEDURE UNKNOWN-INTENT PUBLIC UNKNOWN-PROC SUBROUTINE) symtree: a Ambig 0 symbol a (UNKNOWN 0)(PROGRAM UNKNOWN-INTENT UNKNOWN-ACCESS UNKNOWN-PROC) MAIN__ Execution times (seconds) final : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (50%) wall 0 kB ( 0%) ggc TOTAL : 0.01 0.00 0.02 654 kB Extra diagnostic checks enabled; compiler may run slowly. Configure with --disable-checking to disable checks. [EMAIL PROTECTED]:~/src/pr/20440> The complete line following the semicolon is skipped. OTOH [EMAIL PROTECTED]:~/src/pr/20440> cat t.f program a i = j ; end end [EMAIL PROTECTED]:~/src/pr/20440> ~/src/gcc/build/gcc/f951 t.f MAIN__ In file t.f:1 program a 1 In file t.f:3 2 Error: Two main PROGRAMs at (1) and (2) Execution times (seconds) parser : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (50%) wall 105 kB (16%) ggc TOTAL : 0.01 0.00 0.02 655 kB Extra diagnostic checks enabled; compiler may run slowly. Configure with --disable-checking to disable checks. [EMAIL PROTECTED]:~/src/pr/20440> yields the correct error -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20440