Segfault in fix_type_field
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4362
Reported by Martin Stjernholm mast@roxen.com
The following program causes a segfault after reporting the compilation error:
int main()
{
array m;
foreach (({"Regexp.PCRE.Widestring"}), string symbol)
catch {
if (!zero_type(all_constants()[sym]) ||
!zero_type(master()->resolv(symbol)))
m += ({symbol});
};
}
(gdb) bt
#0 fix_type_field (n=0xa10ac0) at
/home/mast/Pike/no-changes-7.7/src/las.c:3893
#1 0x0000000000508955 in optimize (n=0xa10ac0)
at /home/mast/Pike/no-changes-7.7/src/las.c:5530
#2 0x000000000050d776 in dooptcode (name=0x960330, n=0xffffffff,
type=0xa10ac0,
modifiers=9781792) at /home/mast/Pike/no-changes-7.7/src/las.c:5924
#3 0x000000000042d67f in yyparse () at language.yacc:948
#4 0x00000000004ce072 in run_pass2 (c=0xa27390)
at /home/mast/Pike/no-changes-7.7/src/program.c:6831
#5 0x00000000004ce2fb in compile (aprog=0x0, ahandler=<value optimized
out>, amajor=-1,
aminor=-1, atarget=0x987598, aplaceholder=0x0)
at /home/mast/Pike/no-changes-7.7/src/program.c:7045
#6 0x0000000000517bb7 in f_compile (args=6)
at /home/mast/Pike/no-changes-7.7/src/builtin_functions.c:4075
#7 0x000000000043706f in eval_instruction (pc=<value optimized out>)
at /home/mast/Pike/no-changes-7.7/src/interpret_functions.h:2284
#8 0x000000000043a85b in catching_eval_instruction (
pc=0xa1a87b "!1\026\002�)K\anF\b[\f")
at /home/mast/Pike/no-changes-7.7/src/interpret.c:2223
#9 0x0000000000439a4f in eval_instruction (pc=<value optimized out>)
at /home/mast/Pike/no-changes-7.7/src/interpret_functions.h:1273
#10 0x000000000043a91f in mega_apply (type=<value optimized out>,
args=<value optimized out>, arg1=<value optimized out>, arg2=<value
optimized out>)
at /home/mast/Pike/no-changes-7.7/src/interpret.c:2191
#11 0x00000000004be4fe in o_cast (type=0x952e70, run_time_type=5)
at /home/mast/Pike/no-changes-7.7/src/operators.c:667
#12 0x00000000004bf646 in f_cast () at
/home/mast/Pike/no-changes-7.7/src/operators.c:887
#13 0x0000000000435f7c in eval_instruction (pc=0xa1b776 "K\tnF\n[e")
at /home/mast/Pike/no-changes-7.7/src/interpret_functions.h:1882
#14 0x000000000043a85b in catching_eval_instruction (pc=0xa1b76f
"\031R'\002\237")
at /home/mast/Pike/no-changes-7.7/src/interpret.c:2223
#15 0x0000000000439a4f in eval_instruction (pc=<value optimized out>)
at /home/mast/Pike/no-changes-7.7/src/interpret_functions.h:1273
#16 0x000000000043a91f in mega_apply (type=<value optimized out>,
args=<value optimized out>, arg1=<value optimized out>, arg2=<value
optimized out>)
at /home/mast/Pike/no-changes-7.7/src/interpret.c:2191
#17 0x0000000000425665 in main (argc=4, argv=0x7ffffc8a4d18)
at /home/mast/Pike/no-changes-7.7/src/main.c:569