Richard Sandiford <[email protected]> writes:
>> +
>> + /* Skip any newlines or whitespaces needed. */
>> + while (ISSPACE(*templ))
>> + templ++;
>> + continue;
>> + }
>> + else if (templ[0] == '/' && templ[1] == '*')
>> + {
>> + templ += 2;
>> + /* Glob till newline or end of multiline comment. */
>> + while (templ[0] != 0 && templ[0] != '*' && templ[1] != '/')
>> + templ++;
>> + templ += 2;
>
> Same problem about moving past '\0' here. But the break condition would
> stop on things like "*]" or "//", not just "*/". I think it should be:
>
> for (; templ[0] != 0; ++templ)
> if (templ[0] == '*' && templ[1] == '/')
> {
> templ += 2;
> break;
> }
Actually, I guess it should be:
while (templ[0] != '*' || templ[1] != '/')
{
if (templ[0] == 0)
fatal_at (loc, "unterminated '/*'");
templ++;
}
templ += 2;
so that we don't accept unterminated /*.
Thanks,
Richard