[clang] 010f96a - [clang][bytecode] Use existing Descriptor local in InitElem op (#160535)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 24 07:45:53 PDT 2025


Author: Timm Baeder
Date: 2025-09-24T16:45:49+02:00
New Revision: 010f96aa9188df3a5bad585538dc83a5cb2bad87

URL: https://github.com/llvm/llvm-project/commit/010f96aa9188df3a5bad585538dc83a5cb2bad87
DIFF: https://github.com/llvm/llvm-project/commit/010f96aa9188df3a5bad585538dc83a5cb2bad87.diff

LOG: [clang][bytecode] Use existing Descriptor local in InitElem op (#160535)

Instead of going the way through `Pointer::isUnknownSizeArray()`.

Added: 
    

Modified: 
    clang/lib/AST/ByteCode/Interp.h

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/ByteCode/Interp.h b/clang/lib/AST/ByteCode/Interp.h
index 72288ed97db21..7867a0669b472 100644
--- a/clang/lib/AST/ByteCode/Interp.h
+++ b/clang/lib/AST/ByteCode/Interp.h
@@ -2126,10 +2126,10 @@ bool InitElem(InterpState &S, CodePtr OpPC, uint32_t Idx) {
   const T &Value = S.Stk.pop<T>();
   const Pointer &Ptr = S.Stk.peek<Pointer>();
 
-  if (Ptr.isUnknownSizeArray())
+  const Descriptor *Desc = Ptr.getFieldDesc();
+  if (Desc->isUnknownSizeArray())
     return false;
 
-  const Descriptor *Desc = Ptr.getFieldDesc();
   // In the unlikely event that we're initializing the first item of
   // a non-array, skip the atIndex().
   if (Idx == 0 && !Desc->isArray()) {
@@ -2160,10 +2160,10 @@ bool InitElemPop(InterpState &S, CodePtr OpPC, uint32_t Idx) {
   const T &Value = S.Stk.pop<T>();
   const Pointer &Ptr = S.Stk.pop<Pointer>();
 
-  if (Ptr.isUnknownSizeArray())
+  const Descriptor *Desc = Ptr.getFieldDesc();
+  if (Desc->isUnknownSizeArray())
     return false;
 
-  const Descriptor *Desc = Ptr.getFieldDesc();
   // In the unlikely event that we're initializing the first item of
   // a non-array, skip the atIndex().
   if (Idx == 0 && !Desc->isArray()) {


        


More information about the cfe-commits mailing list