accept __extension__, update todo list.

llvm-svn: 39635
This commit is contained in:
Chris Lattner 2007-06-09 05:59:07 +00:00
parent 6d9b49ae64
commit 736ed5dfb8
1 changed files with 8 additions and 3 deletions

View File

@ -597,15 +597,15 @@ void Parser::ParseStructUnionSpecifier(DeclSpec &DS) {
/// struct-contents: /// struct-contents:
/// struct-declaration-list /// struct-declaration-list
/// [EXT] empty /// [EXT] empty
/// [GNU] "struct-declaration-list" without terminatoring ';' [TODO] /// [GNU] "struct-declaration-list" without terminatoring ';'
/// struct-declaration-list: /// struct-declaration-list:
/// struct-declaration /// struct-declaration
/// struct-declaration-list struct-declaration /// struct-declaration-list struct-declaration
/// [OBC] '@' 'defs' '(' class-name ')' [TODO] /// [OBC] '@' 'defs' '(' class-name ')' [TODO]
/// struct-declaration: /// struct-declaration:
/// specifier-qualifier-list struct-declarator-list ';' /// specifier-qualifier-list struct-declarator-list ';'
/// [GNU] __extension__ struct-declaration [TODO] /// [GNU] __extension__ struct-declaration
/// [GNU] specifier-qualifier-list ';' [TODO] /// [GNU] specifier-qualifier-list ';'
/// struct-declarator-list: /// struct-declarator-list:
/// struct-declarator /// struct-declarator
/// struct-declarator-list ',' struct-declarator /// struct-declarator-list ',' struct-declarator
@ -633,11 +633,16 @@ void Parser::ParseStructUnionBody(SourceLocation RecordLoc,
Tok.getKind() != tok::eof) { Tok.getKind() != tok::eof) {
// Each iteration of this loop reads one struct-declaration. // Each iteration of this loop reads one struct-declaration.
// Check for extraneous top-level semicolon.
if (Tok.getKind() == tok::semi) { if (Tok.getKind() == tok::semi) {
Diag(Tok, diag::ext_extra_struct_semi); Diag(Tok, diag::ext_extra_struct_semi);
ConsumeToken(); ConsumeToken();
continue; continue;
} }
// FIXME: When __extension__ is specified, disable extension diagnostics.
if (Tok.getKind() == tok::kw___extension__)
ConsumeToken();
// Parse the common specifier-qualifiers-list piece. // Parse the common specifier-qualifiers-list piece.
DeclSpec DS; DeclSpec DS;