[cfe-commits] r108218 - in /cfe/trunk: include/clang/AST/DeclBase.h lib/AST/DeclBase.cpp lib/Sema/SemaTemplateInstantiateDecl.cpp

Douglas Gregor dgregor at apple.com
Mon Jul 12 22:37:21 PDT 2010


Thanks!

On Jul 12, 2010, at 5:16 PM, Fariborz Jahanian wrote:

> Author: fjahanian
> Date: Mon Jul 12 19:16:40 2010
> New Revision: 108218
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=108218&view=rev
> Log:
> Instantiate attributes when first building an instantiated
> VarDecl.
> 
> Modified:
>    cfe/trunk/include/clang/AST/DeclBase.h
>    cfe/trunk/lib/AST/DeclBase.cpp
>    cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> 
> Modified: cfe/trunk/include/clang/AST/DeclBase.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclBase.h?rev=108218&r1=108217&r2=108218&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/DeclBase.h (original)
> +++ cfe/trunk/include/clang/AST/DeclBase.h Mon Jul 12 19:16:40 2010
> @@ -312,7 +312,6 @@
>     return getAttrsImpl();    // Uncommon case, out of line hash lookup.
>   }
>   void swapAttrs(Decl *D);
> -  void copyAttrs(Decl *D);
>   void invalidateAttrs();
> 
>   template<typename T> const T *getAttr() const {
> 
> Modified: cfe/trunk/lib/AST/DeclBase.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclBase.cpp?rev=108218&r1=108217&r2=108218&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/DeclBase.cpp (original)
> +++ cfe/trunk/lib/AST/DeclBase.cpp Mon Jul 12 19:16:40 2010
> @@ -372,18 +372,6 @@
>   RHS->HasAttrs = true;
> }
> 
> -void Decl::copyAttrs(Decl *SRC) {
> -  if (!SRC->hasAttrs())
> -    return;
> -  ASTContext &Context = getASTContext();
> -  for (const Attr *attr = SRC->getAttrs(); attr; attr = attr->getNext()) {
> -    Attr *NewAttr = attr->clone(Context);
> -    addAttr(const_cast<Attr*>(NewAttr));
> -  }
> -  HasAttrs = true;
> -}
> -
> -
> void Decl::Destroy(ASTContext &C) {
>   // Free attributes for this decl.
>   if (HasAttrs) {
> 
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=108218&r1=108217&r2=108218&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Mon Jul 12 19:16:40 2010
> @@ -396,11 +396,11 @@
>     Owner->makeDeclVisibleInContext(Var);
>   } else {
>     Owner->addDecl(Var);
> -    
>     if (Owner->isFunctionOrMethod())
>       SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Var);
>   }
> -
> +  InstantiateAttrs(D, Var);
> +  
>   // Link instantiations of static data members back to the template from
>   // which they were instantiated.
>   if (Var->isStaticDataMember())
> @@ -2591,10 +2591,7 @@
>       ParentDC->isFunctionOrMethod()) {
>     // D is a local of some kind. Look into the map of local
>     // declarations to their instantiations.
> -    NamedDecl *ND = 
> -      cast<NamedDecl>(CurrentInstantiationScope->getInstantiationOf(D));
> -    ND->copyAttrs(D);
> -    return ND;
> +    return cast<NamedDecl>(CurrentInstantiationScope->getInstantiationOf(D));
>   }
> 
>   if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(D)) {
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list