aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-03-14 18:18:27 +0100
committerTristan Gingold <tgingold@free.fr>2021-03-14 18:18:27 +0100
commitf16cb5d7ef37f5f66b79b1c10aedc46c2060b7cc (patch)
tree0c559474bbfa8fc846f3ea56721140cbfa046d01
parent6a9939f30d82aa50d9ea9d8c0fc7ee41553e817a (diff)
downloadghdl-f16cb5d7ef37f5f66b79b1c10aedc46c2060b7cc.tar.gz
ghdl-f16cb5d7ef37f5f66b79b1c10aedc46c2060b7cc.tar.bz2
ghdl-f16cb5d7ef37f5f66b79b1c10aedc46c2060b7cc.zip
synth-expr.adb: handle const right in synth_short_circuit. Fix #1685
-rw-r--r--src/synth/synth-expr.adb6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 4fb5d1136..a2ceb6e15 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -2183,6 +2183,12 @@ package body Synth.Expr is
end if;
Strip_Const (Right);
+ if Is_Static_Val (Right.Val)
+ and then Get_Static_Discrete (Right) = Val
+ then
+ return Create_Value_Discrete (Val, Boolean_Type);
+ end if;
+
-- Return a static value if both operands are static.
-- Note: we know the value of left if it is not constant.
if Is_Static_Val (Left.Val) and then Is_Static_Val (Right.Val) then