------- Comment #6 from drab at kepler dot fjfi dot cvut dot cz 2006-01-16 01:33 ------- (In reply to comment #2) > Program received signal SIGSEGV, Segmentation fault. > 0x083580bd in print_filtered_help (flag=536870912) at ../.././gcc/opts.c:1301 > 1301 memset (printed, 0, cl_options_count); > (gdb) list > 1296 if (flag == CL_COMMON || flag == CL_TARGET) > 1297 { > 1298 filter = flag; > 1299 if (!printed) > 1300 printed = xmalloc (cl_options_count); > 1301 memset (printed, 0, cl_options_count);
This may be a problem in case when 'printed' is previously allocated to some size that is less than the one that is given by the current 'cl_options_count'. So perhaps this should rather be something like: printed = xrealloc (printed, cl_options_count); memset (printed, 0, cl_options_count); That is if there is anything like 'xrealloc' (I didn't check), but you get the idea. This should be safe, right? (And BTW, I allways use "make bootstrap" with 3-stage compilation and the result is the same, so that isn't the issue.) > 1302 } > ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25636