[PATCH,c] better recovery from missing semicolon after declaration
Paolo Bonzini
bonzini@gnu.org
Thu Nov 18 19:47:00 GMT 2010
On 11/18/2010 08:04 PM, Nathan Froyd wrote:
> I think
> the saving grace on your testcase is that in:
>
> typedef uintt16_t pid_t;
>
> `pid_t' is not a keyword, so we don't stop parsing early, but I haven't
> traced through the parser to verify that.
Yes, that's possible. In that case, I have no objection to the patch;
the testcase is quite weird indeed in having a keyword after the id.
For what is worth, my WIP patch has no effect on your testcase:
$ ./cc1
typedef BYTE unsigned char;
BYTE x;
<stdin>:1:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’
before ‘unsigned’
<stdin>:2:1: error: unknown type name ‘BYTE’
but fixes the other:
$ ./cc1
typedef uintt16_t pid_t;
pid_t x;
<stdin>:1:1: error: unknown type name ‘uintt16_t’
Thanks,
Paolo
More information about the Gcc-patches
mailing list