From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30921 invoked by alias); 17 Jun 2002 12:46:10 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 30852 invoked by uid 71); 17 Jun 2002 12:46:04 -0000 Resent-Date: 17 Jun 2002 12:46:04 -0000 Resent-Message-ID: <20020617124604.30851.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, eamon@sonyoxford.co.uk Received: (qmail 26938 invoked from network); 17 Jun 2002 12:38:12 -0000 Received: from unknown (HELO mail1lo.highwayone.net) (195.70.64.22) by sources.redhat.com with SMTP; 17 Jun 2002 12:38:12 -0000 Received: from mailgw (mailgw.sonyoxford.co.uk [62.232.79.10]) by mail1lo.highwayone.net (8.9.3+Sun/8.9.3) with ESMTP id NAA13270 for ; Mon, 17 Jun 2002 13:34:49 +0100 (BST) Received: from 43.194.48.101 by mailgw ([43.194.48.3] running VPOP3) with SMTP for ; Mon, 17 Jun 2002 13:38:09 +0100 Received: from vodka by wicked.sonyoxford.co.uk (5.65v4.0/1.1.22.3/13Sep01-1022AM)id AA31785; Mon, 17 Jun 2002 13:38:09 +0100 Received: by vodka (5.65v4.0/1.1.22.3/29Nov00-0544PM)id AA12263; Mon, 17 Jun 2002 13:38:08 +0100 Message-Id: <200206171238.AA12263@vodka> Date: Mon, 17 Jun 2002 06:16:00 -0000 From: eamon@sonyoxford.co.uk Reply-To: eamon@sonyoxford.co.uk To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: c++/7055: G++ 3.1 debugging output problem with -gcoff flag (Also segv). X-SW-Source: 2002-06/txt/msg00391.txt.bz2 List-Id: >Number: 7055 >Category: c++ >Synopsis: G++ 3.1 Produced bad debugging entries if compiled with -gcoff, also segv. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon Jun 17 05:46:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Eamon Hughes. >Release: 3.1 >Organization: Sony BPE. >Environment: System: OSF1 vodka V4.0 1530 alpha Machine: alpha host: alphaev56-dec-osf4.0g build: alphaev56-dec-osf4.0g target: alphaev56-dec-osf4.0g configured with: ../../source/gcc-3.1/configure --srcdir=../../source/gcc-3.1 --prefix=/usr/global --exec-prefix=/usr/global/alphaev56-dec-osf4.0g >Description: G++ produces bad debugging information when feed it the following code... #include class cSocket { private: std::list *l_clients; }; int main(){ cSocket t; return(0); } and the following command line. g++ -v -save-temps -ansi -gcoff -Wall -pedantic -o socket socket.cxx You get... (Some snipped, the rest avail if required.) Reading specs from /usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/specs Configured with: ../../source/gcc-3.1/configure --srcdir=../../source/gcc-3.1 --prefix=/usr/global --exec-prefix=/usr/global/alphaev56-dec-osf4.0g Thread model: single gcc version 3.1 /usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/cpp0 -lang-c++ -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -D__STRICT_ANSI__ -trigraphs -$ -v -iprefix /usr/global/bin/../lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/ -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem=unix -Asystem=xpg4 -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus -Acpu=alpha -Amachine=alpha -D__alpha -D__alpha__ -D__alpha_ev5__ -Acpu=ev5 -D__alpha_bwx__ -Acpu=bwx -D__EXTERN_PREFIX socket.cxx -Wall -pedantic socket.ii GNU CPP version 3.1 (cpplib) ignoring nonexistent directory "/usr/global/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/../../../../../include/g++-v3" ignoring nonexistent directory "/usr/global/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/../../../../../include/g++-v3/alphaev56-dec-osf4.0g" ignoring nonexistent directory "/usr/global/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/../../../../../include/g++-v3/backward" ignoring nonexistent directory "/usr/global/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include" ignoring nonexistent directory "/usr/global/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/../../../../alphaev56-dec-osf4.0g/include" ignoring nonexistent directory "/usr/global/alphaev56-dec-osf4.0g/alphaev56-dec-osf4.0g/include" #include "..." search starts here: #include <...> search starts here: /usr/local/qt/include /usr/global/alphaev56-dec-osf4.0g/../include/g++-v3 /usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g /usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/backward /usr/local/include /usr/global/include /usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include /usr/include End of search list. /usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/cc1plus -fpreprocessed socket.ii -trigraphs -$ -quiet -dumpbase socket.cxx -ansi -gcoff -Wall -pedantic -ansi -version -o socket.s GNU CPP version 3.1 (cpplib) GNU C++ version 3.1 (alphaev56-dec-osf4.0g) compiled by GNU C version 3.1. socket.cxx: In function `int main()': socket.cxx:15: warning: unused variable `cSocket t' as -g -nocpp -O0 -o socket.o socket.s /usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/mips-tfile -v -I socket.o~ -o socket.o socket.s mips-tfile version 3.1 mips-tfile, socket.s:423 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 13__type_traitsIbE; .size 1; .endef mips-tfile, socket.s:424 compiler error, badly formed #.def (internal line # = 2916) line: #.def 13__type_traitsIbE; .scl 13; .tag 13__type_traitsIbE; .size 1; .type 0x8; .endef mips-tfile, socket.s:426 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 13__type_traitsIcE; .size 1; .endef mips-tfile, socket.s:427 compiler error, badly formed #.def (internal line # = 2916) line: #.def 13__type_traitsIcE; .scl 13; .tag 13__type_traitsIcE; .size 1; .type 0x8; .endef mips-tfile, socket.s:429 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 13__type_traitsIaE; .size 1; .endef mips-tfile, socket.s:430 compiler error, badly formed #.def (internal line # = 2916) line: #.def 13__type_traitsIaE; .scl 13; .tag 13__type_traitsIaE; .size 1; .type 0x8; .endef mips-tfile, socket.s:432 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 13__type_traitsIhE; .size 1; .endef ...snip... mips-tfile, socket.s:504 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 11_Is_integerIxE; .size 1; .endef mips-tfile, socket.s:505 compiler error, badly formed #.def (internal line # = 2916) line: #.def 11_Is_integerIxE; .scl 13; .tag 11_Is_integerIxE; .size 1; .type 0x8; .endef mips-tfile, socket.s:507 compiler error, badly formed #.def (internal line # = 2916) line: #.def .eos; .val 1; .scl 102; .tag 11_Is_integerIyE; .size 1; .endef mips-tfile, socket.s:508 compiler error, badly formed #.def (internal line # = 2916) line: #.def 11_Is_integerIyE; .scl 13; .tag 11_Is_integerIyE; .size 1; .type 0x8; .endef mips-tfile, socket.s:658 Segmentation fault line: .end main >How-To-Repeat: # 1 "socket.cxx" # 1 "" # 1 "" # 1 "socket.cxx" # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 1 3 # 65 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 1 3 # 34 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception_defines.h" 1 3 # 35 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 67 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 1 3 # 64 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++config.h" 1 3 # 34 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++config.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/os_defines.h" 1 3 # 35 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++config.h" 2 3 # 65 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstring" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstring" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstddef" 1 3 # 47 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstddef" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stddef.h" 1 3 # 147 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stddef.h" 3 typedef long int ptrdiff_t; # 201 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stddef.h" 3 typedef long unsigned int size_t; # 49 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstddef" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 50 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstring" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 1 3 # 58 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 extern "C" { # 1 "/usr/include/standards.h" 1 3 # 62 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 1 3 # 138 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef unsigned int wctype_t; typedef long fpos_t; typedef int time_t; typedef int clock_t; # 171 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef long ssize_t; typedef unsigned char uchar_t; typedef unsigned short ushort_t; typedef unsigned int uint_t; typedef unsigned long ulong_t; typedef volatile unsigned char vuchar_t; typedef volatile unsigned short vushort_t; typedef volatile unsigned int vuint_t; typedef volatile unsigned long vulong_t; typedef struct { long r[1]; } *physadr_t; typedef struct label_t { long val[10]; } label_t; # 240 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef int level_t; typedef int daddr_t; typedef char * caddr_t; typedef long * qaddr_t; typedef char * addr_t; typedef uint_t ino_t; typedef short cnt_t; typedef int dev_t; typedef int chan_t; # 316 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef long off_t; typedef unsigned long rlim_t; typedef int paddr_t; typedef ushort_t nlink_t; typedef int key_t; typedef uint_t mode_t; typedef uint_t uid_t; typedef uint_t gid_t; typedef void * mid_t; typedef int pid_t; typedef char slab_t[12]; typedef ulong_t shmatt_t; typedef ulong_t msgqnum_t; typedef ulong_t msglen_t; typedef unsigned int wint_t; typedef unsigned long sigset_t; # 387 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef struct __pthread_attr_t { long __valid; char* __name; unsigned long __arg; unsigned long __reserved[19]; } pthread_attr_t; typedef struct __pthread_mutexattr_t { long __valid; unsigned long __reserved[15]; } pthread_mutexattr_t; typedef struct __pthread_condattr_t { long __valid; unsigned long __reserved[13]; } pthread_condattr_t; typedef struct __pthread_rwlockattr_t { long __valid; unsigned long __reserved[15]; } pthread_rwlockattr_t; # 437 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef struct __pthread_t { void* __reserved1; void* __reserved2; unsigned short __size; unsigned char __version; unsigned char __reserved3; unsigned char __external; unsigned char __reserved4[2]; unsigned char __creator; unsigned long __sequence; unsigned long __reserved5[2]; void* __per_kt_area; void* __stack_base; void* __stack_reserve; void* __stack_yellow; void* __stack_guard; unsigned long __stack_size; void** __tsd_values; unsigned long __tsd_count; unsigned int __reserved6; unsigned int __reserved7; unsigned int __thread_flags; int __thd_errno; void* __stack_hiwater; } *pthread_t, pthreadTeb_t; typedef struct __pthread_mutex_t { unsigned int __lock; unsigned int __valid; char* __name; unsigned int __arg; unsigned int __depth; unsigned long __sequence; unsigned long __owner; void* __block; } pthread_mutex_t; typedef struct __pthread_cond_t { unsigned int __state; unsigned int __valid; char* __name; unsigned int __arg; unsigned int __reserved1; unsigned long __sequence; void* __block; } pthread_cond_t; typedef struct __pthread_rwlock_t { unsigned int __valid; unsigned int __flags; char* __name; unsigned int __arg; unsigned int __readers; unsigned int __rwaits; unsigned int __wwaits; unsigned long __sequence; unsigned long __wrid; void* __block; unsigned long __reserved1; } pthread_rwlock_t; typedef unsigned int pthread_key_t; typedef struct __pthread_once_t { long __state; long __reserved[10]; } pthread_once_t; # 513 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef long timer_t; # 533 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef void (*sig_t) (int,void (*)(int)); # 546 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef pid_t id_t; typedef unsigned int useconds_t; # 560 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 typedef uint_t major_t; typedef uint_t minor_t; typedef uint_t devs_t; typedef uint_t unit_t; # 583 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 3 # 1 "/usr/include/mach/machine/vm_types.h" 1 3 # 67 "/usr/include/mach/machine/vm_types.h" 3 typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; # 584 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 2 3 typedef uchar_t uchar; typedef ushort_t ushort; typedef uint_t uint; typedef ulong_t ulong; typedef physadr_t physadr; typedef uchar_t u_char; typedef ushort_t u_short; typedef uint_t u_int; typedef ulong_t u_long; typedef vuchar_t vu_char; typedef vushort_t vu_short; typedef vuint_t vu_int; typedef vulong_t vu_long; typedef struct _quad { int val[2]; } quad; typedef long swblk_t; typedef u_long fixpt_t; # 1 "/usr/include/sys/select.h" 1 3 # 44 "/usr/include/sys/select.h" 3 extern "C" { # 143 "/usr/include/sys/select.h" 3 typedef int fd_mask; # 167 "/usr/include/sys/select.h" 3 typedef struct fd_set { fd_mask fds_bits[(((4096)+(((sizeof(fd_mask) * 8))-1))/((sizeof(fd_mask) * 8)))]; } fd_set; # 220 "/usr/include/sys/select.h" 3 extern void bzero (char *, int); struct timeval; int select (int, fd_set *, fd_set *, fd_set *, struct timeval *); } # 617 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/types.h" 2 3 typedef unsigned char sa_family_t; typedef unsigned int in_addr_t; typedef unsigned short in_port_t; # 63 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 2 3 # 96 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 extern void *memchr (const void *, int , size_t ); extern void *memcpy (void *, const void *, size_t ); extern void *memset (void *, int , size_t ); extern size_t strcspn (const char *, const char *); extern size_t strlen (const char *); extern size_t strspn (const char *, const char *); 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 char *strchr (const char *, int ); extern char *strpbrk (const char *, const char *); extern char *strrchr (const char *, int ); extern char *strstr (const char *, const char *); extern char *strtok (char *, const char *); extern char *strerror (int); # 137 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 extern void *memccpy (void *, const void *, int , size_t ); # 146 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 extern void swab (const void *, void *, ssize_t); extern char *strdup (const char *); # 1 "/usr/include/strings.h" 1 3 # 61 "/usr/include/strings.h" 3 extern "C" { # 79 "/usr/include/strings.h" 3 extern int bcmp (const char *, const char *, int); extern void bcopy (const char *, char *, int); extern void bzero (char *, int); # 95 "/usr/include/strings.h" 3 extern int ffs (int); extern char *index (const char*, int); extern char *rindex (const char*, int); extern int strcasecmp (const char *, const char *); extern int strncasecmp (const char *, const char *, size_t ); # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 1 3 # 105 "/usr/include/strings.h" 2 3 } # 160 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 2 3 # 170 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 extern char * basename (char *); extern char * dirname (char *); # 191 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/string.h" 3 } # 52 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstring" 2 3 # 77 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstring" 3 namespace std { using ::memcpy; using ::memmove; using ::strcpy; using ::strncpy; using ::strcat; using ::strncat; using ::memcmp; using ::strcmp; using ::strcoll; using ::strncmp; using ::strxfrm; using ::strcspn; using ::strspn; using ::strtok; using ::memset; using ::strerror; using ::strlen; using ::memchr; inline void* memchr(void* __p, int __c, size_t __n) { return memchr(const_cast(__p), __c, __n); } using ::strchr; inline char* strchr(char* __s1, int __n) { return __builtin_strchr(const_cast(__s1), __n); } using ::strpbrk; inline char* strpbrk(char* __s1, const char* __s2) { return __builtin_strpbrk(const_cast(__s1), __s2); } using ::strrchr; inline char* strrchr(char* __s1, int __n) { return __builtin_strrchr(const_cast(__s1), __n); } using ::strstr; inline char* strstr(char* __s1, const char* __s2) { return __builtin_strstr(const_cast(__s1), __s2); } } # 66 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/climits" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/climits" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/limits.h" 1 3 # 11 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/limits.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 1 3 # 86 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 3 # 1 "/usr/include/machine/machlimits.h" 1 3 # 87 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 2 3 # 147 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 3 # 1 "/usr/include/sys/syslimits.h" 1 3 # 148 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 2 3 # 244 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 3 # 1 "/usr/include/machine/machtime.h" 1 3 # 245 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 2 3 # 261 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 3 # 1 "/usr/include/sys/rt_limits.h" 1 3 # 262 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/syslimits.h" 2 3 # 12 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/limits.h" 2 3 # 50 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/climits" 2 3 # 67 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdlib" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdlib" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 1 3 # 58 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern "C" { # 129 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 typedef struct div_t { int quot; int rem; } div_t; typedef struct ldiv_t { long int quot; long int rem; } ldiv_t; # 152 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern int __getmbcurmax (void); extern int mblen (const char *, size_t); extern size_t mbstowcs (wchar_t *, const char *, size_t); extern int mbtowc (wchar_t *, const char *, size_t); extern size_t wcstombs (char *, const wchar_t *, size_t); extern int wctomb (char *, wchar_t); extern int rpmatch (const char *); extern void *valloc (size_t ); 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 ); # 197 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern long a64l (const char *); extern char * l64a (long); extern int ttyslot (void); extern char *ptsname (int); # 221 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern void abort (void); extern int atexit (void (*)(void)); extern void exit (int ); 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 struct div_t div (int , int ); extern long int labs (long int ); extern struct ldiv_t ldiv (long int , long int ); # 249 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern int _Prand_r (unsigned int *); # 283 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 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 (const char *); extern void setkey (const char *); # 320 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 extern char *initstate (unsigned int, char *, size_t); extern char *setstate (const char *); extern int grantpt (int); extern int getsubopt (char **, char *const *, char **); extern int random (void); extern int srandom (unsigned int); extern char *realpath (const char *, char *); extern int unlockpt (int); # 344 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 # 1 "/usr/include/getopt.h" 1 3 # 40 "/usr/include/getopt.h" 3 extern "C" { extern int getopt (int, char * const [], const char *); } extern char *optarg; extern int optind; extern int optopt; extern int opterr; # 345 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 2 3 extern int clearenv (); extern char *getpass (const char *); extern char *mktemp (char *); extern int mkstemp (char *); # 366 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdlib.h" 3 char *ecvt (double, int, int *, int *); char *fcvt (double, int, int *, int *); char *gcvt (double, int, char *); } # 53 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdlib" 2 3 # 84 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdlib" 3 namespace std { using ::div_t; using ::ldiv_t; using ::abort; using ::abs; using ::atexit; using ::atof; using ::atoi; using ::atol; using ::bsearch; using ::calloc; using ::div; using ::exit; using ::free; using ::getenv; using ::labs; using ::ldiv; using ::malloc; using ::mblen; using ::mbstowcs; using ::mbtowc; using ::qsort; using ::rand; using ::realloc; using ::srand; using ::strtod; using ::strtol; using ::strtoul; using ::system; using ::wcstombs; using ::wctomb; inline long abs(long __i) { return labs(__i); } inline ldiv_t div(long __i, long __j) { return ldiv(__i, __j); } } # 68 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/new" 1 3 # 42 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/new" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception" 1 3 # 40 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception" 3 extern "C++" { namespace std { class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 98 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception" 3 bool uncaught_exception() throw(); } namespace __gnu_cxx { # 111 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception" 3 void __verbose_terminate_handler (); } } # 43 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/new" 2 3 extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler); } # 79 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/new" 3 void* operator new(std::size_t) throw (std::bad_alloc); void* operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void*) throw(); void operator delete[](void*) throw(); void* operator new(std::size_t, const std::nothrow_t&) throw(); void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } } # 70 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/iosfwd" 1 3 # 43 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/iosfwd" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stringfwd.h" 1 3 # 43 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stringfwd.h" 3 namespace std { template struct char_traits; template<> struct char_traits; template class allocator; template, typename _Alloc = allocator<_CharT> > class basic_string; typedef basic_string string; typedef basic_string wstring; } # 46 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/iosfwd" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/fpos.h" 1 3 # 43 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/fpos.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++io.h" 1 3 # 35 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++io.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdio" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdio" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 1 3 # 14 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdarg.h" 1 3 # 43 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdarg.h" 3 typedef __builtin_va_list __gnuc_va_list; # 15 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 2 3 # 128 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 # 1 "/usr/include/sys/seek.h" 1 3 # 129 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 2 3 typedef struct { int _cnt; unsigned int _flag2; unsigned char *_ptr; unsigned char *_base; int _bufsiz; short _flag; short _file; char *__newbase; void *_lock; unsigned char *_bufendp; } FILE; extern FILE _iob[]; # 160 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 extern "C" { extern size_t fread (void *, size_t, size_t, FILE *); extern size_t fwrite (const void *, size_t, size_t, FILE *); } extern "C" { extern int _flsbuf (int, FILE *); extern int _filbuf (FILE *); extern int ferror (FILE *); extern int feof (FILE *); extern void clearerr (FILE *); extern int putchar (int); extern int getchar (void); extern int putc (int, FILE *); extern int getc (FILE *); 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 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 sprintf (char *, const char *, ...); extern int sscanf (const char *, const char *, ...); # 200 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/va_list.h" 1 3 # 10 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/va_list.h" 3 typedef __gnuc_va_list va_list; # 201 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 2 3 extern int vfprintf (FILE *, const char *, __gnuc_va_list); extern int vprintf (const char *, __gnuc_va_list); extern int vsprintf (char *, const char *, __gnuc_va_list); # 215 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 extern int fgetc (FILE *); extern char *fgets (char *, int, FILE *); extern int fputc (int, FILE *); extern int fputs (const char *, FILE *); extern char *gets (char *); extern int puts (const char *); extern int ungetc (int, 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 perror (const char *); # 252 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 } # 376 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 extern "C" { extern int fileno (FILE *); extern FILE *fdopen (int, const char *); extern char *cuserid (char *); } # 404 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 extern "C" { extern char *ctermid (char *); extern int getw (FILE *); extern int pclose (FILE *); extern int putw (int, FILE*); extern FILE *popen (const char *, const char *); extern char *tempnam (const char*, const char*); } # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/sys/limits.h" 1 3 # 419 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 2 3 # 449 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/stdio.h" 3 extern "C" { extern void setbuffer (FILE *, char*, int); extern void setlinebuf (FILE *); } # 53 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdio" 2 3 # 97 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cstdio" 3 namespace std { using ::FILE; using ::fpos_t; using ::clearerr; using ::fclose; using ::feof; using ::ferror; using ::fflush; using ::fgetc; using ::fgetpos; using ::fgets; using ::fopen; using ::fprintf; using ::fputc; using ::fputs; using ::fread; using ::freopen; using ::fscanf; using ::fseek; using ::fsetpos; using ::ftell; using ::fwrite; using ::getc; using ::getchar; using ::gets; using ::perror; using ::printf; using ::putc; using ::putchar; using ::puts; using ::remove; using ::rename; using ::rewind; using ::scanf; using ::setbuf; using ::setvbuf; using ::sprintf; using ::sscanf; using ::tmpfile; using ::tmpnam; using ::ungetc; using ::vfprintf; using ::vprintf; using ::vsprintf; } # 36 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++io.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr.h" 1 3 # 102 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr-single.h" 1 3 # 34 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr-single.h" 3 typedef int __gthread_mutex_t; # 211 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr-single.h" 3 static inline int __gthread_active_p (void) { return 0; } static inline int __gthread_mutex_lock (__gthread_mutex_t * ) { return 0; } static inline int __gthread_mutex_trylock (__gthread_mutex_t * ) { return 0; } static inline int __gthread_mutex_unlock (__gthread_mutex_t * ) { return 0; } # 103 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/gthr.h" 2 3 # 38 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/alphaev56-dec-osf4.0g/bits/c++io.h" 2 3 namespace std { typedef long streamoff; typedef ptrdiff_t streamsize; typedef fpos_t __c_streampos; typedef __gthread_mutex_t __c_lock; typedef FILE __c_file; struct __ios_flags { typedef short __int_type; static const __int_type _S_boolalpha = 0x0001; static const __int_type _S_dec = 0x0002; static const __int_type _S_fixed = 0x0004; static const __int_type _S_hex = 0x0008; static const __int_type _S_internal = 0x0010; static const __int_type _S_left = 0x0020; static const __int_type _S_oct = 0x0040; static const __int_type _S_right = 0x0080; static const __int_type _S_scientific = 0x0100; static const __int_type _S_showbase = 0x0200; static const __int_type _S_showpoint = 0x0400; static const __int_type _S_showpos = 0x0800; static const __int_type _S_skipws = 0x1000; static const __int_type _S_unitbuf = 0x2000; static const __int_type _S_uppercase = 0x4000; static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; static const __int_type _S_floatfield = 0x0100 | 0x0004; static const __int_type _S_badbit = 0x01; static const __int_type _S_eofbit = 0x02; static const __int_type _S_failbit = 0x04; static const __int_type _S_app = 0x01; static const __int_type _S_ate = 0x02; static const __int_type _S_bin = 0x04; static const __int_type _S_in = 0x08; static const __int_type _S_out = 0x10; static const __int_type _S_trunc = 0x20; }; } # 45 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/fpos.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cwchar" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cwchar" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/ctime" 1 3 # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/ctime" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 1 3 # 62 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 extern "C" { # 102 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long tm_gmtoff; char *tm_zone; }; 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 *); # 149 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 extern char * _Pasctime_r (const struct tm *, char *); extern char * _Pctime_r (const time_t *, char *); extern struct tm * _Pgmtime_r (const time_t *, struct tm *); extern struct tm * _Plocaltime_r (const time_t *, struct tm *); # 194 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 # 1 "/usr/include/sys/timers.h" 1 3 # 39 "/usr/include/sys/timers.h" 3 extern "C" { # 1 "/usr/include/sys/sysmisc.h" 1 3 # 30 "/usr/include/sys/sysmisc.h" 3 extern "C" { # 45 "/usr/include/sys/sysmisc.h" 3 typedef struct sigaltstack { caddr_t ss_sp; int ss_flags; size_t ss_size; } stack_t; # 63 "/usr/include/sys/sysmisc.h" 3 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 79 "/usr/include/sys/sysmisc.h" 3 typedef struct sigevent_event { union sigval _sigev_value; int _sigev_signo; int _sigev_notify; } sigevent_event_t; typedef struct sigevent { sigevent_event_t _sigev_sigevent; union { int _sigev[(((64)/sizeof(int)) - 4)]; struct { void (*_sigev_notify_function) (sigval_t); pthread_attr_t *_sigev_notify_attributes; } _sigev_un_s; } _sigev_un; } sigevent_t; # 123 "/usr/include/sys/sysmisc.h" 3 typedef struct timespec { time_t tv_sec; long tv_nsec; } timespec_t; struct uuprof { short *pr_base; unsigned long pr_size; unsigned long pr_off; unsigned long pr_scale; }; } # 44 "/usr/include/sys/timers.h" 2 3 # 95 "/usr/include/sys/timers.h" 3 typedef int clockid_t; # 106 "/usr/include/sys/timers.h" 3 struct itimerspec { struct timespec it_interval; struct timespec it_value; }; # 132 "/usr/include/sys/timers.h" 3 int clock_gettime (clockid_t clock_id, struct timespec *tp); int clock_settime (clockid_t clock_id, const struct timespec *tp); int clock_getdrift (int clock_id, int *oppb); int clock_setdrift (int clock_id, const int ppb, int *oppb); int timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timer_created); int timer_delete (timer_t timerid); int timer_gettime (timer_t timerid, struct itimerspec *value); int timer_settime (timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); int timer_getoverrun (timer_t timerid); int nanosleep (const struct timespec *rqtp, struct timespec *rmtp); int clock_getres (clockid_t clock_id,struct timespec *res); } # 195 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 2 3 # 204 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 extern char *tzname[]; extern void tzset (void); extern long timezone; extern int daylight; extern char *strptime (const char *, const char *, struct tm *); # 239 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 extern unsigned char *NLctime (long *); extern unsigned char *NLasctime (struct tm *); extern char *NLstrtime (char *, size_t , const char *, const struct tm *); extern struct tm *getdate (char *); extern int getdate_err; # 255 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/time.h" 3 } # 52 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/ctime" 2 3 # 64 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/ctime" 3 namespace std { using ::clock_t; using ::time_t; using ::tm; using ::clock; using ::difftime; using ::mktime; using ::time; using ::asctime; using ::ctime; using ::gmtime; using ::localtime; using ::strftime; } # 52 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cwchar" 2 3 # 1 "/usr/include/wchar.h" 1 3 # 51 "/usr/include/wchar.h" 3 extern "C" { # 80 "/usr/include/wchar.h" 3 typedef struct { void *__hdr; void *__attrobj; void *__state; } mbstate_t; # 1 "/usr/include/wctype.h" 1 3 # 30 "/usr/include/wctype.h" 3 extern "C" { # 40 "/usr/include/wctype.h" 3 typedef unsigned long wctrans_t; # 58 "/usr/include/wctype.h" 3 extern wctrans_t wctrans (const char *); extern wint_t towctrans (wint_t, wctrans_t); extern int iswalpha (wint_t); extern int iswalnum (wint_t); extern int iswcntrl (wint_t); extern int iswdigit (wint_t); extern int iswgraph (wint_t); extern int iswlower (wint_t); extern int iswprint (wint_t); extern int iswpunct (wint_t); extern int iswspace (wint_t); extern int iswupper (wint_t); extern int iswxdigit (wint_t); extern wint_t towupper (wint_t); extern wint_t towlower (wint_t); extern int iswctype (wint_t, wctype_t); extern wctype_t wctype (char *); # 101 "/usr/include/wctype.h" 3 } # 89 "/usr/include/wchar.h" 2 3 extern wint_t fgetwc (FILE *); extern wchar_t *fgetws (wchar_t *, int, FILE *); extern wint_t fputwc (wint_t,FILE *); extern int fputws (const wchar_t *, FILE *); extern wint_t getwc (FILE *); extern wint_t putwc (wint_t, FILE *); extern wint_t getwchar (void); extern wint_t putwchar (wint_t); extern wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); extern int wmemcmp (const wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemcpy (wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); extern wchar_t *wmemset (wchar_t *, wchar_t, size_t); extern wchar_t *wcsstr (const wchar_t *, const wchar_t *); extern int wscanf (const wchar_t *, ...); extern int swscanf (const wchar_t *, const wchar_t *, ...); extern int fwscanf (FILE *, const wchar_t *, ...); extern int wprintf (const wchar_t *, ...); extern int swprintf (wchar_t *, size_t, const wchar_t *, ...); extern int fwprintf (FILE *, const wchar_t *, ...); extern int vwprintf (const wchar_t *, va_list); extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list); extern int vfwprintf (FILE *, const wchar_t *, va_list); extern wint_t btowc (int); extern int wctob (wint_t); extern int mbsinit (const mbstate_t *); extern size_t mbrlen (const char *, size_t, mbstate_t *); extern size_t mbrtowc (wchar_t *, const char *, size_t, mbstate_t *); extern size_t wcrtomb (char *, wchar_t, mbstate_t *); extern size_t mbsrtowcs (wchar_t *, const char **, size_t, mbstate_t *); extern size_t wcsrtombs (char *, const wchar_t **, size_t, mbstate_t *); # 138 "/usr/include/wchar.h" 3 extern wint_t ungetwc (wint_t, FILE *); extern double wcstod (const wchar_t *, wchar_t **); extern long int wcstol (const wchar_t *, wchar_t **, int); extern unsigned long int wcstoul (const wchar_t *, wchar_t **, int); extern wchar_t *wcscat (wchar_t *, const wchar_t *); extern wchar_t *wcschr (const wchar_t *, wchar_t); extern int wcscmp (const wchar_t *, const wchar_t *); extern int wcscoll (const wchar_t *, const wchar_t *); extern wchar_t *wcscpy (wchar_t *, const wchar_t *); extern size_t wcscspn (const wchar_t *, const wchar_t *); extern size_t wcslen (const wchar_t *); extern wchar_t *wcsncat (wchar_t *, const wchar_t *, size_t); extern int wcsncmp (const wchar_t *, const wchar_t *, size_t); extern wchar_t *wcsncpy (wchar_t *, const wchar_t *, size_t); extern wchar_t *wcspbrk (const wchar_t *, const wchar_t *); extern wchar_t *wcsrchr (const wchar_t *, wchar_t); extern size_t wcsspn (const wchar_t *, const wchar_t *); extern wchar_t *wcstok (wchar_t *, const wchar_t *); extern size_t wcsftime (wchar_t *, size_t, const char *, const struct tm *); extern wchar_t *wcswcs (const wchar_t *, const wchar_t *); extern int wcswidth (const wchar_t *, size_t); extern size_t wcsxfrm (wchar_t *, const wchar_t *, size_t); extern int wcwidth (const wchar_t); } # 55 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cwchar" 2 3 # 69 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cwchar" 3 namespace std { using ::mbstate_t; } # 46 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/fpos.h" 2 3 namespace std { template class fpos { public: typedef _StateT __state_type; private: streamoff _M_off; __state_type _M_st; public: __state_type state() const { return _M_st; } void state(__state_type __st) { _M_st = __st; } fpos(): _M_off(streamoff()), _M_st(__state_type()) { } fpos(streamoff __off, __state_type __st = __state_type()) : _M_off(__off), _M_st(__st) { } operator streamoff() const { return _M_off; } fpos& operator+=(streamoff __off) { _M_off += __off; return *this; } fpos& operator-=(streamoff __off) { _M_off -= __off; return *this; } fpos operator+(streamoff __off) { fpos __t(*this); __t += __off; return __t; } fpos operator-(streamoff __off) { fpos __t(*this); __t -= __off; return __t; } bool operator==(const fpos& __pos) const { return _M_off == __pos._M_off; } bool operator!=(const fpos& __pos) const { return _M_off != __pos._M_off; } streamoff _M_position() const { return _M_off; } void _M_position(streamoff __off) { _M_off = __off; } }; typedef fpos streampos; } # 47 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/iosfwd" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 1 3 # 34 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception_defines.h" 1 3 # 35 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 48 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/iosfwd" 2 3 namespace std { template > class basic_ios; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, typename _Alloc = allocator<_CharT> > class basic_stringbuf; template, typename _Alloc = allocator<_CharT> > class basic_istringstream; template, typename _Alloc = allocator<_CharT> > class basic_ostringstream; template, typename _Alloc = allocator<_CharT> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; template > class istreambuf_iterator; template > class ostreambuf_iterator; class ios_base; typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostringstream; typedef basic_stringstream stringstream; typedef basic_filebuf filebuf; typedef basic_ifstream ifstream; typedef basic_ofstream ofstream; typedef basic_fstream fstream; typedef basic_ios wios; typedef basic_streambuf wstreambuf; typedef basic_istream wistream; typedef basic_ostream wostream; typedef basic_iostream wiostream; typedef basic_stringbuf wstringbuf; typedef basic_istringstream wistringstream; typedef basic_ostringstream wostringstream; typedef basic_stringstream wstringstream; typedef basic_filebuf wfilebuf; typedef basic_ifstream wifstream; typedef basic_ofstream wofstream; typedef basic_fstream wfstream; } # 71 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_pair.h" 1 3 # 64 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_pair.h" 3 namespace std { template struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair() : first(), second() {} pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} template pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} }; template inline bool operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template inline bool operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x == __y); } template inline bool operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __y < __x; } template inline bool operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__y < __x); } template inline bool operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return !(__x < __y); } # 140 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_pair.h" 3 template inline pair<_T1, _T2> make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); } } # 72 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/type_traits.h" 1 3 # 53 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/type_traits.h" 3 # 90 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/type_traits.h" 3 struct __true_type {}; struct __false_type {}; template struct __type_traits { typedef __true_type this_dummy_member_must_be_first; # 113 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/type_traits.h" 3 typedef __false_type has_trivial_default_constructor; typedef __false_type has_trivial_copy_constructor; typedef __false_type has_trivial_assignment_operator; typedef __false_type has_trivial_destructor; typedef __false_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template<> struct __type_traits { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct __type_traits<_Tp*> { typedef __true_type has_trivial_default_constructor; typedef __true_type has_trivial_copy_constructor; typedef __true_type has_trivial_assignment_operator; typedef __true_type has_trivial_destructor; typedef __true_type is_POD_type; }; template struct _Is_integer { typedef __false_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template<> struct _Is_integer { typedef __true_type _Integral; }; template struct _Is_normal_iterator { typedef __false_type _Normal; }; namespace __gnu_cxx { template class __normal_iterator; } template struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, _Container> > { typedef __true_type _Normal; }; # 73 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_types.h" 1 3 # 68 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_types.h" 3 namespace std { # 80 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_types.h" 3 struct input_iterator_tag {}; struct output_iterator_tag {}; struct forward_iterator_tag : public input_iterator_tag {}; struct bidirectional_iterator_tag : public forward_iterator_tag {}; struct random_access_iterator_tag : public bidirectional_iterator_tag {}; # 100 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_types.h" 3 template struct iterator { typedef _Category iterator_category; typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; }; template struct iterator_traits { typedef typename _Iterator::iterator_category iterator_category; typedef typename _Iterator::value_type value_type; typedef typename _Iterator::difference_type difference_type; typedef typename _Iterator::pointer pointer; typedef typename _Iterator::reference reference; }; template struct iterator_traits<_Tp*> { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef _Tp& reference; }; template struct iterator_traits { typedef random_access_iterator_tag iterator_category; typedef _Tp value_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp& reference; }; template inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { return typename iterator_traits<_Iter>::iterator_category(); } } # 74 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_funcs.h" 1 3 # 68 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_funcs.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/concept_check.h" 1 3 # 39 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/concept_check.h" 3 # 69 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_funcs.h" 2 3 namespace std { template inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } template inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { return __last - __first; } # 111 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_funcs.h" 3 template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { return __distance(__first, __last, __iterator_category(__first)); } template inline void __advance(_InputIter& __i, _Distance __n, input_iterator_tag) { while (__n--) ++__i; } template inline void __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) { if (__n > 0) while (__n--) ++__i; else while (__n++) --__i; } template inline void __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) { __i += __n; } # 164 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator_base_funcs.h" 3 template inline void advance(_InputIterator& __i, _Distance __n) { __advance(__i, __n, __iterator_category(__i)); } } # 75 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 1 3 # 68 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 namespace std { # 89 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template class reverse_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator current; public: typedef _Iterator iterator_type; typedef typename iterator_traits<_Iterator>::difference_type difference_type; typedef typename iterator_traits<_Iterator>::reference reference; typedef typename iterator_traits<_Iterator>::pointer pointer; public: reverse_iterator() { } explicit reverse_iterator(iterator_type __x) : current(__x) { } reverse_iterator(const reverse_iterator& __x) : current(__x.current) { } template reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) { } iterator_type base() const { return current; } reference operator*() const { _Iterator __tmp = current; return *--__tmp; } pointer operator->() const { return &(operator*()); } reverse_iterator& operator++() { --current; return *this; } reverse_iterator operator++(int) { reverse_iterator __tmp = *this; --current; return __tmp; } reverse_iterator& operator--() { ++current; return *this; } reverse_iterator operator--(int) { reverse_iterator __tmp = *this; ++current; return __tmp; } reverse_iterator operator+(difference_type __n) const { return reverse_iterator(current - __n); } reverse_iterator& operator+=(difference_type __n) { current -= __n; return *this; } reverse_iterator operator-(difference_type __n) const { return reverse_iterator(current + __n); } reverse_iterator& operator-=(difference_type __n) { current += __n; return *this; } reference operator[](difference_type __n) const { return *(*this + __n); } }; # 269 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template inline bool operator==(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline bool operator<(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() < __x.base(); } template inline bool operator!=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x == __y); } template inline bool operator>(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y < __x; } template inline bool operator<=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__y < __x); } template inline bool operator>=(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return !(__x < __y); } template inline typename reverse_iterator<_Iterator>::difference_type operator-(const reverse_iterator<_Iterator>& __x, const reverse_iterator<_Iterator>& __y) { return __y.base() - __x.base(); } template inline reverse_iterator<_Iterator> operator+(typename reverse_iterator<_Iterator>::difference_type __n, const reverse_iterator<_Iterator>& __x) { return reverse_iterator<_Iterator>(__x.base() - __n); } # 327 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template class back_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit back_insert_iterator(_Container& __x) : container(&__x) { } # 353 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 back_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_back(__value); return *this; } back_insert_iterator& operator*() { return *this; } back_insert_iterator& operator++() { return *this; } back_insert_iterator operator++(int) { return *this; } }; # 384 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template inline back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } # 397 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template class front_insert_iterator : public iterator { protected: _Container* container; public: typedef _Container container_type; explicit front_insert_iterator(_Container& __x) : container(&__x) { } # 422 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 front_insert_iterator& operator=(typename _Container::const_reference __value) { container->push_front(__value); return *this; } front_insert_iterator& operator*() { return *this; } front_insert_iterator& operator++() { return *this; } front_insert_iterator operator++(int) { return *this; } }; # 453 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template inline front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } # 470 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template class insert_iterator : public iterator { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; insert_iterator(_Container& __x, typename _Container::iterator __i) : container(&__x), iter(__i) {} # 512 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 insert_iterator& operator=(const typename _Container::const_reference __value) { iter = container->insert(iter, __value); ++iter; return *this; } insert_iterator& operator*() { return *this; } insert_iterator& operator++() { return *this; } insert_iterator& operator++(int) { return *this; } }; # 544 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template inline insert_iterator<_Container> inserter(_Container& __x, _Iterator __i) { return insert_iterator<_Container>(__x, typename _Container::iterator(__i)); } } namespace __gnu_cxx { using std::iterator_traits; using std::iterator; template class __normal_iterator : public iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { protected: _Iterator _M_current; public: typedef typename iterator_traits<_Iterator>::difference_type difference_type; typedef typename iterator_traits<_Iterator>::reference reference; typedef typename iterator_traits<_Iterator>::pointer pointer; __normal_iterator() : _M_current(_Iterator()) { } explicit __normal_iterator(const _Iterator& __i) : _M_current(__i) { } template inline __normal_iterator(const __normal_iterator<_Iter, _Container>& __i) : _M_current(__i.base()) { } reference operator*() const { return *_M_current; } pointer operator->() const { return _M_current; } __normal_iterator& operator++() { ++_M_current; return *this; } __normal_iterator operator++(int) { return __normal_iterator(_M_current++); } __normal_iterator& operator--() { --_M_current; return *this; } __normal_iterator operator--(int) { return __normal_iterator(_M_current--); } reference operator[](const difference_type& __n) const { return _M_current[__n]; } __normal_iterator& operator+=(const difference_type& __n) { _M_current += __n; return *this; } __normal_iterator operator+(const difference_type& __n) const { return __normal_iterator(_M_current + __n); } __normal_iterator& operator-=(const difference_type& __n) { _M_current -= __n; return *this; } __normal_iterator operator-(const difference_type& __n) const { return __normal_iterator(_M_current - __n); } difference_type operator-(const __normal_iterator& __i) const { return _M_current - __i._M_current; } const _Iterator& base() const { return _M_current; } }; # 649 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_iterator.h" 3 template inline bool operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator==(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() == __rhs.base(); } template inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() != __rhs.base(); } template inline bool operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator<(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() < __rhs.base(); } template inline bool operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator>(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() > __rhs.base(); } template inline bool operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() <= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline bool operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, const __normal_iterator<_Iterator, _Container>& __rhs) { return __lhs.base() >= __rhs.base(); } template inline __normal_iterator<_Iterator, _Container> operator+(typename __normal_iterator<_Iterator, _Container>::difference_type __n, const __normal_iterator<_Iterator, _Container>& __i) { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } } # 76 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 2 3 namespace std { # 91 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline void iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) { typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1; typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2; _ValueType1 __tmp = *__a; *__a = *__b; *__b = __tmp; } # 118 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline void swap(_Tp& __a, _Tp& __b) { _Tp __tmp = __a; __a = __b; __b = __tmp; } # 146 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b) { if (__b < __a) return __b; return __a; } # 166 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b) { if (__a < __b) return __b; return __a; } # 186 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__b, __a)) return __b; return __a; } # 204 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { if (__comp(__a, __b)) return __b; return __a; } # 221 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline _OutputIter __copy(_InputIter __first, _InputIter __last, _OutputIter __result, input_iterator_tag) { for ( ; __first != __last; ++__result, ++__first) *__result = *__first; return __result; } template inline _OutputIter __copy(_RandomAccessIter __first, _RandomAccessIter __last, _OutputIter __result, random_access_iterator_tag) { typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; for (_Distance __n = __last - __first; __n > 0; --__n) { *__result = *__first; ++__first; ++__result; } return __result; } template inline _Tp* __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) { memmove(__result, __first, sizeof(_Tp) * (__last - __first)); return __result + (__last - __first); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { return __copy(__first, __last, __result, __iterator_category(__first)); } template inline _Tp* __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _Tp* __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result, __true_type) { return __copy_trivial(__first, __last, __result); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { typedef typename iterator_traits<_InputIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator _Trivial; return _OutputIter(__copy_aux2(__first, __last, __result.base(), _Trivial())); } template inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { typedef typename iterator_traits<_InputIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator _Trivial; return __copy_aux2(__first, __last, __result, _Trivial()); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __true_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); } template inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, _OutputIter __result, __false_type) { typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; return __copy_ni2(__first, __last, __result, __Normal()); } # 339 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline _OutputIter copy(_InputIter __first, _InputIter __last, _OutputIter __result) { typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; return __copy_ni1(__first, __last, __result, __Normal()); } template inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result, bidirectional_iterator_tag) { while (__first != __last) *--__result = *--__last; return __result; } template inline _BidirectionalIter __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, _BidirectionalIter __result, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIter>::difference_type __n; for (__n = __last - __first; __n > 0; --__n) *--__result = *--__last; return __result; } template struct __copy_backward_dispatch { static _BidirectionalIter2 copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, _BidirectionalIter2 __result) { return __copy_backward(__first, __last, __result, __iterator_category(__first)); } }; template struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { const ptrdiff_t _Num = __last - __first; memmove(__result - _Num, __first, sizeof(_Tp) * _Num); return __result - _Num; } }; template struct __copy_backward_dispatch { static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> ::copy(__first, __last, __result); } }; template inline _BI2 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename __type_traits::value_type> ::has_trivial_assignment_operator _Trivial; return __copy_backward_dispatch<_BI1, _BI2, _Trivial> ::copy(__first, __last, __result); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } template inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { return __copy_backward_aux(__first, __last, __result); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __true_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first.base(), __last.base(), __result, __Normal()); } template inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, _BI2 __result, __false_type) { typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; return __copy_backward_output_normal_iterator(__first, __last, __result, __Normal()); } # 477 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) { typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; return __copy_backward_input_normal_iterator(__first, __last, __result, __Normal()); } # 509 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) { for ( ; __first != __last; ++__first) *__first = __value; } # 531 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template _OutputIter fill_n(_OutputIter __first, _Size __n, const _Tp& __value) { for ( ; __n > 0; --__n, ++__first) *__first = __value; return __first; } inline void fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) { unsigned char __tmp = __c; memset(__first, __tmp, __last - __first); } inline void fill(signed char* __first, signed char* __last, const signed char& __c) { signed char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } inline void fill(char* __first, char* __last, const char& __c) { char __tmp = __c; memset(__first, static_cast(__tmp), __last - __first); } template inline unsigned char* fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline signed char* fill_n(char* __first, _Size __n, const signed char& __c) { fill(__first, __first + __n, __c); return __first + __n; } template inline char* fill_n(char* __first, _Size __n, const char& __c) { fill(__first, __first + __n, __c); return __first + __n; } # 606 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { while (__first1 != __last1 && *__first1 == *__first2) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } # 640 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { ++__first1; ++__first2; } return pair<_InputIter1, _InputIter2>(__first1, __first2); } # 668 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2) { for ( ; __first1 != __last1; ++__first1, ++__first2) if (!(*__first1 == *__first2)) return false; return true; } # 699 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template inline bool equal(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _BinaryPredicate __binary_pred) { for ( ; __first1 != __last1; ++__first1, ++__first2) if (!__binary_pred(*__first1, *__first2)) return false; return true; } # 732 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2) { for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (*__first1 < *__first2) return true; if (*__first2 < *__first1) return false; } return __first1 == __last1 && __first2 != __last2; } # 767 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_algobase.h" 3 template bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { for ( ; __first1 != __last1 && __first2 != __last2 ; ++__first1, ++__first2) { if (__comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return __first1 == __last1 && __first2 != __last2; } inline bool lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, const unsigned char* __first2, const unsigned char* __last2) { const size_t __len1 = __last1 - __first1; const size_t __len2 = __last2 - __first2; const int __result = memcmp(__first1, __first2, min(__len1, __len2)); return __result != 0 ? __result < 0 : __len1 < __len2; } inline bool lexicographical_compare(const char* __first1, const char* __last1, const char* __first2, const char* __last2) { return lexicographical_compare((const signed char*) __first1, (const signed char*) __last1, (const signed char*) __first2, (const signed char*) __last2); } } # 68 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 1 3 # 84 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cassert" 1 3 # 47 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cassert" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/assert.h" 1 3 # 93 "/usr/global/alphaev56-dec-osf4.0g/lib/gcc-lib/alphaev56-dec-osf4.0g/3.1/include/assert.h" 3 extern "C" { extern void __assert(const char *, const char *, int); } # 49 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/cassert" 2 3 # 85 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 1 3 # 34 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/exception_defines.h" 1 3 # 35 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/functexcept.h" 2 3 namespace std { void __throw_bad_exception(void); void __throw_bad_alloc(void); void __throw_bad_cast(void); void __throw_bad_typeid(void); void __throw_logic_error(const char* __s); void __throw_domain_error(const char* __s); void __throw_invalid_argument(const char* __s); void __throw_length_error(const char* __s); void __throw_out_of_range(const char* __s); void __throw_runtime_error(const char* __s); void __throw_range_error(const char* __s); void __throw_overflow_error(const char* __s); void __throw_underflow_error(const char* __s); void __throw_ios_failure(const char* __s); } # 86 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 1 3 # 54 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 3 namespace std { struct _Refcount_Base { typedef size_t _RC_t; volatile _RC_t _M_ref_count; __gthread_mutex_t _M_ref_count_lock; _Refcount_Base(_RC_t __n) : _M_ref_count(__n) { __gthread_mutex_t __tmp = 0; _M_ref_count_lock = __tmp; } void _M_incr() { __gthread_mutex_lock(&_M_ref_count_lock); ++_M_ref_count; __gthread_mutex_unlock(&_M_ref_count_lock); } _RC_t _M_decr() { __gthread_mutex_lock(&_M_ref_count_lock); volatile _RC_t __tmp = --_M_ref_count; __gthread_mutex_unlock(&_M_ref_count_lock); return __tmp; } }; # 109 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 3 template struct _Swap_lock_struct { static __gthread_mutex_t _S_swap_lock; }; template __gthread_mutex_t _Swap_lock_struct<__dummy>::_S_swap_lock = 0; inline unsigned long _Atomic_swap(unsigned long * __p, unsigned long __q) { __gthread_mutex_lock(&_Swap_lock_struct<0>::_S_swap_lock); unsigned long __result = *__p; *__p = __q; __gthread_mutex_unlock(&_Swap_lock_struct<0>::_S_swap_lock); return __result; } # 151 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 3 struct _STL_mutex_lock { __gthread_mutex_t _M_lock; void _M_initialize() { # 184 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 3 } void _M_acquire_lock() { __gthread_mutex_lock(&_M_lock); } void _M_release_lock() { __gthread_mutex_unlock(&_M_lock); } }; # 220 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_threads.h" 3 struct _STL_auto_lock { _STL_mutex_lock& _M_lock; _STL_auto_lock(_STL_mutex_lock& __lock) : _M_lock(__lock) { _M_lock._M_acquire_lock(); } ~_STL_auto_lock() { _M_lock._M_release_lock(); } private: void operator=(const _STL_auto_lock&); _STL_auto_lock(const _STL_auto_lock&); }; } # 87 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 2 3 namespace std { # 98 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 class __new_alloc { public: static void* allocate(size_t __n) { return ::operator new(__n); } static void deallocate(void* __p, size_t) { ::operator delete(__p); } }; # 121 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template class __malloc_alloc_template { private: static void* _S_oom_malloc(size_t); static void* _S_oom_realloc(void*, size_t); static void (* __malloc_alloc_oom_handler)(); public: static void* allocate(size_t __n) { void* __result = malloc(__n); if (0 == __result) __result = _S_oom_malloc(__n); return __result; } static void deallocate(void* __p, size_t ) { free(__p); } static void* reallocate(void* __p, size_t , size_t __new_sz) { void* __result = realloc(__p, __new_sz); if (0 == __result) __result = _S_oom_realloc(__p, __new_sz); return __result; } static void (* __set_malloc_handler(void (*__f)()))() { void (* __old)() = __malloc_alloc_oom_handler; __malloc_alloc_oom_handler = __f; return(__old); } }; template void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0; template void* __malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n) { void (* __my_malloc_handler)(); void* __result; for (;;) { __my_malloc_handler = __malloc_alloc_oom_handler; if (0 == __my_malloc_handler) std::__throw_bad_alloc(); (*__my_malloc_handler)(); __result = malloc(__n); if (__result) return(__result); } } template void* __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t __n) { void (* __my_malloc_handler)(); void* __result; for (;;) { __my_malloc_handler = __malloc_alloc_oom_handler; if (0 == __my_malloc_handler) std::__throw_bad_alloc(); (*__my_malloc_handler)(); __result = realloc(__p, __n); if (__result) return(__result); } } typedef __new_alloc __mem_interface; # 219 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template class __simple_alloc { public: static _Tp* allocate(size_t __n) { return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp)); } static _Tp* allocate() { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); } static void deallocate(_Tp* __p, size_t __n) { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); } static void deallocate(_Tp* __p) { _Alloc::deallocate(__p, sizeof (_Tp)); } }; # 251 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template class __debug_alloc { private: enum {_S_extra = 8}; public: static void* allocate(size_t __n) { char* __result = (char*)_Alloc::allocate(__n + (int) _S_extra); *(size_t*)__result = __n; return __result + (int) _S_extra; } static void deallocate(void* __p, size_t __n) { char* __real_p = (char*)__p - (int) _S_extra; ((*(size_t*)__real_p == __n) ? (void)0 : __assert("*(size_t*)__real_p == __n", "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h", 270)); _Alloc::deallocate(__real_p, __n + (int) _S_extra); } static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz) { char* __real_p = (char*)__p - (int) _S_extra; ((*(size_t*)__real_p == __old_sz) ? (void)0 : __assert("*(size_t*)__real_p == __old_sz", "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h", 277)); char* __result = (char*) _Alloc::reallocate(__real_p, __old_sz + (int) _S_extra, __new_sz + (int) _S_extra); *(size_t*)__result = __new_sz; return __result + (int) _S_extra; } }; # 324 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template class __default_alloc_template { private: enum {_ALIGN = 8}; enum {_MAX_BYTES = 128}; enum {_NFREELISTS = _MAX_BYTES / _ALIGN}; union _Obj { union _Obj* _M_free_list_link; char _M_client_data[1]; }; static _Obj* volatile _S_free_list[_NFREELISTS]; static char* _S_start_free; static char* _S_end_free; static size_t _S_heap_size; static _STL_mutex_lock _S_node_allocator_lock; static size_t _S_round_up(size_t __bytes) { return (((__bytes) + (size_t) _ALIGN-1) & ~((size_t) _ALIGN - 1)); } static size_t _S_freelist_index(size_t __bytes) { return (((__bytes) + (size_t)_ALIGN-1)/(size_t)_ALIGN - 1); } static void* _S_refill(size_t __n); static char* _S_chunk_alloc(size_t __size, int& __nobjs); class _Lock { public: _Lock() { if (__threads) _S_node_allocator_lock._M_acquire_lock(); } ~_Lock() { if (__threads) _S_node_allocator_lock._M_release_lock(); } } __attribute__ ((__unused__)); friend class _Lock; public: static void* allocate(size_t __n) { void* __ret = 0; if (__n > (size_t) _MAX_BYTES) __ret = __mem_interface::allocate(__n); else { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__n); _Lock __lock_instance; _Obj* __restrict__ __result = *__my_free_list; if (__result == 0) __ret = _S_refill(_S_round_up(__n)); else { *__my_free_list = __result -> _M_free_list_link; __ret = __result; } } return __ret; }; static void deallocate(void* __p, size_t __n) { if (__n > (size_t) _MAX_BYTES) __mem_interface::deallocate(__p, __n); else { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__n); _Obj* __q = (_Obj*)__p; _Lock __lock_instance; __q -> _M_free_list_link = *__my_free_list; *__my_free_list = __q; } } static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz); }; template inline bool operator==(const __default_alloc_template<__threads, __inst>&, const __default_alloc_template<__threads, __inst>&) { return true; } template inline bool operator!=(const __default_alloc_template<__threads, __inst>&, const __default_alloc_template<__threads, __inst>&) { return false; } template char* __default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t __size, int& __nobjs) { char* __result; size_t __total_bytes = __size * __nobjs; size_t __bytes_left = _S_end_free - _S_start_free; if (__bytes_left >= __total_bytes) { __result = _S_start_free; _S_start_free += __total_bytes; return(__result); } else if (__bytes_left >= __size) { __nobjs = (int)(__bytes_left/__size); __total_bytes = __size * __nobjs; __result = _S_start_free; _S_start_free += __total_bytes; return(__result); } else { size_t __bytes_to_get = 2 * __total_bytes + _S_round_up(_S_heap_size >> 4); if (__bytes_left > 0) { _Obj* volatile* __my_free_list = _S_free_list + _S_freelist_index(__bytes_left); ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list; *__my_free_list = (_Obj*)_S_start_free; } _S_start_free = (char*) __mem_interface::allocate(__bytes_to_get); if (0 == _S_start_free) { size_t __i; _Obj* volatile* __my_free_list; _Obj* __p; __i = __size; for (; __i <= (size_t) _MAX_BYTES; __i += (size_t) _ALIGN) { __my_free_list = _S_free_list + _S_freelist_index(__i); __p = *__my_free_list; if (0 != __p) { *__my_free_list = __p -> _M_free_list_link; _S_start_free = (char*)__p; _S_end_free = _S_start_free + __i; return(_S_chunk_alloc(__size, __nobjs)); } } _S_end_free = 0; _S_start_free = (char*)__mem_interface::allocate(__bytes_to_get); } _S_heap_size += __bytes_to_get; _S_end_free = _S_start_free + __bytes_to_get; return(_S_chunk_alloc(__size, __nobjs)); } } template void* __default_alloc_template<__threads, __inst>::_S_refill(size_t __n) { int __nobjs = 20; char* __chunk = _S_chunk_alloc(__n, __nobjs); _Obj* volatile* __my_free_list; _Obj* __result; _Obj* __current_obj; _Obj* __next_obj; int __i; if (1 == __nobjs) return(__chunk); __my_free_list = _S_free_list + _S_freelist_index(__n); __result = (_Obj*)__chunk; *__my_free_list = __next_obj = (_Obj*)(__chunk + __n); for (__i = 1; ; __i++) { __current_obj = __next_obj; __next_obj = (_Obj*)((char*)__next_obj + __n); if (__nobjs - 1 == __i) { __current_obj -> _M_free_list_link = 0; break; } else { __current_obj -> _M_free_list_link = __next_obj; } } return(__result); } template void* __default_alloc_template::reallocate(void* __p, size_t __old_sz, size_t __new_sz) { void* __result; size_t __copy_sz; if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) { return(realloc(__p, __new_sz)); } if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) return(__p); __result = allocate(__new_sz); __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz; memcpy(__result, __p, __copy_sz); deallocate(__p, __old_sz); return(__result); } template _STL_mutex_lock __default_alloc_template<__threads, __inst>::_S_node_allocator_lock = { 0 }; template char* __default_alloc_template<__threads, __inst>::_S_start_free = 0; template char* __default_alloc_template<__threads, __inst>::_S_end_free = 0; template size_t __default_alloc_template<__threads, __inst>::_S_heap_size = 0; template typename __default_alloc_template<__threads, __inst>::_Obj* volatile __default_alloc_template<__threads, __inst>::_S_free_list[_NFREELISTS]; typedef __default_alloc_template __alloc; typedef __default_alloc_template __single_client_alloc; # 613 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template class allocator { typedef __alloc _Alloc; public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef allocator<_Tp1> other; }; allocator() throw() {} allocator(const allocator&) throw() {} template allocator(const allocator<_Tp1>&) throw() {} ~allocator() throw() {} pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } _Tp* allocate(size_type __n, const void* = 0) { return __n != 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp))) : 0; } void deallocate(pointer __p, size_type __n) { _Alloc::deallocate(__p, __n * sizeof(_Tp)); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } void destroy(pointer __p) { __p->~_Tp(); } }; template<> class allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef allocator<_Tp1> other; }; }; template inline bool operator==(const allocator<_T1>&, const allocator<_T2>&) { return true; } template inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&) { return false; } # 695 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template struct __allocator { _Alloc __underlying_alloc; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; __allocator() throw() {} __allocator(const __allocator& __a) throw() : __underlying_alloc(__a.__underlying_alloc) {} template __allocator(const __allocator<_Tp1, _Alloc>& __a) throw() : __underlying_alloc(__a.__underlying_alloc) {} ~__allocator() throw() {} pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } _Tp* allocate(size_type __n, const void* = 0) { return __n != 0 ? static_cast<_Tp*>(__underlying_alloc.allocate(__n * sizeof(_Tp))) : 0; } void deallocate(pointer __p, size_type __n) { __underlying_alloc.deallocate(__p, __n * sizeof(_Tp)); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); } void destroy(pointer __p) { __p->~_Tp(); } }; template class __allocator { typedef size_t size_type; typedef ptrdiff_t difference_type; typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template struct rebind { typedef __allocator<_Tp1, _Alloc> other; }; }; template inline bool operator==(const __allocator<_Tp, _Alloc>& __a1, const __allocator<_Tp, _Alloc>& __a2) { return __a1.__underlying_alloc == __a2.__underlying_alloc; } template inline bool operator!=(const __allocator<_Tp, _Alloc>& __a1, const __allocator<_Tp, _Alloc>& __a2) { return __a1.__underlying_alloc != __a2.__underlying_alloc; } template inline bool operator==(const __malloc_alloc_template&, const __malloc_alloc_template&) { return true; } template inline bool operator!=(const __malloc_alloc_template<__inst>&, const __malloc_alloc_template<__inst>&) { return false; } template inline bool operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return true; } template inline bool operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return false; } # 840 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_alloc.h" 3 template struct _Alloc_traits { static const bool _S_instanceless = false; typedef typename _Allocator::template rebind<_Tp>::other allocator_type; }; template const bool _Alloc_traits<_Tp, _Allocator>::_S_instanceless; template struct _Alloc_traits<_Tp, allocator<_Tp1> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __alloc> _Alloc_type; typedef allocator<_Tp> allocator_type; }; template struct _Alloc_traits<_Tp, __malloc_alloc_template<__inst> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __default_alloc_template<__threads, __inst> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __default_alloc_template<__threads, __inst> > _Alloc_type; typedef __allocator<_Tp, __default_alloc_template<__threads, __inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __malloc_alloc_template<__inst> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __malloc_alloc_template<__inst> > _Alloc_type; typedef __allocator<_Tp, __malloc_alloc_template<__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __default_alloc_template<__thr, __inst> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __default_alloc_template<__thr,__inst> > _Alloc_type; typedef __allocator<_Tp, __default_alloc_template<__thr,__inst> > allocator_type; }; template struct _Alloc_traits<_Tp, __allocator<_Tp1, __debug_alloc<_Alloc> > > { static const bool _S_instanceless = true; typedef __simple_alloc<_Tp, __debug_alloc<_Alloc> > _Alloc_type; typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; }; extern template class allocator; extern template class allocator; extern template class __default_alloc_template; } # 69 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_construct.h" 1 3 # 67 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_construct.h" 3 namespace std { template inline void _Construct(_T1* __p, const _T2& __value) { new (static_cast(__p)) _T1(__value); } template inline void _Construct(_T1* __p) { new (static_cast(__p)) _T1(); } # 98 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, __false_type) { for ( ; __first != __last; ++__first) _Destroy(&*__first); } # 112 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_construct.h" 3 template inline void __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) { } template inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } # 134 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_construct.h" 3 template inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; typedef typename __type_traits<_Value_type>::has_trivial_destructor _Has_trivial_destructor; __destroy_aux(__first, __last, _Has_trivial_destructor()); } } # 70 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 1 3 # 66 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 3 namespace std { template inline _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __true_type) { return copy(__first, __last, __result); } template _ForwardIter __uninitialized_copy_aux(_InputIter __first, _InputIter __last, _ForwardIter __result, __false_type) { _ForwardIter __cur = __result; try { for ( ; __first != __last; ++__first, ++__cur) _Construct(&*__cur, *__first); return __cur; } catch(...) { _Destroy(__result, __cur); throw; } } # 106 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 3 template inline _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); } inline char* uninitialized_copy(const char* __first, const char* __last, char* __result) { memmove(__result, __first, __last - __first); return __result + (__last - __first); } inline wchar_t* uninitialized_copy(const wchar_t* __first, const wchar_t* __last, wchar_t* __result) { memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); return __result + (__last - __first); } template inline void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __true_type) { fill(__first, __last, __x); } template void __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __cur != __last; ++__cur) _Construct(&*__cur, __x); } catch(...) { _Destroy(__first, __cur); throw; } } # 164 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 3 template inline void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); } template inline _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __true_type) { return fill_n(__first, __n, __x); } template _ForwardIter __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, const _Tp& __x, __false_type) { _ForwardIter __cur = __first; try { for ( ; __n > 0; --__n, ++__cur) _Construct(&*__cur, __x); return __cur; } catch(...) { _Destroy(__first, __cur); throw; } } # 210 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 3 template inline _ForwardIter uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) { typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); } # 227 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_uninitialized.h" 3 template inline _ForwardIter __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _ForwardIter __result) { _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); try { return uninitialized_copy(__first2, __last2, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline _ForwardIter __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp& __x, _InputIter __first, _InputIter __last) { uninitialized_fill(__result, __mid, __x); try { return uninitialized_copy(__first, __last, __mid); } catch(...) { _Destroy(__result, __mid); throw; } } template inline void __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, const _Tp& __x) { _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); try { uninitialized_fill(__mid2, __last2, __x); } catch(...) { _Destroy(__first2, __mid2); throw; } } } # 71 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 1 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_list.h" 1 3 # 66 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_list.h" 3 namespace std { struct _List_node_base { _List_node_base* _M_next; _List_node_base* _M_prev; }; template struct _List_node : public _List_node_base { _Tp _M_data; }; struct _List_iterator_base { typedef size_t size_type; typedef ptrdiff_t difference_type; typedef bidirectional_iterator_tag iterator_category; _List_node_base* _M_node; _List_iterator_base(_List_node_base* __x) : _M_node(__x) { } _List_iterator_base() { } void _M_incr() { _M_node = _M_node->_M_next; } void _M_decr() { _M_node = _M_node->_M_prev; } bool operator==(const _List_iterator_base& __x) const { return _M_node == __x._M_node; } bool operator!=(const _List_iterator_base& __x) const { return _M_node != __x._M_node; } }; template struct _List_iterator : public _List_iterator_base { typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; typedef _List_iterator<_Tp,_Ref,_Ptr> _Self; typedef _Tp value_type; typedef _Ptr pointer; typedef _Ref reference; typedef _List_node<_Tp> _Node; _List_iterator(_Node* __x) : _List_iterator_base(__x) { } _List_iterator() { } _List_iterator(const iterator& __x) : _List_iterator_base(__x._M_node) { } reference operator*() const { return ((_Node*) _M_node)->_M_data; } pointer operator->() const { return &(operator*()); } _Self& operator++() { this->_M_incr(); return *this; } _Self operator++(int) { _Self __tmp = *this; this->_M_incr(); return __tmp; } _Self& operator--() { this->_M_decr(); return *this; } _Self operator--(int) { _Self __tmp = *this; this->_M_decr(); return __tmp; } }; # 185 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_list.h" 3 template class _List_alloc_base { public: typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type allocator_type; allocator_type get_allocator() const { return _Node_allocator; } _List_alloc_base(const allocator_type& __a) : _Node_allocator(__a) { } protected: _List_node<_Tp>* _M_get_node() { return _Node_allocator.allocate(1); } void _M_put_node(_List_node<_Tp>* __p) { _Node_allocator.deallocate(__p, 1); } protected: typename _Alloc_traits<_List_node<_Tp>, _Allocator>::allocator_type _Node_allocator; _List_node<_Tp>* _M_node; }; template class _List_alloc_base<_Tp, _Allocator, true> { public: typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type allocator_type; allocator_type get_allocator() const { return allocator_type(); } _List_alloc_base(const allocator_type&) { } protected: typedef typename _Alloc_traits<_List_node<_Tp>, _Allocator>::_Alloc_type _Alloc_type; _List_node<_Tp>* _M_get_node() { return _Alloc_type::allocate(1); } void _M_put_node(_List_node<_Tp>* __p) { _Alloc_type::deallocate(__p, 1); } protected: _List_node<_Tp>* _M_node; }; template class _List_base : public _List_alloc_base<_Tp, _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> { public: typedef _List_alloc_base<_Tp, _Alloc, _Alloc_traits<_Tp, _Alloc>::_S_instanceless> _Base; typedef typename _Base::allocator_type allocator_type; _List_base(const allocator_type& __a) : _Base(__a) { _M_node = _M_get_node(); _M_node->_M_next = _M_node; _M_node->_M_prev = _M_node; } ~_List_base() { clear(); _M_put_node(_M_node); } void clear(); }; # 289 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/bits/stl_list.h" 3 template > class list : protected _List_base<_Tp, _Alloc> { typedef _List_base<_Tp, _Alloc> _Base; protected: typedef void* _Void_pointer; public: typedef _Tp value_type; typedef value_type* pointer; typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; typedef _List_node<_Tp> _Node; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef typename _Base::allocator_type allocator_type; typedef _List_iterator<_Tp,_Tp&,_Tp*> iterator; typedef _List_iterator<_Tp,const _Tp&,const _Tp*> const_iterator; typedef reverse_iterator const_reverse_iterator; typedef reverse_iterator reverse_iterator; protected: using _Base::_M_node; using _Base::_M_put_node; using _Base::_M_get_node; protected: _Node* _M_create_node(const _Tp& __x) { _Node* __p = _M_get_node(); try { _Construct(&__p->_M_data, __x); } catch(...) { _M_put_node(__p); throw; } return __p; } _Node* _M_create_node() { _Node* __p = _M_get_node(); try { _Construct(&__p->_M_data); } catch(...) { _M_put_node(__p); throw; } return __p; } public: allocator_type get_allocator() const { return _Base::get_allocator(); } explicit list(const allocator_type& __a = allocator_type()) : _Base(__a) { } iterator begin() { return static_cast<_Node*>(_M_node->_M_next); } const_iterator begin() const { return static_cast<_Node*>(_M_node->_M_next); } iterator end() { return _M_node; } const_iterator end() const { return _M_node; } reverse_iterator rbegin() { return reverse_iterator(end()); } const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } reverse_iterator rend() { return reverse_iterator(begin()); } const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } bool empty() const { return _M_node->_M_next == _M_node; } size_type size() const { return distance(begin(), end()); } size_type max_size() const { return size_type(-1); } reference front() { return *begin(); } const_reference front() const { return *begin(); } reference back() { return *(--end()); } const_reference back() const { return *(--end()); } void swap(list<_Tp, _Alloc>& __x) { std::swap(_M_node, __x._M_node); } iterator insert(iterator __position, const _Tp& __x) { _Node* __tmp = _M_create_node(__x); __tmp->_M_next = __position._M_node; __tmp->_M_prev = __position._M_node->_M_prev; __position._M_node->_M_prev->_M_next = __tmp; __position._M_node->_M_prev = __tmp; return __tmp; } iterator insert(iterator __position) { return insert(__position, _Tp()); } template void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, __true_type) { _M_fill_insert(__pos, (size_type) __n, (_Tp) __x); } template void _M_insert_dispatch(iterator __pos, _InputIterator __first, _InputIterator __last, __false_type); template void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_insert_dispatch(__pos, __first, __last, _Integral()); } void insert(iterator __pos, size_type __n, const _Tp& __x) { _M_fill_insert(__pos, __n, __x); } void _M_fill_insert(iterator __pos, size_type __n, const _Tp& __x); void push_front(const _Tp& __x) { insert(begin(), __x); } void push_front() { insert(begin()); } void push_back(const _Tp& __x) { insert(end(), __x); } void push_back() { insert(end()); } iterator erase(iterator __position) { _List_node_base* __next_node = __position._M_node->_M_next; _List_node_base* __prev_node = __position._M_node->_M_prev; _Node* __n = static_cast<_Node*>(__position._M_node); __prev_node->_M_next = __next_node; __next_node->_M_prev = __prev_node; _Destroy(&__n->_M_data); _M_put_node(__n); return iterator(static_cast<_Node*>(__next_node)); } iterator erase(iterator __first, iterator __last); void clear() { _Base::clear(); } void resize(size_type __new_size, const _Tp& __x); void resize(size_type __new_size) { this->resize(__new_size, _Tp()); } void pop_front() { erase(begin()); } void pop_back() { iterator __tmp = end(); erase(--__tmp); } list(size_type __n, const _Tp& __value, const allocator_type& __a = allocator_type()) : _Base(__a) { insert(begin(), __n, __value); } explicit list(size_type __n) : _Base(allocator_type()) { insert(begin(), __n, _Tp()); } template list(_InputIterator __first, _InputIterator __last, const allocator_type& __a = allocator_type()) : _Base(__a) { insert(begin(), __first, __last); } list(const list<_Tp, _Alloc>& __x) : _Base(__x.get_allocator()) { insert(begin(), __x.begin(), __x.end()); } ~list() { } list<_Tp, _Alloc>& operator=(const list<_Tp, _Alloc>& __x); public: void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); } void _M_fill_assign(size_type __n, const _Tp& __val); template void assign(_InputIterator __first, _InputIterator __last) { typedef typename _Is_integer<_InputIterator>::_Integral _Integral; _M_assign_dispatch(__first, __last, _Integral()); } template void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) { _M_fill_assign((size_type) __n, (_Tp) __val); } template void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type); protected: void _M_transfer(iterator __position, iterator __first, iterator __last) { if (__position != __last) { __last._M_node->_M_prev->_M_next = __position._M_node; __first._M_node->_M_prev->_M_next = __last._M_node; __position._M_node->_M_prev->_M_next = __first._M_node; _List_node_base* __tmp = __position._M_node->_M_prev; __position._M_node->_M_prev = __last._M_node->_M_prev; __last._M_node->_M_prev = __first._M_node->_M_prev; __first._M_node->_M_prev = __tmp; } } public: void splice(iterator __position, list& __x) { if (!__x.empty()) this->_M_transfer(__position, __x.begin(), __x.end()); } void splice(iterator __position, list&, iterator __i) { iterator __j = __i; ++__j; if (__position == __i || __position == __j) return; this->_M_transfer(__position, __i, __j); } void splice(iterator __position, list&, iterator __first, iterator __last) { if (__first != __last) this->_M_transfer(__position, __first, __last); } void remove(const _Tp& __value); void unique(); void merge(list& __x); void reverse(); void sort(); template void remove_if(_Predicate); template void unique(_BinaryPredicate); template void merge(list&, _StrictWeakOrdering); template void sort(_StrictWeakOrdering); }; template inline bool operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { typedef typename list<_Tp,_Alloc>::const_iterator const_iterator; const_iterator __end1 = __x.end(); const_iterator __end2 = __y.end(); const_iterator __i1 = __x.begin(); const_iterator __i2 = __y.begin(); while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) { ++__i1; ++__i2; } return __i1 == __end1 && __i2 == __end2; } template inline bool operator<(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template inline bool operator!=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__x == __y); } template inline bool operator>(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return __y < __x; } template inline bool operator<=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__y < __x); } template inline bool operator>=(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { return !(__x < __y); } template inline void swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) { __x.swap(__y); } template void _List_base<_Tp,_Alloc>:: clear() { _List_node<_Tp>* __cur = static_cast<_List_node<_Tp>*>(_M_node->_M_next); while (__cur != _M_node) { _List_node<_Tp>* __tmp = __cur; __cur = static_cast<_List_node<_Tp>*>(__cur->_M_next); _Destroy(&__tmp->_M_data); _M_put_node(__tmp); } _M_node->_M_next = _M_node; _M_node->_M_prev = _M_node; } template template void list<_Tp, _Alloc>:: _M_insert_dispatch(iterator __position, _InputIter __first, _InputIter __last, __false_type) { for ( ; __first != __last; ++__first) insert(__position, *__first); } template void list<_Tp, _Alloc>:: _M_fill_insert(iterator __position, size_type __n, const _Tp& __x) { for ( ; __n > 0; --__n) insert(__position, __x); } template typename list<_Tp,_Alloc>::iterator list<_Tp, _Alloc>:: erase(iterator __first, iterator __last) { while (__first != __last) erase(__first++); return __last; } template void list<_Tp, _Alloc>:: resize(size_type __new_size, const _Tp& __x) { iterator __i = begin(); size_type __len = 0; for ( ; __i != end() && __len < __new_size; ++__i, ++__len) ; if (__len == __new_size) erase(__i, end()); else insert(end(), __new_size - __len, __x); } template list<_Tp, _Alloc>& list<_Tp, _Alloc>:: operator=(const list<_Tp, _Alloc>& __x) { if (this != &__x) { iterator __first1 = begin(); iterator __last1 = end(); const_iterator __first2 = __x.begin(); const_iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) *__first1++ = *__first2++; if (__first2 == __last2) erase(__first1, __last1); else insert(__last1, __first2, __last2); } return *this; } template void list<_Tp, _Alloc>:: _M_fill_assign(size_type __n, const _Tp& __val) { iterator __i = begin(); for ( ; __i != end() && __n > 0; ++__i, --__n) *__i = __val; if (__n > 0) insert(end(), __n, __val); else erase(__i, end()); } template template void list<_Tp, _Alloc>:: _M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type) { iterator __first1 = begin(); iterator __last1 = end(); for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2) *__first1 = *__first2; if (__first2 == __last2) erase(__first1, __last1); else insert(__last1, __first2, __last2); } template void list<_Tp, _Alloc>:: remove(const _Tp& __value) { iterator __first = begin(); iterator __last = end(); while (__first != __last) { iterator __next = __first; ++__next; if (*__first == __value) erase(__first); __first = __next; } } template void list<_Tp, _Alloc>:: unique() { iterator __first = begin(); iterator __last = end(); if (__first == __last) return; iterator __next = __first; while (++__next != __last) { if (*__first == *__next) erase(__next); else __first = __next; __next = __first; } } template void list<_Tp, _Alloc>:: merge(list<_Tp, _Alloc>& __x) { iterator __first1 = begin(); iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) if (*__first2 < *__first1) { iterator __next = __first2; _M_transfer(__first1, __first2, ++__next); __first2 = __next; } else ++__first1; if (__first2 != __last2) _M_transfer(__last1, __first2, __last2); } inline void __List_base_reverse(_List_node_base* __p) { _List_node_base* __tmp = __p; do { std::swap(__tmp->_M_next, __tmp->_M_prev); __tmp = __tmp->_M_prev; } while (__tmp != __p); } template inline void list<_Tp, _Alloc>:: reverse() { __List_base_reverse(this->_M_node); } template void list<_Tp, _Alloc>:: sort() { if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) { list<_Tp, _Alloc> __carry; list<_Tp, _Alloc> __counter[64]; int __fill = 0; while (!empty()) { __carry.splice(__carry.begin(), *this, begin()); int __i = 0; while(__i < __fill && !__counter[__i].empty()) { __counter[__i].merge(__carry); __carry.swap(__counter[__i++]); } __carry.swap(__counter[__i]); if (__i == __fill) ++__fill; } for (int __i = 1; __i < __fill; ++__i) __counter[__i].merge(__counter[__i-1]); swap(__counter[__fill-1]); } } template template void list<_Tp, _Alloc>:: remove_if(_Predicate __pred) { iterator __first = begin(); iterator __last = end(); while (__first != __last) { iterator __next = __first; ++__next; if (__pred(*__first)) erase(__first); __first = __next; } } template template void list<_Tp, _Alloc>:: unique(_BinaryPredicate __binary_pred) { iterator __first = begin(); iterator __last = end(); if (__first == __last) return; iterator __next = __first; while (++__next != __last) { if (__binary_pred(*__first, *__next)) erase(__next); else __first = __next; __next = __first; } } template template void list<_Tp, _Alloc>:: merge(list<_Tp, _Alloc>& __x, _StrictWeakOrdering __comp) { iterator __first1 = begin(); iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); while (__first1 != __last1 && __first2 != __last2) if (__comp(*__first2, *__first1)) { iterator __next = __first2; _M_transfer(__first1, __first2, ++__next); __first2 = __next; } else ++__first1; if (__first2 != __last2) _M_transfer(__last1, __first2, __last2); } template template void list<_Tp, _Alloc>:: sort(_StrictWeakOrdering __comp) { if (_M_node->_M_next != _M_node && _M_node->_M_next->_M_next != _M_node) { list<_Tp, _Alloc> __carry; list<_Tp, _Alloc> __counter[64]; int __fill = 0; while (!empty()) { __carry.splice(__carry.begin(), *this, begin()); int __i = 0; while(__i < __fill && !__counter[__i].empty()) { __counter[__i].merge(__carry, __comp); __carry.swap(__counter[__i++]); } __carry.swap(__counter[__i]); if (__i == __fill) ++__fill; } for (int __i = 1; __i < __fill; ++__i) __counter[__i].merge(__counter[__i-1], __comp); swap(__counter[__fill-1]); } } } # 72 "/usr/global/alphaev56-dec-osf4.0g/../include/g++-v3/list" 2 3 # 7 "socket.cxx" 2 class cSocket { private: std::list *l_clients; }; int main(){ cSocket t; return(0); } >Fix: g++ -v -ansi -g -Wall -pedantic -o socket socket.cxx -g works but having problems with gdb5.1 and gdb5.0 on the alpha works better with -gcoff. Thanks. Eamon. http://www.sonyoxford.co.uk http://www.sonyplugins.com >Release-Note: >Audit-Trail: >Unformatted: