diff options
Diffstat (limited to 'src/vhdl/sem_decls.adb')
-rw-r--r-- | src/vhdl/sem_decls.adb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/vhdl/sem_decls.adb b/src/vhdl/sem_decls.adb index 7cf490249..3fd25927e 100644 --- a/src/vhdl/sem_decls.adb +++ b/src/vhdl/sem_decls.adb @@ -456,6 +456,7 @@ package body Sem_Decls is procedure Sem_Interface_Chain (Interface_Chain: Iir; Interface_Kind : Interface_Kind_Type) is + -- Control visibility of interface object. See below for its use. Immediately_Visible : constant Boolean := Interface_Kind = Generic_Interface_List and then Flags.Vhdl_Std >= Vhdl_08; @@ -484,6 +485,10 @@ package body Sem_Decls is end case; -- LRM08 6.5.6 Interface lists + -- A name that denotes an interface object declared in a port + -- interface list of a prameter interface list shall not appear in + -- any interface declaration within the interface list containing the + -- denoted interface object expect to declare this object. -- A name that denotes an interface declaration in a generic -- interface list may appear in an interface declaration within the -- interface list containing the denoted interface declaration. @@ -3136,7 +3141,8 @@ package body Sem_Decls is end if; end; when Iir_Kind_Package_Declaration => - if Get_Need_Body (El) + if Is_Null (Get_Package_Origin (El)) + and then Get_Need_Body (El) and then Get_Package_Body (El) = Null_Iir then Error_Msg_Sem (+El, "missing package body for %n", +El); |