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]

egcs-2.91.16 980328: gcc -O2 gets fatal signal 6 on regex.c


I updated to the CVS `egcs_ss_980328' tag and ran make bootstrap
on a i386-pc-solaris2.5.1 system.

With -O2, the result choked on the first package I tried to build.
It got a fatal 6 on regex.c.

I pared it down to something more manageable and nearly minimal:

% gcc -O2 -c r.c
gcc: Internal compiler error: program cc1 got fatal signal 6
[Exit 1]

% cat r.c
typedef unsigned long int size_t;
struct re_pattern_buffer
  {
    unsigned char *buffer;
    unsigned long int used;
  };
struct re_registers
  {
    int *start;
  };

static const char **regstart, **regend;
static const char **old_regend;

static int
re_match_2_internal (struct re_pattern_buffer *bufp,
		     struct re_registers *regs)
{
  unsigned char *p = bufp->buffer;
  unsigned char *pend = p + bufp->used;

  for (;;)
    {
      int highest_active_reg = 1;
      if (bufp)
	{
	  int i;
	  for (i = 1;; i++)
	    regs->start[i] = 0;
	}

      switch ((unsigned int) *p++)
	{
	case 1:
	  {
	    unsigned char r = *p;
	    if (r)
	      highest_active_reg = r;
	  }
	  if (p + 2 == pend)
	    {
	      char is_a_jump_n = 0;
	      int mcnt = 0;
	      unsigned char *p1;

	      p1 = p + 2;
	      switch (*p1++)
		{
		case 2:
		  is_a_jump_n = 1;
		case 1:
		  do { do { mcnt = *p1; } while (0); p1 += 2; } while (0);
		  if (is_a_jump_n)
		    p1 = 0;
		}

	      if (mcnt && *p1 == 0)
		{
		  unsigned r;
		  for (r = 0; r < (unsigned) *p + (unsigned) *(p + 1); r++)
		    {
		      if (regend[0] >= regstart[r])
			regend[r] = old_regend[r];
		    }
		  do { while (0 < highest_active_reg + 1) { } } while (0);
		}
	    }
	}
    }

  return -1;
}


  meyering@hex+% gcc -v
  Reading specs from /p/p/egcs-980329/lib/gcc-lib/i386-pc-solaris2.5.1/egcs-2.91.16/specs
  gcc version egcs-2.91.16 980328 (gcc-2.8.0 release)



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