From 5f2c7b2a4884df837db04bc260c0000667b0e469 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 24 May 2018 13:31:07 -0700 Subject: [PATCH] SCP: Defer substitution for IF/ASSERT command action commands --- scp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scp.c b/scp.c index a3b50a7a..563e2382 100644 --- a/scp.c +++ b/scp.c @@ -4056,6 +4056,8 @@ else { if (*cptr == '(') { t_svalue value; + if ((cptr > sim_sub_instr_buf) && ((size_t)(cptr - sim_sub_instr_buf) < sim_sub_instr_size)) + cptr = &sim_sub_instr[sim_sub_instr_off[cptr - sim_sub_instr_buf]]; /* get un-substituted string */ cptr = sim_eval_expression (cptr, &value, TRUE, &r); result = (value != 0); } @@ -4116,6 +4118,8 @@ else { } } } +if ((cptr > sim_sub_instr_buf) && ((size_t)(cptr - sim_sub_instr_buf) < sim_sub_instr_size)) + cptr = &sim_sub_instr[sim_sub_instr_off[cptr - sim_sub_instr_buf]]; /* get un-substituted string */ if (Not ^ result) { if (!flag) sim_brk_setact (cptr); /* set up IF actions */