diff options
Diffstat (limited to 'src/vhdl/vhdl-sem_expr.adb')
-rw-r--r-- | src/vhdl/vhdl-sem_expr.adb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/vhdl/vhdl-sem_expr.adb b/src/vhdl/vhdl-sem_expr.adb index e579aef83..8a3ea8d15 100644 --- a/src/vhdl/vhdl-sem_expr.adb +++ b/src/vhdl/vhdl-sem_expr.adb @@ -375,7 +375,9 @@ package body Vhdl.Sem_Expr is | Iir_Kind_Element_Declaration | Iir_Kind_Attribute_Declaration | Iir_Kind_Psl_Declaration - | Iir_Kind_Signature => + | Iir_Kind_Signature + | Iir_Kind_Interface_Terminal_Declaration + | Iir_Kind_Terminal_Declaration => Error_Msg_Sem (+Loc, "%n not allowed in an expression", +Expr); return Null_Iir; when Iir_Kind_Function_Declaration => @@ -396,8 +398,6 @@ package body Vhdl.Sem_Expr is | Iir_Kind_Allocator_By_Subtype | Iir_Kind_Qualified_Expression => return Expr; - when Iir_Kinds_Quantity_Declaration => - return Expr; when Iir_Kinds_Dyadic_Operator | Iir_Kinds_Monadic_Operator => return Expr; @@ -4313,7 +4313,8 @@ package body Vhdl.Sem_Expr is | Iir_Kind_Iterator_Declaration | Iir_Kind_Guard_Signal_Declaration => return; - when Iir_Kinds_Quantity_Declaration => + when Iir_Kinds_Quantity_Declaration + | Iir_Kind_Interface_Quantity_Declaration => return; when Iir_Kinds_External_Name => return; @@ -4368,7 +4369,11 @@ package body Vhdl.Sem_Expr is | Iir_Kind_Value_Attribute | Iir_Kinds_Name_Attribute | Iir_Kinds_Signal_Attribute - | Iir_Kinds_Signal_Value_Attribute => + | Iir_Kinds_Signal_Value_Attribute + | Iir_Kind_Above_Attribute + | Iir_Kind_Dot_Attribute + | Iir_Kind_Integ_Attribute + | Iir_Kind_Ramp_Attribute => return; when Iir_Kind_Aggregate => Check_Read_Aggregate (Obj); |