diff --git a/clang/lib/CodeGen/CGCleanup.cpp b/clang/lib/CodeGen/CGCleanup.cpp index 469e0363b744a..4e210a9e3c95f 100644 --- a/clang/lib/CodeGen/CGCleanup.cpp +++ b/clang/lib/CodeGen/CGCleanup.cpp @@ -48,10 +48,10 @@ DominatingValue::saved_type::save(CodeGenFunction &CGF, RValue rv) { assert(rv.isAggregate()); Address V = rv.getAggregateAddress(); - return saved_type( - DominatingValue
::save(CGF, V), rv.isVolatileQualified(), - DominatingValue
::needsSaving(V) ? AggregateAddress - : AggregateLiteral); + return saved_type(DominatingValue
::save(CGF, V), + DominatingValue
::needsSaving(V) + ? AggregateAddress + : AggregateLiteral); } /// Given a saved r-value produced by SaveRValue, perform the code @@ -65,7 +65,7 @@ RValue DominatingValue::saved_type::restore(CodeGenFunction &CGF) { case AggregateLiteral: case AggregateAddress: return RValue::getAggregate( - DominatingValue
::restore(CGF, AggregateAddr), IsVolatile); + DominatingValue
::restore(CGF, AggregateAddr)); case ComplexAddress: { llvm::Value *real = DominatingLLVMValue::restore(CGF, Vals.first); llvm::Value *imag = DominatingLLVMValue::restore(CGF, Vals.second); diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 5739fbaaa9194..06fc7259b5901 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -221,7 +221,6 @@ template <> struct DominatingValue { }; LLVM_PREFERRED_TYPE(Kind) unsigned K : 3; - unsigned IsVolatile : 1; saved_type(DominatingLLVMValue::saved_type Val1, unsigned K) : Vals{Val1, DominatingLLVMValue::saved_type()}, K(K) {} @@ -230,8 +229,7 @@ template <> struct DominatingValue { DominatingLLVMValue::saved_type Val2) : Vals{Val1, Val2}, K(ComplexAddress) {} - saved_type(DominatingValue
::saved_type AggregateAddr, - bool IsVolatile, unsigned K) + saved_type(DominatingValue
::saved_type AggregateAddr, unsigned K) : AggregateAddr(AggregateAddr), K(K) {} public: