================ @@ -488,6 +490,20 @@ bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old, continue; } + if (PrevForDefaultArgs->getLexicalDeclContext()->getPrimaryContext() != + ScopeDC->getPrimaryContext() && + !New->isCXXClassMember()) + // If previous declaration is lexically in a different scope, + // we don't inherit its default arguments, except for out-of-line + // declarations of member functions. + // + // extern "C" and local functions can have default arguments across + // different scopes, but diagnosing that early would reject well-formed + // code (_N5001_.[over.match.best]/4.) Instead, they are checked + // in ConvertArgumentsForCall, after the best viable function has been + // selected. + continue; + ---------------- cor3ntin wrote:
we usually quote C++2c rather than a specific draft https://github.com/llvm/llvm-project/pull/124844 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits