aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-utils.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-utils.adb')
-rw-r--r--src/vhdl/vhdl-utils.adb16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-utils.adb b/src/vhdl/vhdl-utils.adb
index 1c0a39b4a..6653034a5 100644
--- a/src/vhdl/vhdl-utils.adb
+++ b/src/vhdl/vhdl-utils.adb
@@ -1436,6 +1436,22 @@ package body Vhdl.Utils is
return Id = Name_Range or Id = Name_Reverse_Range;
end Is_Range_Attribute_Name;
+ function Get_Range_From_Discrete_Range (Rng : Iir) return Iir is
+ begin
+ case Get_Kind (Rng) is
+ when Iir_Kinds_Denoting_Name =>
+ return Get_Range_From_Discrete_Range (Get_Named_Entity (Rng));
+ when Iir_Kinds_Scalar_Subtype_Definition =>
+ return Get_Range_Constraint (Rng);
+ when Iir_Kind_Range_Expression =>
+ return Rng;
+ when Iir_Kinds_Range_Attribute =>
+ return Rng;
+ when others =>
+ Error_Kind ("get_range_from_discrete_range", Rng);
+ end case;
+ end Get_Range_From_Discrete_Range;
+
function Create_Array_Subtype (Arr_Type : Iir; Loc : Location_Type)
return Iir_Array_Subtype_Definition
is