@@ -38,13 +38,13 @@ DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) {
38
38
39
39
// These automatically dominate and don't need to be saved.
40
40
if (!DominatingLLVMValue::needsSaving (V))
41
- return saved_type (V, ScalarLiteral);
41
+ return saved_type (V, nullptr , ScalarLiteral);
42
42
43
43
// Everything else needs an alloca.
44
44
Address addr =
45
45
CGF.CreateDefaultAlignTempAlloca (V->getType (), " saved-rvalue" );
46
46
CGF.Builder .CreateStore (V, addr);
47
- return saved_type (addr.getPointer (), ScalarAddress);
47
+ return saved_type (addr.getPointer (), nullptr , ScalarAddress);
48
48
}
49
49
50
50
if (rv.isComplex ()) {
@@ -54,19 +54,19 @@ DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) {
54
54
Address addr = CGF.CreateDefaultAlignTempAlloca (ComplexTy, " saved-complex" );
55
55
CGF.Builder .CreateStore (V.first , CGF.Builder .CreateStructGEP (addr, 0 ));
56
56
CGF.Builder .CreateStore (V.second , CGF.Builder .CreateStructGEP (addr, 1 ));
57
- return saved_type (addr.getPointer (), ComplexAddress);
57
+ return saved_type (addr.getPointer (), nullptr , ComplexAddress);
58
58
}
59
59
60
60
assert (rv.isAggregate ());
61
61
Address V = rv.getAggregateAddress (); // TODO: volatile?
62
62
if (!DominatingLLVMValue::needsSaving (V.getPointer ()))
63
- return saved_type (V.getPointer (), AggregateLiteral,
63
+ return saved_type (V.getPointer (), V. getElementType (), AggregateLiteral,
64
64
V.getAlignment ().getQuantity ());
65
65
66
66
Address addr =
67
67
CGF.CreateTempAlloca (V.getType (), CGF.getPointerAlign (), " saved-rvalue" );
68
68
CGF.Builder .CreateStore (V.getPointer (), addr);
69
- return saved_type (addr.getPointer (), AggregateAddress,
69
+ return saved_type (addr.getPointer (), V. getElementType (), AggregateAddress,
70
70
V.getAlignment ().getQuantity ());
71
71
}
72
72
@@ -86,11 +86,11 @@ RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) {
86
86
return RValue::get (CGF.Builder .CreateLoad (getSavingAddress (Value)));
87
87
case AggregateLiteral:
88
88
return RValue::getAggregate (
89
- Address::deprecated (Value, CharUnits::fromQuantity (Align)));
89
+ Address (Value, ElementType , CharUnits::fromQuantity (Align)));
90
90
case AggregateAddress: {
91
91
auto addr = CGF.Builder .CreateLoad (getSavingAddress (Value));
92
92
return RValue::getAggregate (
93
- Address::deprecated (addr, CharUnits::fromQuantity (Align)));
93
+ Address (addr, ElementType , CharUnits::fromQuantity (Align)));
94
94
}
95
95
case ComplexAddress: {
96
96
Address address = getSavingAddress (Value);
0 commit comments