This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Problem with your 1999-11-23 change



Bernd --

This change:

  1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>

	  * loop.c: Include "basic-block.h".
	  (try_copy_prop, replace_loop_reg): New functions.
	  (load_mems): Detect registers that just hold copies of the hoisted
	  mem, and call try_copy_prop to eliminate them.
	  * Makefile.in (loop.o): Update dependencies.

is causing the attached C++ test-case to crash with -O on
x86-pc-linux-gnu.  In try_copy_prop, we're crashing here:

	  if (REGNO_FIRST_UID (regno) == INSN_UID (insn))
	    store_is_first = 1;

because regno is 29, and the reg_n_info array only contains 29
entries.  The REG in question is allocated eariler by load_mems.

I wasn't quite sure what you were intending here, so I'll let you
straighten this out.
  
--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

=============================================================
extern int N;
extern int nrows;
extern int or_num_angles;

typedef struct
{
  double value;
  int count;
}Histo;

Histo add_histo[10][2][36][36];

void cmd_connection_statistics( )
{
  int i,j,k,m;

  for(i=0; i<nrows; i++){
      for(j=0; j< 2; j++)
	for(k=0; k< or_num_angles; k++)
	;
  }
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]