From e48cddab9fe7d61045448e426aa0746e71492c9c Mon Sep 17 00:00:00 2001 From: rain2133 <1370973498@qq.com> Date: Fri, 1 Aug 2025 19:19:05 +0800 Subject: [PATCH] =?UTF-8?q?[midend]=E4=BF=AE=E5=A4=8D=E5=A4=9A=E7=BB=B4?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E7=BB=B4=E5=BA=A6=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=80=BC=EF=BC=88=E7=90=86=E8=AE=BA=E4=B8=8A?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E7=BB=93=E6=9E=9C=E4=B8=80=E5=AE=9A=E6=98=AF?= =?UTF-8?q?=E5=B8=B8=E9=87=8F=EF=BC=89=EF=BC=8CTODO=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=B1=BB=E4=BC=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/midend/SysYIRGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/midend/SysYIRGenerator.cpp b/src/midend/SysYIRGenerator.cpp index b84461d..cd0ac3c 100644 --- a/src/midend/SysYIRGenerator.cpp +++ b/src/midend/SysYIRGenerator.cpp @@ -895,7 +895,7 @@ std::any SysYIRGenerator::visitFuncDef(SysYParser::FuncDefContext *ctx){ currentParamDims.push_back(ConstantInteger::get(-1)); // 标记第一个维度为未知 for (const auto &exp : param->exp()) { // 访问表达式以获取维度大小,这些维度必须是常量 - Value* dimVal = std::any_cast(visitExp(exp)); + Value* dimVal = computeExp(exp); // 确保维度是常量整数,否则 buildArrayType 会断言失败 assert(dynamic_cast(dimVal) && "Array dimension in parameter must be a constant integer!"); currentParamDims.push_back(dimVal);