------- 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

Reply via email to