diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-01-13 04:32:46 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-01-13 18:57:25 +0100 |
commit | 1dfa4c3a364523c19cf9f5ff1b4bb00dda29b41e (patch) | |
tree | 31012366adb3d095b973a7c7e3b3be4519cc1f4e /src/vhdl/translate/trans-chap7.adb | |
parent | 1283370d289abafce1c42d0c952b759578ae7ac1 (diff) | |
download | ghdl-1dfa4c3a364523c19cf9f5ff1b4bb00dda29b41e.tar.gz ghdl-1dfa4c3a364523c19cf9f5ff1b4bb00dda29b41e.tar.bz2 ghdl-1dfa4c3a364523c19cf9f5ff1b4bb00dda29b41e.zip |
vhdl08: implement 'subtype attribute
Fix #253
Diffstat (limited to 'src/vhdl/translate/trans-chap7.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap7.adb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vhdl/translate/trans-chap7.adb b/src/vhdl/translate/trans-chap7.adb index ce503db71..478c76565 100644 --- a/src/vhdl/translate/trans-chap7.adb +++ b/src/vhdl/translate/trans-chap7.adb @@ -4304,9 +4304,13 @@ package body Trans.Chap7 is case Get_Kind (Arange) is when Iir_Kinds_Denoting_Name => return Translate_Range (Get_Named_Entity (Arange), Range_Type); - when Iir_Kind_Subtype_Declaration => + when Iir_Kind_Subtype_Attribute + | Iir_Kind_Subtype_Declaration => + return Translate_Range (Get_Type (Arange), Range_Type); + when Iir_Kinds_Scalar_Subtype_Definition + | Iir_Kind_Enumeration_Type_Definition => -- Must be a scalar subtype. Range of types is static. - return Get_Var (Get_Info (Get_Type (Arange)).S.Range_Var); + return Get_Var (Get_Info (Arange).S.Range_Var); when Iir_Kind_Range_Array_Attribute => return Chap14.Translate_Range_Array_Attribute (Arange); when Iir_Kind_Reverse_Range_Array_Attribute => |