[Issue 1613] New: DMD hangs on syntax error
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Oct 24 19:31:27 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1613
Summary: DMD hangs on syntax error
Product: D
Version: 1.022
Platform: PC
OS/Version: Windows
Status: NEW
Severity: minor
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: ary at esperanto.org.ar
Compiling this piece of code:
--
int x = {
--
makes dmd's parser loop inifitenly, consuming the machine's memory. It also
happens in 1.020.
Although no one would ever write such a code, if the parser is ported and used
for an IDE, it may freeze the IDE (I found it in Descent). There, it's very
normal if the user stops typing at "{".
Fix: in parser.d, Parser::parseInitializer, after the first loop after "braces
= 1;", in the swich of the loop add a "case TOKeof:" which breaks out of the
for (I'm seeing a goto there :-P). A "break" must also be added in the next
while(1) loop, also in a new "case TOKeof:".
--
More information about the Digitalmars-d-bugs
mailing list