This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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:


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