aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/translate/trans.ads')
-rw-r--r--src/vhdl/translate/trans.ads15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads
index 9ca2b9f02..3a3d0b960 100644
--- a/src/vhdl/translate/trans.ads
+++ b/src/vhdl/translate/trans.ads
@@ -888,6 +888,9 @@ package Trans is
subtype Type_Mode_Fat is Type_Mode_Type range
Type_Mode_Record .. Type_Mode_Protected;
+ subtype Type_Mode_Unbounded is Type_Mode_Type range
+ Type_Mode_Unbounded_Record .. Type_Mode_Unbounded_Array;
+
-- Subprogram call argument mechanism.
-- In VHDL, the evaluation is strict: actual parameters are evaluated
-- before the call. This is the usual strategy of most compiled languages
@@ -1160,6 +1163,10 @@ package Trans is
-- Field declaration for array dimension.
Index_Field : O_Fnode;
+ when Kind_Field =>
+ -- Node for a record element declaration.
+ Field_Node : O_Fnode_Array := (O_Fnode_Null, O_Fnode_Null);
+
when Kind_Expr =>
-- Ortho tree which represents the expression, used for
-- enumeration literals.
@@ -1441,10 +1448,6 @@ package Trans is
Config_Subprg : O_Dnode;
Config_Instance : O_Dnode;
- when Kind_Field =>
- -- Node for a record element declaration.
- Field_Node : O_Fnode_Array := (O_Fnode_Null, O_Fnode_Null);
-
when Kind_Package =>
-- Subprogram which elaborate the package spec/body.
-- External units should call the body elaborator.
@@ -1571,6 +1574,10 @@ package Trans is
function Is_Complex_Type (Tinfo : Type_Info_Acc) return Boolean;
pragma Inline (Is_Complex_Type);
+ -- True iff TINFO is base + bounds.
+ function Is_Unbounded_Type (Tinfo : Type_Info_Acc) return Boolean;
+ pragma Inline (Is_Unbounded_Type);
+
type Hexstr_Type is array (Integer range 0 .. 15) of Character;
N2hex : constant Hexstr_Type := "0123456789abcdef";