From 84148b80b167f5102e5f4813671b97bc1faeb5f0 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 13 Jun 2025 17:06:05 -0700 Subject: Fix a bug in empty array legalization. (#7444) --- source/slang/slang-ir-legalize-empty-array.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/slang/slang-ir-legalize-empty-array.cpp b/source/slang/slang-ir-legalize-empty-array.cpp index 561327565..1f7d59783 100644 --- a/source/slang/slang-ir-legalize-empty-array.cpp +++ b/source/slang/slang-ir-legalize-empty-array.cpp @@ -71,15 +71,17 @@ struct EmptyArrayLoweringContext [&](IRGetElementPtr* gep) { const auto base = gep->getBase(); - return hasEmptyArrayPtrType(base) || base->getOp() == kIROp_undefined + return hasEmptyArrayPtrType(gep) || hasEmptyArrayPtrType(base) || + base->getOp() == kIROp_undefined ? builder.emitUndefined(gep->getDataType()) : nullptr; }, [&](IRFieldAddress* gep) { const auto base = gep->getBase(); - return base->getOp() == kIROp_undefined ? builder.emitUndefined(gep->getDataType()) - : nullptr; + return hasEmptyArrayPtrType(gep) || base->getOp() == kIROp_undefined + ? builder.emitUndefined(gep->getDataType()) + : nullptr; }, [&](IRLoad* load) { -- cgit v1.2.3