hi,

in pike 7.6 the following leads to a clean error:

void do(){};
mixed ___HilfeWrapper() { return do; }

crash.pike:1:do is a reserved word.
crash.pike:2:do is a reserved word.
crash.pike:2:syntax error, unexpected ';'
Pike: Failed to compile script:
Compilation failed.

in 7.8 or 7.9 it leads to a fatal crash:
pike79 crash.pike 
crash.pike:1:do is a reserved word.
/local/users/mbaehr/src/pike/src/pike_types.c:677: Fatal error:
Type mark stack underflow
Backtrace at time of fatal:
-:1: PikeCompiler("", UNDEFINED, -1, -1, target, UNDEFINED)->compile()
-:1:
    DefaultCompilerEnvironment->compile(PikeCompiler("", UNDEFINED, -1,
-1, target, UNDEFINED))
/usr/local/pike/7.9.5/lib/master.pike:1172:
    compile_string("void do(){}\nmixed ___HilfeWrapper() { return do;
}\n","/local/users/mbaehr
    
/home/src/pike/crash.pike",UNDEFINED,/local/users/mbaehr/home/src/pike/crash,0,UNDEFINED)
  
/usr/local/pike/7.9.5/lib/master.pike:1896:
    
master()->low_findprog("/local/users/mbaehr/home/src/pike/crash",".pike",UNDEFINED,UNDEFINE
    D)                                                                          
               
/usr/local/pike/7.9.5/lib/master.pike:2011:
    
master()->findprog("/local/users/mbaehr/home/src/pike/crash",".pike",UNDEFINED,UNDEFINED)
  
/usr/local/pike/7.9.5/lib/master.pike:2050:
    
master()->low_cast_to_program("/local/users/mbaehr/home/src/pike/crash","/usr/local/pike/7.
    9.5/lib/master.pike",UNDEFINED,UNDEFINED)                                   
               
/usr/local/pike/7.9.5/lib/master.pike:2084:
    
master()->cast_to_program("/local/users/mbaehr/home/src/pike/crash.pike","/usr/local/pike/7
    .9.5/lib/master.pike",UNDEFINED)                                            
               
fish: Job 2, “pike79 crash.pike ” terminated by signal SIGABRT (Abort)


this works in different variations.

void do() { mixed bar = ""; }
or
void do() {}
mixed bar() { return ""; }

trigger the same error, whereas

void do(){}

void do(){ write("bar"); }

mixed do(){ return 1; }

all work correctly


greetings, martin.

Reply via email to