From 31b6711d7493312b4b494a53e4882f02126fe05f Mon Sep 17 00:00:00 2001 From: rain2133 <1370973498@qq.com> Date: Tue, 29 Jul 2025 23:52:37 +0800 Subject: [PATCH] =?UTF-8?q?[midend]IR=E4=BF=AE=E6=94=B9=E5=B8=B8=E9=87=8F?= =?UTF-8?q?=E7=B1=BBgetint=E5=92=8Cgetfloat=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E7=B1=BB=E5=9E=8B=E5=92=8C=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E9=82=A3=E4=B9=88=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E8=BD=AC=E6=8D=A2=E8=BF=94=E5=9B=9E=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E5=90=8E=E7=9A=84=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include/midend/IR.h | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/include/midend/IR.h b/src/include/midend/IR.h index 6d21f04..8828a79 100644 --- a/src/include/midend/IR.h +++ b/src/include/midend/IR.h @@ -359,12 +359,25 @@ public: // Helper methods to access constant values with appropriate casting int getInt() const { - assert(getType()->isInt() && "Calling getInt() on non-integer type"); - return std::get(getVal()); + auto val = getVal(); + if (std::holds_alternative(val)) { + return std::get(val); + } else if (std::holds_alternative(val)) { + return static_cast(std::get(val)); + } + // Handle other possible types if needed + return 0; // Default fallback } + float getFloat() const { - assert(getType()->isFloat() && "Calling getFloat() on non-float type"); - return std::get(getVal()); + auto val = getVal(); + if (std::holds_alternative(val)) { + return std::get(val); + } else if (std::holds_alternative(val)) { + return static_cast(std::get(val)); + } + // Handle other possible types if needed + return 0.0f; // Default fallback } template