diff options
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 897b01d0931..fe3b3b4f7c1 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2039,6 +2039,12 @@ void Sema::MergeVarDecl(VarDecl *New, LookupResult &Previous) {    }    mergeDeclAttributes(New, Old, Context); +  // weak_import on current declaration is applied to previous +  // tentative definiton. +  if (New->getAttr<WeakImportAttr>() && +      Old->getStorageClass() == SC_None && +      !Old->getAttr<WeakImportAttr>()) +    Old->addAttr(::new (Context) WeakImportAttr(SourceLocation(), Context));    // Merge the types.    MergeVarDeclTypes(New, Old);  | 

