diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-11-29 05:07:40 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-11-29 05:07:40 +0100 |
commit | e90195b737912f6cffcc1b8720c7d72e746d8854 (patch) | |
tree | f9293dde1cd58ef72c225c4481d743a35006936e /kernel/consteval.h | |
parent | ab97eddee9b0ea0a772660731fe4c3270d2564e5 (diff) | |
download | yosys-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.h | 9 |
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; |