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