https://github.com/zyn0217 commented:

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);
```

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