[Bug bootstrap/14671] [3.3/3.4 regression] caller-save.c:491: internal compiler error: Segmentation fault

dave at hiauly1 dot hia dot nrc dot ca gcc-bugzilla@gcc.gnu.org
Sun Apr 4 16:42:00 GMT 2004


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2004-04-04 16:42 -------
Subject: Re:  [3.5 regression] caller-save.c:491: interna

> Which does not make senses as reg_known_value is marked as GTY with a length
> of 
> reg_known_value_size, unless this length is wrong at the point gc_collect is
> called which means this is 
> most likely caused by a patch by Jan.

I realized that my previous comments have caused confusion.  The
reg_known_value object isn't getting garbage collected.  It's the
object pointed to by reg_known_value[294] that's being poisoned.

What I did was put a watch on "reg_known_value[294]->code != PLUS"
after the array location had been initialized in init_alias_analysis.
>From previous analysis, I had determined that this rtx was being
returned by the call to canon_rtx (x_addr) in true_dependence.
When the watch triggered, a backtrace showed that garbage collection
was triggered by the call to ggc_collect in loop_optimize.

Do we need to copy `src' in the following assignment?

                  else if (REG_N_SETS (regno) == 1
			   && ! rtx_varies_p (src, 1))
		    {
		      reg_known_value[regno] = src;

I'm beginning to suspect that bootstrap/14829 is just a different
symptom of the same problem.

Dave


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14671



More information about the Gcc-bugs mailing list