[Bug c/45407] New: internal compiler error gcc 4.5.1
bbiswas at email dot unc dot edu
gcc-bugzilla@gcc.gnu.org
Wed Aug 25 17:55:00 GMT 2010
1. version: gcc 4.5.1
2. system type: Solaris 5.10 sparc:
3. % uname -a
SunOS casey 5.10 Generic_141444-09 sun4v sparc SUNW,Sun-Fire-T200
4. configured as follows:
% cd objdir
% ../configure --prefix=/afs/isis/pkg/gcc-4.5.1 \
--with-mpfr=/afs/isis/pkg/mpfr-3.0.0 \
--with-mpfr-include=/afs/isis/pkg/mpfr-3.0.0/include \
--with-mpfr-lib=/afs/isis/pkg/mpfr-3.0.0/lib \
--with-gmp=/afs/isis/pkg/gmp-5.0.1 \
--with-gmp-include=/afs/isis/pkg/gmp-5.0.1/include \
--with-gmp-lib=/afs/isis/pkg/gmp-5.0.1/lib \
--with-mpc=/afs/isis/pkg/mpc-0.8.2 \
--with-mpc-include=/afs/isis/pkg/mpc-0.8.2/include \
--with-mpc-lib=/afs/isis/pkg/mpc-0.8.2/lib \
--enable-languages=c,c++,fortran
5. error output from the compiler:
/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/xgcc
-B/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/
-B/afs/isis/pkg/gcc-4.5.1/sparc-sun-solaris2.10/bin/
-B/afs/isis/pkg/gcc-4.5.1/sparc-sun-solaris2.10/bin/
-B/afs/isis/pkg/gcc-4.5.1/sparc-sun-solaris2.10/lib/ -isystem
/afs/isis/pkg/gcc-4.5.1/sparc-sun-solaris2.10/include -isystem
/afs/isis/pkg/gcc-4.5.1/sparc-sun-solaris2.10/sys-include
-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\"
-DPACKAGE=\"zlib\" -DVERSION=\"1.1.4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
-DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1
-DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_MEMCPY=1 -DHAVE_STRERROR=1
-DHAVE_UNISTD_H=1 -I. -I../../zlib -O -c -o libz_a-infback.o `test -f
'infback.c' || echo '../../zlib/'`infback.c
../../zlib/infback.c: In function 'inflateBack':
../../zlib/infback.c:623:1: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
6. preprocessed infback.i file that triggers the error:
# 1 "../../zlib/infback.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "../../zlib/infback.c"
# 13 "../../zlib/infback.c"
# 1 "../../zlib/zutil.h" 1
# 17 "../../zlib/zutil.h"
# 1 "../../zlib/zlib.h" 1
# 34 "../../zlib/zlib.h"
# 1 "../../zlib/zconf.h" 1
# 261 "../../zlib/zconf.h"
typedef unsigned char Byte;
typedef unsigned int uInt;
typedef unsigned long uLong;
typedef Byte Bytef;
typedef char charf;
typedef int intf;
typedef uInt uIntf;
typedef uLong uLongf;
typedef void const *voidpc;
typedef void *voidpf;
typedef void *voidp;
# 334 "../../zlib/zconf.h"
# 1
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include-fixed/sys/feature_tests.h"
1 3 4
# 18
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include-fixed/sys/feature_tests.h"
3 4
#pragma ident "@(#)feature_tests.h 1.25 07/02/02 SMI"
# 1 "/usr/include/sys/ccompile.h" 1 3 4
# 9 "/usr/include/sys/ccompile.h" 3 4
#pragma ident "@(#)ccompile.h 1.2 04/11/08 SMI"
# 21
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include-fixed/sys/feature_tests.h"
2 3 4
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
# 9 "/usr/include/sys/isa_defs.h" 3 4
#pragma ident "@(#)isa_defs.h 1.29 08/06/06 SMI"
# 22
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include-fixed/sys/feature_tests.h"
2 3 4
# 335 "../../zlib/zconf.h" 2
# 35 "../../zlib/zlib.h" 2
# 77 "../../zlib/zlib.h"
typedef voidpf (*alloc_func) (voidpf opaque, uInt items, uInt size);
typedef void (*free_func) (voidpf opaque, voidpf address);
struct internal_state;
typedef struct z_stream_s {
Bytef *next_in;
uInt avail_in;
uLong total_in;
Bytef *next_out;
uInt avail_out;
uLong total_out;
char *msg;
struct internal_state *state;
alloc_func zalloc;
free_func zfree;
voidpf opaque;
int data_type;
uLong adler;
uLong reserved;
} z_stream;
typedef z_stream *z_streamp;
typedef struct gz_header_s {
int text;
uLong time;
int xflags;
int os;
Bytef *extra;
uInt extra_len;
uInt extra_max;
Bytef *name;
uInt name_max;
Bytef *comment;
uInt comm_max;
int hcrc;
int done;
} gz_header;
typedef gz_header *gz_headerp;
# 212 "../../zlib/zlib.h"
extern const char * zlibVersion (void);
# 242 "../../zlib/zlib.h"
extern int deflate (z_streamp strm, int flush);
# 328 "../../zlib/zlib.h"
extern int deflateEnd (z_streamp strm);
# 363 "../../zlib/zlib.h"
extern int inflate (z_streamp strm, int flush);
# 462 "../../zlib/zlib.h"
extern int inflateEnd (z_streamp strm);
# 538 "../../zlib/zlib.h"
extern int deflateSetDictionary (z_streamp strm, const Bytef *dictionary, uInt
dictLength)
;
# 577 "../../zlib/zlib.h"
extern int deflateCopy (z_streamp dest, z_streamp source)
;
# 595 "../../zlib/zlib.h"
extern int deflateReset (z_streamp strm);
# 606 "../../zlib/zlib.h"
extern int deflateParams (z_streamp strm, int level, int strategy)
;
# 627 "../../zlib/zlib.h"
extern int deflateTune (z_streamp strm, int good_length, int max_lazy, int
nice_length, int max_chain)
;
# 644 "../../zlib/zlib.h"
extern uLong deflateBound (z_streamp strm, uLong sourceLen)
;
extern int deflatePrime (z_streamp strm, int bits, int value)
;
# 669 "../../zlib/zlib.h"
extern int deflateSetHeader (z_streamp strm, gz_headerp head)
;
# 736 "../../zlib/zlib.h"
extern int inflateSetDictionary (z_streamp strm, const Bytef *dictionary, uInt
dictLength)
;
# 758 "../../zlib/zlib.h"
extern int inflateSync (z_streamp strm);
# 773 "../../zlib/zlib.h"
extern int inflateCopy (z_streamp dest, z_streamp source)
;
# 789 "../../zlib/zlib.h"
extern int inflateReset (z_streamp strm);
# 799 "../../zlib/zlib.h"
extern int inflatePrime (z_streamp strm, int bits, int value)
;
# 815 "../../zlib/zlib.h"
extern int inflateGetHeader (z_streamp strm, gz_headerp head)
;
# 877 "../../zlib/zlib.h"
typedef unsigned (*in_func) (void *, unsigned char * *);
typedef int (*out_func) (void *, unsigned char *, unsigned);
extern int inflateBack (z_streamp strm, in_func in, void *in_desc, out_func
out, void *out_desc)
;
# 949 "../../zlib/zlib.h"
extern int inflateBackEnd (z_streamp strm);
extern uLong zlibCompileFlags (void);
# 1009 "../../zlib/zlib.h"
extern int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong
sourceLen)
;
# 1024 "../../zlib/zlib.h"
extern int compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong
sourceLen, int level)
;
# 1040 "../../zlib/zlib.h"
extern uLong compressBound (uLong sourceLen);
extern int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong
sourceLen)
;
# 1066 "../../zlib/zlib.h"
typedef voidp gzFile;
extern gzFile gzopen (const char *path, const char *mode);
# 1085 "../../zlib/zlib.h"
extern gzFile gzdopen (int fd, const char *mode);
# 1098 "../../zlib/zlib.h"
extern int gzsetparams (gzFile file, int level, int strategy);
extern int gzread (gzFile file, voidp buf, unsigned len);
extern int gzwrite (gzFile file, voidpc buf, unsigned len)
;
extern int gzprintf (gzFile file, const char *format, ...);
# 1135 "../../zlib/zlib.h"
extern int gzputs (gzFile file, const char *s);
extern char * gzgets (gzFile file, char *buf, int len);
# 1151 "../../zlib/zlib.h"
extern int gzputc (gzFile file, int c);
extern int gzgetc (gzFile file);
extern int gzungetc (int c, gzFile file);
# 1173 "../../zlib/zlib.h"
extern int gzflush (gzFile file, int flush);
# 1183 "../../zlib/zlib.h"
extern long gzseek (gzFile file, long offset, int whence)
;
# 1201 "../../zlib/zlib.h"
extern int gzrewind (gzFile file);
extern long gztell (gzFile file);
# 1217 "../../zlib/zlib.h"
extern int gzeof (gzFile file);
extern int gzdirect (gzFile file);
extern int gzclose (gzFile file);
extern const char * gzerror (gzFile file, int *errnum);
# 1245 "../../zlib/zlib.h"
extern void gzclearerr (gzFile file);
# 1260 "../../zlib/zlib.h"
extern uLong adler32 (uLong adler, const Bytef *buf, uInt len);
# 1276 "../../zlib/zlib.h"
extern uLong adler32_combine (uLong adler1, uLong adler2, long len2)
;
extern uLong crc32 (uLong crc, const Bytef *buf, uInt len);
# 1301 "../../zlib/zlib.h"
extern uLong crc32_combine (uLong crc1, uLong crc2, long len2);
# 1317 "../../zlib/zlib.h"
extern int deflateInit_ (z_streamp strm, int level, const char *version, int
stream_size)
;
extern int inflateInit_ (z_streamp strm, const char *version, int stream_size)
;
extern int deflateInit2_ (z_streamp strm, int level, int method, int
windowBits, int memLevel, int strategy, const char *version, int stream_size)
;
extern int inflateInit2_ (z_streamp strm, int windowBits, const char *version,
int stream_size)
;
extern int inflateBackInit_ (z_streamp strm, int windowBits, unsigned char
*window, const char *version, int stream_size)
;
# 1349 "../../zlib/zlib.h"
extern const char * zError (int);
extern int inflateSyncPoint (z_streamp z);
extern const uLongf * get_crc_table (void);
# 18 "../../zlib/zutil.h" 2
# 1
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include/stddef.h"
1 3 4
# 149
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include/stddef.h"
3 4
typedef int ptrdiff_t;
# 211
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include/stddef.h"
3 4
typedef unsigned int size_t;
# 323
"/afs/isis.unc.edu/pkg/gcc-4.5.1/.build/@sys/gcc-4.5.1/objdir/./prev-gcc/include/stddef.h"
3 4
typedef long int wchar_t;
# 22 "../../zlib/zutil.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 16 "/usr/include/string.h" 3 4
#pragma ident "@(#)string.h 1.27 07/01/14 SMI"
# 1 "/usr/include/iso/string_iso.h" 1 3 4
# 28 "/usr/include/iso/string_iso.h" 3 4
#pragma ident "@(#)string_iso.h 1.5 04/06/18 SMI"
# 59 "/usr/include/iso/string_iso.h" 3 4
extern int memcmp(const void *, const void *, size_t);
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern void *memset(void *, int, size_t);
extern char *strcat(char *, const char *);
extern int strcmp(const char *, const char *);
extern char *strcpy(char *, const char *);
extern int strcoll(const char *, const char *);
extern size_t strcspn(const char *, const char *);
extern char *strerror(int);
extern size_t strlen(const char *);
extern char *strncat(char *, const char *, size_t);
extern int strncmp(const char *, const char *, size_t);
extern char *strncpy(char *, const char *, size_t);
extern size_t strspn(const char *, const char *);
extern char *strtok(char *, const char *);
extern size_t strxfrm(char *, const char *, size_t);
# 129 "/usr/include/iso/string_iso.h" 3 4
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern char *strstr(const char *, const char *);
# 19 "/usr/include/string.h" 2 3 4
# 59 "/usr/include/string.h" 3 4
extern int strerror_r(int, char *, size_t);
extern char *strtok_r(char *, const char *,
char **);
extern void *memccpy(void *, const void *,
int, size_t);
extern int uucopy(const void *, void *, size_t);
extern int uucopystr(const void *, void *, size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern char *strdup(const char *);
# 24 "../../zlib/zutil.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 16 "/usr/include/stdlib.h" 3 4
#pragma ident "@(#)stdlib.h 1.51 04/06/30 SMI"
# 1 "/usr/include/iso/stdlib_iso.h" 1 3 4
# 28 "/usr/include/iso/stdlib_iso.h" 3 4
#pragma ident "@(#)stdlib_iso.h 1.9 04/09/28 SMI"
# 37 "/usr/include/iso/stdlib_iso.h" 3 4
extern unsigned char __ctype[];
# 48 "/usr/include/iso/stdlib_iso.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
# 107 "/usr/include/iso/stdlib_iso.h" 3 4
extern void abort(void) __attribute__((__noreturn__));
extern int abs(int);
extern int atexit(void (*)(void));
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void *calloc(size_t, size_t);
extern div_t div(int, int);
extern void exit(int)
__attribute__((__noreturn__));
extern void free(void *);
extern char *getenv(const char *);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern void *malloc(size_t);
extern int mblen(const char *, size_t);
extern size_t mbstowcs(wchar_t *, const char *,
size_t);
extern int mbtowc(wchar_t *, const char *, size_t);
extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
extern int rand(void);
extern void *realloc(void *, size_t);
extern void srand(unsigned int);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *,
char **, int);
extern int system(const char *);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char *, const wchar_t *,
size_t);
# 19 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/iso/stdlib_c99.h" 1 3 4
# 20 "/usr/include/iso/stdlib_c99.h" 3 4
#pragma ident "@(#)stdlib_c99.h 1.2 04/03/29 SMI"
# 35 "/usr/include/iso/stdlib_c99.h" 3 4
typedef struct {
long long quot;
long long rem;
} lldiv_t;
extern void _Exit(int);
extern float strtof(const char *, char **);
extern long double strtold(const char *, char **);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern long long strtoll(const char *, char **,
int);
extern unsigned long long strtoull(const char *,
char **, int);
# 20 "/usr/include/stdlib.h" 2 3 4
# 72 "/usr/include/stdlib.h" 3 4
typedef long uid_t;
# 103 "/usr/include/stdlib.h" 3 4
extern int rand_r(unsigned int *);
extern void _exithandle(void);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);
# 140 "/usr/include/stdlib.h" 3 4
typedef int ssize_t;
extern void swab(const char *, char *, ssize_t);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int unlockpt(int);
extern int ttyslot(void);
extern void *valloc(size_t);
extern int posix_openpt(int);
extern int setenv(const char *, const char *, int);
extern int unsetenv(const char *);
extern void closefrom(int);
extern int dup2(int, int);
extern int fdwalk(int (*)(void *, int), void *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern char *lltostr(long long, char *);
extern char *ulltostr(unsigned long long, char *);
# 25 "../../zlib/zutil.h" 2
# 38 "../../zlib/zutil.h"
# 1 "/usr/include/errno.h" 1 3 4
# 17 "/usr/include/errno.h" 3 4
#pragma ident "@(#)errno.h 1.17 03/01/03 SMI"
# 1 "/usr/include/sys/errno.h" 1 3 4
# 9 "/usr/include/sys/errno.h" 3 4
#pragma ident "@(#)errno.h 1.20 00/01/12 SMI"
# 24 "/usr/include/errno.h" 2 3 4
# 40 "/usr/include/errno.h" 3 4
extern int errno;
# 39 "../../zlib/zutil.h" 2
# 47 "../../zlib/zutil.h"
typedef unsigned char uch;
typedef uch uchf;
typedef unsigned short ush;
typedef ush ushf;
typedef unsigned long ulg;
extern const char * const z_errmsg[10];
# 261 "../../zlib/zutil.h"
voidpf zcalloc (voidpf opaque, unsigned items, unsigned size);
void zcfree (voidpf opaque, voidpf ptr);
# 14 "../../zlib/infback.c" 2
# 1 "../../zlib/inftrees.h" 1
# 24 "../../zlib/inftrees.h"
typedef struct {
unsigned char op;
unsigned char bits;
unsigned short val;
} code;
# 47 "../../zlib/inftrees.h"
typedef enum {
CODES,
LENS,
DISTS
} codetype;
extern int inflate_table (codetype type, unsigned short *lens, unsigned codes,
code * *table, unsigned *bits, unsigned short *work)
;
# 15 "../../zlib/infback.c" 2
# 1 "../../zlib/inflate.h" 1
# 20 "../../zlib/inflate.h"
typedef enum {
HEAD,
FLAGS,
TIME,
OS,
EXLEN,
EXTRA,
NAME,
COMMENT,
HCRC,
DICTID,
DICT,
TYPE,
TYPEDO,
STORED,
COPY,
TABLE,
LENLENS,
CODELENS,
LEN,
LENEXT,
DIST,
DISTEXT,
MATCH,
LIT,
CHECK,
LENGTH,
DONE,
BAD,
MEM,
SYNC
} inflate_mode;
# 77 "../../zlib/inflate.h"
struct inflate_state {
inflate_mode mode;
int last;
int wrap;
int havedict;
int flags;
unsigned dmax;
unsigned long check;
unsigned long total;
gz_headerp head;
unsigned wbits;
unsigned wsize;
unsigned whave;
unsigned write;
unsigned char *window;
unsigned long hold;
unsigned bits;
unsigned length;
unsigned offset;
unsigned extra;
code const *lencode;
code const *distcode;
unsigned lenbits;
unsigned distbits;
unsigned ncode;
unsigned nlen;
unsigned ndist;
unsigned have;
code *next;
unsigned short lens[320];
unsigned short work[288];
code codes[2048];
};
# 16 "../../zlib/infback.c" 2
# 1 "../../zlib/inffast.h" 1
# 11 "../../zlib/inffast.h"
void inflate_fast (z_streamp strm, unsigned start);
# 17 "../../zlib/infback.c" 2
static void fixedtables (struct inflate_state *state);
# 28 "../../zlib/infback.c"
int inflateBackInit_(strm, windowBits, window, version, stream_size)
z_streamp strm;
int windowBits;
unsigned char *window;
const char *version;
int stream_size;
{
struct inflate_state *state;
if (version == 0 || version[0] != "1.2.3"[0] ||
stream_size != (int)(sizeof(z_stream)))
return (-6);
if (strm == 0 || window == 0 ||
windowBits < 8 || windowBits > 15)
return (-2);
strm->msg = 0;
if (strm->zalloc == (alloc_func)0) {
strm->zalloc = zcalloc;
strm->opaque = (voidpf)0;
}
if (strm->zfree == (free_func)0) strm->zfree = zcfree;
state = (struct inflate_state *)(*((strm)->zalloc))((strm)->opaque, (1),
(sizeof(struct inflate_state)))
;
if (state == 0) return (-4);
;
strm->state = (struct internal_state *)state;
state->dmax = 32768U;
state->wbits = windowBits;
state->wsize = 1U << windowBits;
state->window = window;
state->write = 0;
state->whave = 0;
return 0;
}
# 73 "../../zlib/infback.c"
static void fixedtables(state)
struct inflate_state *state;
{
# 108 "../../zlib/infback.c"
# 1 "../../zlib/inffixed.h" 1
# 10 "../../zlib/inffixed.h"
static const code lenfix[512] = {
{96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
{0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
{0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
{0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
{0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
{21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
{0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
{0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
{18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
{0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
{0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
{0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
{20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
{0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
{0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
{0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
{16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
{0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
{0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
{0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
{0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
{0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
{0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
{0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
{17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
{0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
{0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
{0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
{19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
{0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
{0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
{0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
{16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
{0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
{0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
{0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
{0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
{20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
{0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
{0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
{17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
{0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
{0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
{0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
{20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
{0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
{0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
{0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
{16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
{0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
{0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
{0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
{0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
{0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
{0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
{0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
{16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
{0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
{0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
{0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
{19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
{0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
{0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
{0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
{16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
{0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
{0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
{0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
{0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
{64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
{0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
{0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
{18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
{0,9,255}
};
static const code distfix[32] = {
{16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
{21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
{18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
{19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
{16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
{22,5,193},{64,5,0}
};
# 109 "../../zlib/infback.c" 2
state->lencode = lenfix;
state->lenbits = 9;
state->distcode = distfix;
state->distbits = 5;
}
# 241 "../../zlib/infback.c"
int inflateBack(strm, in, in_desc, out, out_desc)
z_streamp strm;
in_func in;
void *in_desc;
out_func out;
void *out_desc;
{
struct inflate_state *state;
unsigned char *next;
unsigned char *put;
unsigned have, left;
unsigned long hold;
unsigned bits;
unsigned copy;
unsigned char *from;
code this;
code last;
unsigned len;
int ret;
static const unsigned short order[19] =
{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
if (strm == 0 || strm->state == 0)
return (-2);
state = (struct inflate_state *)strm->state;
strm->msg = 0;
state->mode = TYPE;
state->last = 0;
state->whave = 0;
next = strm->next_in;
have = next != 0 ? strm->avail_in : 0;
hold = 0;
bits = 0;
put = state->window;
left = state->wsize;
for (;;)
switch (state->mode) {
case TYPE:
if (state->last) {
do { hold >>= bits & 7; bits -= bits & 7; } while (0);
state->mode = DONE;
break;
}
do { while (bits < (unsigned)(3)) do { do { if (have == 0) { have =
in(in_desc, &next); if (have == 0) { next = 0; ret = (-5); goto inf_le
state->last = ((unsigned)hold & ((1U << (1)) - 1));
do { hold >>= (1); bits -= (unsigned)(1); } while (0);
switch (((unsigned)hold & ((1U << (2)) - 1))) {
case 0:
;
state->mode = STORED;
break;
case 1:
fixedtables(state);
;
state->mode = LEN;
break;
case 2:
;
state->mode = TABLE;
break;
case 3:
strm->msg = (char *)"invalid block type";
state->mode = BAD;
}
do { hold >>= (2); bits -= (unsigned)(2); } while (0);
break;
case STORED:
do { hold >>= bits & 7; bits -= bits & 7; } while (0);
do { while (bits < (unsigned)(32)) do { do { if (have == 0) { have
= in(in_desc, &next); if (have == 0) { next = 0; ret = (-5); goto inf_l
if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
strm->msg = (char *)"invalid stored block lengths";
state->mode = BAD;
break;
}
state->length = (unsigned)hold & 0xffff;
;
do { hold = 0; bits = 0; } while (0);
while (state->length != 0) {
copy = state->length;
do { if (have == 0) { have = in(in_desc, &next); if (have == 0)
{ next = 0; ret = (-5); goto inf_leave; } } } while (0);
do { if (left == 0) { put = state->window; left = state->wsize;
state->whave = left; if (out(out_desc, put, left)) { ret = (-5); goto
if (copy > have) copy = have;
if (copy > left) copy = left;
memcpy(put, next, copy);
have -= copy;
next += copy;
left -= copy;
put += copy;
state->length -= copy;
}
;
state->mode = TYPE;
break;
case TABLE:
do { while (bits < (unsigned)(14)) do { do { if (have == 0) { have
= in(in_desc, &next); if (have == 0) { next = 0; ret = (-5); goto inf_l
state->nlen = ((unsigned)hold & ((1U << (5)) - 1)) + 257;
do { hold >>= (5); bits -= (unsigned)(5); } while (0);
state->ndist = ((unsigned)hold & ((1U << (5)) - 1)) + 1;
do { hold >>= (5); bits -= (unsigned)(5); } while (0);
state->ncode = ((unsigned)hold & ((1U << (4)) - 1)) + 4;
do { hold >>= (4); bits -= (unsigned)(4); } while (0);
if (state->nlen > 286 || state->ndist > 30) {
strm->msg = (char *)"too many length or distance symbols";
state->mode = BAD;
break;
}
;
state->have = 0;
while (state->have < state->ncode) {
do { while (bits < (unsigned)(3)) do { do { if (have == 0) {
have = in(in_desc, &next); if (have == 0) { next = 0; ret = (-5); goto in
state->lens[order[state->have++]] = (unsigned
short)((unsigned)hold & ((1U << (3)) - 1));
do { hold >>= (3); bits -= (unsigned)(3); } while (0);
}
while (state->have < 19)
state->lens[order[state->have++]] = 0;
state->next = state->codes;
state->lencode = (code const *)(state->next);
state->lenbits = 7;
ret = inflate_table(CODES, state->lens, 19, &(state->next),
&(state->lenbits), state->work);
if (ret) {
strm->msg = (char *)"invalid code lengths set";
state->mode = BAD;
break;
}
;
state->have = 0;
while (state->have < state->nlen + state->ndist) {
for (;;) {
this = state->lencode[((unsigned)hold & ((1U <<
(state->lenbits)) - 1))];
if ((unsigned)(this.bits) <= bits) break;
do { do { if (have == 0) { have = in(in_desc, &next); if
(have == 0) { next = 0; ret = (-5); goto inf_leave; } } } while (0); have
}
if (this.val < 16) {
do { while (bits < (unsigned)(this.bits)) do { do { if
(have == 0) { have = in(in_desc, &next); if (have == 0) { next = 0; ret = (
do { hold >>= (this.bits); bits -= (unsigned)(this.bits); }
while (0);
state->lens[state->have++] = this.val;
}
else {
if (this.val == 16) {
do { while (bits < (unsigned)(this.bits + 2)) do { do {
if (have == 0) { have = in(in_desc, &next); if (have == 0) { next = 0;
do { hold >>= (this.bits); bits -=
(unsigned)(this.bits); } while (0);
if (state->have == 0) {
strm->msg = (char *)"invalid bit length repeat";
state->mode = BAD;
break;
}
len = (unsigned)(state->lens[state->have - 1]);
copy = 3 + ((unsigned)hold & ((1U << (2)) - 1));
do { hold >>= (2); bits -= (unsigned)(2); } while (0);
}
else if (this.val == 17) {
do { while (bits < (unsigned)(this.bits + 3)) do { do {
if (have == 0) { have = in(in_desc, &next); if (have == 0) { next = 0;
do { hold >>= (this.bits); bits -=
(unsigned)(this.bits); } while (0);
len = 0;
copy = 3 + ((unsigned)hold & ((1U << (3)) - 1));
do { hold >>= (3); bits -= (unsigned)(3); } while (0);
}
else {
do { while (bits < (unsigned)(this.bits + 7)) do { do {
if (have == 0) { have = in(in_desc, &next); if (have == 0) { next = 0;
do { hold >>= (this.bits); bits -=
(unsigned)(this.bits); } while (0);
len = 0;
copy = 11 + ((unsigned)hold & ((1U << (7)) - 1));
do { hold >>= (7); bits -= (unsigned)(7); } while (0);
}
if (state->have + copy > state->nlen + state->ndist) {
strm->msg = (char *)"invalid bit length repeat";
state->mode = BAD;
break;
}
while (copy--)
state->lens[state->have++] = (unsigned short)len;
}
}
if (state->mode == BAD) break;
state->next = state->codes;
state->lencode = (code const *)(state->next);
state->lenbits = 9;
ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
&(state->lenbits), state->work);
if (ret) {
strm->msg = (char *)"invalid literal/lengths set";
state->mode = BAD;
break;
}
state->distcode = (code const *)(state->next);
state->distbits = 6;
ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
&(state->next), &(state->distbits), state->work);
if (ret) {
strm->msg = (char *)"invalid distances set";
state->mode = BAD;
break;
}
;
state->mode = LEN;
case LEN:
if (have >= 6 && left >= 258) {
do { strm->next_out = put; strm->avail_out = left;
strm->next_in = next; strm->avail_in = have; state->hold = hold; state->bits =
bits
if (state->whave < state->wsize)
state->whave = state->wsize - left;
inflate_fast(strm, state->wsize);
do { put = strm->next_out; left = strm->avail_out; next =
strm->next_in; have = strm->avail_in; hold = state->hold; bits = state->bits
break;
}
for (;;) {
this = state->lencode[((unsigned)hold & ((1U <<
(state->lenbits)) - 1))];
if ((unsigned)(this.bits) <= bits) break;
do { do { if (have == 0) { have = in(in_desc, &next); if (have
== 0) { next = 0; ret = (-5); goto inf_leave; } } } while (0); have--;
}
if (this.op && (this.op & 0xf0) == 0) {
last = this;
for (;;) {
this = state->lencode[last.val +
(((unsigned)hold & ((1U << (last.bits + last.op)) -
1)) >> last.bits)];
if ((unsigned)(last.bits + this.bits) <= bits) break;
do { do { if (have == 0) { have = in(in_desc, &next); if
(have == 0) { next = 0; ret = (-5); goto inf_leave; } } } while (0); have
}
do { hold >>= (last.bits); bits -= (unsigned)(last.bits); }
while (0);
}
do { hold >>= (this.bits); bits -= (unsigned)(this.bits); } while
(0);
state->length = (unsigned)this.val;
if (this.op == 0) {
;
do { if (left == 0) { put = state->window; left = state->wsize;
state->whave = left; if (out(out_desc, put, left)) { ret = (-5); goto
*put++ = (unsigned char)(state->length);
left--;
state->mode = LEN;
break;
}
if (this.op & 32) {
;
state->mode = TYPE;
break;
}
if (this.op & 64) {
strm->msg = (char *)"invalid literal/length code";
state->mode = BAD;
break;
}
state->extra = (unsigned)(this.op) & 15;
if (state->extra != 0) {
do { while (bits < (unsigned)(state->extra)) do { do { if (have
== 0) { have = in(in_desc, &next); if (have == 0) { next = 0; ret = (-
state->length += ((unsigned)hold & ((1U << (state->extra)) -
1));
do { hold >>= (state->extra); bits -= (unsigned)(state->extra);
} while (0);
}
;
for (;;) {
this = state->distcode[((unsigned)hold & ((1U <<
(state->distbits)) - 1))];
if ((unsigned)(this.bits) <= bits) break;
do { do { if (have == 0) { have = in(in_desc, &next); if (have
== 0) { next = 0; ret = (-5); goto inf_leave; } } } while (0); have--;
}
if ((this.op & 0xf0) == 0) {
last = this;
for (;;) {
this = state->distcode[last.val +
(((unsigned)hold & ((1U << (last.bits + last.op)) -
1)) >> last.bits)];
if ((unsigned)(last.bits + this.bits) <= bits) break;
do { do { if (have == 0) { have = in(in_desc, &next); if
(have == 0) { next = 0; ret = (-5); goto inf_leave; } } } while (0); have
}
do { hold >>= (last.bits); bits -= (unsigned)(last.bits); }
while (0);
}
do { hold >>= (this.bits); bits -= (unsigned)(this.bits); } while
(0);
if (this.op & 64) {
strm->msg = (char *)"invalid distance code";
state->mode = BAD;
break;
}
state->offset = (unsigned)this.val;
state->extra = (unsigned)(this.op) & 15;
if (state->extra != 0) {
do { while (bits < (unsigned)(state->extra)) do { do { if (have
== 0) { have = in(in_desc, &next); if (have == 0) { next = 0; ret = (-
state->offset += ((unsigned)hold & ((1U << (state->extra)) -
1));
do { hold >>= (state->extra); bits -= (unsigned)(state->extra);
} while (0);
}
if (state->offset > state->wsize - (state->whave < state->wsize ?
left : 0)) {
strm->msg = (char *)"invalid distance too far back";
state->mode = BAD;
break;
}
;
do {
do { if (left == 0) { put = state->window; left = state->wsize;
state->whave = left; if (out(out_desc, put, left)) { ret = (-5); goto
copy = state->wsize - state->offset;
if (copy < left) {
from = put + copy;
copy = left - copy;
}
else {
from = put - state->offset;
copy = left;
}
if (copy > state->length) copy = state->length;
state->length -= copy;
left -= copy;
do {
*put++ = *from++;
} while (--copy);
} while (state->length != 0);
break;
case DONE:
ret = 1;
if (left < state->wsize) {
if (out(out_desc, state->window, state->wsize - left))
ret = (-5);
}
goto inf_leave;
case BAD:
ret = (-3);
goto inf_leave;
default:
ret = (-2);
goto inf_leave;
}
inf_leave:
strm->next_in = next;
strm->avail_in = have;
return ret;
}
int inflateBackEnd(strm)
z_streamp strm;
{
if (strm == 0 || strm->state == 0 || strm->zfree == (free_func)0)
return (-2);
(*((strm)->zfree))((strm)->opaque, (voidpf)(strm->state));
strm->state = 0;
;
return 0;
}
--
Summary: internal compiler error gcc 4.5.1
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bbiswas at email dot unc dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45407
More information about the Gcc-bugs
mailing list