summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/Parser.cpp
diff options
context:
space:
mode:
authorMichael Han <fragmentshaders@gmail.com>2013-02-22 17:15:32 +0000
committerMichael Han <fragmentshaders@gmail.com>2013-02-22 17:15:32 +0000
commit84324357b8e3870166bd29adf4c4eb83686644d4 (patch)
tree0d8c2a31b6bc5fe50f6d0d95f7d5df284176565f /clang/lib/Parse/Parser.cpp
parentadc1b070020c8badc664302b6bf2ac39bdf1b494 (diff)
downloadbcm5719-llvm-84324357b8e3870166bd29adf4c4eb83686644d4.tar.gz
bcm5719-llvm-84324357b8e3870166bd29adf4c4eb83686644d4.zip
[Sema] Semantic analysis for empty-declaration and attribute-declaration.
Introduce a new AST Decl node "EmptyDecl" to model empty-declaration. Have attributes from attribute-declaration appertain to the EmptyDecl node by creating the AST representations of these attributes and attach them to the EmptyDecl node so these attributes can be sema checked just as attributes attached to "normal" declarations. llvm-svn: 175900
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r--clang/lib/Parse/Parser.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp
index d9772755bd2..24849edd63b 100644
--- a/clang/lib/Parse/Parser.cpp
+++ b/clang/lib/Parse/Parser.cpp
@@ -626,15 +626,11 @@ Parser::ParseExternalDeclaration(ParsedAttributesWithRange &attrs,
return DeclGroupPtrTy();
case tok::semi:
// Either a C++11 empty-declaration or attribute-declaration.
- if (attrs.Range.isValid()) {
- // FIXME: Add an AST representation for this.
- Actions.ActOnAttributeDeclaration(attrs.getList());
- return DeclGroupPtrTy();
- }
-
+ SingleDecl = Actions.ActOnEmptyDeclaration(getCurScope(),
+ attrs.getList(),
+ Tok.getLocation());
ConsumeExtraSemi(OutsideFunction);
- // TODO: Invoke action for top-level semicolon.
- return DeclGroupPtrTy();
+ break;
case tok::r_brace:
Diag(Tok, diag::err_extraneous_closing_brace);
ConsumeBrace();
OpenPOWER on IntegriCloud