Use lexical contexts when checking for conflicting language linkages.

This fixes pr14958. I will audit other calls to isExternCContext to see
if there are any similar bugs left.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181163 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 7b332f9..b5e2c6e 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -2247,10 +2247,10 @@
 
   LanguageLinkage OldLinkage = Old->getLanguageLinkage();
   if (OldLinkage == CXXLanguageLinkage &&
-      New->getDeclContext()->isExternCContext())
+      New->getLexicalDeclContext()->isExternCContext())
     return true;
   if (OldLinkage == CLanguageLinkage &&
-      New->getDeclContext()->isExternCXXContext())
+      New->getLexicalDeclContext()->isExternCXXContext())
     return true;
   return false;
 }