aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-02-01 21:12:30 +0100
committerTristan Gingold <tgingold@free.fr>2023-02-02 07:38:17 +0100
commit983e68ed194f034696a02cea34f55a93ec543018 (patch)
tree3936e94149d1faa264f33a24cc51af80c7d253e2 /src
parentc2b9ba90b7305e0ad1861ce563eacec8f2485a27 (diff)
downloadghdl-983e68ed194f034696a02cea34f55a93ec543018.tar.gz
ghdl-983e68ed194f034696a02cea34f55a93ec543018.tar.bz2
ghdl-983e68ed194f034696a02cea34f55a93ec543018.zip
vhdl: avoid error storms in assertions
Diffstat (limited to 'src')
-rw-r--r--src/vhdl/vhdl-sem_expr.adb2
-rw-r--r--src/vhdl/vhdl-sem_psl.adb4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/vhdl/vhdl-sem_expr.adb b/src/vhdl/vhdl-sem_expr.adb
index 94d0908f4..332a11dfc 100644
--- a/src/vhdl/vhdl-sem_expr.adb
+++ b/src/vhdl/vhdl-sem_expr.adb
@@ -6071,7 +6071,7 @@ package body Vhdl.Sem_Expr is
Cond_Type : Iir;
begin
Cond_Type := Get_Type (Cond);
- if Cond_Type = Null_Iir then
+ if Cond_Type = Null_Iir or else Is_Error (Cond_Type) then
-- Error.
return Cond;
end if;
diff --git a/src/vhdl/vhdl-sem_psl.adb b/src/vhdl/vhdl-sem_psl.adb
index f498f0115..06cac1072 100644
--- a/src/vhdl/vhdl-sem_psl.adb
+++ b/src/vhdl/vhdl-sem_psl.adb
@@ -361,7 +361,9 @@ package body Vhdl.Sem_Psl is
if not Is_Overload_List (Expr_Type)
and then not Is_Psl_Boolean_Type (Expr_Type)
then
- Error_Msg_Sem (+Expr, "type of expression must be boolean");
+ if Get_Kind (Expr_Type) /= Iir_Kind_Error then
+ Error_Msg_Sem (+Expr, "type of expression must be boolean");
+ end if;
return PSL.Hash.Get_PSL_Node (HDL_Node (Expr), Get_Location (Expr));
else
return Convert_Bool (Expr);