[clang] [clang][bytecode] Use existing Descriptor local in InitElem op (PR #160535)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 24 07:24:12 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Timm Baeder (tbaederr)
<details>
<summary>Changes</summary>
Instead of going the way through `Pointer::isUnknownSizeArray()`.
---
Full diff: https://github.com/llvm/llvm-project/pull/160535.diff
1 Files Affected:
- (modified) clang/lib/AST/ByteCode/Interp.h (+4-4)
``````````diff
diff --git a/clang/lib/AST/ByteCode/Interp.h b/clang/lib/AST/ByteCode/Interp.h
index 3bc1a67feeba2..df676c79cbb31 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()) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/160535
More information about the cfe-commits
mailing list