aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/consteval.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-11-29 05:07:40 +0100
committerClifford Wolf <clifford@clifford.at>2018-11-29 05:07:40 +0100
commite90195b737912f6cffcc1b8720c7d72e746d8854 (patch)
treef9293dde1cd58ef72c225c4481d743a35006936e /kernel/consteval.h
parentab97eddee9b0ea0a772660731fe4c3270d2564e5 (diff)
downloadyosys-e90195b737912f6cffcc1b8720c7d72e746d8854.tar.gz
yosys-e90195b737912f6cffcc1b8720c7d72e746d8854.tar.bz2
yosys-e90195b737912f6cffcc1b8720c7d72e746d8854.zip
Improve ConstEval error handling for non-eval cell types
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'kernel/consteval.h')
-rw-r--r--kernel/consteval.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/consteval.h b/kernel/consteval.h
index 0229f5045..154373a8d 100644
--- a/kernel/consteval.h
+++ b/kernel/consteval.h
@@ -321,8 +321,13 @@ struct ConstEval
if (sig_d.size() > 0 && !eval(sig_d, undef, cell))
return false;
- set(sig_y, CellTypes::eval(cell, sig_a.as_const(), sig_b.as_const(),
- sig_c.as_const(), sig_d.as_const()));
+ bool eval_err = false;
+ RTLIL::Const eval_ret = CellTypes::eval(cell, sig_a.as_const(), sig_b.as_const(), sig_c.as_const(), sig_d.as_const(), &eval_err);
+
+ if (eval_err)
+ return false;
+
+ set(sig_y, eval_ret);
}
return true;