r175649 - Process and handle attributes on conditions and for loop variables. Process and
Michael Han
fragmentshaders at gmail.com
Wed Feb 20 16:16:17 PST 2013
Hi Richard,
For attribute declarations, are they appertaining to the translation unit
in which they are declared? If true then maybe TranslationUnitDecl is a
place to store the AST nodes for these attributes? If not what would be the
right place to store these attributes in AST? I am interested to work on
this as I need declare attributes at TU scope then retrieve them later from
AST.
Michael.
On Wed, Feb 20, 2013 at 11:22 AM, Richard Smith
<richard-llvm at metafoo.co.uk>wrote:
> Author: rsmith
> Date: Wed Feb 20 13:22:51 2013
> New Revision: 175649
>
> URL: http://llvm.org/viewvc/llvm-project?rev=175649&view=rev
> Log:
> Process and handle attributes on conditions and for loop variables.
> Process and
> diagnose attributes on alias declarations, using directives, and attribute
> declarations.
>
> Modified:
> cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> cfe/trunk/include/clang/Parse/Parser.h
> cfe/trunk/include/clang/Sema/Sema.h
> cfe/trunk/lib/Parse/ParseDecl.cpp
> cfe/trunk/lib/Parse/ParseDeclCXX.cpp
> cfe/trunk/lib/Parse/ParseExprCXX.cpp
> cfe/trunk/lib/Parse/ParseStmt.cpp
> cfe/trunk/lib/Parse/Parser.cpp
> cfe/trunk/lib/Sema/SemaDeclCXX.cpp
> cfe/trunk/lib/Sema/SemaType.cpp
> cfe/trunk/test/Parser/cxx0x-attributes.cpp
>
>
>
> ==============================================================================
> --- cfe/trunk/lib/Parse/Parser.cpp (original)
> +++ cfe/trunk/lib/Parse/Parser.cpp Wed Feb 20 13:22:51 2013
> @@ -566,7 +566,6 @@ bool Parser::ParseTopLevelDecl(DeclGroup
> /// external-declaration: [C99 6.9], declaration: [C++ dcl.dcl]
> /// function-definition
> /// declaration
> -/// [C++0x] empty-declaration
> /// [GNU] asm-definition
> /// [GNU] __extension__ external-declaration
> /// [OBJC] objc-class-definition
> @@ -578,8 +577,10 @@ bool Parser::ParseTopLevelDecl(DeclGroup
> /// [C++] linkage-specification
> /// [GNU] asm-definition:
> /// simple-asm-expr ';'
> +/// [C++11] empty-declaration
> +/// [C++11] attribute-declaration
> ///
> -/// [C++0x] empty-declaration:
> +/// [C++11] empty-declaration:
> /// ';'
> ///
> /// [C++0x/GNU] 'extern' 'template' declaration
> @@ -624,6 +625,13 @@ Parser::ParseExternalDeclaration(ParsedA
> HandlePragmaOpenCLExtension();
> 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();
> + }
> +
> ConsumeExtraSemi(OutsideFunction);
> // TODO: Invoke action for top-level semicolon.
> return DeclGroupPtrTy();
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130220/a492aa96/attachment.html>
More information about the cfe-commits
mailing list