https://github.com/tbaederr created https://github.com/llvm/llvm-project/pull/186376
We don't need ElemLoc unless we have an element ctor func. >From 4dcfbfdf9a6ceeba3566561134f35cc445bc1173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= <[email protected]> Date: Fri, 13 Mar 2026 12:48:47 +0100 Subject: [PATCH] [clang][bytecode] Move local variable into closest scope We don't need ElemLoc unless we have an element ctor func. --- clang/lib/AST/ByteCode/Descriptor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/AST/ByteCode/Descriptor.cpp b/clang/lib/AST/ByteCode/Descriptor.cpp index 5ebc726328fb7..9cc79883474a0 100644 --- a/clang/lib/AST/ByteCode/Descriptor.cpp +++ b/clang/lib/AST/ByteCode/Descriptor.cpp @@ -83,10 +83,9 @@ static void ctorArrayDesc(Block *B, std::byte *Ptr, bool IsConst, D->ElemDesc->getAllocSize() + sizeof(InlineDescriptor); unsigned ElemOffset = 0; - for (unsigned I = 0; I < NumElems; ++I, ElemOffset += ElemSize) { + for (unsigned I = 0; I != NumElems; ++I, ElemOffset += ElemSize) { auto *ElemPtr = Ptr + ElemOffset; auto *Desc = reinterpret_cast<InlineDescriptor *>(ElemPtr); - auto *ElemLoc = reinterpret_cast<std::byte *>(Desc + 1); auto *SD = D->ElemDesc; Desc->Offset = ElemOffset + sizeof(InlineDescriptor); @@ -100,9 +99,11 @@ static void ctorArrayDesc(Block *B, std::byte *Ptr, bool IsConst, Desc->IsArrayElement = true; Desc->IsVolatile = IsVolatile; - if (auto Fn = D->ElemDesc->CtorFn) + if (auto Fn = D->ElemDesc->CtorFn) { + auto *ElemLoc = reinterpret_cast<std::byte *>(Desc + 1); Fn(B, ElemLoc, Desc->IsConst, Desc->IsFieldMutable, IsVolatile, IsActive, Desc->InUnion || SD->isUnion(), D->ElemDesc); + } } } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
