[clang][Interp][NFCI] Remove an unnecessary DupPtr op
authorTimm Bäder <tbaeder@redhat.com>
Sat, 31 Dec 2022 08:53:56 +0000 (09:53 +0100)
committerTimm Bäder <tbaeder@redhat.com>
Wed, 25 Jan 2023 16:09:33 +0000 (17:09 +0100)
When initializing a primitive array, we don't need to dup the base
pointer for every element.

clang/lib/AST/Interp/ByteCodeExprGen.cpp

index 7777392..a2f0a77 100644 (file)
@@ -1022,8 +1022,6 @@ bool ByteCodeExprGen<Emitter>::visitArrayInitializer(const Expr *Initializer) {
     for (const Expr *Init : InitList->inits()) {
       if (std::optional<PrimType> T = classify(Init->getType())) {
         // Visit the primitive element like normal.
-        if (!this->emitDupPtr(Init))
-          return false;
         if (!this->visit(Init))
           return false;
         if (!this->emitInitElem(*T, ElementIndex, Init))
@@ -1042,9 +1040,9 @@ bool ByteCodeExprGen<Emitter>::visitArrayInitializer(const Expr *Initializer) {
 
         if (!visitInitializer(Init))
           return false;
-      }
         if (!this->emitPopPtr(Init))
           return false;
+      }
 
       ++ElementIndex;
     }