diff options
Diffstat (limited to 'src/vhdl/evaluation.adb')
-rw-r--r-- | src/vhdl/evaluation.adb | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/src/vhdl/evaluation.adb b/src/vhdl/evaluation.adb index 8f93d379d..850691045 100644 --- a/src/vhdl/evaluation.adb +++ b/src/vhdl/evaluation.adb @@ -2177,7 +2177,6 @@ package body Evaluation is when Iir_Kind_Value_Attribute => declare Param : Iir; - Param_Type : Iir; begin Param := Get_Parameter (Expr); Param := Eval_Static_Expr (Param); @@ -2187,25 +2186,8 @@ package body Evaluation is Warning_Msg_Sem ("'value argument not a string", Expr); return Build_Overflow (Expr); else - -- what type are we converting the string to? - Param_Type := Get_Base_Type (Get_Type (Expr)); - declare - Value : constant String := Image_String_Lit (Param); - begin - case Get_Kind (Param_Type) is - when Iir_Kind_Integer_Type_Definition => - return Build_Discrete (Iir_Int64'Value (Value), Expr); - when Iir_Kind_Enumeration_Type_Definition => - return Build_Enumeration_Value (Value, Param_Type, - Expr); - when Iir_Kind_Floating_Type_Definition => - return Build_Floating (Iir_Fp64'value (Value), Expr); - when Iir_Kind_Physical_Type_Definition => - return Build_Physical_Value (Value, Param_Type, Expr); - when others => - Error_Kind ("eval_static_expr('value)", Param); - end case; - end; + return Eval_Value_Attribute + (Image_String_Lit (Param), Get_Type (Expr), Expr); end if; end; |