Check value-initializations that occur when an initializer list
provides too few elements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63525 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index f3bb9a5..296adc1 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -1592,13 +1592,20 @@
return cast<CXXConstructorDecl>(Best->Function);
case OR_No_Viable_Function:
- Diag(Loc, diag::err_ovl_no_viable_function_in_init)
- << InitEntity << (unsigned)CandidateSet.size() << Range;
+ if (InitEntity)
+ Diag(Loc, diag::err_ovl_no_viable_function_in_init)
+ << InitEntity << (unsigned)CandidateSet.size() << Range;
+ else
+ Diag(Loc, diag::err_ovl_no_viable_function_in_init)
+ << ClassType << (unsigned)CandidateSet.size() << Range;
PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/false);
return 0;
case OR_Ambiguous:
- Diag(Loc, diag::err_ovl_ambiguous_init) << InitEntity << Range;
+ if (InitEntity)
+ Diag(Loc, diag::err_ovl_ambiguous_init) << InitEntity << Range;
+ else
+ Diag(Loc, diag::err_ovl_ambiguous_init) << ClassType << Range;
PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/true);
return 0;
}