summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vhdl/evaluation.adb7
-rw-r--r--src/vhdl/sem_names.adb8
2 files changed, 3 insertions, 12 deletions
diff --git a/src/vhdl/evaluation.adb b/src/vhdl/evaluation.adb
index 627ec8b..b1adbbc 100644
--- a/src/vhdl/evaluation.adb
+++ b/src/vhdl/evaluation.adb
@@ -1486,12 +1486,9 @@ package body Evaluation is
| Iir_Kind_Subtype_Declaration
| Iir_Kind_Type_Declaration
| Iir_Kind_Implicit_Dereference
- | Iir_Kind_Function_Call =>
+ | Iir_Kind_Function_Call
+ | Iir_Kind_Attribute_Value =>
Prefix_Type := Get_Type (Prefix);
- when Iir_Kind_Attribute_Value =>
- -- The type of the attribute declaration may be unconstrained.
- Prefix_Type := Get_Type
- (Get_Expression (Get_Attribute_Specification (Prefix)));
when Iir_Kinds_Subtype_Definition =>
Prefix_Type := Prefix;
when Iir_Kinds_Denoting_Name =>
diff --git a/src/vhdl/sem_names.adb b/src/vhdl/sem_names.adb
index 571bc7c..897abef 100644
--- a/src/vhdl/sem_names.adb
+++ b/src/vhdl/sem_names.adb
@@ -885,7 +885,6 @@ package body Sem_Names is
Index_Type : Iir;
Prefix : Iir;
Prefix_Name : Iir;
- Staticness : Iir_Staticness;
begin
-- LRM93 14.1
-- Parameter: A locally static expression of type universal_integer, the
@@ -986,12 +985,7 @@ package body Sem_Names is
-- A globally static array subtype is a constrained array subtype
-- formed by imposing on an unconstrained array type a globally static
-- index constraint.
- Staticness := Get_Type_Staticness (Prefix_Type);
- if Is_Type_Name (Prefix_Name) = Null_Iir then
- Staticness := Iir_Staticness'Max (Staticness,
- Get_Expr_Staticness (Prefix));
- end if;
- Set_Expr_Staticness (Attr, Staticness);
+ Set_Expr_Staticness (Attr, Get_Type_Staticness (Prefix_Type));
end Finish_Sem_Array_Attribute;
procedure Finish_Sem_Scalar_Type_Attribute