public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/4296: Unable to find a register to spill in class `SIREG'.
@ 2001-09-11 3:06 Christoph Breitkopf
0 siblings, 0 replies; 3+ messages in thread
From: Christoph Breitkopf @ 2001-09-11 3:06 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR optimization/4296; it has been noted by GNATS.
From: Christoph Breitkopf <chr.breitkopf@magrathea.de>
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:
Subject: Re: optimization/4296: Unable to find a register to spill in class
`SIREG'.
Date: Tue, 11 Sep 2001 11:59:09 +0200
Dies ist eine mehrteilige Nachricht im MIME-Format.
--------------D63C264C75F3A0CD4C67E698
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hello,
gcc-gnats@gcc.gnu.org schrieb:
>
> Thank you very much for your problem report.
> It has the internal identification `optimization/4296'.
> The individual assigned to look at your
> report is: unassigned.
>
> >Category: optimization
> >Responsible: unassigned
> >Synopsis: Unable to find a register to spill in class `SIREG'.
> >Arrival-Date: Tue Sep 11 02:36:00 PDT 2001
Somehow, my attachment got mangled.
So here is the preprocessed input.
--------------D63C264C75F3A0CD4C67E698
Content-Type: text/plain; charset=us-ascii;
name="bug.i"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="bug.i"
# 1 "bug.c"
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 250 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 251 "/usr/include/features.h" 2 3
# 278 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 279 "/usr/include/features.h" 2 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 199 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int size_t;
# 287 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef long int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 80 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) ;
extern int atoi (__const char *__nptr) ;
extern long int atol (__const char *__nptr) ;
__extension__ extern long long int atoll (__const char *__nptr) ;
extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) ;
# 109 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 132 "/usr/include/stdlib.h" 3
__extension__
extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 196 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern long double __strtold_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) ;
# 242 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 274 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 333 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) ;
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef long int __rlim_t;
typedef __quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef unsigned long int __fd_mask;
# 100 "/usr/include/bits/types.h" 3
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
} __fd_set;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_long __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 58 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 96 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/include/time.h" 1 3
# 68 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 69 "/usr/include/time.h" 2 3
typedef __time_t time_t;
# 123 "/usr/include/sys/types.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 126 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 169 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 191 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 35 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 36 "/usr/include/endian.h" 2 3
# 192 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 83 "/usr/include/time.h" 3
struct timespec
{
long int tv_sec;
long int tv_nsec;
};
# 39 "/usr/include/sys/select.h" 2 3
struct timeval;
typedef __fd_mask fd_mask;
typedef __fd_set fd_set;
# 74 "/usr/include/sys/select.h" 3
extern int __select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
extern int select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
# 195 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 198 "/usr/include/sys/types.h" 2 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 340 "/usr/include/stdlib.h" 2 3
extern int32_t random (void) ;
extern void srandom (unsigned int __seed) ;
extern void * initstate (unsigned int __seed, void * __statebuf, size_t __statelen) ;
extern void * setstate (void * __statebuf) ;
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) ;
extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;
extern int initstate_r (unsigned int __seed, void * __restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) ;
extern int setstate_r (void * __restrict __statebuf, struct random_data *__restrict __buf) ;
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int x[3];
unsigned short int a[3];
unsigned short int c;
unsigned short int old_x[3];
int init;
};
extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer) ;
extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) ;
# 474 "/usr/include/stdlib.h" 3
extern void * malloc (size_t __size) ;
extern void * calloc (size_t __nmemb, size_t __size) ;
extern void * realloc (void * __ptr, size_t __size) ;
extern void free (void * __ptr) ;
extern void cfree (void * __ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void * alloca (size_t __size) ;
# 493 "/usr/include/stdlib.h" 2 3
extern void * valloc (size_t __size) ;
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int __on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern int on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern void exit (int __status) __attribute__ ((__noreturn__));
# 530 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace) ;
extern void unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 566 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
extern int system (__const char *__command) ;
# 595 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 612 "/usr/include/stdlib.h" 3
extern void * bsearch (__const void * __key, __const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 634 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom) __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
# 651 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *gcvt (double __value, int __ndigit, char *__buf) ;
extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
# 695 "/usr/include/stdlib.h" 3
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) ;
# 718 "/usr/include/stdlib.h" 3
extern int rpmatch (__const char *__response) ;
# 2 "bug.c" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void * memcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) ;
extern void * memmove (void * __dest, __const void * __src, size_t __n) ;
extern void * memccpy (void * __dest, __const void * __src, int __c, size_t __n) ;
extern void * memset (void * __s, int __c, size_t __n) ;
extern int memcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern void * memchr (__const void * __s, int __c, size_t __n) ;
# 71 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2) ;
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) ;
extern int strcoll (__const char *__s1, __const char *__s2) ;
extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
# 111 "/usr/include/string.h" 3
extern char *__strdup (__const char *__s) ;
extern char *strdup (__const char *__s) ;
# 146 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) ;
extern char *strrchr (__const char *__s, int __c) ;
# 158 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject) ;
extern size_t strspn (__const char *__s, __const char *__accept) ;
extern char *strpbrk (__const char *__s, __const char *__accept) ;
extern char *strstr (__const char *__haystack, __const char *__needle) ;
# 176 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ;
extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
# 207 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) ;
# 217 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern void __bzero (void * __s, size_t __n) ;
extern void bcopy (__const void * __src, void * __dest, size_t __n) ;
extern void bzero (void * __s, size_t __n) ;
extern int bcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern char *index (__const char *__s, int __c) ;
extern char *rindex (__const char *__s, int __c) ;
extern int __ffs (int __i) __attribute__ ((const));
extern int ffs (int __i) __attribute__ ((const));
# 261 "/usr/include/string.h" 3
extern int __strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) ;
# 282 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) ;
# 343 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 344 "/usr/include/string.h" 2 3
# 1 "/usr/include/bits/string2.h" 1 3
# 52 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/endian.h" 1 3
# 53 "/usr/include/bits/string2.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 54 "/usr/include/bits/string2.h" 2 3
# 372 "/usr/include/bits/string2.h" 3
extern void * __rawmemchr (const void * __s, int __c);
# 396 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
__uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
__uint16_t __src0_2, __uint16_t __src4_2,
__uint32_t __src0_4, __uint32_t __src4_4,
size_t __srclen)
{
union {
__uint32_t __ui;
__uint16_t __usi;
unsigned char __uc;
} *__u = (void *) __dest;
switch ((unsigned int) __srclen)
{
case 1:
__u->__uc = '\0';
break;
case 2:
__u->__usi = __src0_2;
break;
case 3:
__u->__usi = __src0_2;
__u = __extension__ ((void *) __u + 2);
__u->__uc = '\0';
break;
case 4:
__u->__ui = __src0_4;
break;
case 5:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__uc = '\0';
break;
case 6:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__usi = __src4_2;
break;
case 7:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__usi = __src4_2;
__u = __extension__ ((void *) __u + 2);
__u->__uc = '\0';
break;
case 8:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__ui = __src4_4;
break;
}
return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
char __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
char __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1044 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0))
__s = *__nextp;
while (*__s == __sep)
++__s;
if (*__s == '\0')
__result = ((void *)0);
else
{
__result = __s;
while (*__s != '\0' && *__s != __sep)
++__s;
if (*__s == '\0')
*__nextp = __s;
else
{
*__s = '\0';
*__nextp = __s + 1;
}
}
return __result;
}
# 1094 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject)
*(*__s)++ = '\0';
else
if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
*(*__s)++ = '\0';
else
*__s = ((void *)0);
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2
|| *__retval == __reject3)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
&& *__cp != __reject3)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return ((void *)0);
if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void *)0) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (_ _retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
*(*__s)++ = '\0';
return __retval;
}
# 1187 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 1188 "/usr/include/bits/string2.h" 2 3
# 347 "/usr/include/string.h" 2 3
# 3 "bug.c" 2
# 1 "red.h" 1
# 115 "red.h"
enum bool_enum { false, true };
typedef enum bool_enum bool;
enum tag_t {
T_IND, T_APP, T_PAIR, T_NIL, T_INT, T_BOOL,
T_PORT, T_COMB, T_SYM, T_FORWARD, T_HOLE2
};
typedef int Int;
typedef struct Node_t * HeapPtr;
struct info_t {
HeapPtr (*unwind)(void);
HeapPtr (*eval)(void);
HeapPtr ( *relocate)(HeapPtr) __attribute__((__regparm__(3)));
void (*scan)(void);
const char *(*to_string)(HeapPtr);
enum tag_t tag;
};
extern HeapPtr ind_eval(void);
extern HeapPtr app_eval(void);
extern HeapPtr data_eval(void);
extern HeapPtr error_eval(void) __attribute__ ((noreturn)) ;
extern void spine_stack_overflow(void) __attribute__ ((noreturn)) ;
extern void grow_spine(void);
extern int spine_get_offset(HeapPtr *);
extern HeapPtr *spine_at_offset(int);
extern void error_scan(void) __attribute__ ((noreturn)) ;
extern HeapPtr static_relocate(HeapPtr) __attribute__((__regparm__(3)));
extern HeapPtr error_relocate(HeapPtr) __attribute__((__regparm__(3))) __attribute__ ((noreturn));
extern HeapPtr ind_unwind(void);
extern HeapPtr app_unwind(void);
extern HeapPtr data_unwind(void);
extern HeapPtr error_unwind(void) __attribute__ ((noreturn)) ;
extern const char *hole2_to_string(HeapPtr);
extern const char *ind_to_string(HeapPtr);
extern const char *app_to_string(HeapPtr);
extern const char *pair_to_string(HeapPtr);
extern const char *nil_to_string(HeapPtr);
extern const char *bool_to_string(HeapPtr);
extern const char *int_to_string(HeapPtr);
extern const char *sint_to_string(HeapPtr);
extern const char *hint_to_string(HeapPtr);
extern const char *port_to_string(HeapPtr);
extern const char *sym_to_string(HeapPtr);
extern const char *forward_to_string(HeapPtr);
extern const char *error_show(HeapPtr);
extern const struct info_t ind_info, app_info, pair_info,
nil_info, int_info, bool_info, port_info, comb_info,
sym_info, forward_info, hole2_info;
struct Node_t {
const struct info_t *info;
union {
HeapPtr ptr[2];
Int n;
const char *s;
int port;
bool b;
} v;
};
# 237 "red.h"
extern bool output_to_screen;
extern int Xopt;
extern HeapPtr *Spine;
register HeapPtr *Sp __asm__ ("%esi");
extern HeapPtr *Base;
register char *Hp __asm__ ("%edi");
extern char *end_heap;
# 274 "red.h"
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 147 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef int ptrdiff_t;
# 275 "red.h" 2
# 1 "/usr/include/stdio.h" 1 3
# 27 "/usr/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 28 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 43 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 39 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 41 "/usr/include/stdio.h" 2 3
typedef struct _IO_FILE FILE;
# 57 "/usr/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 30 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 312 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 35 "/usr/include/_G_config.h" 3
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 31 "/usr/include/libio.h" 2 3
# 48 "/usr/include/libio.h" 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 49 "/usr/include/libio.h" 2 3
# 154 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 164 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 187 "/usr/include/libio.h" 3
};
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 233 "/usr/include/libio.h" 3
__off64_t _offset;
int _unused2[16];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 262 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void * __cookie, char *__buf, size_t __nbytes);
# 271 "/usr/include/libio.h" 3
typedef __ssize_t __io_write_fn (void * __cookie, __const char *__buf, size_t __n);
# 280 "/usr/include/libio.h" 3
typedef int __io_seek_fn (void * __cookie, __off_t __pos, int __w);
typedef int __io_close_fn (void * __cookie);
# 318 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
# 337 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 363 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 58 "/usr/include/stdio.h" 2 3
typedef __off_t fpos_t;
# 110 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 111 "/usr/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 143 "/usr/include/stdio.h" 3
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 160 "/usr/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx) ;
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 182 "/usr/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ;
# 212 "/usr/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 232 "/usr/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int __vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
# 310 "/usr/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) ;
# 338 "/usr/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ;
# 404 "/usr/include/stdio.h" 3
extern char *gets (char *__s) ;
# 428 "/usr/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream) ;
# 438 "/usr/include/stdio.h" 3
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 499 "/usr/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) ;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 536 "/usr/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 567 "/usr/include/stdio.h" 3
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
# 614 "/usr/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 635 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 32 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 110 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 636 "/usr/include/stdio.h" 2 3
# 276 "red.h" 2
extern int stats;
extern void stats_printf(int, const char *, ...) __attribute__ ((format (printf, (2), (2)+1)));
extern void gc_stats(FILE *);
extern void sp_stats(FILE *);
# 1 "timer.h" 1
# 9 "timer.h"
# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 39 "/usr/include/time.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 43 "/usr/include/time.h" 2 3
# 57 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 58 "/usr/include/time.h" 2 3
typedef __clock_t clock_t;
# 95 "/usr/include/time.h" 3
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long int tm_gmtoff;
__const char *tm_zone;
};
extern clock_t clock (void) ;
extern time_t time (time_t *__timer) ;
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) ;
extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) ;
# 149 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;
extern struct tm *localtime (__const time_t *__timer) ;
extern struct tm *__gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern char *asctime (__const struct tm *__tp) ;
extern char *ctime (__const time_t *__timer) ;
extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) ;
extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) ;
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) ;
extern int daylight;
extern long int timezone;
extern int stime (__const time_t *__when) ;
# 228 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;
extern time_t timelocal (struct tm *__tp) ;
extern int dysize (int __year) ;
extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining) ;
# 10 "timer.h" 2
typedef struct xtime_struct { clock_t u, s, e; } xtime_t;
# 22 "timer.h"
extern void xtime_init(xtime_t *);
extern void xtime_get(xtime_t *);
extern void xtime_get_elapsed(xtime_t *, const xtime_t *);
extern void xtime_add(xtime_t *, const xtime_t *, const xtime_t *);
extern void xtime_sub(xtime_t *, const xtime_t *, const xtime_t *);
extern double xtime_to_sec(const xtime_t *);
# 1 "/usr/include/stdio.h" 1 3
# 30 "timer.h" 2
extern void xtime_show(FILE *, const xtime_t *);
# 286 "red.h" 2
extern xtime_t total_GC_time;
extern HeapPtr *min_Sp;
# 300 "red.h"
extern HeapPtr eval(void);
extern void force_string(char *, int, HeapPtr);
void init_input(void);
void finalize_input(void);
HeapPtr link_code(void);
void load_file(FILE *);
extern size_t asciiz_len(const char *);
extern int asciiz_cmp(const char *, const char *);
extern void asciiz_cpy(char *, const char *);
extern void init_memory(void);
extern void need_heap(size_t) __attribute__((__stdcall__));
HeapPtr mk_app(HeapPtr, HeapPtr);
HeapPtr mk_int(Int);
HeapPtr mk_sym(const char *);
HeapPtr mk_pair(HeapPtr, HeapPtr);
extern bool port_input_p(int);
extern int port_getchar(int);
extern struct Node_t Nil_node;
extern struct Node_t False_node, True_node;
extern HeapPtr mk_port(bool, FILE *);
extern void pr_string(HeapPtr);
extern void fatal(const char *, ...) __attribute__ ((noreturn)) __attribute__ ((format (printf, (1), (1)+1)));
extern void init_symtab(void);
extern const char *register_symbol(const char *);
# 1 "combs.h" 1
enum comb_enum {
C_input = 80,
C_pairP = 71,
C_eq = 44,
C_succ = 35,
C_B1 = 4,
C_output = 81,
C_neq = 45,
C_pred = 36,
C_C1 = 5,
C_charP = 73,
C_zeroP = 46,
C_Rsub = 37,
C_Bs = 6,
C_ERROR = 100,
C_numberP = 74,
C_Rdiv = 38,
C_I = 7,
C_compare0 = 48,
C_Rrem = 39,
C_K = 8,
C_LISTCASE = 102,
C_U = 9,
C_Y = 10,
C_cons = 20,
C_W = 11,
C_READ = 105,
C_add = 30,
C_K1 = 12,
C_STD_PORT = 106,
C_less = 40,
C_mul = 31,
C_S = 0,
C_if = 50,
C_less_eq = 41,
C_sub = 32,
C_B = 1,
C_not = 51,
C_greater = 42,
C_div = 33,
C_C = 2,
C_booleanP = 70,
C_gr_eq = 43,
C_rem = 34,
C_S1 = 3,
NUM_COMBS = 107
};
# 352 "red.h" 2
extern long num_reductions[NUM_COMBS], num_argcheck[NUM_COMBS];
struct comb_struct {
const struct info_t *info;
};
extern struct comb_struct combs[NUM_COMBS];
extern const char *comb_name_table[NUM_COMBS];
# 4 "bug.c" 2
int spine_size;
int spine_get_offset(HeapPtr *p)
{
return &Spine[spine_size] - p;
}
HeapPtr *spine_at_offset(int o)
{
return &Spine[spine_size - o];
}
void grow_spine(void)
{
int sp_pos, base_pos, old_size, new_size;
int min_pos;
old_size = spine_size;
new_size = 2 * spine_size;
sp_pos = spine_get_offset(Sp);
base_pos = spine_get_offset(Base);
min_pos = spine_get_offset(min_Sp);
Spine = realloc(Spine, new_size * sizeof (HeapPtr));
if (Spine == ((void *)0))
fatal("Spine stack overflow");
spine_size = new_size;
Sp = spine_at_offset(sp_pos);
Base = spine_at_offset(base_pos);
min_Sp = spine_at_offset(min_pos);
memcpy(&Spine[old_size], Spine, old_size * sizeof (HeapPtr));
}
--------------D63C264C75F3A0CD4C67E698--
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: optimization/4296: Unable to find a register to spill in class `SIREG'.
@ 2001-09-28 20:36 aoliva
0 siblings, 0 replies; 3+ messages in thread
From: aoliva @ 2001-09-28 20:36 UTC (permalink / raw)
To: chr.breitkopf, gcc-bugs, gcc-prs, nobody
Synopsis: Unable to find a register to spill in class `SIREG'.
State-Changed-From-To: open->closed
State-Changed-By: aoliva
State-Changed-When: Fri Sep 28 20:36:51 2001
State-Changed-Why:
The global register variable is most definitely the culprit. There are certain instructions that really need to use %esi (and most other registers in the register-starved x86 architecture, unfortunately).
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=4296&database=gcc
^ permalink raw reply [flat|nested] 3+ messages in thread
* optimization/4296: Unable to find a register to spill in class `SIREG'.
@ 2001-09-11 2:36 chr.breitkopf
0 siblings, 0 replies; 3+ messages in thread
From: chr.breitkopf @ 2001-09-11 2:36 UTC (permalink / raw)
To: gcc-gnats
>Number: 4296
>Category: optimization
>Synopsis: Unable to find a register to spill in class `SIREG'.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Sep 11 02:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Christoph Breitkopf
>Release: gcc version 3.0.1
>Organization:
>Environment:
i686-pc-linux-gnu
glibc 2.1.3
>Description:
Compiler reports:
bug.c:36: Unable to find a register to spill in class `SIREG'.
bug.c:36: This is the insn:
(insn 201 200 202 (parallel[
(set (reg:SI 2 ecx [110])
(const_int 0 [0x0]))
[snipped, full message in attachment]
Problem probably caused by global register variable:
(register foo __asm__ ("%esi"))
gcc-2.95.3 compiled the code correctly.
Preprocessed input file included as attachment.
>How-To-Repeat:
compile bug.i using the command line given in the
attachement.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="bug.txt"
Content-Disposition: inline; filename="bug.txt"
---------- Compiler invocation and output ----------
$ gcc-3.0 -DSK_OPT -DAPP_LOOP -DSTACK_GROWTH -DTIMER_TIMES -march=i686 -DNDEBUG -DSTATS=1 -O3 -fomit-frame-pointer -ffast-math -fstrict-aliasing -fargument-noalias -save-temps -v -c bug.c
Reading specs from /usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/specs
Configured with: ../gcc-3.0.1/configure --prefix=/usr/local/gcc-3.0.1
Thread model: single
gcc version 3.0.1
/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/cpp0 -lang-c -v -iprefix /usr/local/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.0.1/ -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=1 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__OPTIMIZE__ -D__FAST_MATH__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ -D__tune_i686__ -D__tune_pentiumpro__ -DSK_OPT -DAPP_LOOP -DSTACK_GROWTH -DTIMER_TIMES -DNDEBUG -DSTATS=1 bug.c bug.i
GNU CPP version 3.0.1 (cpplib) (i386 Linux/ELF)
ignoring nonexistent directory "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include"
ignoring nonexistent directory "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/../../../../i686-pc-linux-gnu/include"
ignoring nonexistent directory "/usr/local/gcc-3.0.1/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include
/usr/include
End of search list.
/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/cc1 -fpreprocessed bug.i -quiet -dumpbase bug.c -march=i686 -O3 -version -fomit-frame-pointer -ffast-math -fstrict-aliasing -fargument-noalias -o bug.s
GNU CPP version 3.0.1 (cpplib) (i386 Linux/ELF)
GNU C version 3.0.1 (i686-pc-linux-gnu)
compiled by GNU C version 3.0.1.
bug.c: In function `grow_spine':
bug.c:36: Unable to find a register to spill in class `SIREG'.
bug.c:36: This is the insn:
(insn 201 200 202 (parallel[
(set (reg:SI 2 ecx [110])
(const_int 0 [0x0]))
(set (reg:SI 1 edx [106])
(plus:SI (ashift:SI (reg:SI 2 ecx [110])
(const_int 2 [0x2]))
(reg:SI 1 edx [106])))
(set (reg/f:SI 3 ebx [109])
(plus:SI (ashift:SI (reg:SI 2 ecx [110])
(const_int 2 [0x2]))
(reg/f:SI 3 ebx [109])))
(set (mem:BLK (reg:SI 1 edx [106]) 0)
(mem:BLK (reg/f:SI 3 ebx [109]) 0))
(use (reg:SI 2 ecx [110]))
(use (reg:SI 19 dirflag))
] ) 394 {rep_movsi} (insn_list 198 (insn_list 200 (nil)))
(expr_list:REG_DEAD (reg:SI 19 dirflag)
(expr_list:REG_UNUSED (reg:SI 2 ecx [110])
(expr_list:REG_UNUSED (reg:SI 1 edx [106])
(expr_list:REG_UNUSED (reg/f:SI 3 ebx [109])
(nil))))))
bug.c:36: confused by earlier errors, bailing out
---------- preprocessed input (bug.i) ----------
# 1 "bug.c"
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 250 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 251 "/usr/include/features.h" 2 3
# 278 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 279 "/usr/include/features.h" 2 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 199 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int size_t;
# 287 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef long int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 80 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) ;
extern int atoi (__const char *__nptr) ;
extern long int atol (__const char *__nptr) ;
__extension__ extern long long int atoll (__const char *__nptr) ;
extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) ;
# 109 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 132 "/usr/include/stdlib.h" 3
__extension__
extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ;
# 196 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ;
extern long double __strtold_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) ;
# 242 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 274 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 333 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) ;
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef long int __rlim_t;
typedef __quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef unsigned long int __fd_mask;
# 100 "/usr/include/bits/types.h" 3
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
} __fd_set;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_long __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 58 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 96 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/include/time.h" 1 3
# 68 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 69 "/usr/include/time.h" 2 3
typedef __time_t time_t;
# 123 "/usr/include/sys/types.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 126 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 169 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 191 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 35 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 36 "/usr/include/endian.h" 2 3
# 192 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 83 "/usr/include/time.h" 3
struct timespec
{
long int tv_sec;
long int tv_nsec;
};
# 39 "/usr/include/sys/select.h" 2 3
struct timeval;
typedef __fd_mask fd_mask;
typedef __fd_set fd_set;
# 74 "/usr/include/sys/select.h" 3
extern int __select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
extern int select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) ;
# 195 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 198 "/usr/include/sys/types.h" 2 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 340 "/usr/include/stdlib.h" 2 3
extern int32_t random (void) ;
extern void srandom (unsigned int __seed) ;
extern void * initstate (unsigned int __seed, void * __statebuf, size_t __statelen) ;
extern void * setstate (void * __statebuf) ;
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) ;
extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;
extern int initstate_r (unsigned int __seed, void * __restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) ;
extern int setstate_r (void * __restrict __statebuf, struct random_data *__restrict __buf) ;
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int x[3];
unsigned short int a[3];
unsigned short int c;
unsigned short int old_x[3];
int init;
};
extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer) ;
extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) ;
# 474 "/usr/include/stdlib.h" 3
extern void * malloc (size_t __size) ;
extern void * calloc (size_t __nmemb, size_t __size) ;
extern void * realloc (void * __ptr, size_t __size) ;
extern void free (void * __ptr) ;
extern void cfree (void * __ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void * alloca (size_t __size) ;
# 493 "/usr/include/stdlib.h" 2 3
extern void * valloc (size_t __size) ;
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int __on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern int on_exit (void (*__func) (int __status, void * __arg), void * __arg) ;
extern void exit (int __status) __attribute__ ((__noreturn__));
# 530 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace) ;
extern void unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 566 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
extern int system (__const char *__command) ;
# 595 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 612 "/usr/include/stdlib.h" 3
extern void * bsearch (__const void * __key, __const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 634 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom) __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
# 651 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *gcvt (double __value, int __ndigit, char *__buf) ;
extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ;
# 695 "/usr/include/stdlib.h" 3
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) ;
# 718 "/usr/include/stdlib.h" 3
extern int rpmatch (__const char *__response) ;
# 2 "bug.c" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void * memcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) ;
extern void * memmove (void * __dest, __const void * __src, size_t __n) ;
extern void * memccpy (void * __dest, __const void * __src, int __c, size_t __n) ;
extern void * memset (void * __s, int __c, size_t __n) ;
extern int memcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern void * memchr (__const void * __s, int __c, size_t __n) ;
# 71 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ;
extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2) ;
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) ;
extern int strcoll (__const char *__s1, __const char *__s2) ;
extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) ;
# 111 "/usr/include/string.h" 3
extern char *__strdup (__const char *__s) ;
extern char *strdup (__const char *__s) ;
# 146 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) ;
extern char *strrchr (__const char *__s, int __c) ;
# 158 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject) ;
extern size_t strspn (__const char *__s, __const char *__accept) ;
extern char *strpbrk (__const char *__s, __const char *__accept) ;
extern char *strstr (__const char *__haystack, __const char *__needle) ;
# 176 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ;
extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ;
# 207 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) ;
# 217 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern void __bzero (void * __s, size_t __n) ;
extern void bcopy (__const void * __src, void * __dest, size_t __n) ;
extern void bzero (void * __s, size_t __n) ;
extern int bcmp (__const void * __s1, __const void * __s2, size_t __n) ;
extern char *index (__const char *__s, int __c) ;
extern char *rindex (__const char *__s, int __c) ;
extern int __ffs (int __i) __attribute__ ((const));
extern int ffs (int __i) __attribute__ ((const));
# 261 "/usr/include/string.h" 3
extern int __strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strcasecmp (__const char *__s1, __const char *__s2) ;
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) ;
# 282 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) ;
# 343 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 344 "/usr/include/string.h" 2 3
# 1 "/usr/include/bits/string2.h" 1 3
# 52 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/endian.h" 1 3
# 53 "/usr/include/bits/string2.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 54 "/usr/include/bits/string2.h" 2 3
# 372 "/usr/include/bits/string2.h" 3
extern void * __rawmemchr (const void * __s, int __c);
# 396 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
__uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
__uint16_t __src0_2, __uint16_t __src4_2,
__uint32_t __src0_4, __uint32_t __src4_4,
size_t __srclen)
{
union {
__uint32_t __ui;
__uint16_t __usi;
unsigned char __uc;
} *__u = (void *) __dest;
switch ((unsigned int) __srclen)
{
case 1:
__u->__uc = '\0';
break;
case 2:
__u->__usi = __src0_2;
break;
case 3:
__u->__usi = __src0_2;
__u = __extension__ ((void *) __u + 2);
__u->__uc = '\0';
break;
case 4:
__u->__ui = __src0_4;
break;
case 5:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__uc = '\0';
break;
case 6:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__usi = __src4_2;
break;
case 7:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__usi = __src4_2;
__u = __extension__ ((void *) __u + 2);
__u->__uc = '\0';
break;
case 8:
__u->__ui = __src0_4;
__u = __extension__ ((void *) __u + 4);
__u->__ui = __src4_4;
break;
}
return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
char __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
char __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1044 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0))
__s = *__nextp;
while (*__s == __sep)
++__s;
if (*__s == '\0')
__result = ((void *)0);
else
{
__result = __s;
while (*__s != '\0' && *__s != __sep)
++__s;
if (*__s == '\0')
*__nextp = __s;
else
{
*__s = '\0';
*__nextp = __s + 1;
}
}
return __result;
}
# 1094 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject)
*(*__s)++ = '\0';
else
if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
*(*__s)++ = '\0';
else
*__s = ((void *)0);
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2
|| *__retval == __reject3)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
&& *__cp != __reject3)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return ((void *)0);
if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void *)0) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
*(*__s)++ = '\0';
return __retval;
}
# 1187 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 1188 "/usr/include/bits/string2.h" 2 3
# 347 "/usr/include/string.h" 2 3
# 3 "bug.c" 2
# 1 "red.h" 1
# 115 "red.h"
enum bool_enum { false, true };
typedef enum bool_enum bool;
enum tag_t {
T_IND, T_APP, T_PAIR, T_NIL, T_INT, T_BOOL,
T_PORT, T_COMB, T_SYM, T_FORWARD, T_HOLE2
};
typedef int Int;
typedef struct Node_t * HeapPtr;
struct info_t {
HeapPtr (*unwind)(void);
HeapPtr (*eval)(void);
HeapPtr ( *relocate)(HeapPtr) __attribute__((__regparm__(3)));
void (*scan)(void);
const char *(*to_string)(HeapPtr);
enum tag_t tag;
};
extern HeapPtr ind_eval(void);
extern HeapPtr app_eval(void);
extern HeapPtr data_eval(void);
extern HeapPtr error_eval(void) __attribute__ ((noreturn)) ;
extern void spine_stack_overflow(void) __attribute__ ((noreturn)) ;
extern void grow_spine(void);
extern int spine_get_offset(HeapPtr *);
extern HeapPtr *spine_at_offset(int);
extern void error_scan(void) __attribute__ ((noreturn)) ;
extern HeapPtr static_relocate(HeapPtr) __attribute__((__regparm__(3)));
extern HeapPtr error_relocate(HeapPtr) __attribute__((__regparm__(3))) __attribute__ ((noreturn));
extern HeapPtr ind_unwind(void);
extern HeapPtr app_unwind(void);
extern HeapPtr data_unwind(void);
extern HeapPtr error_unwind(void) __attribute__ ((noreturn)) ;
extern const char *hole2_to_string(HeapPtr);
extern const char *ind_to_string(HeapPtr);
extern const char *app_to_string(HeapPtr);
extern const char *pair_to_string(HeapPtr);
extern const char *nil_to_string(HeapPtr);
extern const char *bool_to_string(HeapPtr);
extern const char *int_to_string(HeapPtr);
extern const char *sint_to_string(HeapPtr);
extern const char *hint_to_string(HeapPtr);
extern const char *port_to_string(HeapPtr);
extern const char *sym_to_string(HeapPtr);
extern const char *forward_to_string(HeapPtr);
extern const char *error_show(HeapPtr);
extern const struct info_t ind_info, app_info, pair_info,
nil_info, int_info, bool_info, port_info, comb_info,
sym_info, forward_info, hole2_info;
struct Node_t {
const struct info_t *info;
union {
HeapPtr ptr[2];
Int n;
const char *s;
int port;
bool b;
} v;
};
# 237 "red.h"
extern bool output_to_screen;
extern int Xopt;
extern HeapPtr *Spine;
register HeapPtr *Sp __asm__ ("%esi");
extern HeapPtr *Base;
register char *Hp __asm__ ("%edi");
extern char *end_heap;
# 274 "red.h"
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 147 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef int ptrdiff_t;
# 275 "red.h" 2
# 1 "/usr/include/stdio.h" 1 3
# 27 "/usr/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 28 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 34 "/usr/include/stdio.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 43 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 39 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 41 "/usr/include/stdio.h" 2 3
typedef struct _IO_FILE FILE;
# 57 "/usr/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 30 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 312 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 35 "/usr/include/_G_config.h" 3
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 31 "/usr/include/libio.h" 2 3
# 48 "/usr/include/libio.h" 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stdarg.h" 1 3
# 49 "/usr/include/libio.h" 2 3
# 154 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 164 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 187 "/usr/include/libio.h" 3
};
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 233 "/usr/include/libio.h" 3
__off64_t _offset;
int _unused2[16];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 262 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void * __cookie, char *__buf, size_t __nbytes);
# 271 "/usr/include/libio.h" 3
typedef __ssize_t __io_write_fn (void * __cookie, __const char *__buf, size_t __n);
# 280 "/usr/include/libio.h" 3
typedef int __io_seek_fn (void * __cookie, __off_t __pos, int __w);
typedef int __io_close_fn (void * __cookie);
# 318 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
# 337 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 363 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 58 "/usr/include/stdio.h" 2 3
typedef __off_t fpos_t;
# 110 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 111 "/usr/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 143 "/usr/include/stdio.h" 3
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 160 "/usr/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx) ;
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 182 "/usr/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) ;
# 212 "/usr/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 232 "/usr/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg) ;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int __vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
# 310 "/usr/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) ;
# 338 "/usr/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ;
# 404 "/usr/include/stdio.h" 3
extern char *gets (char *__s) ;
# 428 "/usr/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream) ;
# 438 "/usr/include/stdio.h" 3
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 499 "/usr/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) ;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 536 "/usr/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 567 "/usr/include/stdio.h" 3
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
# 614 "/usr/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 635 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 32 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 110 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 636 "/usr/include/stdio.h" 2 3
# 276 "red.h" 2
extern int stats;
extern void stats_printf(int, const char *, ...) __attribute__ ((format (printf, (2), (2)+1)));
extern void gc_stats(FILE *);
extern void sp_stats(FILE *);
# 1 "timer.h" 1
# 9 "timer.h"
# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/local/gcc-3.0.1/lib/gcc-lib/i686-pc-linux-gnu/3.0.1/include/stddef.h" 1 3
# 39 "/usr/include/time.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 43 "/usr/include/time.h" 2 3
# 57 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 58 "/usr/include/time.h" 2 3
typedef __clock_t clock_t;
# 95 "/usr/include/time.h" 3
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long int tm_gmtoff;
__const char *tm_zone;
};
extern clock_t clock (void) ;
extern time_t time (time_t *__timer) ;
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) ;
extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) ;
# 149 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;
extern struct tm *localtime (__const time_t *__timer) ;
extern struct tm *__gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ;
extern char *asctime (__const struct tm *__tp) ;
extern char *ctime (__const time_t *__timer) ;
extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) ;
extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) ;
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) ;
extern int daylight;
extern long int timezone;
extern int stime (__const time_t *__when) ;
# 228 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;
extern time_t timelocal (struct tm *__tp) ;
extern int dysize (int __year) ;
extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining) ;
# 10 "timer.h" 2
typedef struct xtime_struct { clock_t u, s, e; } xtime_t;
# 22 "timer.h"
extern void xtime_init(xtime_t *);
extern void xtime_get(xtime_t *);
extern void xtime_get_elapsed(xtime_t *, const xtime_t *);
extern void xtime_add(xtime_t *, const xtime_t *, const xtime_t *);
extern void xtime_sub(xtime_t *, const xtime_t *, const xtime_t *);
extern double xtime_to_sec(const xtime_t *);
# 1 "/usr/include/stdio.h" 1 3
# 30 "timer.h" 2
extern void xtime_show(FILE *, const xtime_t *);
# 286 "red.h" 2
extern xtime_t total_GC_time;
extern HeapPtr *min_Sp;
# 300 "red.h"
extern HeapPtr eval(void);
extern void force_string(char *, int, HeapPtr);
void init_input(void);
void finalize_input(void);
HeapPtr link_code(void);
void load_file(FILE *);
extern size_t asciiz_len(const char *);
extern int asciiz_cmp(const char *, const char *);
extern void asciiz_cpy(char *, const char *);
extern void init_memory(void);
extern void need_heap(size_t) __attribute__((__stdcall__));
HeapPtr mk_app(HeapPtr, HeapPtr);
HeapPtr mk_int(Int);
HeapPtr mk_sym(const char *);
HeapPtr mk_pair(HeapPtr, HeapPtr);
extern bool port_input_p(int);
extern int port_getchar(int);
extern struct Node_t Nil_node;
extern struct Node_t False_node, True_node;
extern HeapPtr mk_port(bool, FILE *);
extern void pr_string(HeapPtr);
extern void fatal(const char *, ...) __attribute__ ((noreturn)) __attribute__ ((format (printf, (1), (1)+1)));
extern void init_symtab(void);
extern const char *register_symbol(const char *);
# 1 "combs.h" 1
enum comb_enum {
C_input = 80,
C_pairP = 71,
C_eq = 44,
C_succ = 35,
C_B1 = 4,
C_output = 81,
C_neq = 45,
C_pred = 36,
C_C1 = 5,
C_charP = 73,
C_zeroP = 46,
C_Rsub = 37,
C_Bs = 6,
C_ERROR = 100,
C_numberP = 74,
C_Rdiv = 38,
C_I = 7,
C_compare0 = 48,
C_Rrem = 39,
C_K = 8,
C_LISTCASE = 102,
C_U = 9,
C_Y = 10,
C_cons = 20,
C_W = 11,
C_READ = 105,
C_add = 30,
C_K1 = 12,
C_STD_PORT = 106,
C_less = 40,
C_mul = 31,
C_S = 0,
C_if = 50,
C_less_eq = 41,
C_sub = 32,
C_B = 1,
C_not = 51,
C_greater = 42,
C_div = 33,
C_C = 2,
C_booleanP = 70,
C_gr_eq = 43,
C_rem = 34,
C_S1 = 3,
NUM_COMBS = 107
};
# 352 "red.h" 2
extern long num_reductions[NUM_COMBS], num_argcheck[NUM_COMBS];
struct comb_struct {
const struct info_t *info;
};
extern struct comb_struct combs[NUM_COMBS];
extern const char *comb_name_table[NUM_COMBS];
# 4 "bug.c" 2
int spine_size;
int spine_get_offset(HeapPtr *p)
{
return &Spine[spine_size] - p;
}
HeapPtr *spine_at_offset(int o)
{
return &Spine[spine_size - o];
}
void grow_spine(void)
{
int sp_pos, base_pos, old_size, new_size;
int min_pos;
old_size = spine_size;
new_size = 2 * spine_size;
sp_pos = spine_get_offset(Sp);
base_pos = spine_get_offset(Base);
min_pos = spine_get_offset(min_Sp);
Spine = realloc(Spine, new_size * sizeof (HeapPtr));
if (Spine == ((void *)0))
fatal("Spine stack overflow");
spine_size = new_size;
Sp = spine_at_offset(sp_pos);
Base = spine_at_offset(base_pos);
min_Sp = spine_at_offset(min_pos);
memcpy(&Spine[old_size], Spine, old_size * sizeof (HeapPtr));
}
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-09-28 20:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-11 3:06 optimization/4296: Unable to find a register to spill in class `SIREG' Christoph Breitkopf
-- strict thread matches above, loose matches on Subject: below --
2001-09-28 20:36 aoliva
2001-09-11 2:36 chr.breitkopf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).