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

Reply via email to