This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/6862: ICE at -O2 compiling infocmp.c from ncurses 5.2 with GCC 3.1 on Solaris 7
- From: jleffler at us dot ibm dot com
- To: gcc-gnats at gcc dot gnu dot org
- Cc: jleffler at us dot ibm dot com
- Date: Wed, 29 May 2002 16:30:19 -0700 (PDT)
- Subject: c/6862: ICE at -O2 compiling infocmp.c from ncurses 5.2 with GCC 3.1 on Solaris 7
>Number: 6862
>Category: c
>Synopsis: ICE at -O2 compiling infocmp.c from ncurses 5.2 with GCC 3.1 on Solaris 7
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Wed May 29 16:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:
>Release: 3.1
>Organization:
IBM Informix Database Engineering
>Environment:
System: SunOS anubis 5.7 Generic_106541-18 sun4u sparc SUNW,Ultra-5_10
Architecture: sun4
host: sparc-sun-solaris2.7
build: sparc-sun-solaris2.7
target: sparc-sun-solaris2.7
configured with: ../gcc-3.1/configure --prefix=/usr/gcc/v3.1 : (reconfigured) ../gcc-3.1/configure --prefix=/usr/gcc/v3.1
>Description:
Taking released source code for ncurses 5.2, and configuring with command line:
./configure --prefix=/usr/gnu --without-cxx --with-static --with-shared --with-libtool --enable-rpath
Then type 'make'; compilation fails in progs subdirectory on second compilation of 'infocmp.c':
$ cd /work4/open.source/ncurses-5.2
$ make
cd man && make DESTDIR="" all
make[1]: Entering directory `/work4/open.source/ncurses-5.2/man'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/work4/open.source/ncurses-5.2/man'
cd include && make DESTDIR="" all
make[1]: Entering directory `/work4/open.source/ncurses-5.2/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/work4/open.source/ncurses-5.2/include'
cd ncurses && make DESTDIR="" all
make[1]: Entering directory `/work4/open.source/ncurses-5.2/ncurses'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/work4/open.source/ncurses-5.2/ncurses'
cd progs && make DESTDIR="" all
make[1]: Entering directory `/work4/open.source/ncurses-5.2/progs'
cd ../obj_lo; libtool gcc -I../progs -I. -DNDEBUG -I. -I../include -I/usr/gnu/include -DHAVE_CONFIG_H -O2 -c ../progs/infocmp.c
rm -f .libs/infocmp.lo
gcc -I../progs -I. -DNDEBUG -I. -I../include -I/usr/gnu/include -DHAVE_CONFIG_H -O2 -c ../progs/infocmp.c -fPIC -DPIC -o .libs/infocmp.lo
gcc -I../progs -I. -DNDEBUG -I. -I../include -I/usr/gnu/include -DHAVE_CONFIG_H -O2 -c ../progs/infocmp.c -o infocmp.o >/dev/null 2>&1
make[1]: *** [../obj_lo/infocmp.o] Error 1
make[1]: Leaving directory `/work4/open.source/ncurses-5.2/progs'
make: *** [all] Error 2
$ cd progs
$ gcc -I../progs -I. -DNDEBUG -I. -I../include -I/usr/gnu/include -DHAVE_CONFIG_H -O2 -c ../progs/infocmp.c -o infocmp.o
../progs/infocmp.c: In function `use_predicate':
../progs/infocmp.c:218: insn does not satisfy its constraints:
(insn 631 66 59 (set (reg:SI 9 %o1)
(reg/f:SI 254)) 51 {*movsi_insn} (nil)
(nil))
../progs/infocmp.c:218: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8368
Please submit a full bug report,
with preprocessed source if appropriate.
See [URL:http://www.gnu.org/software/gcc/bugs.html] for instructions.
$
>How-To-Repeat:
I've reduced infocmp.c to the following 50-odd lines. Eliminating
either case from the switch lets the source compile OK; indeed, omitting
any of the statements (including the termstr assignment in 'case
STRING') seems to let it compile OK.
The three headers are normally enclosed in angle-brackets, but those are
probably removed. The three lines below should pass gccbug unscathed
and represent what was in the code, with double quotes used instead of
angle brackets.
#include "progs.priv.h"
#include "term_entry.h"
#include "dump_entry.h"
#include <progs.priv.h>
#include <term_entry.h>
#include <dump_entry.h>
#define MAXTERMS 32
static ENTRY entries[MAXTERMS];
static int termcount;
static int
use_predicate(int type, int idx)
{
ENTRY *ep;
switch (type) {
case BOOLEAN:
{
int is_set = FALSE;
for (ep = &entries[1]; ep < entries + termcount; ep++)
if (ep->tterm.Booleans[idx] == TRUE) {
is_set = entries[0].tterm.Booleans[idx];
break;
}
if (is_set != entries[0].tterm.Booleans[idx])
return (!is_set);
else
return (FAIL);
}
case STRING:
{
char *termstr, *usestr = ABSENT_STRING;
termstr = entries[0].tterm.Strings[idx];
for (ep = &entries[1]; ep < entries + termcount; ep++)
if (ep->tterm.Strings[idx]) {
usestr = ep->tterm.Strings[idx];
break;
}
}
}
return (FALSE);
}
This is the preprocessor output from the compilation of minicmp.c - the
reduced version of infocmp.c shown above:
$ gcc -E -I../progs -I. -DNDEBUG -I. -I../include -I/usr/gnu/include -DHAVE_CONFIG_H -O2 -c ../progs/minicmp.c >minicmp.P
$ cat minicmp.P
# 1 "../progs/minicmp.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "../progs/minicmp.c"
# 1 "../progs/progs.priv.h" 1
# 40 "../progs/progs.priv.h"
# 1 "../include/ncurses_cfg.h" 1
# 130 "../include/ncurses_cfg.h"
# 1 "../include/ncurses_def.h" 1
# 131 "../include/ncurses_cfg.h" 2
# 41 "../progs/progs.priv.h" 2
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 1 3 4
# 25 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
#pragma ident "@(#)stdlib.h 1.44 98/01/22 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 13 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "@(#)feature_tests.h 1.17 97/12/04 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
# 9 "/usr/include/sys/isa_defs.h" 3 4
#pragma ident "@(#)isa_defs.h 1.16 99/05/25 SMI"
# 16 "/usr/include/sys/feature_tests.h" 2 3 4
# 28 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 2 3 4
# 38 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
typedef struct {
long long quot;
long long rem;
} lldiv_t;
# 66 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
typedef unsigned int size_t;
# 77 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
typedef long uid_t;
# 107 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
typedef long int wchar_t;
# 148 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdlib.h" 3 4
extern unsigned char __ctype[];
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int rand(void);
extern void srand(unsigned int);
extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern void _exithandle(void);
extern char *getenv(const char *);
extern int system(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);
extern void swab(const char *, char *, int);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int ttyslot(void);
extern int unlockpt(int);
extern void *valloc(size_t);
extern int dup2(int, int);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 49 "../progs/progs.priv.h" 2
# 1 "/usr/include/ctype.h" 1 3 4
# 16 "/usr/include/ctype.h" 3 4
#pragma ident "@(#)ctype.h 1.30 98/01/16 SMI"
# 48 "/usr/include/ctype.h" 3 4
extern int isalnum(int);
extern int isalpha(int);
extern int iscntrl(int);
extern int isdigit(int);
extern int isgraph(int);
extern int islower(int);
extern int isprint(int);
extern int ispunct(int);
extern int isspace(int);
extern int isupper(int);
extern int isxdigit(int);
extern int tolower(int);
extern int toupper(int);
extern int isascii(int);
extern int toascii(int);
extern int _tolower(int);
extern int _toupper(int);
extern unsigned char __ctype[];
extern unsigned int *__ctype_mask;
extern int *__trans_upper;
extern int *__trans_lower;
# 50 "../progs/progs.priv.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 16 "/usr/include/string.h" 3 4
#pragma ident "@(#)string.h 1.22 97/12/22 SMI"
# 43 "/usr/include/string.h" 3 4
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
extern void *memccpy(void *, const void *, int, size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern char *strdup(const char *);
# 51 "../progs/progs.priv.h" 2
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 1 3 4
# 25 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
#pragma ident "@(#)types.h 1.63 98/04/28 SMI"
# 1 "/usr/include/sys/machtypes.h" 1 3 4
# 16 "/usr/include/sys/machtypes.h" 3 4
#pragma ident "@(#)machtypes.h 1.12 96/08/01 SMI"
# 33 "/usr/include/sys/machtypes.h" 3 4
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct _label_t { long val[2]; } label_t;
typedef unsigned char lock_t;
# 34 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 2 3 4
# 45 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
# 1 "/usr/include/sys/int_types.h" 1 3 4
# 9 "/usr/include/sys/int_types.h" 3 4
#pragma ident "@(#)int_types.h 1.6 97/08/20 SMI"
# 62 "/usr/include/sys/int_types.h" 3 4
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
# 94 "/usr/include/sys/int_types.h" 3 4
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# 110 "/usr/include/sys/int_types.h" 3 4
typedef int intptr_t;
typedef unsigned int uintptr_t;
typedef char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
typedef long long int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned long long uint_least64_t;
# 46 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 2 3 4
# 62 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
# 85 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef long t_scalar_t;
typedef unsigned long t_uscalar_t;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char *caddr_t;
typedef long daddr_t;
typedef short cnt_t;
typedef ulong_t paddr_t;
# 116 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef int ptrdiff_t;
# 125 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef ulong_t pfn_t;
typedef ulong_t pgcnt_t;
typedef long spgcnt_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef void *timeout_id_t;
typedef void *bufcall_id_t;
# 147 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef long off_t;
# 156 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef longlong_t off64_t;
typedef ulong_t ino_t;
typedef long blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
# 181 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef u_longlong_t ino64_t;
typedef longlong_t blkcnt64_t;
typedef u_longlong_t fsblkcnt64_t;
typedef u_longlong_t fsfilcnt64_t;
typedef long blksize_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
# 208 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef int64_t pad64_t;
typedef uint64_t upad64_t;
# 221 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
typedef u_longlong_t len_t;
typedef longlong_t diskaddr_t;
# 242 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef union {
offset_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lloff_t;
# 262 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef union {
diskaddr_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lldaddr_t;
typedef uint_t k_fltset_t;
# 287 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef long id_t;
typedef uint_t useconds_t;
typedef long suseconds_t;
# 308 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
# 328 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
# 356 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef uid_t gid_t;
typedef unsigned int pthread_t;
typedef unsigned int pthread_key_t;
typedef struct _pthread_mutex {
struct {
uint8_t __pthread_mutex_flag[4];
uint32_t __pthread_mutex_type;
} __pthread_mutex_flags;
union {
struct {
uint8_t __pthread_mutex_pad[8];
} __pthread_mutex_lock64;
upad64_t __pthread_mutex_owner64;
} __pthread_mutex_lock;
upad64_t __pthread_mutex_data;
} pthread_mutex_t;
typedef struct _pthread_cond {
struct {
uint8_t __pthread_cond_flag[4];
uint32_t __pthread_cond_type;
} __pthread_cond_flags;
upad64_t __pthread_cond_data;
} pthread_cond_t;
typedef struct _pthread_rwlock {
int32_t __pthread_rwlock_readers;
uint16_t __pthread_rwlock_type;
uint16_t __pthread_rwlock_magic;
upad64_t __pthread_rwlock_pad1[3];
upad64_t __pthread_rwlock_pad2[2];
upad64_t __pthread_rwlock_pad3[2];
} pthread_rwlock_t;
typedef struct _pthread_attr {
void *__pthread_attrp;
} pthread_attr_t;
typedef struct _pthread_mutexattr {
void *__pthread_mutexattrp;
} pthread_mutexattr_t;
typedef struct _pthread_condattr {
void *__pthread_condattrp;
} pthread_condattr_t;
typedef struct _once {
upad64_t __pthread_once_pad[4];
} pthread_once_t;
typedef struct _pthread_rwlockattr {
void *__pthread_rwlockattrp;
} pthread_rwlockattr_t;
typedef ulong_t dev_t;
typedef ulong_t nlink_t;
typedef long pid_t;
# 470 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef int ssize_t;
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
# 552 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { int val[2]; } quad_t;
typedef quad_t quad;
# 1 "/usr/include/sys/select.h" 1 3 4
# 12 "/usr/include/sys/select.h" 3 4
#pragma ident "@(#)select.h 1.16 98/04/27 SMI"
# 1 "/usr/include/sys/time.h" 1 3 4
# 22 "/usr/include/sys/time.h" 3 4
#pragma ident "@(#)time.h 2.62 98/02/04 SMI"
# 49 "/usr/include/sys/time.h" 3 4
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
# 82 "/usr/include/sys/time.h" 3 4
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
# 100 "/usr/include/sys/time.h" 3 4
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 1 3 4
# 101 "/usr/include/sys/time.h" 2 3 4
# 155 "/usr/include/sys/time.h" 3 4
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 203 "/usr/include/sys/time.h" 3 4
typedef longlong_t hrtime_t;
# 315 "/usr/include/sys/time.h" 3 4
int adjtime(struct timeval *, struct timeval *);
# 326 "/usr/include/sys/time.h" 3 4
int getitimer(int, struct itimerval *);
int utimes(const char *, const struct timeval *);
int setitimer(int, struct itimerval *, struct itimerval *);
# 364 "/usr/include/sys/time.h" 3 4
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
# 384 "/usr/include/sys/time.h" 3 4
int gettimeofday(struct timeval *, void *);
# 405 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 16 "/usr/include/time.h" 3 4
#pragma ident "@(#)time.h 1.36 98/03/27 SMI"
# 64 "/usr/include/time.h" 3 4
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;
};
extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime(const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
# 97 "/usr/include/time.h" 3 4
extern char *strptime(const char *, const char *, struct tm *);
# 1 "/usr/include/sys/time_impl.h" 1 3 4
# 15 "/usr/include/sys/time_impl.h" 3 4
#pragma ident "@(#)time_impl.h 1.3 98/02/13 SMI"
# 36 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
# 60 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec timestruc_t;
# 79 "/usr/include/sys/time_impl.h" 3 4
typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;
# 104 "/usr/include/time.h" 2 3 4
# 118 "/usr/include/time.h" 3 4
union sigval {
int sival_int;
void *sival_ptr;
};
struct sigevent {
int sigev_notify;
int sigev_signo;
union sigval sigev_value;
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
int __sigev_pad2;
};
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
# 406 "/usr/include/sys/time.h" 2 3 4
# 418 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 419 "/usr/include/sys/time.h" 2 3 4
# 18 "/usr/include/sys/select.h" 2 3 4
# 45 "/usr/include/sys/select.h" 3 4
typedef long fd_mask;
typedef long fds_mask;
# 73 "/usr/include/sys/select.h" 3 4
typedef struct fd_set {
long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
} fd_set;
# 97 "/usr/include/sys/select.h" 3 4
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
# 565 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/sys/types.h" 2 3 4
# 52 "../progs/progs.priv.h" 2
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 1 3 4
# 25 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.55 98/04/14 SMI"
# 1 "/usr/include/sys/unistd.h" 1 3 4
# 25 "/usr/include/sys/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.36 98/07/16 SMI"
# 31 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 2 3 4
# 209 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdatasync(int);
# 281 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern int getdtablesize(void);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern long gethostid(void);
extern int gethostname(char *, int);
extern char *getlogin(void);
# 326 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
extern int getpagesize(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern char *getwd(char *);
# 352 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
extern int ioctl(int, int, ...);
extern int isaexec(const char *, char *const *, char *const *);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern int lockf(int, int, off_t);
extern int readlink(const char *, char *, size_t);
extern off_t lseek(int, off_t, int);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern offset_t llseek(int, offset_t, int);
extern off_t tell(int);
extern int mincore(caddr_t, size_t, char *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
extern long ptrace(int, pid_t, long, long);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, size_t);
extern int rename(const char *, const char *);
extern int resolvepath(const char *, char *, size_t);
extern int rmdir(const char *);
extern void *sbrk(intptr_t);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern int setregid(gid_t, gid_t);
extern int setreuid(uid_t, uid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
# 459 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern off_t tell(int);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern useconds_t ualarm(useconds_t, useconds_t);
extern int unlink(const char *);
extern int usleep(useconds_t);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, size_t);
extern void yield(void);
extern int ftruncate64(int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
extern off64_t tell64(int);
extern int truncate64(const char *, off64_t);
extern int lockf64(int, int, off64_t);
# 808 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/unistd.h" 3 4
#pragma unknown_control_flow(vfork)
# 55 "../progs/progs.priv.h" 2
# 66 "../progs/progs.priv.h"
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/limits.h" 1 3 4
# 11 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/limits.h" 3 4
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/syslimits.h" 1 3 4
# 25 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/syslimits.h" 3 4
#pragma ident "@(#)limits.h 1.48 98/07/20 SMI"
# 40 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/syslimits.h" 3 4
# 1 "/usr/include/sys/int_limits.h" 1 3 4
# 9 "/usr/include/sys/int_limits.h" 3 4
#pragma ident "@(#)int_limits.h 1.5 98/01/06 SMI"
# 41 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/syslimits.h" 2 3 4
# 12 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/limits.h" 2 3 4
# 67 "../progs/progs.priv.h" 2
# 1 "/usr/include/dirent.h" 1 3 4
# 16 "/usr/include/dirent.h" 3 4
#pragma ident "@(#)dirent.h 1.28 97/04/19 SMI"
# 1 "/usr/include/sys/dirent.h" 1 3 4
# 16 "/usr/include/sys/dirent.h" 3 4
#pragma ident "@(#)dirent.h 1.31 97/04/19 SMI"
# 28 "/usr/include/sys/dirent.h" 3 4
typedef struct dirent {
ino_t d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[1];
} dirent_t;
# 54 "/usr/include/sys/dirent.h" 3 4
typedef struct dirent64 {
ino64_t d_ino;
off64_t d_off;
unsigned short d_reclen;
char d_name[1];
} dirent64_t;
# 99 "/usr/include/sys/dirent.h" 3 4
extern int getdents(int, struct dirent *, size_t);
# 22 "/usr/include/dirent.h" 2 3 4
# 37 "/usr/include/dirent.h" 3 4
typedef struct {
int dd_fd;
int dd_loc;
int dd_size;
char *dd_buf;
} DIR;
# 76 "/usr/include/dirent.h" 3 4
extern DIR *opendir(const char *);
extern struct dirent *readdir(DIR *);
extern long telldir(DIR *);
extern void seekdir(DIR *, long);
extern void rewinddir(DIR *);
extern int closedir(DIR *);
extern struct dirent64 *readdir64(DIR *);
# 73 "../progs/progs.priv.h" 2
# 88 "../progs/progs.priv.h"
# 1 "/usr/include/errno.h" 1 3 4
# 11 "/usr/include/errno.h" 3 4
#pragma ident "@(#)errno.h 1.15 98/03/02 SMI"
# 1 "/usr/include/sys/errno.h" 1 3 4
# 11 "/usr/include/sys/errno.h" 3 4
#pragma ident "@(#)errno.h 1.19 98/01/14 SMI"
# 18 "/usr/include/errno.h" 2 3 4
# 35 "/usr/include/errno.h" 3 4
extern int errno;
# 89 "../progs/progs.priv.h" 2
# 100 "../progs/progs.priv.h"
extern char *optarg;
extern int optind;
# 1 "../include/curses.h" 1
# 74 "../include/curses.h"
typedef unsigned long chtype;
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 1 3 4
# 14 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdarg.h" 1 3 4
# 43 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 15 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 2 3 4
# 34 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
#pragma ident "@(#)stdio.h 1.69 98/07/13 SMI"
# 1 "/usr/include/sys/va_list.h" 1 3 4
# 9 "/usr/include/sys/va_list.h" 3 4
#pragma ident "@(#)va_list.h 1.11 97/11/22 SMI"
# 26 "/usr/include/sys/va_list.h" 3 4
typedef void *__va_list;
# 38 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 2 3 4
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio_tag.h" 1 3 4
# 18 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio_tag.h" 3 4
#pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI"
# 30 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio_tag.h" 3 4
typedef struct __FILE __FILE;
# 39 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 2 3 4
# 1 "/usr/include/stdio_impl.h" 1 3 4
# 9 "/usr/include/stdio_impl.h" 3 4
#pragma ident "@(#)stdio_impl.h 1.8 99/06/30 SMI"
# 38 "/usr/include/stdio_impl.h" 3 4
struct __FILE
{
ssize_t _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
unsigned __orientation:2;
unsigned __ionolock:1;
unsigned __filler:5;
};
# 40 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 2 3 4
# 55 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
typedef __FILE FILE;
# 74 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
typedef long long __longlong_t;
# 103 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
typedef long fpos_t;
typedef __longlong_t fpos64_t;
# 203 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern FILE __iob[20];
# 215 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern unsigned char _sibuf[], _sobuf[];
# 244 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
# 275 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int snprintf(char *, size_t, const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __gnuc_va_list);
extern int vprintf(const char *, __gnuc_va_list);
extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
extern int vsprintf(char *, const char *, __gnuc_va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
# 353 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 379 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
# 408 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdio.h" 3 4
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
# 77 "../include/curses.h" 2
# 1 "../include/unctrl.h" 1
# 54 "../include/unctrl.h"
# 1 "../include/curses.h" 1
# 55 "../include/unctrl.h" 2
extern char *unctrl(chtype);
# 78 "../include/curses.h" 2
# 1 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdarg.h" 1 3 4
# 90 "/usr/gcc/v3.1/lib/gcc-lib/sparc-sun-solaris2.7/3.1/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 79 "../include/curses.h" 2
# 96 "../include/curses.h"
typedef int bool;
# 126 "../include/curses.h"
extern int COLORS;
extern int COLOR_PAIRS;
# 140 "../include/curses.h"
extern chtype acs_map[];
# 229 "../include/curses.h"
typedef struct screen SCREEN;
typedef struct _win_st WINDOW;
typedef chtype attr_t;
# 251 "../include/curses.h"
struct ldat
{
chtype *text;
short firstchar;
short lastchar;
short oldindex;
};
struct _win_st
{
short _cury, _curx;
short _maxy, _maxx;
short _begy, _begx;
short _flags;
attr_t _attrs;
chtype _bkgd;
bool _notimeout;
bool _clear;
bool _leaveok;
bool _scroll;
bool _idlok;
bool _idcok;
bool _immed;
bool _sync;
bool _use_keypad;
int _delay;
struct ldat *_line;
short _regtop;
short _regbottom;
int _parx;
int _pary;
WINDOW *_parent;
struct pdat
{
short _pad_y, _pad_x;
short _pad_top, _pad_left;
short _pad_bottom, _pad_right;
} _pad;
short _yoffset;
};
extern WINDOW *stdscr;
extern WINDOW *curscr;
extern WINDOW *newscr;
extern int LINES;
extern int COLS;
extern int TABSIZE;
extern int ESCDELAY;
extern char ttytype[];
extern char *keybound (int, int);
extern const char *curses_version (void);
extern int assume_default_colors (int, int);
extern int define_key (char *, int);
extern int keyok (int, bool);
extern int resizeterm (int, int);
extern int use_default_colors (void);
extern int use_extended_names (bool);
extern int wresize (WINDOW *, int, int);
# 387 "../include/curses.h"
extern int addch(const chtype);
extern int addchnstr(const chtype *, int);
extern int addchstr(const chtype *);
extern int addnstr(const char *, int);
extern int addstr(const char *);
extern int attroff(attr_t);
extern int attron(attr_t);
extern int attrset(attr_t);
extern int attr_get(attr_t *, short *, void *);
extern int attr_off(attr_t, void *);
extern int attr_on(attr_t, void *);
extern int attr_set(attr_t, short, void *);
extern int baudrate(void);
extern int beep(void);
extern int bkgd(chtype);
extern void bkgdset(chtype);
extern int border(chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
extern int box(WINDOW *, chtype, chtype);
extern bool can_change_color(void);
extern int cbreak(void);
extern int chgat(int, attr_t, short, const void *);
extern int clear(void);
extern int clearok(WINDOW *,bool);
extern int clrtobot(void);
extern int clrtoeol(void);
extern int color_content(short,short*,short*,short*);
extern int color_set(short,void*);
extern int COLOR_PAIR(int);
extern int copywin(const WINDOW*,WINDOW*,int,int,int,int,int,int,int);
extern int curs_set(int);
extern int def_prog_mode(void);
extern int def_shell_mode(void);
extern int delay_output(int);
extern int delch(void);
extern void delscreen(SCREEN *);
extern int delwin(WINDOW *);
extern int deleteln(void);
extern WINDOW *derwin(WINDOW *,int,int,int,int);
extern int doupdate(void);
extern WINDOW *dupwin(WINDOW *);
extern int echo(void);
extern int echochar(const chtype);
extern int erase(void);
extern int endwin(void);
extern char erasechar(void);
extern void filter(void);
extern int flash(void);
extern int flushinp(void);
extern chtype getbkgd(WINDOW *);
extern int getch(void);
extern int getnstr(char *, int);
extern int getstr(char *);
extern WINDOW *getwin(FILE *);
extern int halfdelay(int);
extern bool has_colors(void);
extern bool has_ic(void);
extern bool has_il(void);
extern int hline(chtype, int);
extern void idcok(WINDOW *, bool);
extern int idlok(WINDOW *, bool);
extern void immedok(WINDOW *, bool);
extern chtype inch(void);
extern int inchnstr(chtype *, int);
extern int inchstr(chtype *);
extern WINDOW *initscr(void);
extern int init_color(short,short,short,short);
extern int init_pair(short,short,short);
extern int innstr(char *, int);
extern int insch(chtype);
extern int insdelln(int);
extern int insertln(void);
extern int insnstr(const char *, int);
extern int insstr(const char *);
extern int instr(char *);
extern int intrflush(WINDOW *,bool);
extern bool isendwin(void);
extern bool is_linetouched(WINDOW *,int);
extern bool is_wintouched(WINDOW *);
extern char *keyname(int);
extern int keypad(WINDOW *,bool);
extern char killchar(void);
extern int leaveok(WINDOW *,bool);
extern char *longname(void);
extern int meta(WINDOW *,bool);
extern int move(int, int);
extern int mvaddch(int, int, const chtype);
extern int mvaddchnstr(int, int, const chtype *, int);
extern int mvaddchstr(int, int, const chtype *);
extern int mvaddnstr(int, int, const char *, int);
extern int mvaddstr(int, int, const char *);
extern int mvchgat(int, int, int, attr_t, short, const void *);
extern int mvcur(int,int,int,int);
extern int mvdelch(int, int);
extern int mvderwin(WINDOW *, int, int);
extern int mvgetch(int, int);
extern int mvgetnstr(int, int, char *, int);
extern int mvgetstr(int, int, char *);
extern int mvhline(int, int, chtype, int);
extern chtype mvinch(int, int);
extern int mvinchnstr(int, int, chtype *, int);
extern int mvinchstr(int, int, chtype *);
extern int mvinnstr(int, int, char *, int);
extern int mvinsch(int, int, chtype);
extern int mvinsnstr(int, int, const char *, int);
extern int mvinsstr(int, int, const char *);
extern int mvinstr(int, int, char *);
# 581 "../include/curses.h"
extern int mvprintw(int,int, char *,...)
__attribute__((format(printf,3,4)));
extern int mvscanw(int,int, char *,...)
__attribute__((format(scanf,3,4)));
extern int mvvline(int, int, chtype, int);
extern int mvwaddch(WINDOW *, int, int, const chtype);
extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int);
extern int mvwaddchstr(WINDOW *, int, int, const chtype *);
extern int mvwaddnstr(WINDOW *, int, int, const char *, int);
extern int mvwaddstr(WINDOW *, int, int, const char *);
extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *);
extern int mvwdelch(WINDOW *, int, int);
extern int mvwgetch(WINDOW *, int, int);
extern int mvwgetnstr(WINDOW *, int, int, char *, int);
extern int mvwgetstr(WINDOW *, int, int, char *);
extern int mvwhline(WINDOW *, int, int, chtype, int);
extern int mvwin(WINDOW *,int,int);
extern chtype mvwinch(WINDOW *, int, int);
extern int mvwinchnstr(WINDOW *, int, int, chtype *, int);
extern int mvwinchstr(WINDOW *, int, int, chtype *);
extern int mvwinnstr(WINDOW *, int, int, char *, int);
extern int mvwinsch(WINDOW *, int, int, chtype);
extern int mvwinsnstr(WINDOW *, int, int, const char *, int);
extern int mvwinsstr(WINDOW *, int, int, const char *);
extern int mvwinstr(WINDOW *, int, int, char *);
# 640 "../include/curses.h"
extern int mvwprintw(WINDOW*,int,int, char *,...)
__attribute__((format(printf,4,5)));
extern int mvwscanw(WINDOW *,int,int, char *,...)
__attribute__((format(scanf,4,5)));
extern int mvwvline(WINDOW *,int, int, chtype, int);
extern int napms(int);
extern WINDOW *newpad(int,int);
extern SCREEN *newterm( char *,FILE *,FILE *);
extern WINDOW *newwin(int,int,int,int);
extern int nl(void);
extern int nocbreak(void);
extern int nodelay(WINDOW *,bool);
extern int noecho(void);
extern int nonl(void);
extern void noqiflush(void);
extern int noraw(void);
extern int notimeout(WINDOW *,bool);
extern int overlay(const WINDOW*,WINDOW *);
extern int overwrite(const WINDOW*,WINDOW *);
extern int pair_content(short,short*,short*);
extern int PAIR_NUMBER(int);
extern int pechochar(WINDOW *, const chtype);
extern int pnoutrefresh(WINDOW*,int,int,int,int,int,int);
extern int prefresh(WINDOW *,int,int,int,int,int,int);
extern int printw( char *,...)
__attribute__((format(printf,1,2)));
extern int putp(const char *);
extern int putwin(WINDOW *, FILE *);
extern void qiflush(void);
extern int raw(void);
extern int redrawwin(WINDOW *);
extern int refresh(void);
extern int resetty(void);
extern int reset_prog_mode(void);
extern int reset_shell_mode(void);
extern int ripoffline(int, int (*init)(WINDOW *, int));
extern int savetty(void);
extern int scanw( char *,...)
__attribute__((format(scanf,1,2)));
extern int scr_dump(const char *);
extern int scr_init(const char *);
extern int scrl(int);
extern int scroll(WINDOW *);
extern int scrollok(WINDOW *,bool);
extern int scr_restore(const char *);
extern int scr_set(const char *);
extern int setscrreg(int,int);
extern SCREEN *set_term(SCREEN *);
extern int slk_attroff(const chtype);
extern int slk_attr_off(const attr_t, void *);
extern int slk_attron(const chtype);
extern int slk_attr_on(attr_t,void*);
extern int slk_attrset(const chtype);
extern attr_t slk_attr(void);
extern int slk_attr_set(const attr_t,short,void*);
extern int slk_clear(void);
extern int slk_color(short);
extern int slk_init(int);
extern char *slk_label(int);
extern int slk_noutrefresh(void);
extern int slk_refresh(void);
extern int slk_restore(void);
extern int slk_set(int,const char *,int);
extern int slk_touch(void);
extern int standout(void);
extern int standend(void);
extern int start_color(void);
extern WINDOW *subpad(WINDOW *, int, int, int, int);
extern WINDOW *subwin(WINDOW *,int,int,int,int);
extern int syncok(WINDOW *, bool);
extern chtype termattrs(void);
extern attr_t term_attrs(void);
extern char *termname(void);
extern int tigetflag( char *);
extern int tigetnum( char *);
extern char *tigetstr( char *);
extern void timeout(int);
extern int touchline(WINDOW *, int, int);
extern int touchwin(WINDOW *);
extern char *tparm( char *, ...);
extern int typeahead(int);
extern int ungetch(int);
extern int untouchwin(WINDOW *);
extern void use_env(bool);
extern int vidattr(chtype);
extern int vid_attr(attr_t, short, void *);
extern int vidputs(chtype, int (*)(int));
extern int vline(chtype, int);
extern int vwprintw(WINDOW *, char *,va_list);
extern int vw_printw(WINDOW *, char *,va_list);
extern int vwscanw(WINDOW *, char *,va_list);
extern int vw_scanw(WINDOW *, char *,va_list);
extern int waddch(WINDOW *, const chtype);
extern int waddchnstr(WINDOW *,const chtype *const,int);
extern int waddchstr(WINDOW *,const chtype *);
extern int waddnstr(WINDOW *,const char *const,int);
extern int waddstr(WINDOW *,const char *);
extern int wattron(WINDOW *, int);
extern int wattroff(WINDOW *, int);
extern int wattrset(WINDOW *, int);
extern int wattr_get(WINDOW *, attr_t *, short *, void *);
extern int wattr_on(WINDOW *, attr_t, void *);
extern int wattr_off(WINDOW *, attr_t, void *);
extern int wattr_set(WINDOW *, attr_t, short, void *);
extern int wbkgd(WINDOW *,const chtype);
extern void wbkgdset(WINDOW *,chtype);
extern int wborder(WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);
extern int wchgat(WINDOW *, int, attr_t, short, const void *);
extern int wclear(WINDOW *);
extern int wclrtobot(WINDOW *);
extern int wclrtoeol(WINDOW *);
extern int wcolor_set(WINDOW*,short,void*);
extern void wcursyncup(WINDOW *);
extern int wdelch(WINDOW *);
extern int wdeleteln(WINDOW *);
extern int wechochar(WINDOW *, const chtype);
extern int werase(WINDOW *);
extern int wgetch(WINDOW *);
extern int wgetnstr(WINDOW *,char *,int);
extern int wgetstr(WINDOW *, char *);
extern int whline(WINDOW *, chtype, int);
extern chtype winch(WINDOW *);
extern int winchnstr(WINDOW *, chtype *, int);
extern int winchstr(WINDOW *, chtype *);
extern int winnstr(WINDOW *, char *, int);
extern int winsch(WINDOW *, chtype);
extern int winsdelln(WINDOW *,int);
extern int winsertln(WINDOW *);
extern int winsnstr(WINDOW *, const char *,int);
extern int winsstr(WINDOW *, const char *);
extern int winstr(WINDOW *, char *);
# 834 "../include/curses.h"
extern int wmove(WINDOW *,int,int);
extern int wnoutrefresh(WINDOW *);
extern int wprintw(WINDOW *, char *,...)
__attribute__((format(printf,2,3)));
extern int wredrawln(WINDOW *,int,int);
extern int wrefresh(WINDOW *);
extern int wscanw(WINDOW *, char *,...)
__attribute__((format(scanf,2,3)));
extern int wscrl(WINDOW *,int);
extern int wsetscrreg(WINDOW *,int,int);
extern int wstandout(WINDOW *);
extern int wstandend(WINDOW *);
extern void wsyncdown(WINDOW *);
extern void wsyncup(WINDOW *);
extern void wtimeout(WINDOW *,int);
extern int wtouchln(WINDOW *,int,int,int);
extern int wvline(WINDOW *,chtype,int);
extern bool mouse_trafo(int*, int*, bool);
# 1294 "../include/curses.h"
typedef unsigned long mmask_t;
typedef struct
{
short id;
int x, y, z;
mmask_t bstate;
}
MEVENT;
extern int getmouse(MEVENT *);
extern int ungetmouse(MEVENT *);
extern mmask_t mousemask(mmask_t, mmask_t *);
extern bool wenclose(const WINDOW *, int, int);
extern int mouseinterval(int);
extern bool wmouse_trafo(const WINDOW* win,int* y, int* x, bool to_screen);
extern int mcprint(char *, int);
extern int has_key(int);
extern void _tracef(const char *, ...) __attribute__((format(printf,1,2)));
extern void _tracedump(const char *, WINDOW *);
extern char *_traceattr(attr_t);
extern char *_traceattr2(int, chtype);
extern char *_nc_tracebits(void);
extern char *_tracechar(const unsigned char);
extern char *_tracechtype(chtype);
extern char *_tracechtype2(int, chtype);
extern char *_tracemouse(const MEVENT *);
extern void trace(const unsigned int);
# 105 "../progs/progs.priv.h" 2
# 1 "../include/term_entry.h" 1
# 47 "../include/term_entry.h"
# 1 "../include/term.h" 1
# 86 "../include/term.h"
# 1 "/usr/include/termios.h" 1 3 4
# 11 "/usr/include/termios.h" 3 4
#pragma ident "@(#)termios.h 1.6 92/07/14 SMI"
# 1 "/usr/include/sys/termios.h" 1 3 4
# 16 "/usr/include/sys/termios.h" 3 4
#pragma ident "@(#)termios.h 1.38 98/02/20 SMI"
# 1 "/usr/include/sys/ttydev.h" 1 3 4
# 11 "/usr/include/sys/ttydev.h" 3 4
#pragma ident "@(#)ttydev.h 1.7 92/07/14 SMI"
# 23 "/usr/include/sys/termios.h" 2 3 4
# 56 "/usr/include/sys/termios.h" 3 4
typedef unsigned int tcflag_t;
typedef unsigned char cc_t;
typedef unsigned int speed_t;
struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[19];
};
# 80 "/usr/include/sys/termios.h" 3 4
extern speed_t cfgetospeed(const struct termios *);
extern int cfsetospeed(struct termios *, speed_t);
extern speed_t cfgetispeed(const struct termios *);
extern int cfsetispeed(struct termios *, speed_t);
extern int tcgetattr(int, struct termios *);
extern int tcsetattr(int, int, const struct termios *);
extern int tcsendbreak(int, int);
extern int tcdrain(int);
extern int tcflush(int, int);
extern int tcflow(int, int);
# 110 "/usr/include/sys/termios.h" 3 4
extern pid_t tcgetsid(int);
# 374 "/usr/include/sys/termios.h" 3 4
struct ppsclockev {
struct timeval tv;
uint_t serial;
};
# 556 "/usr/include/sys/termios.h" 3 4
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
# 14 "/usr/include/termios.h" 2 3 4
# 87 "../include/term.h" 2
# 678 "../include/term.h"
typedef struct termtype {
char *term_names;
char *str_table;
char *Booleans;
short *Numbers;
char **Strings;
char *ext_str_table;
char **ext_Names;
unsigned short num_Booleans;
unsigned short num_Numbers;
unsigned short num_Strings;
unsigned short ext_Booleans;
unsigned short ext_Numbers;
unsigned short ext_Strings;
} TERMTYPE;
typedef struct term {
TERMTYPE type;
short Filedes;
struct termios Ottyb,
Nttyb;
int _baudrate;
} TERMINAL;
extern TERMINAL *cur_term;
# 733 "../include/term.h"
extern char *const boolnames[];
extern char *const boolcodes[];
extern char *const boolfnames[];
extern char *const numnames[];
extern char *const numcodes[];
extern char *const numfnames[];
extern char *const strnames[];
extern char *const strcodes[];
extern char *const strfnames[];
extern int _nc_set_tty_mode(struct termios *buf);
extern int _nc_get_tty_mode(struct termios *buf);
extern int _nc_read_entry(const char * const, char * const, TERMTYPE *const);
extern int _nc_read_file_entry(const char *const, TERMTYPE *);
extern char *_nc_first_name(const char *const);
extern int _nc_name_match(const char *const, const char *const, const char *const);
extern int _nc_read_termcap_entry(const char *const, TERMTYPE *const);
extern const TERMTYPE *_nc_fallback(const char *);
extern TERMINAL *set_curterm(TERMINAL *);
extern int del_curterm(TERMINAL *);
extern int restartterm( char *, int, int *);
extern int setupterm( char *,int,int *);
# 775 "../include/term.h"
extern char *tgetstr( char *, char **);
extern char *tgoto(const char *, int, int);
extern int tgetent(char *, const char *);
extern int tgetflag( char *);
extern int tgetnum( char *);
extern int tputs(const char *, int, int (*)(int));
# 48 "../include/term_entry.h" 2
typedef struct entry {
TERMTYPE tterm;
int nuses;
struct
{
char *name;
struct entry *link;
long line;
}
uses[32];
int ncrosslinks;
struct entry *crosslinks[16];
long cstart, cend;
long startline;
struct entry *next;
struct entry *last;
}
ENTRY;
# 93 "../include/term_entry.h"
extern ENTRY *_nc_head, *_nc_tail;
# 119 "../include/term_entry.h"
extern ENTRY *_nc_copy_entry(ENTRY *oldp);
extern char *_nc_save_str(const char *const);
extern void _nc_init_entry(TERMTYPE *const);
extern void _nc_merge_entry(TERMTYPE *const, TERMTYPE *const);
extern void _nc_wrap_entry(ENTRY *const);
extern void _nc_align_termtype(TERMTYPE *, TERMTYPE *);
extern void _nc_copy_termtype(TERMTYPE *, TERMTYPE *);
extern void _nc_free_termtype(TERMTYPE *);
extern void _nc_init_acs(void);
extern bool _nc_user_definable;
extern bool _nc_disable_period;
extern int _nc_parse_entry(ENTRY *, int, bool);
extern int _nc_capcmp(const char *, const char *);
extern void _nc_set_writedir(char *);
extern void _nc_write_entry(TERMTYPE *const);
extern void _nc_read_entry_source(FILE*, char*, int, bool, bool (*)(ENTRY*));
extern bool _nc_entry_match(char *, char *);
extern int _nc_resolve_uses(bool);
extern void _nc_free_entries(ENTRY *);
extern void (*_nc_check_termtype)(TERMTYPE *);
extern void _nc_trace_xnames(TERMTYPE *);
# 106 "../progs/progs.priv.h" 2
# 1 "../include/tic.h" 1
# 119 "../include/tic.h"
extern unsigned _nc_tracing;
extern void _nc_tracef(char *, ...) __attribute__((format(printf,1,2)));
extern const char *_nc_visbuf(const char *);
# 145 "../include/tic.h"
struct token
{
char *tk_name;
int tk_valnumber;
char *tk_valstring;
};
extern struct token _nc_curr_token;
struct kn {
const char *name;
int code;
};
extern const struct kn _nc_key_names[];
struct tinfo_fkeys {
unsigned offset;
chtype code;
};
# 180 "../include/tic.h"
extern struct tinfo_fkeys _nc_tinfo_fkeys[];
# 190 "../include/tic.h"
struct name_table_entry
{
const char *nte_name;
int nte_type;
short nte_index;
short nte_link;
};
struct alias
{
const char *from;
const char *to;
const char *source;
};
extern const struct name_table_entry * const _nc_info_hash_table[];
extern const struct name_table_entry * const _nc_cap_hash_table[];
extern const struct alias _nc_capalias_table[];
extern const struct alias _nc_infoalias_table[];
extern const struct name_table_entry *_nc_get_table(bool);
extern const struct name_table_entry * const *_nc_get_hash_table(bool);
# 241 "../include/tic.h"
extern char *_nc_basename(char *);
struct name_table_entry const *_nc_find_entry(const char *,
const struct name_table_entry *const *);
struct name_table_entry const *_nc_find_type_entry(const char *,
int,
const struct name_table_entry *);
extern int _nc_get_token(void);
extern void _nc_push_token(int);
extern void _nc_reset_input(FILE *, char *);
extern void _nc_panic_mode(char);
extern int _nc_curr_line;
extern int _nc_curr_col;
extern long _nc_curr_file_pos;
extern long _nc_comment_start, _nc_comment_end;
extern int _nc_syntax;
extern long _nc_start_line;
extern void _nc_set_source(const char *const name);
extern void _nc_get_type(char *name);
extern void _nc_set_type(const char *const name);
extern void _nc_syserr_abort(const char *const,...) __attribute__((format(printf,1,2))) __attribute__((noreturn));
extern void _nc_err_abort(const char *const,...) __attribute__((format(printf,1,2))) __attribute__((noreturn));
extern void _nc_warning(const char *const,...) __attribute__((format(printf,1,2)));
extern bool _nc_suppress_warnings;
extern char *_nc_tic_expand(const char *, bool, int);
extern char _nc_trans_string(char *, char *);
extern char *_nc_captoinfo(const char *, const char *, int const);
extern char *_nc_infotocap(const char *, const char *, int const);
extern int _nc_nulls_sent;
extern const char *_nc_progname;
extern const char *_nc_tic_dir(const char *);
extern int _nc_tic_written(void);
# 107 "../progs/progs.priv.h" 2
# 1 "../include/nc_alloc.h" 1
# 73 "../include/nc_alloc.h"
extern void *_nc_doalloc(void *, size_t);
# 108 "../progs/progs.priv.h" 2
# 3 "../progs/minicmp.c" 2
# 1 "../progs/dump_entry.h" 1
# 59 "../progs/dump_entry.h"
extern char *nametrans(const char *);
extern void dump_init(const char *, int, int, int, int, bool);
extern int fmt_entry(TERMTYPE *, int (*)(int, int), bool, bool, int);
extern int dump_entry(TERMTYPE *, bool, int, int (*)(int, int));
extern int dump_uses(const char *, bool);
extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
extern void repair_acsc(TERMTYPE * tp);
# 5 "../progs/minicmp.c" 2
static ENTRY entries[32];
static int termcount;
static int
use_predicate(int type, int idx)
{
ENTRY *ep;
switch (type) {
case 0:
{
int is_set = 0;
for (ep = &entries[1]; ep < entries + termcount; ep++)
if (ep->tterm.Booleans[idx] == 1) {
is_set = entries[0].tterm.Booleans[idx];
break;
}
if (is_set != entries[0].tterm.Booleans[idx])
return (!is_set);
else
return (-1);
}
case 2:
{
char *termstr, *usestr = (char *)0;
termstr = entries[0].tterm.Strings[idx];
for (ep = &entries[1]; ep < entries + termcount; ep++)
if (ep->tterm.Strings[idx]) {
usestr = ep->tterm.Strings[idx];
break;
}
}
}
return (0);
}
$
>Fix:
Workaround: compile without -O2 flag (removed from Makefile in progs directory).
>Release-Note:
>Audit-Trail:
>Unformatted: