Fixed bug in '#ifdef FALSE || 1 (garbage)

This commit is contained in:
ceriel 1992-05-26 18:09:11 +00:00
parent 2cb19d3a30
commit 1de983200b
2 changed files with 9 additions and 4 deletions

View file

@ -441,14 +441,16 @@ do_ifdef(how)
push_if();
if (!(id = GetIdentifier(1)))
lexerror("illegal #ifdef construction");
else if (SkipToNewLine())
if (!options['o'])
lexstrict("garbage following #%s <identifier>",
how ? "ifdef" : "ifndef");
/* The next test is a shorthand for:
(how && !id->id_macro) || (!how && id->id_macro)
*/
if (how ^ (id && id->id_macro != 0))
skip_block(0);
else if (id)
SkipToNewLine();
}
/* argidf != NULL when the undef came from a -U option */

View file

@ -448,14 +448,17 @@ do_ifdef(how)
id = findidf(str);
free(str);
}
if (SkipToNewLine()) {
if (str && !options['o'])
strict("garbage following #%s <identifier>",
how ? "ifdef" : "ifndef");
}
/* The next test is a shorthand for:
(how && !id->id_macro) || (!how && id->id_macro)
*/
if (how ^ (id && id->id_macro != 0))
skip_block(0);
else
SkipToNewLine();
}
/* argstr != NULL when the undef came from a -U option */