================
Comment at: lib/Sema/SemaOverload.cpp:5860-5861
@@ -5857,3 +5859,4 @@
if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
- if (isa<CXXMethodDecl>(FD) && !cast<CXXMethodDecl>(FD)->isStatic())
+ if (isa<CXXMethodDecl>(FD) && !cast<CXXMethodDecl>(FD)->isStatic() &&
+ !isa<CXXConstructorDecl>(FD))
AddMethodCandidate(cast<CXXMethodDecl>(FD), F.getPair(),
----------------
klimek wrote:
> francisco.lopes wrote:
> > klimek wrote:
> > > Here and elsewhere: this looks like it actually changes overload
> > > resolution, but I didn't see a description about that change in the
> > > change comment - what am I missing?
> > This change is not required in truth (originally I was using it in
> > `CodeCompleteConstructor` too), I've left it for a good reason.
> > `AddFunctionCandidates` looks like a function that was added much later
> > than the ones it calls, and it's being called in few places in the
> > codebase, none involving constructors, hence no issue has been raised
> > before. If you check inside `AddMethodCandidate` there's an assertion
> > telling it shouldn't be called for constructors, and that this is a job for
> > `AddOverloadCandidate`. The way `AddFunctionCandidates` was before would do
> > exactly that: if `Fns` contained a constructor, `AddMethodCandidate` would
> > be called for them, with also the added risk of accessing `Args[0]` when
> > `Args` is empty.
> If it's not required, could you perhaps split up the CL into 2 changes:
> 1. the code completion change
> 2. the overload resolution change
> That would make it much easier for me to review the change and make sure each
> part has sufficient tests.
What you have in mind for how do this the best way? I'm not sure how to
proceed, I'm thinking of doing a rebase that would take this overload
resolution change from the middle of the commit history and push it to the tip
as a commit of its own.
http://reviews.llvm.org/D6880
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits