aboutsummaryrefslogtreecommitdiff
path: root/backendC
diff options
context:
space:
mode:
Diffstat (limited to 'backendC')
-rw-r--r--backendC/CleanCompilerSources/instructions.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/backendC/CleanCompilerSources/instructions.c b/backendC/CleanCompilerSources/instructions.c
index 6f6577c..90406d9 100644
--- a/backendC/CleanCompilerSources/instructions.c
+++ b/backendC/CleanCompilerSources/instructions.c
@@ -1279,7 +1279,23 @@ void CallArrayFunction (SymbDef array_def,Bool is_jsr,StateP node_state_p)
StateP function_state_p;
fkind = (ArrayFunKind)array_def->sdef_arfun;
+/* RWS ...
function_state_p = array_def->sdef_rule_type->rule_type_state_p;
+*/
+ switch (array_def->sdef_kind)
+ {
+ case DEFRULE:
+ case SYSRULE:
+ function_state_p = array_def->sdef_rule_type->rule_type_state_p;
+ break;
+ case IMPRULE:
+ function_state_p = array_def->sdef_rule->rule_state_p;
+ break;
+ default:
+ error_in_function ("CallArrayFunction RWS");
+ break;
+ }
+/* RWS */
if (function_state_p[0].state_type==SimpleState && function_state_p[0].state_object==UnknownObj){
StateS elem_state;