[Bug modula2/108557] Stuck compilation for empty file

2023-01-27 Thread gaius at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108557

Gaius Mulley  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #3 from Gaius Mulley  ---
[gcc r13-5463] PR-108557 Stuck compilation for empty file.

git pushed (and next time I'll get the PR syntax correct)

[Bug modula2/108557] Stuck compilation for empty file

2023-01-27 Thread gaius at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108557

Gaius Mulley  changed:

   What|Removed |Added

 CC||gaius at gcc dot gnu.org

--- Comment #2 from Gaius Mulley  ---
Created attachment 54361
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54361&action=edit
Proposed fix

I believe this fixes the bug.

PR-108557 Stuck compilation for empty file

Trying to compile an empty file causes cc1gm2 to hang.
The bug was that M2LexBuf.mod called m2flex.GetToken after
an eof token was seen which resulted in m2flex attempting
to read from stdin.  The bug fix detects eof per file and
blocks a subsequent to m2flex.GetToken.

gcc/m2/ChangeLog:

* gm2-compiler/M2Comp.mod:  Import MetaString0.
(ExamineCompilationUnit): New variable Message.
Create and format error string.
* gm2-compiler/M2LexBuf.mod: New variable SeenEof.
(GetNonEofToken): New procedure.
(Init): Set SeenEof to FALSE.
(GetToken): Use GetNonEofToken instead of calls to
m2flex.GetToken and GetToken.
(AddTok): Detect eoftok and set SeenEof.

gcc/testsuite/ChangeLog:

* gm2/pim/fail/empty.mod: New test.

[Bug modula2/108557] Stuck compilation for empty file

2023-01-26 Thread gaius at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108557

Gaius Mulley  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2023-01-26
 Ever confirmed|0   |1

--- Comment #1 from Gaius Mulley  ---
Thanks, indeed replicated and confirmed.