@@ -1527,15 +1527,10 @@ bool InitGlobal(InterpState &S, CodePtr OpPC, uint32_t I) {
1527
1527
template <PrimType Name, class T = typename PrimConv<Name>::T>
1528
1528
bool InitGlobalTemp (InterpState &S, CodePtr OpPC, uint32_t I,
1529
1529
const LifetimeExtendedTemporaryDecl *Temp) {
1530
- const Pointer &Ptr = S.P .getGlobal (I);
1531
-
1532
- const T Value = S.Stk .peek <T>();
1533
- APValue APV = Value.toAPValue (S.getASTContext ());
1534
- APValue *Cached = Temp->getOrCreateValue (true );
1535
- *Cached = APV;
1530
+ assert (Temp);
1536
1531
1532
+ const Pointer &Ptr = S.P .getGlobal (I);
1537
1533
assert (Ptr.getDeclDesc ()->asExpr ());
1538
-
1539
1534
S.SeenGlobalTemporaries .push_back (
1540
1535
std::make_pair (Ptr.getDeclDesc ()->asExpr (), Temp));
1541
1536
@@ -1550,19 +1545,11 @@ bool InitGlobalTemp(InterpState &S, CodePtr OpPC, uint32_t I,
1550
1545
inline bool InitGlobalTempComp (InterpState &S, CodePtr OpPC,
1551
1546
const LifetimeExtendedTemporaryDecl *Temp) {
1552
1547
assert (Temp);
1553
- const Pointer &P = S.Stk .peek <Pointer>();
1554
- APValue *Cached = Temp->getOrCreateValue (true );
1555
1548
1549
+ const Pointer &Ptr = S.Stk .peek <Pointer>();
1556
1550
S.SeenGlobalTemporaries .push_back (
1557
- std::make_pair (P.getDeclDesc ()->asExpr (), Temp));
1558
-
1559
- if (std::optional<APValue> APV =
1560
- P.toRValue (S.getASTContext (), Temp->getTemporaryExpr ()->getType ())) {
1561
- *Cached = *APV;
1562
- return true ;
1563
- }
1564
-
1565
- return false ;
1551
+ std::make_pair (Ptr.getDeclDesc ()->asExpr (), Temp));
1552
+ return true ;
1566
1553
}
1567
1554
1568
1555
template <PrimType Name, class T = typename PrimConv<Name>::T>
0 commit comments