aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_decls.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_decls.adb')
-rw-r--r--src/vhdl/sem_decls.adb8
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);