diff options
Diffstat (limited to 'src/vhdl/translate/trans.ads')
-rw-r--r-- | src/vhdl/translate/trans.ads | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads index 4e778de..8cf76b7 100644 --- a/src/vhdl/translate/trans.ads +++ b/src/vhdl/translate/trans.ads @@ -1675,6 +1675,16 @@ package Trans is -- FIXME: maybe a flag must be added to CLOSE_TEMP where it is known -- stack2 can be released. procedure Create_Temp_Stack2_Mark; + + -- Some constructs (slices, aggregates) implicitly define a subtype. + -- This subtype (and its bounds) is created dynamically and its life + -- is short. + -- However, in some cases (default expression, target of signal + -- assignment) the construct may be evaluated several time (eg: to + -- compute the drivers). In that case, bounds are created many times + -- and therefore must be forgotten at the end of its life to avoid any + -- incorrect reuse. + -- -- Add ATYPE in the chain of types to be destroyed at the end of the -- temp scope. procedure Add_Transient_Type_In_Temp (Atype : Iir); |