================
@@ -1327,6 +1327,60 @@ void 
Sema::AddImplicitMSFunctionNoBuiltinAttr(FunctionDecl *FD) {
     FD->addAttr(NoBuiltinAttr::CreateImplicit(Context, V.data(), V.size()));
 }
 
+NamedDecl *Sema::lookupExternCName(IdentifierInfo *IdentId,
+                                   SourceLocation NameLoc, Scope *curScope) {
+  LookupResult Result(*this, IdentId, NameLoc, LookupOrdinaryName);
+  LookupName(Result, curScope);
+  if (!getLangOpts().CPlusPlus)
+    return Result.getAsSingle<NamedDecl>();
+  for (LookupResult::iterator I = Result.begin(); I != Result.end(); ++I) {
+    NamedDecl *D = (*I)->getUnderlyingDecl();
+    if (auto *FD = dyn_cast<FunctionDecl>(D->getCanonicalDecl()))
----------------
erichkeane wrote:

Don't do `getCanonicalDecl`, else you get the 1st one.  For functions, we 
always want the 'most recent', as they'll have the most information.  I'd 
suggest not doing `getCanonicalDecl` at all.

https://github.com/llvm/llvm-project/pull/141671
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to