(mapping)({ ({1,2,3}), ({1,2,3}) }) crashes pike; (mapping)({}) gives type error
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=832
Reported by Mirar , Idonex Heavy Industries mirar@roxen.com
> (mapping)({ ({1,2,3}) });
/users/mirar/pike/src/opcodes.c:639: Fatal error:
Internal error: o_cast() left droppings on stack.
Attempting to dump backlog (may fail)...
Backtrace at time of fatal:
Optimizer:0: ___Foo4711()
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:76: eval()
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:101:
do_evaluate("mixed ___Foo4711() { return (mixed)((mapping)({ ({1,2,3})
}))
;
}\n",1)
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:585:
parse_statement("(mapping)({ ({1,2,3})
});")
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:366: do_parse()
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:225:
add_buffer("(mapping)({ ({1,2,3})
});\n")
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:605:
add_input_line("(mapping)({ ({1,2,3})
});\n")
/usr/local/pike/7.1.11/lib/modules/Tools.pmod/Hilfe.pmod:685: create()
Hilfe: StdinHilfe()
zsh: abort pike
If possible, fix (mapping)({}) at the same time:
> array z=({});
Result: ({ })
> (mapping)z;
Bad argument 1 to mkmapping(). Expected array(mixed)
Unknown program: mkmapping("\373","\1\373\373")
-:1: ___Foo4711()
> (mapping)({});
-:1:Bad argument 1 to mkmapping(). Expected array(mixed)