accellera-official / systemc

SystemC Reference Implementation
https://systemc.org/overview/systemc/
Apache License 2.0
451 stars 145 forks source link

Remove call to sc_abort() from sc_assertion_failed() #14

Closed wltr closed 2 years ago

wltr commented 3 years ago

sc_assertion_failed() calls the default report handler which in turn will call sc_abort() if the SC_ABORT action is set.

Currently, it is not possible to avoid calling sc_abort() even when setting the SC_FATAL report actions to SC_DO_NOTHING.

When using SystemC with Verilator, an abort causes no trace to be written and therefore makes sc_assert() unusable for runtime checks.

markfoodyburton commented 2 years ago

Hi, thanks for your contribution, would you mind adding a signed-of-by line, with your affiliation.

For your contribution to be applicable for consideration by the Accellera working groups, you need to sign-off the Accellera Developer's Certificate of Origin as described in the CONTRIBUTING file.

Thanks

wltr commented 2 years ago

Hi, thanks for the reply. I ended up writing my own checker macros, but will also investigate the route you suggested with overriding SC_FATAL.