Update ImplicitCastExpr to be able to represent an XValue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108807 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaInit.h b/lib/Sema/SemaInit.h
index 44c36a7..4c94aa6 100644
--- a/lib/Sema/SemaInit.h
+++ b/lib/Sema/SemaInit.h
@@ -445,6 +445,8 @@
SK_ResolveAddressOfOverloadedFunction,
/// \brief Perform a derived-to-base cast, producing an rvalue.
SK_CastDerivedToBaseRValue,
+ /// \brief Perform a derived-to-base cast, producing an xvalue.
+ SK_CastDerivedToBaseXValue,
/// \brief Perform a derived-to-base cast, producing an lvalue.
SK_CastDerivedToBaseLValue,
/// \brief Reference binding to an lvalue.
@@ -460,6 +462,8 @@
SK_UserConversion,
/// \brief Perform a qualification conversion, producing an rvalue.
SK_QualificationConversionRValue,
+ /// \brief Perform a qualification conversion, producing an xvalue.
+ SK_QualificationConversionXValue,
/// \brief Perform a qualification conversion, producing an lvalue.
SK_QualificationConversionLValue,
/// \brief Perform an implicit conversion sequence.
@@ -670,7 +674,8 @@
///
/// \param IsLValue true if the result of this cast will be treated as
/// an lvalue.
- void AddDerivedToBaseCastStep(QualType BaseType, bool IsLValue);
+ void AddDerivedToBaseCastStep(QualType BaseType,
+ ImplicitCastExpr::ResultCategory Category);
/// \brief Add a new step binding a reference to an object.
///
@@ -702,7 +707,8 @@
/// \brief Add a new step that performs a qualification conversion to the
/// given type.
- void AddQualificationConversionStep(QualType Ty, bool IsLValue);
+ void AddQualificationConversionStep(QualType Ty,
+ ImplicitCastExpr::ResultCategory Category);
/// \brief Add a new step that applies an implicit conversion sequence.
void AddConversionSequenceStep(const ImplicitConversionSequence &ICS,