systemc: Add the nonstandard variable sc_allow_process_control_corners.

This variable controls what happens in some situations which are left
as undefined in the spec. It's behavior is explained in a big comment
in the Accellera implementation. Since it's used in the regression
tests, we need to at least have that variable so they'll compile and
link properly.

Change-Id: I1ac4592641be3d9dd10e7bf6144704a6fac1b2d4
Reviewed-by: Gabe Black <>
Maintainer: Gabe Black <>
diff --git a/src/systemc/core/ b/src/systemc/core/
index 07a07ad..06fd0b3 100644
--- a/src/systemc/core/
+++ b/src/systemc/core/
@@ -278,4 +278,6 @@
     return false;
+bool sc_allow_process_control_corners;
 } // namespace sc_core
diff --git a/src/systemc/ext/core/sc_process_handle.hh b/src/systemc/ext/core/sc_process_handle.hh
index a8f977b..55fa2b7 100644
--- a/src/systemc/ext/core/sc_process_handle.hh
+++ b/src/systemc/ext/core/sc_process_handle.hh
@@ -150,6 +150,12 @@
 sc_process_handle sc_get_current_process_handle();
 bool sc_is_unwinding();
+// Nonstandard
+// See Accellera's kernel/sim_context.cpp for an explanation of what this is
+// supposed to do. It essentially selects what happens during certain
+// undefined situations.
+extern bool sc_allow_process_control_corners;
 } // namespace sc_core