This C file causes an internal error in GCC 2.95 on Alpha

Jesse Perry jap@unx.dec.com
Mon Sep 27 21:39:00 GMT 1999


Hello,

I'm using GCC 2.95 on an Alpha running Tru64 UNIX V4.0F.  Below is
a small C file that causes an internal error.  The code is cut down
from a much larger file where the problem initially occurred.  As
a result, the code is now non-functional gibberish.  But it still
yields the same compiler error as before.

I issued this command:

$ gcc -v --save-temps -O2 gcc_error.c

The command produced this output:

Reading specs from /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/specs
gcc version 2.95 19990728 (release)
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -D__OPTIMIZE__ -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C -Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ -D__alpha_ev4__ -Acpu(ev4) gcc_error.c gcc_error.i
GNU CPP version 2.95 19990728 (release)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/../../../../alpha-dec-osf4.0b/include
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/alpha-dec-osf4.0b/2.95/cc1 gcc_error.i -quiet -dumpbase gcc_error.c -O2 -version -o gcc_error.s
GNU C version 2.95 19990728 (release) (alpha-dec-osf4.0b) compiled by GNU C version 2.95 19990728 (release).
gcc_error.c: In function `process_files':
gcc_error.c:130: Internal compiler error in `gen_reload_inqi', at insn-emit.c:5493
Please submit a full bug report.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.


Below are the C file and the preprocessor output produced by the
gcc command line given above.  If I can help further with this,
please email jap@unx.dec.com or phone 732-577-6194.

				-Jesse Perry


----- Cut here for gcc_error.c
#include <stdio.h>

typedef struct stdio_bitio_state
  {
    FILE *File;
    unsigned char Buff;
    unsigned char Btg;
  }
stdio_bitio_state;

#define ENCODE_START(f)							\
  {									\
    FILE *__outfile = f;						\
    register unsigned char __buff = 0;					\
    register unsigned char __btg = sizeof(__buff)*8;

#define ENCODE_CONTINUE(b)						\
  {									\
    FILE *__outfile = (b).File;						\
    register unsigned char __buff = (b).Buff;				\
    register unsigned char __btg = (b).Btg;

#define ENCODE_BIT(b)							\
  do {									\
    __btg--;								\
    if (b) __buff |= (1 << __btg);					\
    if (!__btg)								\
      {									\
	putc(__buff, __outfile);					\
	__buff = 0;							\
	__btg = sizeof(__buff)*8;					\
      }									\
  } while(0)

#define ENCODE_PAUSE(b)							\
    (b).File = __outfile;						\
    (b).Buff = __buff;							\
    (b).Btg =  __btg;							\
  }

#define DECODE_START(f)							\
  {									\
    FILE *__infile = f;							\
    register unsigned char __buff = 0;					\
    register unsigned char __btg = 0;

#define DECODE_CONTINUE(b)						\
  {									\
    FILE *__infile = (b).File;						\
    register unsigned char __buff = (b).Buff;				\
    register unsigned char __btg = (b).Btg;

#define DECODE_BIT (__btg ? (__buff >> --__btg) & 1 :			\
   (__buff = getc(__infile), (feof(__infile) ?				\
    (abort(), 0) :							\
    (__btg = sizeof(__buff)*8, (__buff >> --__btg) & 1))))

#define DECODE_PAUSE(b)							\
    (b).File = __infile;						\
    (b).Buff = __buff;							\
    (b).Btg =  __btg;							\
  }

typedef struct invf_info
  {
    unsigned long doc_num;
  }
invf_info;

extern void * malloc (size_t);

void 
process_files (void)
{
  FILE *in, *out;
  unsigned long in_k;
  unsigned long bits_out, i, j;
  stdio_bitio_state out_buf, in_buf;

  DECODE_START (in)
  DECODE_PAUSE (in_buf)

  ENCODE_START (out)
  ENCODE_PAUSE (out_buf)

  for (i = 0; i < in_k; i++)
    {
      unsigned long blk, p;
      unsigned long fcnt, doc_num;
      unsigned long next_mjr_dn, kd;
      invf_info *ii;

      fread ((char *) &fcnt, sizeof (u_char), 1, in);
      fread ((char *) &fcnt, sizeof (fcnt), 1, in);
      fread ((char *) &blk, sizeof (blk), 1, in);

      fwrite ((char *) &bits_out, sizeof (bits_out), 1, out);

      blk = BIO_Bblock_Init (kd, fcnt);

      if (!(ii = (invf_info *) malloc (sizeof (invf_info) * p)))
	FatalError (1, "Unable to allocate memory for \"ii\"\n");

      next_mjr_dn = 0;
      DECODE_CONTINUE (in_buf)

	bblock_decode (next_mjr_dn, j);
	bblock_length (next_mjr_dn - doc_num, blk, j);
	foo (doc_num, blk, next_mjr_dn);

	DECODE_BIT;

	DECODE_PAUSE (in_buf)
	ENCODE_CONTINUE (out_buf)

	for (j = 0; j < blk; j++, kd++)
	{
	  int num = ii[j + in_k - 1].doc_num - kd;
	  foo (blk, j, bits_out);
	  foo (num, kd, bits_out);
	  foo (ii[j].doc_num - doc_num, blk, bits_out);
	  spam (ii[j].doc_num, bits_out);
	}

      while (__btg != 8)
	  ENCODE_BIT (0);

      ENCODE_PAUSE (out_buf)
    }
}
----- End of gcc_error.c

----- Cut here for gcc_error.i.bz2.uue
begin 644 gcc_error.i.bz2
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
)<D4X4)"8=<(`
`
end
----- End of gcc_error.i.bz2.uue


More information about the Gcc-bugs mailing list