summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2019-06-13 23:47:42 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2019-06-13 23:47:42 +0000
commitaca017e80250d650c0c9d288c50bf02d7fb3cd3b (patch)
tree95cf067299265c14615e26265dd098a01cc75da3 /clang/lib/Sema/SemaInit.cpp
parent68a2fef9ae5beadd0ca7974d936e98caa04aa085 (diff)
downloadbcm5719-llvm-aca017e80250d650c0c9d288c50bf02d7fb3cd3b.tar.gz
bcm5719-llvm-aca017e80250d650c0c9d288c50bf02d7fb3cd3b.zip
Remove unused SK_LValueToRValue initialization step.
In addition to being unused and duplicating code, this was also wrong (it didn't properly mark the operand as being potentially not odr-used). llvm-svn: 363340
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp27
1 files changed, 0 insertions, 27 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 1301de4b111..d5ef5eddf3e 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -3282,7 +3282,6 @@ void InitializationSequence::Step::Destroy() {
case SK_QualificationConversionXValue:
case SK_QualificationConversionLValue:
case SK_AtomicConversion:
- case SK_LValueToRValue:
case SK_ListInitialization:
case SK_UnwrapInitList:
case SK_RewrapInitList:
@@ -3466,15 +3465,6 @@ void InitializationSequence::AddAtomicConversionStep(QualType Ty) {
Steps.push_back(S);
}
-void InitializationSequence::AddLValueToRValueStep(QualType Ty) {
- assert(!Ty.hasQualifiers() && "rvalues may not have qualifiers");
-
- Step S;
- S.Kind = SK_LValueToRValue;
- S.Type = Ty;
- Steps.push_back(S);
-}
-
void InitializationSequence::AddConversionSequenceStep(
const ImplicitConversionSequence &ICS, QualType T,
bool TopLevelOfInitList) {
@@ -7505,7 +7495,6 @@ ExprResult InitializationSequence::Perform(Sema &S,
case SK_QualificationConversionXValue:
case SK_QualificationConversionRValue:
case SK_AtomicConversion:
- case SK_LValueToRValue:
case SK_ConversionSequence:
case SK_ConversionSequenceNoNarrowing:
case SK_ListInitialization:
@@ -7777,18 +7766,6 @@ ExprResult InitializationSequence::Perform(Sema &S,
break;
}
- case SK_LValueToRValue: {
- assert(CurInit.get()->isGLValue() && "cannot load from a prvalue");
- // C++ [conv.lval]p3:
- // If T is cv std::nullptr_t, the result is a null pointer constant.
- CastKind CK =
- Step->Type->isNullPtrType() ? CK_NullToPointer : CK_LValueToRValue;
- CurInit =
- ImplicitCastExpr::Create(S.Context, Step->Type, CK, CurInit.get(),
- /*BasePath=*/nullptr, VK_RValue);
- break;
- }
-
case SK_ConversionSequence:
case SK_ConversionSequenceNoNarrowing: {
if (const auto *FromPtrType =
@@ -9010,10 +8987,6 @@ void InitializationSequence::dump(raw_ostream &OS) const {
OS << "non-atomic-to-atomic conversion";
break;
- case SK_LValueToRValue:
- OS << "load (lvalue to rvalue)";
- break;
-
case SK_ConversionSequence:
OS << "implicit conversion sequence (";
S->ICS->dump(); // FIXME: use OS
OpenPOWER on IntegriCloud