diff options
author | Tristan Gingold <tgingold@free.fr> | 2016-11-04 08:05:19 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2016-11-05 06:38:19 +0100 |
commit | b106247a9843880bcfa3611444e20696f0fb35ae (patch) | |
tree | 614fb373a86c6ff16a7239478bb2b5780b6901d9 /src/vhdl/translate/trans-chap9.adb | |
parent | 4c7c53b2fb53cd6ff03776b4ce47f6e9f30fd52f (diff) | |
download | ghdl-b106247a9843880bcfa3611444e20696f0fb35ae.tar.gz ghdl-b106247a9843880bcfa3611444e20696f0fb35ae.tar.bz2 ghdl-b106247a9843880bcfa3611444e20696f0fb35ae.zip |
ownership: check tree after sem and canon.
Diffstat (limited to 'src/vhdl/translate/trans-chap9.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap9.adb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb index 5f4ef84bf..90995f21b 100644 --- a/src/vhdl/translate/trans-chap9.adb +++ b/src/vhdl/translate/trans-chap9.adb @@ -1172,13 +1172,17 @@ package body Trans.Chap9 is Destroy_Types_In_Chain (Get_Iir (N, F)); when Attr_Chain_Next => null; - when Attr_Of_Ref => + when Attr_Of_Ref | Attr_Of_Maybe_Ref => raise Internal_Error; end case; when Type_Iir_List => case Get_Field_Attribute (F) is when Attr_None => Destroy_Types_In_List (Get_Iir_List (N, F)); + when Attr_Of_Maybe_Ref => + if not Get_Is_Ref (N) then + Destroy_Types_In_List (Get_Iir_List (N, F)); + end if; when Attr_Ref | Attr_Of_Ref => null; @@ -1549,9 +1553,15 @@ package body Trans.Chap9 is when Iir_Kind_Entity_Aspect_Entity => Entity := Get_Entity (Aspect); Arch := Get_Architecture (Aspect); - if Flags.Flag_Elaborate and then Arch = Null_Iir then - -- This is valid only during elaboration. - Arch := Libraries.Get_Latest_Architecture (Entity); + if Arch = Null_Iir then + if Flags.Flag_Elaborate then + -- This is valid only during elaboration. + Arch := Libraries.Get_Latest_Architecture (Entity); + end if; + else + if Is_Valid (Get_Named_Entity (Arch)) then + Arch := Get_Named_Entity (Arch); + end if; end if; Config := Null_Iir; when Iir_Kind_Entity_Aspect_Configuration => |