aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-05-17 09:44:32 +0200
committerTristan Gingold <tgingold@free.fr>2020-05-17 09:44:32 +0200
commit291fde96273b8b2b6520b7834ff5a9d9623a48f4 (patch)
tree37d911ca9cf91fa8f5117217a8480e251618aa56
parent4102926024ee05f09f02954c6defe50195711301 (diff)
downloadghdl-291fde96273b8b2b6520b7834ff5a9d9623a48f4.tar.gz
ghdl-291fde96273b8b2b6520b7834ff5a9d9623a48f4.tar.bz2
ghdl-291fde96273b8b2b6520b7834ff5a9d9623a48f4.zip
netlists-inference: avoid a crash for assertions in case statement. Fix #1317
-rw-r--r--src/synth/netlists-inference.adb13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/synth/netlists-inference.adb b/src/synth/netlists-inference.adb
index 6ba244888..4e79e7680 100644
--- a/src/synth/netlists-inference.adb
+++ b/src/synth/netlists-inference.adb
@@ -939,10 +939,15 @@ package body Netlists.Inference is
First_Inst := Get_Net_Parent (Val);
Inst := First_Inst;
loop
- if Get_Id (Inst) /= Id_Mux2 then
- pragma Assert (Get_Id (Inst) = Id_Const_UB32);
- return Val;
- end if;
+ case Get_Id (Inst) is
+ when Id_Mux2 =>
+ null;
+ when Id_Const_UB32
+ | Id_Pmux =>
+ return Val;
+ when others =>
+ raise Internal_Error;
+ end case;
Extract_Clock (Ctxt, Get_Input_Net (Inst, 0), Clk, En);
exit when Clk /= No_Net;