akash-manna-sky wrote:
> We may want
>
> ```diff
> diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
> index 37bb69da90b6..b6fbd1f06115 100644
> --- a/clang/lib/Sema/SemaDeclCXX.cpp
> +++ b/clang/lib/Sema/SemaDeclCXX.cpp
> @@ -663,8 +663,10 @@ bool Sema::MergeCXXFunctionDecl(FunctionDecl *New,
> FunctionDecl *Old,
> CXXSpecialMemberKind NewSM = getSpecialMember(cast<CXXMethodDecl>(New)),
> OldSM = getSpecialMember(cast<CXXMethodDecl>(Old));
> if (NewSM != OldSM) {
> - ParmVarDecl *NewParam =
> New->getParamDecl(New->getMinRequiredArguments());
> - assert(NewParam->hasDefaultArg());
> + auto Iter = llvm::find_if(
> + New->parameters(), [](ParmVarDecl *P) { return P->hasDefaultArg();
> });
> + assert(Iter);
> + ParmVarDecl *NewParam = *Iter;
> Diag(NewParam->getLocation(), diag::err_default_arg_makes_ctor_special)
> << NewParam->getDefaultArgRange() << NewSM;
> Diag(Old->getLocation(), diag::note_previous_declaration);
> ```
@zyn0217 I've switched to your approach. Then fix the DR1344 implementation
properly. Please have a look.
https://github.com/llvm/llvm-project/pull/217386
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits