void boom(mapping info) {m_delete(info[0]);}
It ought to give a compilation error (not enough args to m_delete) but
it segfaults the interpreter on compilation. Correct behaviour is
restored if the argument is explicitly cast to mapping:
void boom(mapping info) {m_delete((mapping)info[0]);}
boom.pike:1:Too few arguments to m_delete (got 1).
boom.pike:1:Expected: mixed.
boom.pike:1:Function type:
boom.pike:1:Got : scope(0,function(object, mixed : mixed) |
function(mapping((0=mixed):(1=mixed)), 0 : 1) |
function(multiset((0=mixed)), 0 : int(1bit))).
Pike: Failed to compile script.
The crash happens in src/pike_ctypes.cmod, get_first_arg_type, in the
T_MANY case - fun_type->car is NULL.
ChrisA