aboutsummaryrefslogtreecommitdiffstats
path: root/sem_expr.adb
diff options
context:
space:
mode:
Diffstat (limited to 'sem_expr.adb')
-rw-r--r--sem_expr.adb25
1 files changed, 14 insertions, 11 deletions
diff --git a/sem_expr.adb b/sem_expr.adb
index 309a2480b..f7af76c09 100644
--- a/sem_expr.adb
+++ b/sem_expr.adb
@@ -315,7 +315,10 @@ package body Sem_Expr is
| Iir_Kinds_Subtype_Definition
| Iir_Kind_Design_Unit
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Configuration_Declaration
| Iir_Kind_Entity_Declaration
+ | Iir_Kind_Package_Declaration
+ | Iir_Kind_Package_Instantiation_Declaration
| Iir_Kinds_Concurrent_Statement
| Iir_Kinds_Sequential_Statement
| Iir_Kind_Library_Declaration
@@ -885,12 +888,13 @@ package body Sem_Expr is
-- Add CALLEE in the callees list of SUBPRG (which must be a subprg decl).
procedure Add_In_Callees_List (Subprg : Iir; Callee : Iir)
is
+ Holder : constant Iir := Get_Callees_List_Holder (Subprg);
List : Iir_List;
begin
- List := Get_Callees_List (Subprg);
+ List := Get_Callees_List (Holder);
if List = Null_Iir_List then
List := Create_Iir_List;
- Set_Callees_List (Subprg, List);
+ Set_Callees_List (Holder, List);
end if;
-- FIXME: May use a flag in IMP to speed up the
-- add operation.
@@ -1010,9 +1014,8 @@ package body Sem_Expr is
-- ("(indirect) wait statement not allowed in " & Where, Loc);
end Error_Wait;
begin
- if Get_Kind (Callee) /= Iir_Kind_Procedure_Declaration then
- raise Internal_Error;
- end if;
+ pragma Assert (Get_Kind (Callee) = Iir_Kind_Procedure_Declaration);
+
case Get_Wait_State (Callee) is
when False =>
return;
@@ -1501,14 +1504,14 @@ package body Sem_Expr is
Formal := Get_Base_Name (Formal);
Inter := Null_Iir;
end if;
- if Get_Kind (Formal) = Iir_Kind_Signal_Interface_Declaration
+ if Get_Kind (Formal) = Iir_Kind_Interface_Signal_Declaration
and then Get_Mode (Formal) in Iir_Out_Modes
then
Prefix := Name_To_Object (Get_Actual (Param));
if Prefix /= Null_Iir then
case Get_Kind (Get_Object_Prefix (Prefix)) is
when Iir_Kind_Signal_Declaration
- | Iir_Kind_Signal_Interface_Declaration =>
+ | Iir_Kind_Interface_Signal_Declaration =>
Prefix := Get_Longuest_Static_Prefix (Prefix);
Sem_Stmts.Sem_Add_Driver (Prefix, Stmt);
when others =>
@@ -3627,7 +3630,7 @@ package body Sem_Expr is
case Get_Kind (Obj) is
when Iir_Kind_Signal_Declaration
| Iir_Kind_Constant_Declaration
- | Iir_Kind_Constant_Interface_Declaration
+ | Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Variable_Declaration
| Iir_Kind_Attribute_Value
| Iir_Kind_Iterator_Declaration
@@ -3636,7 +3639,7 @@ package body Sem_Expr is
when Iir_Kinds_Quantity_Declaration =>
return;
when Iir_Kind_File_Declaration
- | Iir_Kind_File_Interface_Declaration =>
+ | Iir_Kind_Interface_File_Declaration =>
-- LRM 4.3.2 Interface declarations
-- The value of an object is said to be read [...]
-- - When the object is a file and a READ operation is
@@ -3644,8 +3647,8 @@ package body Sem_Expr is
return;
when Iir_Kind_Object_Alias_Declaration =>
Obj := Get_Name (Obj);
- when Iir_Kind_Signal_Interface_Declaration
- | Iir_Kind_Variable_Interface_Declaration =>
+ when Iir_Kind_Interface_Signal_Declaration
+ | Iir_Kind_Interface_Variable_Declaration =>
case Get_Mode (Obj) is
when Iir_In_Mode
| Iir_Inout_Mode