|
|
|
|
@ -620,11 +620,16 @@ std::vector<SymbolTable::ConstValue> SymbolTable::EvaluateConstInitVal(
|
|
|
|
|
if (base_type->IsInt32() && val.kind == ConstValue::FLOAT) {
|
|
|
|
|
throw std::runtime_error("整型常量不能使用浮点常量初始化");
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
// 隐式类型转换
|
|
|
|
|
if (base_type->IsInt32() && val.kind == ConstValue::FLOAT) {
|
|
|
|
|
val.kind = ConstValue::INT;
|
|
|
|
|
val.float_val = static_cast<int>(val.int_val);
|
|
|
|
|
}
|
|
|
|
|
if (base_type->IsFloat() && val.kind == ConstValue::INT) {
|
|
|
|
|
val.kind = ConstValue::FLOAT;
|
|
|
|
|
val.float_val = static_cast<float>(val.int_val);
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
return {val}; // 返回包含单个值的向量
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|