aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/elab-vhdl_values.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/elab-vhdl_values.ads')
-rw-r--r--src/synth/elab-vhdl_values.ads17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/synth/elab-vhdl_values.ads b/src/synth/elab-vhdl_values.ads
index 539edd3eb..8e4887c18 100644
--- a/src/synth/elab-vhdl_values.ads
+++ b/src/synth/elab-vhdl_values.ads
@@ -55,7 +55,10 @@ package Elab.Vhdl_Values is
-- An alias. This is a reference to another value with a different
-- (but compatible) type.
- Value_Alias
+ Value_Alias,
+
+ -- Used only for associations.
+ Value_Dyn_Alias
);
type Value_Type (Kind : Value_Kind);
@@ -90,6 +93,12 @@ package Elab.Vhdl_Values is
A_Obj : Value_Acc;
A_Typ : Type_Acc; -- The type of A_Obj.
A_Off : Value_Offsets;
+ when Value_Dyn_Alias =>
+ D_Obj : Value_Acc;
+ D_Poff : Uns32; -- Offset from D_Obj
+ D_Ptyp : Type_Acc; -- Type of the prefix (after offset).
+ D_Voff : Uns32; -- Variable offset
+ D_Eoff : Uns32; -- Fixed offset.
end case;
end record;
@@ -142,6 +151,12 @@ package Elab.Vhdl_Values is
function Create_Value_Alias
(Obj : Valtyp; Off : Value_Offsets; Typ : Type_Acc) return Valtyp;
+ function Create_Value_Dyn_Alias (Obj : Value_Acc;
+ Poff : Uns32;
+ Ptyp : Type_Acc;
+ Voff : Uns32;
+ Eoff : Uns32) return Value_Acc;
+
function Create_Value_Const (Val : Valtyp; Loc : Node) return Valtyp;
-- If VAL is a const, replace it by its value.