diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 223662afce..1966aebca2 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -3703,9 +3703,14 @@ Sema::CheckReferenceInit(Expr *&Init, QualType DeclType, Diag(Func->getLocation(), diag::err_ovl_candidate); } } - else - Diag(DeclLoc, diag::err_lvalue_to_rvalue_ref) - << Init->getSourceRange(); + else { + if (isRValRef) + Diag(DeclLoc, diag::err_lvalue_to_rvalue_ref) + << Init->getSourceRange(); + else + Diag(DeclLoc, diag::err_invalid_initialization) + << DeclType << Init->getType() << Init->getSourceRange(); + } } return badConversion; } |