Branch: Tag:

2019-04-04

2019-04-04 12:02:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/lyslyskom23259124'

* patches/lyslyskom23259124:
Testsuite: Added test of [LysLysKOM 23258037].
Compiler: Fix issue related to [LysLysKOM 23259124].
Compiler: Fix issue with mixing automap and splice.

599:    depth++;    }    emit0(F_MARK); +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    code_expression(n, 0, "[*]");    emit1(F_NUMBER, depth);    emit_apply_builtin("__builtin.automap_marker"); -  +  POP_AND_DONT_CLEANUP;    return 1;    }    }
801:    } else if (!level) {    f += inh->identifier_level;    emit0(F_MARK); +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    code_expression(val, 0, "RHS");    emit_multi_assign(vals, vars, no+1);    emit1(F_CALL_LFUN, f); -  +  POP_AND_DONT_CLEANUP;    emit0(F_POP_VALUE);    }    }
1322:    yywarning("Variable %S lacks a setter.", id->name);    } else if (!level) {    f += inh->identifier_level; +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    if (flags & DO_POP) {   #ifndef USE_APPLY_N    emit0(F_MARK);
1339:   #else    emit1(F_CALL_LFUN, f);   #endif +  POP_AND_DONT_CLEANUP;    emit0(F_POP_VALUE);    return !(flags & DO_POP);    }
1433:    Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");   #endif    +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    emit0(F_MARK); -  +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    emit0(F_MARK);    emit0(F_LTOSVAL);    emit1(F_NUMBER, depth);    emit_apply_builtin("__builtin.automap_marker"); -  +  POP_AND_DONT_CLEANUP;    emit_builtin_svalue("`+");    emit2(F_REARRANGE,1,1);    emit1(F_NUMBER, 1);    emit_apply_builtin("__automap__"); -  +  POP_AND_DONT_CLEANUP;       if(flags & DO_POP)    {
1495:    Pike_fatal("HELP! FATAL INTERNAL COMPILER ERROR (1)\n");   #endif    +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    emit0(F_MARK); -  +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    emit0(F_MARK);    emit0(F_LTOSVAL);    emit1(F_NUMBER, depth);    emit_apply_builtin("__builtin.automap_marker"); -  +  POP_AND_DONT_CLEANUP;    emit_builtin_svalue("`-");    emit2(F_REARRANGE,1,1);    emit1(F_NUMBER, 1);    emit_apply_builtin("__automap__"); -  +  POP_AND_DONT_CLEANUP;       if(flags & DO_POP)    {
2653:       case F_AUTO_MAP:    emit0(F_MARK); +  PUSH_CLEANUP_FRAME(do_pop_mark, 0);    code_expression(CAR(n), 0, "automap function");    do_encode_automap_arg_list(CDR(n),0);    emit_apply_builtin("__automap__"); -  +  POP_AND_DONT_CLEANUP;    return 1;       case F_AUTO_MAP_MARKER: