Another compiler warning:
static void fill_in_file_and_line() { struct pike_string *file;
if (THIS->pc && THIS->prog) file = ... else if (THIS->fun.type == PIKE_T_FUNCTION) file = .... else if (THIS->prog) file = ...
if (!THIS->filename) THIS->filename = file; else free_string (file);
Compiler complains that file isn't initialized, and it isn't, if none the three tests is true.