diff options
author | David Blaikie <dblaikie@gmail.com> | 2016-03-04 22:29:11 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2016-03-04 22:29:11 +0000 |
commit | ac92893a93618d66416afbdd86db1ce99543e3e4 (patch) | |
tree | c2bfb478e0ac9db8d8de75f4609c1d839c4fdc3c /clang/lib/Sema/SemaOverload.cpp | |
parent | a0c9f6e73622e7f040d827850acbdfcbde945998 (diff) | |
download | bcm5719-llvm-ac92893a93618d66416afbdd86db1ce99543e3e4.tar.gz bcm5719-llvm-ac92893a93618d66416afbdd86db1ce99543e3e4.zip |
PR5941 - improve diagnostic for * vs & confusion when choosing overload candidate with a parameter of incomplete (ref or pointer) type
Reviewers: dblaikie
Differential Revision: http://reviews.llvm.org/D16949
llvm-svn: 262752
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index 2ad49933d4c..1765db6734e 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -9131,10 +9131,13 @@ static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand, if (const PointerType *PTy = TempFromTy->getAs<PointerType>()) TempFromTy = PTy->getPointeeType(); if (TempFromTy->isIncompleteType()) { + // Emit the generic diagnostic and, optionally, add the hints to it. S.Diag(Fn->getLocation(), diag::note_ovl_candidate_bad_conv_incomplete) << (unsigned) FnKind << FnDesc << (FromExpr ? FromExpr->getSourceRange() : SourceRange()) - << FromTy << ToTy << (unsigned) isObjectArgument << I+1; + << FromTy << ToTy << (unsigned) isObjectArgument << I+1 + << (unsigned) (Cand->Fix.Kind); + MaybeEmitInheritedConstructorNote(S, Fn); return; } |