diff options
author | Jacob Bandes-Storch <jacob@bandes-stor.ch> | 2017-12-31 05:13:03 +0000 |
---|---|---|
committer | Jacob Bandes-Storch <jacob@bandes-stor.ch> | 2017-12-31 05:13:03 +0000 |
commit | 352a8a419d7c9515bd05787c0390238f609cd4ae (patch) | |
tree | d1d0d75a4001cd621e4140752cd5d1aab0022520 /lib | |
parent | e006e0409cc387a371e7a22c1ef84b3048a7deed (diff) |
Reverted 321592: [Sema] Improve diagnostics for const- and ref-qualified member functions
A few tests need to be fixed
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321593 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaOverload.cpp | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp index 07d931552f..2144845f4d 100644 --- a/lib/Sema/SemaOverload.cpp +++ b/lib/Sema/SemaOverload.cpp @@ -5145,8 +5145,7 @@ Sema::PerformObjectArgumentInitialization(Expr *From, *this, From->getLocStart(), From->getType(), FromClassification, Method, Method->getParent()); if (ICS.isBad()) { - switch (ICS.Bad.Kind) { - case BadConversionSequence::bad_qualifiers: { + if (ICS.Bad.Kind == BadConversionSequence::bad_qualifiers) { Qualifiers FromQs = FromRecordType.getQualifiers(); Qualifiers ToQs = DestType.getQualifiers(); unsigned CVR = FromQs.getCVRQualifiers() & ~ToQs.getCVRQualifiers(); @@ -5159,28 +5158,10 @@ Sema::PerformObjectArgumentInitialization(Expr *From, << Method->getDeclName(); return ExprError(); } - break; - } - - case BadConversionSequence::lvalue_ref_to_rvalue: - case BadConversionSequence::rvalue_ref_to_lvalue: { - bool IsRValueQualified = - Method->getRefQualifier() == RefQualifierKind::RQ_RValue; - Diag(From->getLocStart(), diag::err_member_function_call_bad_ref) - << Method->getDeclName() << FromClassification.isRValue() - << IsRValueQualified; - Diag(Method->getLocation(), diag::note_previous_decl) - << Method->getDeclName(); - return ExprError(); - } - - case BadConversionSequence::no_conversion: - case BadConversionSequence::unrelated_class: - break; } return Diag(From->getLocStart(), - diag::err_member_function_call_bad_type) + diag::err_implicit_object_parameter_init) << ImplicitParamRecordType << FromRecordType << From->getSourceRange(); } |