]> granicus.if.org Git - clang/commitdiff
[Sema] Fix assertion hit with #pragma weak.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sun, 9 Mar 2014 05:15:28 +0000 (05:15 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sun, 9 Mar 2014 05:15:28 +0000 (05:15 +0000)
rdar://16264844

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203372 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclAttr.cpp
test/SemaCXX/pragma-weak.cpp

index 1d5d9d12c1a68f30a79408d2c55a0c2b1ff8796f..7817ca9efc5424d2841e86f348dee3cf248ccf41 100644 (file)
@@ -4655,6 +4655,8 @@ void Sema::DeclApplyPragmaWeak(Scope *S, NamedDecl *ND, WeakInfo &W) {
     // to insert Decl at TU scope, sorry.
     DeclContext *SavedContext = CurContext;
     CurContext = Context.getTranslationUnitDecl();
+    NewD->setDeclContext(CurContext);
+    NewD->setLexicalDeclContext(CurContext);
     PushOnScopeChains(NewD, S);
     CurContext = SavedContext;
   } else { // just add weak to existing
index 057cf6b463f393809344ee78a1f01af20aa1765b..c1ff2062fcfa2dca58643be036c3d0f540d20b4b 100644 (file)
@@ -6,3 +6,6 @@ extern "C" {
   void foo() {
   };
 }
+
+extern "C" int Test;
+#pragma weak test = Test