public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* Internal Compiler Error..
@ 1998-08-17  7:09 John Stone
  1998-08-18 18:14 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: John Stone @ 1998-08-17  7:09 UTC (permalink / raw)
  To: egcs-bugs

I got this from the egcs that's currently included with mkLinux:

[johns@madrid]$ gcc -v
Reading specs from /opt/egcs/lib/gcc-lib/powerpc-unknown-linux-gnulibc1/egcs-2.90.25/specs
gcc version egcs-2.90.25 980302 (egcs-1.0.2 prerelease)

NameList.c: In method `int NameList<int>::data(char *, int = (-1))':
NameList.c:186: Internal compiler error.
NameList.c:186: Please submit a full bug report to `egcs-bugs@cygnus.com'.

line 186 is "return Data[i];", and its part of the following template:

// returns the data for the given name.  If the second argument is
// given and is > 0, it is used as the max length of the names to check
// for a match.  If is is <= 0, an exact match must be found.
template<class T>
T NameList<T>::data(char *nm, int maxlen) {
  if(!nm)
    return Data[0];
  if(maxlen <= 0) {
    for(int i=0; i < num(); i++) {
      if(!strcmp(nm, names[i]))
        return Data[i];           <-- line 186
    }
  } else {
    for(int i=0; i < num(); i++) {
      if(!strncmp(nm, names[i], maxlen))
        return Data[i];
    }
  }
  return Data[0];
}

Hope this helps someone...

  John Stone
  johns@ks.uiuc.edu

-- 

Theoretical Biophysics Group   Email: johns@ks.uiuc.edu
Beckman Institute              http://www.ks.uiuc.edu/~johns/
University of Illinois         Phone:  (217) 244-3349
405 N. Mathews  Ave              FAX:  (217) 244-6078 
Urbana, IL 61801, USA          Unix Is Good For You!!!



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error..
  1998-08-17  7:09 Internal Compiler Error John Stone
@ 1998-08-18 18:14 ` Alexandre Oliva
  1998-08-21 14:19   ` John Stone
  0 siblings, 1 reply; 387+ messages in thread
From: Alexandre Oliva @ 1998-08-18 18:14 UTC (permalink / raw)
  To: John Stone; +Cc: egcs-bugs

John Stone <johns@ks.uiuc.edu> writes:

> I got this from the egcs that's currently included with mkLinux:

> NameList.c: In method `int NameList<int>::data(char *, int = (-1))':
> NameList.c:186: Internal compiler error.
> NameList.c:186: Please submit a full bug report to `egcs-bugs@cygnus.com'.

You have not supplied enough information for us to reproduce the bug;
we need a complete code snippet.  Please compile your source code with
-save-temps and send us `NameList.ii'.  gzip and bzip2 compression are
ok, and so are uuencoded or base64 attachments.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error..
  1998-08-18 18:14 ` Alexandre Oliva
@ 1998-08-21 14:19   ` John Stone
  1998-08-21 23:58     ` John Stone
  0 siblings, 1 reply; 387+ messages in thread
From: John Stone @ 1998-08-21 14:19 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: johns, egcs-bugs

> 
> John Stone <johns@ks.uiuc.edu> writes:
> 
> > I got this from the egcs that's currently included with mkLinux:
> 
> > NameList.c: In method `int NameList<int>::data(char *, int = (-1))':
> > NameList.c:186: Internal compiler error.
> > NameList.c:186: Please submit a full bug report to `egcs-bugs@cygnus.com'.
> 
> You have not supplied enough information for us to reproduce the bug;
> we need a complete code snippet.  Please compile your source code with
> -save-temps and send us `NameList.ii'.  gzip and bzip2 compression are
> ok, and so are uuencoded or base64 attachments.

Ok, I've found that this bug is platform independent, it also happens with
on x86 machines: egcs-2.90.29 980515 (egcs-1.0.3 release)

I'll send you the NameList.ii file in a little while, I have to recompile
with the -save-temps for you.

I should have the info for you soon.

  John Stone
  johns@ks.uiuc.edu

-- 

Theoretical Biophysics Group   Email: johns@ks.uiuc.edu
Beckman Institute              http://www.ks.uiuc.edu/~johns/
University of Illinois         Phone:  (217) 244-3349
405 N. Mathews  Ave              FAX:  (217) 244-6078 
Urbana, IL 61801, USA          Unix Is Good For You!!!



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error..
  1998-08-21 14:19   ` John Stone
@ 1998-08-21 23:58     ` John Stone
  0 siblings, 0 replies; 387+ messages in thread
From: John Stone @ 1998-08-21 23:58 UTC (permalink / raw)
  To: John Stone; +Cc: oliva, johns, egcs-bugs

> > > I got this from the egcs that's currently included with mkLinux:
> > 
> > > NameList.c: In method `int NameList<int>::data(char *, int = (-1))':
> > > NameList.c:186: Internal compiler error.
> > > NameList.c:186: Please submit a full bug report to `egcs-bugs@cygnus.com'.
> > 
> > You have not supplied enough information for us to reproduce the bug;
> > we need a complete code snippet.  Please compile your source code with
> > -save-temps and send us `NameList.ii'.  gzip and bzip2 compression are
> > ok, and so are uuencoded or base64 attachments.

The compiler did not generate a "NameList.ii" file.
The error occured during the compilation of "Axes.C", so I'll include that
ii file for you, along with sources etc.
If you need more information, I'll be happy to supply it to you.

  John Stone
  johns@ks.uiuc.edu

begin 644 vmd.iifiles.tar.gz
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
%&`"H`@``
`
end



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 2009-01-23  3:14 Jason Zhang
  0 siblings, 0 replies; 387+ messages in thread
From: Jason Zhang @ 2009-01-23  3:14 UTC (permalink / raw)
  To: petermorgan, gcc-bugs

G'Day Prof. Peter Morgan

This is Jason Zhang from RSES ANU. While I was recompiling the GAMIT due to 
change of my laptop (x-86-64), I encounterred an internal compiling bug which 
occurs when doing
gfortran -O3 -Wuninitialized -fno-f2c -ffast-math -fno-automatic -fno-backslash 
tssum.f  ../gen_util/gen_util_lib.a ../../libraries/matrix/
kinv_lib.a ../../libraries/comlib/com_lib.a  -o tssum

it happens:
        "tssum.f: In function ‘remove_ejmp’:
        tssum.f:712: internal compiler error: in set_uids_in_ptset, at 
tree-ssa-structalias.c:4785
        Please submit a full bug report ..."

with my system details as
Linux burnie 2.6.25.18-0.2-default #1 SMP 2008-10-21 16:30:26 +0200 x86_64 
x86_64 x86_64 GNU/Linux
running OpenSuse 11.0

It is in tracking "nternal compiler error: in set_uids_in_ptset, at 
tree-ssa-structalias.c:4785" that I found your email address suggesting once 
you faced the same thing. It seems to say that the bug has been fixed. 
Could you please tell me how it is fixed?

Happy Australian Day!

With best regards,
Jason


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2005-07-24 22:49 Internal " TJ Hooka
@ 2005-07-24 22:53 ` Andrew Pinski
  0 siblings, 0 replies; 387+ messages in thread
From: Andrew Pinski @ 2005-07-24 22:53 UTC (permalink / raw)
  To: TJ Hooka; +Cc: gcc-bugs

> 
> This is a multi-part message in MIME format.
> 
> ------=_NextPart_000_0035_01C5906D.A0EF4EC0
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> Content-Transfer-Encoding: 7bit
> 
> GCC Version: 4.0.1
> System Type: Windows ME
> Options given when GCC was configured/built: arm-elf-gcc -v
> Complete command line that triggers the bug:
> 
> arm-elf-gcc  -O2 -marm -march=armv4t -mtune=arm920t -mapcs -fomit-frame-poin
> ter -fshort-enums -ffast-math -fshort-double -mstructure-size-boundary=32 -m
> no-thumb -interwork -I/c/gamepark_sdk/include -Wno-multichar -save-temps  -c
> wl_menu.c -o  wl_menu.o
> 
> Compiler Output:
> 
> wl_menu.c: In function 'WaitKeyUp':
> wl_menu.c:3028: internal compiler error: in c_common_type, at c-typeck.c:530
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> MAKE: *** [wl_menu.o] Error 1
> 
> And I have included the .i file relevant.

This is PR 22311: <http://gcc.gnu.org/PR22311>.

Thanks,
Andrew Pinski


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2005-07-24 22:49 TJ Hooka
  2005-07-24 22:53 ` Andrew Pinski
  0 siblings, 1 reply; 387+ messages in thread
From: TJ Hooka @ 2005-07-24 22:49 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 760 bytes --]

GCC Version: 4.0.1
System Type: Windows ME
Options given when GCC was configured/built: arm-elf-gcc -v
Complete command line that triggers the bug:

arm-elf-gcc  -O2 -marm -march=armv4t -mtune=arm920t -mapcs -fomit-frame-poin
ter -fshort-enums -ffast-math -fshort-double -mstructure-size-boundary=32 -m
no-thumb -interwork -I/c/gamepark_sdk/include -Wno-multichar -save-temps  -c
wl_menu.c -o  wl_menu.o

Compiler Output:

wl_menu.c: In function 'WaitKeyUp':
wl_menu.c:3028: internal compiler error: in c_common_type, at c-typeck.c:530
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
MAKE: *** [wl_menu.o] Error 1

And I have included the .i file relevant.

Thanks
   TJ Hooka

[-- Attachment #2: wl_menu.i --]
[-- Type: application/octet-stream, Size: 137031 bytes --]

# 1 "wl_menu.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "wl_menu.c"






# 1 "wl_def.h" 1



# 1 "id_heads.h" 1



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 1 3
# 29 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 15 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/newlib.h" 1 3
# 16 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 2 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/config.h" 1 3



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/ieeefp.h" 1 3
# 5 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/config.h" 2 3
# 17 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 2 3
# 30 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3




# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 214 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 35 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3


# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stdarg.h" 1 3 4
# 43 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 38 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3







# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 1 3
# 14 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/_types.h" 1 3
# 12 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/_types.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/lock.h" 1 3





typedef int _LOCK_T;
typedef int _LOCK_RECURSIVE_T;
# 13 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/_types.h" 2 3

typedef long _off_t;
__extension__ typedef long long _off64_t;


typedef int _ssize_t;





# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 355 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 25 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/_types.h" 2 3


typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    unsigned char __wchb[4];
  } __value;
} _mbstate_t;

typedef _LOCK_RECURSIVE_T _flock_t;


typedef void *_iconv_t;
# 15 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 2 3




typedef unsigned long __ULong;
# 40 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct _Bigint
{
  struct _Bigint *_next;
  int _k, _maxwds, _sign, _wds;
  __ULong _x[1];
};


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;
};







struct _on_exit_args {
 void * _fnargs[32];
 void * _dso_handle[32];

 __ULong _fntypes;


 __ULong _is_cxa;
};
# 85 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct _atexit {
 struct _atexit *_next;
 int _ind;

 void (*_fns[32])(void);
        struct _on_exit_args _on_exit_args;
};
# 101 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct __sbuf {
 unsigned char *_base;
 int _size;
};






typedef long _fpos_t;
# 166 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct __sFILE {
  unsigned char *_p;
  int _r;
  int _w;
  short _flags;
  short _file;
  struct __sbuf _bf;
  int _lbfsize;






  void * _cookie;

  int (*_read) (void * _cookie, char *_buf, int _n);
  int (*_write) (void * _cookie, const char *_buf, int _n);

  _fpos_t (*_seek) (void * _cookie, _fpos_t _offset, int _whence);
  int (*_close) (void * _cookie);


  struct __sbuf _ub;
  unsigned char *_up;
  int _ur;


  unsigned char _ubuf[3];
  unsigned char _nbuf[1];


  struct __sbuf _lb;


  int _blksize;
  int _offset;


  struct _reent *_data;



  _flock_t _lock;

};
# 259 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
typedef struct __sFILE __FILE;


struct _glue
{
  struct _glue *_next;
  int _niobs;
  __FILE *_iobs;
};
# 290 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct _rand48 {
  unsigned short _seed[3];
  unsigned short _mult[3];
  unsigned short _add;




};
# 565 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
struct _reent
{
  int _errno;




  __FILE *_stdin, *_stdout, *_stderr;

  int _inc;
  char _emergency[25];

  int _current_category;
  const char *_current_locale;

  int __sdidinit;

  void (*__cleanup) (struct _reent *);


  struct _Bigint *_result;
  int _result_k;
  struct _Bigint *_p5s;
  struct _Bigint **_freelist;


  int _cvtlen;
  char *_cvtbuf;

  union
    {
      struct
        {
          unsigned int _unused_rand;
          char * _strtok_last;
          char _asctime_buf[26];
          struct __tm _localtime_buf;
          int _gamma_signgam;
          __extension__ unsigned long long _rand_next;
          struct _rand48 _r48;
          _mbstate_t _mblen_state;
          _mbstate_t _mbtowc_state;
          _mbstate_t _wctomb_state;
          char _l64a_buf[8];
          char _signal_buf[24];
          int _getdate_err;
          _mbstate_t _mbrlen_state;
          _mbstate_t _mbrtowc_state;
          _mbstate_t _mbsrtowcs_state;
          _mbstate_t _wcrtomb_state;
          _mbstate_t _wcsrtombs_state;
        } _reent;



      struct
        {

          unsigned char * _nextf[30];
          unsigned int _nmalloc[30];
        } _unused;
    } _new;


  struct _atexit *_atexit;
  struct _atexit _atexit0;


  void (**(_sig_func))(int);




  struct _glue __sglue;
  __FILE __sf[3];
};
# 799 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/reent.h" 3
extern struct _reent *_impure_ptr ;
extern struct _reent *const _global_impure_ptr ;

void _reclaim_reent (struct _reent *);
# 46 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 1 3
# 24 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef short int __int16_t;
typedef unsigned short int __uint16_t;





typedef int __int32_t;
typedef unsigned int __uint32_t;






__extension__ typedef long long __int64_t;
__extension__ typedef unsigned long long __uint64_t;
# 55 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 152 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 326 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 3 4
typedef int wchar_t;
# 56 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 2 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/types.h" 1 3
# 36 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/types.h" 3
typedef long int __off_t;
typedef int __pid_t;

__extension__ typedef long long int __loff_t;
# 57 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 2 3
# 78 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;



typedef unsigned short ushort;
typedef unsigned int uint;



typedef unsigned long clock_t;




typedef long time_t;




struct timespec {
  time_t tv_sec;
  long tv_nsec;
};

struct itimerspec {
  struct timespec it_interval;
  struct timespec it_value;
};


typedef long daddr_t;
typedef char * caddr_t;
# 121 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef unsigned short ino_t;
# 155 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef short dev_t;




typedef long off_t;

typedef unsigned short uid_t;
typedef unsigned short gid_t;


typedef int pid_t;

typedef long key_t;

typedef _ssize_t ssize_t;
# 184 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef unsigned int mode_t __attribute__ ((__mode__ (__SI__)));




typedef unsigned short nlink_t;
# 211 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/types.h" 3
typedef long fd_mask;







typedef struct _types_fd_set {
 fd_mask fds_bits[(((64)+(((sizeof (fd_mask) * 8))-1))/((sizeof (fd_mask) * 8)))];
} _types_fd_set;
# 47 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3



typedef __FILE FILE;
# 59 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3
typedef _fpos_t fpos_t;





# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/stdio.h" 1 3
# 66 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 2 3
# 170 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3
FILE * tmpfile (void);
char * tmpnam (char *);
int fclose (FILE *);
int fflush (FILE *);
FILE * freopen (const char *, const char *, FILE *);
void setbuf (FILE *, char *);
int setvbuf (FILE *, char *, int, size_t);
int fprintf (FILE *, const char *, ...);
int fscanf (FILE *, const char *, ...);
int printf (const char *, ...);
int scanf (const char *, ...);
int sscanf (const char *, const char *, ...);
int vfprintf (FILE *, const char *, __gnuc_va_list);
int vprintf (const char *, __gnuc_va_list);
int vsprintf (char *, const char *, __gnuc_va_list);
int fgetc (FILE *);
char * fgets (char *, int, FILE *);
int fputc (int, FILE *);
int fputs (const char *, FILE *);
int getc (FILE *);
int getchar (void);
char * gets (char *);
int putc (int, FILE *);
int putchar (int);
int puts (const char *);
int ungetc (int, FILE *);
size_t fread (void *, size_t _size, size_t _n, FILE *);
size_t fwrite (const void * , size_t _size, size_t _n, FILE *);



int fgetpos (FILE *, fpos_t *);

int fseek (FILE *, long, int);



int fsetpos (FILE *, const fpos_t *);

long ftell ( FILE *);
void rewind (FILE *);
void clearerr (FILE *);
int feof (FILE *);
int ferror (FILE *);
void perror (const char *);

FILE * fopen (const char *_name, const char *_type);
int sprintf (char *, const char *, ...);
int remove (const char *);
int rename (const char *, const char *);






int fseeko (FILE *, off_t, int);
off_t ftello ( FILE *);


int asiprintf (char **, const char *, ...);
int asprintf (char **, const char *, ...);
int fcloseall (void);
int fiprintf (FILE *, const char *, ...);
int iprintf (const char *, ...);
int siprintf (char *, const char *, ...);
int snprintf (char *, size_t, const char *, ...);
int sniprintf (char *, size_t, const char *, ...);
char * tempnam (const char *, const char *);
int vasiprintf (char **, const char *, __gnuc_va_list);
int vasprintf (char **, const char *, __gnuc_va_list);
int vsniprintf (char *, size_t, const char *, __gnuc_va_list);
int vsnprintf (char *, size_t, const char *, __gnuc_va_list);
int vfiprintf (FILE *, const char *, __gnuc_va_list);
int vfiscanf (FILE *, const char *, __gnuc_va_list);
int vfscanf (FILE *, const char *, __gnuc_va_list);
int viscanf (const char *, __gnuc_va_list);
int vscanf (const char *, __gnuc_va_list);
int vsiscanf (const char *, const char *, __gnuc_va_list);
int vsscanf (const char *, const char *, __gnuc_va_list);
# 259 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3
FILE * fdopen (int, const char *);

int fileno (FILE *);
int getw (FILE *);
int pclose (FILE *);
FILE * popen (const char *, const char *);
int putw (int, FILE *);
void setbuffer (FILE *, char *, int);
int setlinebuf (FILE *);
int getc_unlocked (FILE *);
int getchar_unlocked (void);
void flockfile (FILE *);
int ftrylockfile (FILE *);
void funlockfile (FILE *);
int putc_unlocked (int, FILE *);
int putchar_unlocked (int);






int _asiprintf_r (struct _reent *, char **, const char *, ...);
int _asprintf_r (struct _reent *, char **, const char *, ...);
int _fcloseall_r (struct _reent *);
FILE * _fdopen_r (struct _reent *, int, const char *);
FILE * _fopen_r (struct _reent *, const char *, const char *);
int _fclose_r (struct _reent *, FILE *);
int _fiscanf_r (struct _reent *, FILE *, const char *, ...);
int _fscanf_r (struct _reent *, FILE *, const char *, ...);
int _fseek_r (struct _reent *, FILE *, long, int);
long _ftell_r (struct _reent *, FILE *);
int _getchar_r (struct _reent *);
char * _gets_r (struct _reent *, char *);
int _iprintf_r (struct _reent *, const char *, ...);
int _iscanf_r (struct _reent *, const char *, ...);
int _mkstemp_r (struct _reent *, char *);
char * _mktemp_r (struct _reent *, char *);
void _perror_r (struct _reent *, const char *);
int _printf_r (struct _reent *, const char *, ...);
int _putchar_r (struct _reent *, int);
int _puts_r (struct _reent *, const char *);
int _remove_r (struct _reent *, const char *);
int _rename_r (struct _reent *, const char *_old, const char *_new);

int _scanf_r (struct _reent *, const char *, ...);
int _siprintf_r (struct _reent *, char *, const char *, ...);
int _siscanf_r (struct _reent *, const char *, const char *, ...);
int _sniprintf_r (struct _reent *, char *, size_t, const char *, ...);
int _snprintf_r (struct _reent *, char *, size_t, const char *, ...);
int _sprintf_r (struct _reent *, char *, const char *, ...);
int _sscanf_r (struct _reent *, const char *, const char *, ...);
char * _tempnam_r (struct _reent *, const char *, const char *);
FILE * _tmpfile_r (struct _reent *);
char * _tmpnam_r (struct _reent *, char *);
int _ungetc_r (struct _reent *, int, FILE *);
int _vasiprintf_r (struct _reent *, char **, const char *, __gnuc_va_list);
int _vasprintf_r (struct _reent *, char **, const char *, __gnuc_va_list);
int _vfiprintf_r (struct _reent *, FILE *, const char *, __gnuc_va_list);
int _vfprintf_r (struct _reent *, FILE *, const char *, __gnuc_va_list);
int _viprintf_r (struct _reent *, const char *, __gnuc_va_list);
int _vprintf_r (struct _reent *, const char *, __gnuc_va_list);
int _vsiprintf_r (struct _reent *, char *, const char *, __gnuc_va_list);
int _vsprintf_r (struct _reent *, char *, const char *, __gnuc_va_list);
int _vsniprintf_r (struct _reent *, char *, size_t, const char *, __gnuc_va_list);
int _vsnprintf_r (struct _reent *, char *, size_t, const char *, __gnuc_va_list);
int _vfiscanf_r (struct _reent *, FILE *, const char *, __gnuc_va_list);
int _vfscanf_r (struct _reent *, FILE *, const char *, __gnuc_va_list);
int _viscanf_r (struct _reent *, const char *, __gnuc_va_list);
int _vscanf_r (struct _reent *, const char *, __gnuc_va_list);
int _vsscanf_r (struct _reent *, const char *, const char *, __gnuc_va_list);
int _vsiscanf_r (struct _reent *, const char *, const char *, __gnuc_va_list);

ssize_t __getdelim (char **, size_t *, int, FILE *);
ssize_t __getline (char **, size_t *, FILE *);
# 359 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3
int __srget (FILE *);
int __swbuf (int, FILE *);






FILE *funopen (const void * _cookie, int (*readfn)(void * _cookie, char *_buf, int _n), int (*writefn)(void * _cookie, const char *_buf, int _n), fpos_t (*seekfn)(void * _cookie, fpos_t _off, int _whence), int (*closefn)(void * _cookie));
# 466 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdio.h" 3

# 5 "id_heads.h" 2
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 1 3
# 10 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 11 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 2 3



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 15 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 2 3


# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/stdlib.h" 1 3
# 18 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 2 3

# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/alloca.h" 1 3
# 10 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/alloca.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 11 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/alloca.h" 2 3
# 20 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 2 3




typedef struct
{
  int quot;
  int rem;
} div_t;

typedef struct
{
  long quot;
  long rem;
} ldiv_t;


typedef struct
{
  long long int quot;
  long long int rem;
} lldiv_t;
# 53 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 3
extern int __mb_cur_max;



void abort (void) __attribute__ ((noreturn));
int abs (int);
int atexit (void (*__func)(void));
double atof (const char *__nptr);

float atoff (const char *__nptr);

int atoi (const char *__nptr);
int _atoi_r (struct _reent *, const char *__nptr);
long atol (const char *__nptr);
long _atol_r (struct _reent *, const char *__nptr);
void * bsearch (const void * __key, const void * __base, size_t __nmemb, size_t __size, int (* _compar) (const void *, const void *));




void * calloc (size_t __nmemb, size_t __size);
div_t div (int __numer, int __denom);
void exit (int __status) __attribute__ ((noreturn));
void free (void *);
char * getenv (const char *__string);
char * _getenv_r (struct _reent *, const char *__string);



char * _findenv (const char *, int *);
char * _findenv_r (struct _reent *, const char *, int *);
long labs (long);
ldiv_t ldiv (long __numer, long __denom);
void * malloc (size_t __size);
int mblen (const char *, size_t);
int _mblen_r (struct _reent *, const char *, size_t, _mbstate_t *);
int mbtowc (wchar_t *, const char *, size_t);
int _mbtowc_r (struct _reent *, wchar_t *, const char *, size_t, _mbstate_t *);
int wctomb (char *, wchar_t);
int _wctomb_r (struct _reent *, char *, wchar_t, _mbstate_t *);
size_t mbstowcs (wchar_t *, const char *, size_t);
size_t _mbstowcs_r (struct _reent *, wchar_t *, const char *, size_t, _mbstate_t *);
size_t wcstombs (char *, const wchar_t *, size_t);
size_t _wcstombs_r (struct _reent *, char *, const wchar_t *, size_t, _mbstate_t *);


int mkstemp (char *);
char * mktemp (char *);


void qsort (void * __base, size_t __nmemb, size_t __size, int(*_compar)(const void *, const void *));
int rand (void);
void * realloc (void * __r, size_t __size);



void srand (unsigned __seed);
double strtod (const char *__n, char **__end_PTR);
double _strtod_r (struct _reent *,const char *__n, char **__end_PTR);
float strtof (const char *__n, char **__end_PTR);






long strtol (const char *__n, char **__end_PTR, int __base);
long _strtol_r (struct _reent *,const char *__n, char **__end_PTR, int __base);
unsigned long strtoul (const char *__n, char **__end_PTR, int __base);
unsigned long _strtoul_r (struct _reent *,const char *__n, char **__end_PTR, int __base);

int system (const char *__string);


long a64l (const char *__input);
char * l64a (long __input);
char * _l64a_r (struct _reent *,long __input);
int on_exit (void (*__func)(int, void *),void * __arg);
void _Exit (int __status) __attribute__ ((noreturn));
int putenv (char *__string);
int _putenv_r (struct _reent *, char *__string);
int setenv (const char *__string, const char *__value, int __overwrite);
int _setenv_r (struct _reent *, const char *__string, const char *__value, int __overwrite);

char * gcvt (double,int,char *);
char * gcvtf (float,int,char *);
char * fcvt (double,int,int *,int *);
char * fcvtf (float,int,int *,int *);
char * ecvt (double,int,int *,int *);
char * ecvtbuf (double, int, int*, int*, char *);
char * fcvtbuf (double, int, int*, int*, char *);
char * ecvtf (float,int,int *,int *);
char * dtoa (double, int, int, int *, int*, char**);
int rand_r (unsigned *__seed);

double drand48 (void);
double _drand48_r (struct _reent *);
double erand48 (unsigned short [3]);
double _erand48_r (struct _reent *, unsigned short [3]);
long jrand48 (unsigned short [3]);
long _jrand48_r (struct _reent *, unsigned short [3]);
void lcong48 (unsigned short [7]);
void _lcong48_r (struct _reent *, unsigned short [7]);
long lrand48 (void);
long _lrand48_r (struct _reent *);
long mrand48 (void);
long _mrand48_r (struct _reent *);
long nrand48 (unsigned short [3]);
long _nrand48_r (struct _reent *, unsigned short [3]);
unsigned short *
       seed48 (unsigned short [3]);
unsigned short *
       _seed48_r (struct _reent *, unsigned short [3]);
void srand48 (long);
void _srand48_r (struct _reent *, long);
long long atoll (const char *__nptr);
long long _atoll_r (struct _reent *, const char *__nptr);
long long llabs (long long);
lldiv_t lldiv (long long __numer, long long __denom);
long long strtoll (const char *__n, char **__end_PTR, int __base);
long long _strtoll_r (struct _reent *, const char *__n, char **__end_PTR, int __base);
unsigned long long strtoull (const char *__n, char **__end_PTR, int __base);
unsigned long long _strtoull_r (struct _reent *, const char *__n, char **__end_PTR, int __base);


void cfree (void *);
# 192 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 3
char * _dtoa_r (struct _reent *, double, int, int, int *, int*, char**);

void * _malloc_r (struct _reent *, size_t);
void * _calloc_r (struct _reent *, size_t, size_t);
void _free_r (struct _reent *, void *);
void * _realloc_r (struct _reent *, void *, size_t);
void _mstats_r (struct _reent *, char *);

int _system_r (struct _reent *, const char *);

void __eprintf (const char *, const char *, unsigned int, const char *);
# 233 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/stdlib.h" 3

# 6 "id_heads.h" 2
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/string.h" 1 3
# 10 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/string.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 11 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/string.h" 2 3



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 15 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/string.h" 2 3







void * memchr (const void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void * memcpy (void *, const void *, size_t);
void * memmove (void *, const void *, size_t);
void * memset (void *, int, size_t);
char *strcat (char *, const char *);
char *strchr (const char *, int);
int strcmp (const char *, const char *);
int strcoll (const char *, const char *);
char *strcpy (char *, const char *);
size_t strcspn (const char *, const char *);
char *strerror (int);
size_t strlen (const char *);
char *strncat (char *, const char *, size_t);
int strncmp (const char *, const char *, size_t);
char *strncpy (char *, const char *, size_t);
char *strpbrk (const char *, const char *);
char *strrchr (const char *, int);
size_t strspn (const char *, const char *);
char *strstr (const char *, const char *);


char *strtok (char *, const char *);


size_t strxfrm (char *, const char *, size_t);


char *strtok_r (char *, const char *, char **);

int bcmp (const void *, const void *, size_t);
void bcopy (const void *, void *, size_t);
void bzero (void *, size_t);
int ffs (int);
char *index (const char *, int);
void * memccpy (void *, const void *, int, size_t);
void * mempcpy (void *, const void *, size_t);
char *rindex (const char *, int);
int strcasecmp (const char *, const char *);
char *strdup (const char *);
char *_strdup_r (struct _reent *, const char *);
char *strndup (const char *, size_t);
char *_strndup_r (struct _reent *, const char *, size_t);
char *strerror_r (int, char *, size_t);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
int strncasecmp (const char *, const char *, size_t);
size_t strnlen (const char *, size_t);
char *strsep (char **, const char *);
char *strlwr (char *);
char *strupr (char *);
# 98 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/string.h" 3

# 7 "id_heads.h" 2
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 1 3
# 10 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 11 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 2 3







# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/time.h" 1 3
# 19 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 2 3
# 27 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/include/stddef.h" 1 3 4
# 28 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 2 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;
};

clock_t clock (void);
double difftime (time_t _time2, time_t _time1);
time_t mktime (struct tm *_timeptr);
time_t time (time_t *_timer);

char *asctime (const struct tm *_tblock);
char *ctime (const time_t *_time);
struct tm *gmtime (const time_t *_timer);
struct tm *localtime (const time_t *_timer);

size_t strftime (char *_s, size_t _maxsize, const char *_fmt, const struct tm *_t);

char *asctime_r (const struct tm *, char *);
char *ctime_r (const time_t *, char *);
struct tm *gmtime_r (const time_t *, struct tm *);
struct tm *localtime_r (const time_t *, struct tm *);








char *strptime (const char *, const char *, struct tm *);
void tzset (void);
void _tzset_r (struct _reent *);
# 98 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 3
extern time_t _timezone;
extern int _daylight;
extern char *_tzname[2];
# 126 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 3
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/sys/features.h" 1 3
# 127 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/time.h" 2 3
# 8 "id_heads.h" 2


# 1 "glob.h" 1
# 18 "glob.h"
typedef struct {
  size_t gl_pathc;
  char **gl_pathv;
  size_t gl_offs;
} glob_t;
# 36 "glob.h"
int glob(const char *_pattern, int _flags, int (*_errfunc)(const char *_epath, int _eerrno), glob_t *_pglob);
void globfree(glob_t *_pglob);
# 11 "id_heads.h" 2
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/ctype.h" 1 3



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 5 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/ctype.h" 2 3



int isalnum (int __c);
int isalpha (int __c);
int iscntrl (int __c);
int isdigit (int __c);
int isgraph (int __c);
int islower (int __c);
int isprint (int __c);
int ispunct (int __c);
int isspace (int __c);
int isupper (int __c);
int isxdigit (int __c);
int tolower (int __c);
int toupper (int __c);


int isblank (int __c);
int isascii (int __c);
int toascii (int __c);
int _tolower (int __c);
int _toupper (int __c);
# 39 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/ctype.h" 3
extern const char _ctype_[];
# 68 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/ctype.h" 3

# 12 "id_heads.h" 2
# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 1 3







# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/_ansi.h" 1 3
# 9 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 2 3








union __dmath
{
  __ULong i[2];
  double d;
};




extern const union __dmath __infinity[];
# 35 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
extern double atan (double);
extern double cos (double);
extern double sin (double);
extern double tan (double);
extern double tanh (double);
extern double frexp (double, int *);
extern double modf (double, double *);
extern double ceil (double);
extern double fabs (double);
extern double floor (double);






extern double acos (double);
extern double asin (double);
extern double atan2 (double, double);
extern double cosh (double);
extern double sinh (double);
extern double exp (double);
extern double ldexp (double, int);
extern double log (double);
extern double log10 (double);
extern double pow (double, double);
extern double sqrt (double);
extern double fmod (double, double);
# 72 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
typedef float float_t;
typedef double double_t;
# 82 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
extern int __fpclassifyf (float x);
extern int __fpclassifyd (double x);
extern int __signbitf (float x);
extern int __signbitd (double x);
# 123 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
extern double infinity (void);
extern double nan (const char *);
extern int isnan (double);
extern int isinf (double);
extern int finite (double);
extern double copysign (double, double);
extern int ilogb (double);

extern double asinh (double);
extern double cbrt (double);
extern double nextafter (double, double);
extern double rint (double);
extern double scalbn (double, int);

extern double exp2 (double);
extern double scalbln (double, long int);
extern double tgamma (double);
extern double nearbyint (double);
extern long int lrint (double);
extern double round (double);
extern long int lround (double);
extern double trunc (double);
extern double remquo (double, double, int *);
extern double copysign (double, double);
extern double fdim (double, double);
extern double fmax (double, double);
extern double fmin (double, double);
extern double fma (double, double, double);
extern void sincos (double, double *, double *);


extern double log1p (double);
extern double expm1 (double);



extern double acosh (double);
extern double atanh (double);
extern double remainder (double, double);
extern double gamma (double);
extern double gamma_r (double, int *);
extern double lgamma (double);
extern double lgamma_r (double, int *);
extern double erf (double);
extern double erfc (double);
extern double y0 (double);
extern double y1 (double);
extern double yn (int, double);
extern double j0 (double);
extern double j1 (double);
extern double jn (int, double);



extern double hypot (double, double);


extern double cabs();
extern double drem (double, double);
# 191 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
extern float atanf (float);
extern float cosf (float);
extern float sinf (float);
extern float tanf (float);
extern float tanhf (float);
extern float frexpf (float, int *);
extern float modff (float, float *);
extern float ceilf (float);
extern float fabsf (float);
extern float floorf (float);


extern float acosf (float);
extern float asinf (float);
extern float atan2f (float, float);
extern float coshf (float);
extern float sinhf (float);
extern float expf (float);
extern float ldexpf (float, int);
extern float logf (float);
extern float log10f (float);
extern float powf (float, float);
extern float sqrtf (float);
extern float fmodf (float, float);
# 223 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
extern float exp2f (float);
extern float scalblnf (float, long int);
extern float tgammaf (float);
extern float nearbyintf (float);
extern long int lrintf (float);
extern float roundf (float);
extern long int lroundf (float);
extern float truncf (float);
extern float remquof (float, float, int *);
extern float copysignf (float, float);
extern float fdimf (float, float);
extern float fmaxf (float, float);
extern float fminf (float, float);
extern float fmaf (float, float, float);

extern float infinityf (void);
extern float nanf (const char *);
extern int isnanf (float);
extern int isinff (float);
extern int finitef (float);
extern float copysignf (float, float);
extern int ilogbf (float);

extern float asinhf (float);
extern float cbrtf (float);
extern float nextafterf (float, float);
extern float rintf (float);
extern float scalbnf (float, int);
extern float log1pf (float);
extern float expm1f (float);
extern void sincosf (float, float *, float *);


extern float acoshf (float);
extern float atanhf (float);
extern float remainderf (float, float);
extern float gammaf (float);
extern float gammaf_r (float, int *);
extern float lgammaf (float);
extern float lgammaf_r (float, int *);
extern float erff (float);
extern float erfcf (float);
extern float y0f (float);
extern float y1f (float);
extern float ynf (int, float);
extern float j0f (float);
extern float j1f (float);
extern float jnf (int, float);

extern float hypotf (float, float);

extern float cabsf();
extern float dremf (float, float);






extern int *__signgam (void);
# 292 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
struct exception

{
  int type;
  char *name;
  double arg1;
  double arg2;
  double retval;
  int err;
};




extern int matherr (struct exception *e);
# 347 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3
enum __fdlibm_version
{
  __fdlibm_ieee = -1,
  __fdlibm_svid,
  __fdlibm_xopen,
  __fdlibm_posix
};




extern const enum __fdlibm_version __fdlib_version;
# 367 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 3



# 1 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/machine/fastmath.h" 1 3
# 371 "c:\\devkitarm4\\bin\\../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/include/math.h" 2 3
# 13 "id_heads.h" 2

# 1 "c:/gamepark_sdk/include/gpdef.h" 1







# 1 "c:/gamepark_sdk/include/gpos_def.h" 1







typedef enum{
 H_THREAD_SOUND,
 H_THREAD_IDLE,
 H_THREAD_GPMAIN,
 H_THREAD_NET,
 H_THREAD_TMR0,
 H_THREAD_TMR1,
 H_THREAD_TMR2,
 H_THREAD_TMR3
}H_THREAD;
# 54 "c:/gamepark_sdk/include/gpos_def.h"
int GpTimerOptSet(int idx, int tmr_tps, int max_exec_tick, void (*irq_tmrfunc)(void));
int GpTimerSet(int idx);
int GpTimerPause(int idx);
int GpTimerResume(int idx);
void GpTimerKill(int idx);




void GpMain(void * arg);
void GpKernelInitialize(void);
void GpKernelStart(void);
void GpKernelOptSet(int flag);
void GpKernelLock(void);
void GpKernelUnlock(void);
void GpThreadSleep(unsigned int delay);
int GpThreadOptSet(H_THREAD th, int priority, int stk_size);
H_THREAD GpThreadHandleGet(void);
void GpNetThreadAct(void (*t_func)(void));
void GpNetThreadDelete(void);


int GpPredefinedStackGet(H_THREAD th);
# 9 "c:/gamepark_sdk/include/gpdef.h" 2
# 86 "c:/gamepark_sdk/include/gpdef.h"
typedef struct tagGPRECT{
 int left;
 int top;
 int right;
 int bottom;
}GPRECT;

typedef struct tagGPPOINT{
 int X;
 int Y;
} GPPOINT;
# 15 "id_heads.h" 2
# 1 "c:/gamepark_sdk/include/gpstdlib.h" 1
# 10 "c:/gamepark_sdk/include/gpstdlib.h"
void _gp_sdk_init(void);
void _gp_key_polling_time_set(int loop_cnt);



int GpAppPathSet(const char * p_path, int n_len);
char * GpAppPathGet(int * n_len );
int GpUserInfoGet(char * p_id, char * p_pwd);
int GpArgSet(int len, char * p_arg);
int GpAppExecute(char * p_code_ptr, const char * s_path);
void GpAppExit(void);
unsigned int GpTickCountGet(void);
void GpNetTpsSet(int tps);
int GpUSBLineCheck(void);


void GpKeyInit(void);
int GpKeyGet(void);
int GpKeyGetEx(int * key_status);
int GpKeyChanged(void);


int GpClockSpeedChange(int master_speed, int div_factor, int clk_mode);
unsigned int GpMClkGet(void);
unsigned int GpHClkGet(void);
unsigned int GpPClkGet(void);



# 1 "c:/gamepark_sdk/include/gpmem.h" 1







typedef struct tagGM_HEAP_DEF{
 void * heapstart;
 void * heapend;
        } GM_HEAP_DEF;

struct tagGPMEMFUNC{
 void * (*malloc)(unsigned int size);
 void * (*zimalloc)(unsigned int size);
 void * (*calloc)(int count, unsigned int size);
 void (*free)(void * pt);
 unsigned int (*availablemem)(void);
 void * (*malloc_ex)(unsigned int size, int ex_flag, unsigned char init_val);
 void (*free_ex)(void);
 void * (*make_mem_partition)(struct tagGPMEMFUNC * p_mem_sub, unsigned int size, int * err_no);
        };
typedef struct tagGPMEMFUNC GPMEMFUNC;

typedef struct tagGPSTRFUNC{
 void (*memset)(void * ptr, unsigned char val, unsigned int size);
 void * (*memcpy)(void * s1, const void * s2, unsigned int size);
 char * (*strcpy)(char * s1, const char * s2);
 char * (*strncpy)(char * s1, const char * s2, unsigned int size);
 char * (*strcat)(char * s1, const char * s2);
 char * (*strncat)(char * s1, const char * s2, unsigned int size);
 int (*gpstrlen)(const char * s);
 int (*sprintf)(char * buf, const char * fmt, ...);
 void (*uppercase)(char *ptr, int count);
 void (*lowercase)(char *ptr, int count);
 int (*compare)(const char *pt1, const char *pt2);
 void (*trim_right)(const char *ptr);
} GPSTRFUNC;

void gm_heap_init(GM_HEAP_DEF * p_def);

extern void * gm_malloc(unsigned int size);
extern void * gm_zi_malloc(unsigned int size);


extern void * gm_malloc_ex(unsigned int size, int ex_flag, unsigned char init_val);
extern void * gm_calloc(int count, unsigned int size);
extern void gm_free(void * pt);
extern void gm_free_ex(void);
extern unsigned int gm_availablesize(void);
extern void * gm_make_mem_part(GPMEMFUNC * p_mem_sub, unsigned int size, int * err_no);

extern void gm_memset(void * , unsigned char , unsigned int );
extern void * gm_memcpy(void * , const void * , unsigned int );
extern char * gm_strcpy(char * , const char * );
extern char * gm_strncpy(char * , const char * , unsigned int );
extern char * gm_strcat(char * , const char * );
extern char * gm_strncat(char * , const char * , unsigned int );
extern int gm_lstrlen(const char * );
extern int gm_sprintf(char * buf, const char * fmt, ...);
extern void gm_lowercase(char * ptr, int count);
extern void gm_uppercase(char * ptr, int count);
extern int gm_compare(const char * pt1, const char * pt2);
extern void gm_trim_right(const char * ptr);
# 40 "c:/gamepark_sdk/include/gpstdlib.h" 2

extern GPMEMFUNC gp_mem_func;
extern GPSTRFUNC gp_str_func;



void GpSrand(int seed);
unsigned int GpRand(void);
unsigned int GpRandN(unsigned n);
# 16 "id_heads.h" 2
# 1 "c:/gamepark_sdk/include/gpstdio.h" 1







# 1 "c:/gamepark_sdk/include/gpdef.h" 1
# 9 "c:/gamepark_sdk/include/gpstdio.h" 2



typedef enum {
 SM_OK,
 ERR_FLASH_STATUS,
 ERR_CARD_NOT_DETECTED,
 ERR_CARD_CHANGED,
 ERR_NOT_ERASED,
 ERR_NOT_FORMATTED,
 ERR_INVALID_MBR,
 ERR_INVALID_PBR,
 ERR_INVALID_FAT,
 ERR_INVALID_NAME,
 ERR_INVALID_HANDLE,
 ERR_INVALID_PARAM,
 ERR_NO_EMPTY_BLOCK,
 ERR_INVALID_BLOCK,
 ERR_ECC,
 ERR_ECC_CORRECTABLE,
 ERR_FILE_OPENED,
 ERR_FILE_EXIST,
 ERR_DIR_NOT_EMPTY,
 ERR_EOF,
 ERR_FILE_NOT_OPENED,
 ERR_FILE_NOT_EXIST,
 ERR_NO_LONG_NAME,
 ERR_NOT_FOUND,
 ERR_INCORRECT_FAT,
 ERR_ROOT_DIR,
 ERR_LOCKED,
 ERR_NOT_PERMITTED,
 ERR_OUT_OF_MEMORY,
 ERR_OUT_OF_ROOT_ENTRY,
 ERR_NO_MORE_ENTRY,
 ERR_SM_TIMEOUT,
 ERR_SYSTEM_PARAMETER,
 ERR_INTERNAL,
 ERR_FILE_NAME_LEN_TOO_LONG,
 ERR_NO_EMPTY_CLUSTER,
 ERR_INVALID_R_PATH,
 ERR_ID_NOT_FOUND,
 ERR_ID_INVALID,
 ERR_NOT_INITIALIZED
} ERR_CODE;

typedef long F_HANDLE;
# 84 "c:/gamepark_sdk/include/gpstdio.h"
typedef struct {
     unsigned short year;
     unsigned char month;
     unsigned char day;
     unsigned char hour;
     unsigned char min;
     unsigned char sec;
     unsigned char msec;
}sTIME;
# 104 "c:/gamepark_sdk/include/gpstdio.h"
typedef struct {
 unsigned long attr;
 unsigned long cluster;
 unsigned long size;
 sTIME time;
} GPFILEATTR;

typedef struct {
 char name[16];
} GPDIRENTRY;


ERR_CODE GpFatInit (void);
ERR_CODE GpRelativePathSet (const char * p_path);
void GpRelativePathGet (char *p_path);

ERR_CODE GpFileCreate (const char * p_file_name, unsigned long fcreate_mode, F_HANDLE *p_handle);
ERR_CODE GpFileOpen (const char * p_file_name, unsigned long fopen_mode, F_HANDLE *p_handle);
ERR_CODE GpFileRead (F_HANDLE h_file, void * p_buf, unsigned long buf_size, unsigned long * p_read_count);
ERR_CODE GpFileWrite (F_HANDLE h_file, const void * p_buf, unsigned long count);
ERR_CODE GpFileSeek (F_HANDLE h_file, unsigned long seek_mode, unsigned long offset, long * p_old_offset);
ERR_CODE GpFileClose (F_HANDLE h_file);
ERR_CODE GpFileRemove (const char * p_file_name);
ERR_CODE GpFileGetSize (const char * p_file_name, unsigned long * p_size);
ERR_CODE GpFileExtend (F_HANDLE h_file, unsigned long size);
ERR_CODE GpFileMove (const char * old_path, const char * new_path);
ERR_CODE GpFileRename (const char * old_path, const char * new_path);

ERR_CODE GpDirCreate (const char * p_dir_name, unsigned long dcreate_mode);
ERR_CODE GpDirRemove (const char * p_dir_name, unsigned long ddel_mode);
ERR_CODE GpDirEnumNum (const char * p_dir_name, unsigned long * p_num);
ERR_CODE GpDirEnumList (const char * p_dir_name, unsigned long entry_start, unsigned long entry_count, GPDIRENTRY * p_list, unsigned long * p_read_count);

ERR_CODE GpFileAttr (const char * p_name, GPFILEATTR * p_attr);

ERR_CODE GpVolumeInfo (const char * p_vol_name, unsigned long * total_size, unsigned long * used_size, unsigned long * free_size);
ERR_CODE GpFormat (const char * p_vol_name, unsigned long format_id, unsigned long * p_bad_block);

ERR_CODE GpNoFATUpdate (const char * p_vol_name);
ERR_CODE GpFATUpdate (const char * p_vol_name);

ERR_CODE GpFatInitialized (void);
ERR_CODE GpSMCDetected (void);
# 17 "id_heads.h" 2

# 1 "c:/gamepark_sdk/include/gpFont.h" 1







# 1 "c:/gamepark_sdk/include/gpdef.h" 1
# 9 "c:/gamepark_sdk/include/gpFont.h" 2
# 1 "c:/gamepark_sdk/include/gpgraphic.h" 1
# 18 "c:/gamepark_sdk/include/gpgraphic.h"
typedef struct tagGPLCDINFO{
 union{
  int U32_lcd;
  struct{
   char clk_value;
   char lcd_buf_count;
   char bpp;
   char b_lcd_on;
  }U8_lcd;
 }lcd_global;
 unsigned int buffer_size;
 unsigned int * buf_addr[4];
 unsigned int * r_palette;
 unsigned int * m_palette;
}GPLCDINFO;

typedef struct tagGPDRAWTAG{
 int restoreflag;
 short clip_x;
 short clip_y;
 short clip_w;
 short clip_h;
}GPDRAWTAG;

typedef struct tagGPDRAWSURFACE{
 unsigned char * ptbuffer;
 int bpp;
 int buf_w;
 int buf_h;
 int ox;
 int oy;
 unsigned char * o_buffer;
} GPDRAWSURFACE;







int GpGraphicModeSet(int gd_bpp, int * gp_pal);
void GpLcdInfoGet(GPLCDINFO * p_info);
void GpLcdEnable(void);
void GpLcdDisable(void);
int GpLcdStatusGet(void);
int GpLcdSurfaceGet(GPDRAWSURFACE * ptgpds, int idx);
int GpMemSurfaceGet(GPDRAWSURFACE * ptgpds);
extern void (*GpSurfaceSet)(GPDRAWSURFACE * ptgpds);
extern void (*GpSurfaceFlip)(GPDRAWSURFACE * ptgpds);
unsigned char * GpLcdLock(void);
void GpLcdUnlock(void);
# 77 "c:/gamepark_sdk/include/gpgraphic.h"
typedef unsigned short GP_PALETTEENTRY;
typedef struct tag_GP_LOGPALENTRY{
 unsigned char peRed;
 unsigned char peGreen;
 unsigned char peBlue;
 unsigned char peFlags;
}GP_LOGPALENTRY;

typedef unsigned long * GP_HPALETTE;
GP_HPALETTE GpPaletteCreate (int entry_num, GP_PALETTEENTRY * pal_entry);
GP_HPALETTE GpPaletteCreateEx (int entry_num, GP_LOGPALENTRY * pal_entry);

GP_HPALETTE GpPaletteSelect(GP_HPALETTE h_new);

unsigned int GpPaletteRealize (void);
int GpPaletteDelete (GP_HPALETTE hPal);



int GpPaletteEntryChange (int pal_offset, int entry_num, GP_PALETTEENTRY * pal_entry, int flag);
int GpPaletteEntryChangeEx (int pal_offset, int entry_num, GP_LOGPALENTRY * pal_entry, int flag);

GP_HPALETTE GpRegPalGet (void);
GP_HPALETTE GpLogPalGet (void);

int GpLcdFade (int fade_step, GP_HPALETTE old_pal);
void GpLcdNoFade (GP_HPALETTE old_pal);
int GpLcdChanFade (int fade_step, int chan, GP_HPALETTE old_pal);
int GpLcdFadeNormalize (GP_HPALETTE basic_pal);

int GpBitBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src, int sx,int sy,int imgw,int imgh);
int GpTransBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char *src,int sx,int sy,int imgw,int imgh,unsigned char color);
int GpBitLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh);
int GpTransLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color);
int GpBitUDBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh);
int GpTransUDBlt(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color);
int GpRectFill(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char color);

void GpPointSet(GPDRAWSURFACE * ptgpds,int x, int y, unsigned char color);
void GpLineDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int xE,int yE,unsigned char color);
void GpRectDraw(GPDRAWSURFACE * ptgpds,int left,int top,int right,int bottom,unsigned char color);
void GpEllipseDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int w,int h,unsigned char color);
# 168 "c:/gamepark_sdk/include/gpgraphic.h"
typedef struct tagGPGD_FX{
 int fx_flag;
 int v_default;
 int v_tmp;
 int * v_list;
}GPGD_FX;

int GpFxBlt(GPDRAWTAG *gptag, GPDRAWSURFACE *tggpds, int dx, int dy, int width, int height, GPDRAWSURFACE *srcgpds, GPGD_FX *gpfx);
# 10 "c:/gamepark_sdk/include/gpFont.h" 2

typedef struct tagBGFONTINFO{
 int kor_w;
 int kor_h;
 int eng_w;
 int eng_h;
 int chargap;
 int linegap;
}BGFONTINFO;

void GpFontInit (BGFONTINFO * ptr);

void GpFontResSet (unsigned char * p_kor, unsigned char * p_eng);
unsigned char * GpKorFontResGet(void);
unsigned char * GpEngFontResGet(void);

void GpSysFontGet (BGFONTINFO *fInfo);
int GpTextWidthGet (const char * lpsz);
int GpTextHeightGet (const char * lpsz);
int GpTextLenGet (const char * str);

void GpTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y,
              char * source, unsigned char color);
void GpCharOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y,
              char * source, unsigned char color);
void GpTextNOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y,
        char * source, int nStart, int nString, unsigned char color);
# 46 "c:/gamepark_sdk/include/gpFont.h"
void GpTextDraw (GPDRAWSURFACE * ptgpds, GPRECT * cRect, unsigned int uFormat,
        char * source, int nStart, int nCount, unsigned char color);

typedef struct tagEXT_FONT{
 int fx_flag;
 unsigned char * lpsz;
 unsigned char * pBmFont;
 int ex_font_w;
 int ex_font_h;
 int ex_chargap;
 int ex_linegap;
 int color1;
 int color2;
} EXT_FONT;

int GpCustTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, EXT_FONT * y_font);

void GpHAutomatonInit (void);
int GpHAutomatonInput (const char * p_input, char ** p_working);
int GpHAutomatonDelete (char ** p_working);
char * GpHAutomatonBuffered (void);
# 19 "id_heads.h" 2

# 1 "c:/gamepark_sdk/include/gpmain.h" 1







void GpMain (void * arg);

typedef volatile unsigned char vu8;
typedef volatile unsigned short int vu16;
typedef volatile unsigned int vu32;
typedef volatile unsigned long long int vu64;

typedef unsigned char u8;
typedef unsigned short int u16;
typedef unsigned int u32;
typedef unsigned long long int u64;

typedef signed char s8;
typedef signed short int s16;
typedef signed int s32;
typedef signed long long int s64;
# 21 "id_heads.h" 2
# 1 "c:/gamepark_sdk/include/gpmm.h" 1
# 13 "c:/gamepark_sdk/include/gpmm.h"
void GpMidiPlay (unsigned char * midisrc,int repeatcount);
void GpMidiListPlay (unsigned char ** srclist,int listcount);
void GpMidiStop (void);
void GpMidiPause (void);
void GpMidiReplay (void);
int GpMidiStatusGet (int * played);






typedef enum{
 PCM_M11,
 PCM_S11,
 PCM_M22,
 PCM_S22,
 PCM_M44,
 PCM_S44
} PCM_SR;

typedef enum{
 PCM_8BIT,
 PCM_16BIT
} PCM_BIT;

int GpPcmInit (PCM_SR sr, PCM_BIT bit_count);
int GpPcmPlay (unsigned short * src, int size, int repeatflag);
void GpPcmRemove (unsigned short * src);
void GpPcmStop (void);
int GpPcmEnvGet (PCM_SR * p_sr, PCM_BIT * p_bit_count, int * p_real_sr);

int GpPcmLock (unsigned short * p_src, int * idx_buf, unsigned int * addr_of_playing_buf);
void GpPcmOnlyKill (unsigned short * p_src);
# 22 "id_heads.h" 2





typedef enum { false, true } boolean;


# 1 "version.h" 1
# 31 "id_heads.h" 2
# 41 "id_heads.h"
# 1 "gfxv_wl6.h" 1
typedef enum {


  H_BJPIC=3,



  H_CASTLEPIC,
  H_BLAZEPIC,
  H_TOPWINDOWPIC,
  H_LEFTWINDOWPIC,
  H_RIGHTWINDOWPIC,
  H_BOTTOMINFOPIC,

  C_OPTIONSPIC,
  C_CURSOR1PIC,
  C_CURSOR2PIC,
  C_NOTSELECTEDPIC,
  C_SELECTEDPIC,
  C_FXTITLEPIC,
  C_DIGITITLEPIC,
  C_MUSICTITLEPIC,
  C_MOUSELBACKPIC,
  C_BABYMODEPIC,
  C_EASYPIC,
  C_NORMALPIC,
  C_HARDPIC,
  C_LOADSAVEDISKPIC,
  C_DISKLOADING1PIC,
  C_DISKLOADING2PIC,
  C_CONTROLPIC,
  C_CUSTOMIZEPIC,
  C_LOADGAMEPIC,
  C_SAVEGAMEPIC,
  C_EPISODE1PIC,
  C_EPISODE2PIC,
  C_EPISODE3PIC,
  C_EPISODE4PIC,
  C_EPISODE5PIC,
  C_EPISODE6PIC,
  C_CODEPIC,
  C_TIMECODEPIC,
  C_LEVELPIC,
  C_NAMEPIC,
  C_SCOREPIC,
  C_JOY1PIC,
  C_JOY2PIC,

  L_GUYPIC,
  L_COLONPIC,
  L_NUM0PIC,
  L_NUM1PIC,
  L_NUM2PIC,
  L_NUM3PIC,
  L_NUM4PIC,
  L_NUM5PIC,
  L_NUM6PIC,
  L_NUM7PIC,
  L_NUM8PIC,
  L_NUM9PIC,
  L_PERCENTPIC,
  L_APIC,
  L_BPIC,
  L_CPIC,
  L_DPIC,
  L_EPIC,
  L_FPIC,
  L_GPIC,
  L_HPIC,
  L_IPIC,
  L_JPIC,
  L_KPIC,
  L_LPIC,
  L_MPIC,
  L_NPIC,
  L_OPIC,
  L_PPIC,
  L_QPIC,
  L_RPIC,
  L_SPIC,
  L_TPIC,
  L_UPIC,
  L_VPIC,
  L_WPIC,
  L_XPIC,
  L_YPIC,
  L_ZPIC,
  L_EXPOINTPIC,
  L_APOSTROPHEPIC,
  L_GUY2PIC,
  L_BJWINSPIC,
  STATUSBARPIC,
  TITLEPIC,
  PG13PIC,
  CREDITSPIC,
  HIGHSCORESPIC,

  KNIFEPIC,
  GUNPIC,
  MACHINEGUNPIC,
  GATLINGGUNPIC,
  NOKEYPIC,
  GOLDKEYPIC,
  SILVERKEYPIC,
  N_BLANKPIC,
  N_0PIC,
  N_1PIC,
  N_2PIC,
  N_3PIC,
  N_4PIC,
  N_5PIC,
  N_6PIC,
  N_7PIC,
  N_8PIC,
  N_9PIC,
  FACE1APIC,
  FACE1BPIC,
  FACE1CPIC,
  FACE2APIC,
  FACE2BPIC,
  FACE2CPIC,
  FACE3APIC,
  FACE3BPIC,
  FACE3CPIC,
  FACE4APIC,
  FACE4BPIC,
  FACE4CPIC,
  FACE5APIC,
  FACE5BPIC,
  FACE5CPIC,
  FACE6APIC,
  FACE6BPIC,
  FACE6CPIC,
  FACE7APIC,
  FACE7BPIC,
  FACE7CPIC,
  FACE8APIC,
  GOTGATLINGPIC,
  MUTANTBJPIC,
  PAUSEDPIC,
  GETPSYCHEDPIC,



  ORDERSCREEN=136,






  ERRORSCREEN,
  T_HELPART,
  T_DEMO0,
  T_DEMO1,
  T_DEMO2,
  T_DEMO3,
  T_ENDART1,
  T_ENDART2,
  T_ENDART3,
  T_ENDART4,
  T_ENDART5,
  T_ENDART6,
  ENUMEND
      } graphicnums;
# 42 "id_heads.h" 2






# 1 "audiowl6.h" 1
# 11 "audiowl6.h"
typedef enum {
 NOSOUND = -1,
  HITWALLSND = 0,
  SELECTWPNSND = 1,
  SELECTITEMSND,
  HEARTBEATSND,
  MOVEGUN2SND,
  MOVEGUN1SND,
  NOWAYSND,
  NAZIHITPLAYERSND,
  SCHABBSTHROWSND,
  PLAYERDEATHSND,
  DOGDEATHSND,
  ATKGATLINGSND,
  GETKEYSND,
  NOITEMSND,
  WALK1SND,
  WALK2SND,
  TAKEDAMAGESND,
  GAMEOVERSND,
  OPENDOORSND,
  CLOSEDOORSND,
  DONOTHINGSND,
  HALTSND,
  DEATHSCREAM2SND,
  ATKKNIFESND,
  ATKPISTOLSND,
  DEATHSCREAM3SND,
  ATKMACHINEGUNSND,
  HITENEMYSND,
  SHOOTDOORSND,
  DEATHSCREAM1SND,
  GETMACHINESND,
  GETAMMOSND,
  SHOOTSND,
  HEALTH1SND,
  HEALTH2SND,
  BONUS1SND,
  BONUS2SND,
  BONUS3SND,
  GETGATLINGSND,
  ESCPRESSEDSND,
  LEVELDONESND,
  DOGBARKSND,
  ENDBONUS1SND,
  ENDBONUS2SND,
  BONUS1UPSND,
  BONUS4SND,
  PUSHWALLSND,
  NOBONUSSND,
  PERCENT100SND,
  BOSSACTIVESND,
  MUTTISND,
  SCHUTZADSND,
  AHHHGSND,
  DIESND,
  EVASND,
  GUTENTAGSND,
  LEBENSND,
  SCHEISTSND,
  NAZIFIRESND,
  BOSSFIRESND,
  SSFIRESND,
  SLURPIESND,
  TOT_HUNDSND,
  MEINGOTTSND,
  SCHABBSHASND,
  HITLERHASND,
  SPIONSND,
  NEINSOVASSND,
  DOGATTACKSND,
  FLAMETHROWERSND,
  MECHSTEPSND,
  GOOBSSND,
  YEAHSND,
  DEATHSCREAM4SND,
  DEATHSCREAM5SND,
  DEATHSCREAM6SND,
  DEATHSCREAM7SND,
  DEATHSCREAM8SND,
  DEATHSCREAM9SND,
  DONNERSND,
  EINESND,
  ERLAUBENSND,
  KEINSND,
  MEINSND,
  ROSESND,
  MISSILEFIRESND,
  MISSILEHITSND,
  LASTSOUND
      } soundnames;
# 113 "audiowl6.h"
typedef enum {
  CORNER_MUS,
  DUNGEON_MUS,
  WARMARCH_MUS,
  GETTHEM_MUS,
  HEADACHE_MUS,
  HITLWLTZ_MUS,
  INTROCW3_MUS,
  NAZI_NOR_MUS,
  NAZI_OMI_MUS,
  POW_MUS,
  SALUTE_MUS,
  SEARCHN_MUS,
  SUSPENSE_MUS,
  VICTORS_MUS,
  WONDERIN_MUS,
  FUNKYOU_MUS,
  ENDLEVEL_MUS,
  GOINGAFT_MUS,
  PREGNANT_MUS,
  ULTIMATE_MUS,
  NAZI_RAP_MUS,
  ZEROHOUR_MUS,
  TWELFTH_MUS,
  ROSTER_MUS,
  URAHERO_MUS,
  VICMARCH_MUS,
  PACMAN_MUS,
# 156 "audiowl6.h"
  LASTMUSIC
      } musicnames;
# 49 "id_heads.h" 2
# 64 "id_heads.h"
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;

typedef char int8_t;
typedef short int16_t;
typedef int int32_t;


typedef unsigned char byte;

typedef unsigned short word;
typedef unsigned long longword;

typedef unsigned long dword;

typedef long fixed;

typedef void * memptr;


# 1 "misc.h" 1



extern int _argc;
extern char **_argv;

void SavePCX256ToFile(const unsigned char *buf, int width, int height, const unsigned char *pal, const char *name);
void SavePCXRGBToFile(const unsigned char *buf, int width, int height, const char *name);

void set_TimeCount(unsigned long t);
unsigned long get_TimeCount();

long filelength(int handle);
# 22 "misc.h"
char *strlwr(char *s);

char *itoa(int value, char *string, int radix);
char *ltoa(long value, char *string, int radix);
char *ultoa(unsigned long value, char *string, int radix);

uint16_t SwapInt16L(uint16_t i);
uint32_t SwapInt32L(uint32_t i);

extern int OpenWrite(const char *fn);
extern int OpenWriteAppend(const char *fn);
extern void CloseWrite(int fp);

extern int WriteSeek(int fp, int offset, int whence);
extern int WritePos(int fp);

extern int WriteInt8(int fp, int8_t d);
extern int WriteInt16(int fp, int16_t d);
extern int WriteInt32(int fp, int32_t d);
extern int WriteBytes(int fp, const byte *d, int len);

extern int OpenRead(const char *fn);
extern void CloseRead(int fp);

extern int ReadSeek(int fp, int offset, int whence);
extern int ReadLength(int fp);

extern int8_t ReadInt8(int fp);
extern int16_t ReadInt16(int fp);
extern int32_t ReadInt32(int fp);
extern int ReadBytes(int fp, byte *d, int len);


static __inline__ uint16_t SwapInt16(uint16_t i)
{
 return ((uint16_t)i >> 8) | ((uint16_t)i << 8);
}

static __inline__ uint32_t SwapInt32(uint32_t i)
{
 return ((uint32_t)(i & 0xFF000000) >> 24) |
  ((uint32_t)(i & 0x00FF0000) >> 8) |
  ((uint32_t)(i & 0x0000FF00) << 8) |
  ((uint32_t)(i & 0x000000FF) << 24);
}
# 86 "id_heads.h" 2

# 1 "vi_comm.h" 1





extern byte *gfxbuf;

void VL_Startup();
void VL_Shutdown();

void VL_WaitVBL(int vbls);
void VW_UpdateScreen();

void VL_SetPalette(const byte *palette);
void VL_GetPalette(byte *palette);

void VL_MemToScreen(const byte *source, int width, int height, int x, int y);







typedef int8_t ScanCode;
# 105 "vi_comm.h"
typedef enum {
 ctrl_Keyboard,
 ctrl_Joystick,
 ctrl_Joystick1 = ctrl_Joystick,
 ctrl_Joystick2,
 ctrl_Mouse
} ControlType;

typedef enum {
 motion_Left = -1,
 motion_Up = -1,
 motion_None = 0,
 motion_Right = 1,
 motion_Down = 1
} Motion;

typedef enum {
 dir_North,
 dir_NorthEast,
 dir_East,
 dir_SouthEast,
 dir_South,
 dir_SouthWest,
 dir_West,
 dir_NorthWest,
 dir_None
} Direction;

typedef struct {
 boolean button0, button1, button2, button3;
 int x, y;
 Motion xaxis, yaxis;
 Direction dir;
} ControlInfo;

typedef struct {
 ScanCode button0, button1, upleft, up, upright,
  left, right, downleft, down, downright;
} KeyboardDef;

extern boolean Keyboard[], MousePresent, JoysPresent[];

extern boolean Paused;
extern char LastASCII;
extern ScanCode LastScan;
extern KeyboardDef KbdDefs;
extern ControlType Controls[4];



extern void INL_Update();

extern void IN_Startup(), IN_Shutdown(), IN_ClearKeysDown(),
  IN_ReadControl(int,ControlInfo *),
  IN_GetJoyAbs(word joy,word *xp,word *yp),
  IN_SetupJoy(word joy,word minx,word maxx,word miny,word maxy),
  IN_Ack();

extern boolean IN_UserInput(longword delay);
extern const char *IN_GetScanName(ScanCode);

byte IN_MouseButtons();
byte IN_JoyButtons();

void IN_GetMouseDelta(int *dx, int *dy);
void INL_GetJoyDelta(word joy,int *dx,int *dy);

void IN_StartAck();
boolean IN_CheckAck();
# 88 "id_heads.h" 2
# 1 "sd_comm.h" 1



typedef enum {
     sdm_Off,
     sdm_PC,sdm_AdLib
    } SDMode;
typedef enum {
     smm_Off,smm_AdLib
    } SMMode;
typedef enum {
     sds_Off,sds_PC,sds_SoundBlaster
    } SDSMode;

extern boolean AdLibPresent, SoundBlasterPresent;

extern SDMode SoundMode;
extern SDSMode DigiMode;
extern SMMode MusicMode;

extern void SD_Startup();
extern void SD_Shutdown();

extern boolean SD_PlaySound(soundnames sound);
extern void SD_StopSound(),
    SD_WaitSoundDone(),
    SD_StartMusic(int music),
    SD_MusicOn(),
    SD_MusicOff();

extern boolean SD_SetSoundMode(SDMode mode), SD_SetMusicMode(SMMode mode);

extern word SD_SoundPlaying();

extern void SD_SetDigiDevice(SDSMode);

void PlaySoundLocGlobal(word s, int id, fixed gx, fixed gy);
void UpdateSoundLoc(fixed x, fixed y, int angle);


extern int DigiMap[];
void InitDigiMap();
# 89 "id_heads.h" 2

# 1 "id_ca.h" 1
# 9 "id_ca.h"
typedef struct
{
 int planestart[3];
 int planelength[3];
 int width, height;
 char name[16];
} maptype;



extern int mapon;

extern word *mapsegs[2];
extern maptype mapheaderseg[60];
extern byte *audiosegs[288];
extern byte *grsegs[149];

extern char extension[5];






boolean CA_LoadFile(const char *filename, memptr *ptr);
boolean CA_WriteFile(const char *filename, const void *ptr, long length);

void CA_Startup();
void CA_Shutdown();

void CA_CacheAudioChunk(int chunk);
void CA_UnCacheAudioChunk(int chunk);
void CA_LoadAllSounds();

void CA_CacheMap(int mapnum);
void CA_CacheGrChunk(int chunk);
void CA_UnCacheGrChunk(int chunk);



void MM_Startup();
void MM_Shutdown();

void MM_GetPtr(memptr *baseptr, unsigned long size);
void MM_FreePtr(memptr *baseptr);

void MM_SetPurge(memptr *baseptr, int purge);
void MM_SetLock(memptr *baseptr, boolean locked);
void MM_SortMem();
# 67 "id_ca.h"
typedef struct {
 int offset;
 int length;
 memptr addr;
} PageListStruct;

extern int ChunksInFile, PMSpriteStart, PMSoundStart;

extern PageListStruct *PMPages;



memptr PM_GetPage(int pagenum);
memptr PM_GetSoundPage(int pagenum, unsigned int soundLen );


void PM_FreePage(int pagenum);

void PM_Startup();
void PM_Shutdown();
# 91 "id_heads.h" 2
# 1 "id_vh.h" 1






typedef struct
{
 int width, height;
} pictabletype;

extern pictabletype pictable[132];

extern byte fontcolor, backcolor;
extern int fontnumber;
extern int px, py;



void VW_UpdateScreen();

void VWB_DrawTile8(int x, int y, int tile);
void VWB_DrawPic(int x, int y, int chunknum);

extern boolean screenfaded;
# 34 "id_vh.h"
void VW_MeasurePropString(const char *string, word *width, word *height);

void VW_DrawPropString(const char *string);

void VL_FadeOut(int start, int end, int red, int green, int blue, int steps);
void VL_FadeIn(int start, int end, const byte *palette, int steps);

void VL_CacheScreen(int chunk);

void VW_Bar(int x, int y, int width, int height, int color);

void VW_Startup();
void VW_Shutdown();

void VL_FillPalette(int red, int green, int blue);
void VW_Plot(int x, int y, int color);
void VL_Hlin(unsigned x, unsigned y, unsigned width, unsigned color);
void VL_Vlin(int x, int y, int height, int color);
void VL_Bar(int x, int y, int width, int height, int color);

void VL_MemToScreen(const byte *source, int width, int height, int x, int y);

void VL_DeModeXize(byte *buf, int width, int height);
# 92 "id_heads.h" 2
# 1 "id_us.h" 1






typedef struct {
 char name[57 + 1];
 int score;
 int completed, episode;
} HighScore;



extern boolean NoWait;
extern word PrintX,PrintY;
extern word WindowX,WindowY,
   WindowW,WindowH;





extern HighScore Scores[];

void US_Startup(),
    US_Shutdown(),
    US_InitRndT(boolean randomize),
    US_DrawWindow(word x,word y,word w,word h),
    US_ClearWindow(void),
    US_PrintCentered(const char *s),
    US_CPrint(const char *s),
    US_CPrintLine(const char *s),
    US_Print(const char *s),
    US_PrintUnsigned(longword n);
boolean US_LineInput(int x,int y,char *buf,const char *def,boolean escok,
    int maxchars,int maxwidth);
int US_RndT();
# 93 "id_heads.h" 2
# 1 "sd_gp32.h" 1
typedef struct {
 longword length;
 word priority;
} SoundCommon;

typedef struct {
 SoundCommon common;
 byte data[1];
} PCSound;

typedef struct {
 byte mChar, cChar, mScale, cScale, mAttack, cAttack, mSus, cSus,
  mWave, cWave, nConn, voice, mode, unused[3];
} Instrument;

typedef struct {
 SoundCommon common;
 Instrument inst;
 byte block, data[1];
} AdLibSound;

typedef struct {
 word length, values[1];
} MusicGroup;
# 94 "id_heads.h" 2

extern const byte gamepal[];

int MS_CheckParm(const char *string);
void Quit(const char *error);
void PrintMessage(char *message);
void PauseMessage(char *message);
void RotateGraphic (byte* dest, const byte* origGraphic);

extern GPDRAWSURFACE gpDraw[2];
extern int surfaceNum;
# 133 "id_heads.h"
extern int tics;
# 5 "wl_def.h" 2

# 1 "wl_menu.h" 1
# 112 "wl_menu.h"
typedef struct {
 int x,y,amount,curpos,indent;
} CP_iteminfo;

typedef void (* MenuFunc)(int temp1);

typedef struct {
 int active;
 char string[36];
 MenuFunc routine;
} CP_itemtype;

typedef struct {
 int allowed[4];
} CustomCtrls;

extern CP_itemtype MainMenu[], NewEMenu[];
extern CP_iteminfo MainItems;




void SetupControlPanel(void);
void CleanupControlPanel(void);

void DrawMenu(CP_iteminfo *item_i,CP_itemtype *items);
int HandleMenu(CP_iteminfo *item_i, CP_itemtype *items, void (*routine)(int w));
void ClearMScreen(void);
void DrawWindow(int x,int y,int w,int h,int wcolor);
void DrawOutline(int x,int y,int w,int h,int color1,int color2);
void WaitKeyUp(void);
void ReadAnyControl(ControlInfo *ci);
void TicDelay(int count);
void CacheLump(int lumpstart,int lumpend);
void UnCacheLump(int lumpstart,int lumpend);
void StartCPMusic(int song);
int Confirm(const char *string);
void Message(const char *string);
void CheckPause(void);
void ShootSnd(void);
void FreeMusic(void);
void BossKey(void);

void DrawGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int *y,int which,int basey,void (*routine)(int w));
void DrawHalfStep(int x,int y);
void EraseGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int y,int which);
void SetMenuTextColor(CP_itemtype *items,int hlight);
void DrawMenuGun(CP_iteminfo *iteminfo);
void DrawStripes(int y);

void DefineMouseBtns(void);
void DefineJoyBtns(void);
void DefineKeyBtns(void);
void DefineKeyMove(void);
void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type);

void DrawMainMenu(void);
void DrawSoundMenu(void);
void DrawLoadSaveScreen(int loadsave);
void DrawNewEpisode(void);
void DrawNewGame(void);
void DrawChangeView(int view);
void DrawMouseSens(void);
void DrawCtlScreen(void);
void DrawCustomScreen(void);
void DrawLSAction(int which);
void DrawCustMouse(int hilight);
void DrawCustJoy(int hilight);
void DrawCustKeybd(int hilight);
void DrawCustKeys(int hilight);
void PrintCustMouse(int i);
void PrintCustJoy(int i);
void PrintCustKeybd(int i);
void PrintCustKeys(int i);

void PrintLSEntry(int w,int color);
void TrackWhichGame(int w);
void DrawNewGameDiff(int w);
void FixupCustom(int w);

void CP_NewGame(void);
void CP_Sound(void);
int CP_LoadGame(int quick);
int CP_SaveGame(int quick);
void CP_Control(void);
void CP_ChangeView(void);
void CP_ExitOptions(void);
void CP_Quit(void);
void CP_ViewScores(void);
int CP_EndGame(void);
int CP_CheckQuick(unsigned scancode);
void CustomControls(void);
void MouseSensitivity(void);

void CheckForEpisodes(void);






extern enum
{
 newgame,
 soundmenu,
 control,
 loadgame,
 savegame,
 changeview,



 viewscores,
 backtodemo,
 quit
} menuitems;




typedef struct {
 int kill,secret,treasure;
 long time;
} LRstruct;


extern LRstruct LevelRatios[];


void Write(int x,int y,const char *string);
int GetYorN(int x,int y,int pic);
# 7 "wl_def.h" 2
# 1 "foreign.h" 1
# 8 "wl_def.h" 2

extern int vwidth, vheight;

void SimpleScaleShape(int xcenter, int shapenum, unsigned height);
# 95 "wl_def.h"
enum {
  SPR_DEMO,
  SPR_DEATHCAM,



  SPR_STAT_0,SPR_STAT_1,SPR_STAT_2,SPR_STAT_3,
  SPR_STAT_4,SPR_STAT_5,SPR_STAT_6,SPR_STAT_7,

  SPR_STAT_8,SPR_STAT_9,SPR_STAT_10,SPR_STAT_11,
  SPR_STAT_12,SPR_STAT_13,SPR_STAT_14,SPR_STAT_15,

  SPR_STAT_16,SPR_STAT_17,SPR_STAT_18,SPR_STAT_19,
  SPR_STAT_20,SPR_STAT_21,SPR_STAT_22,SPR_STAT_23,

  SPR_STAT_24,SPR_STAT_25,SPR_STAT_26,SPR_STAT_27,
  SPR_STAT_28,SPR_STAT_29,SPR_STAT_30,SPR_STAT_31,

  SPR_STAT_32,SPR_STAT_33,SPR_STAT_34,SPR_STAT_35,
  SPR_STAT_36,SPR_STAT_37,SPR_STAT_38,SPR_STAT_39,

  SPR_STAT_40,SPR_STAT_41,SPR_STAT_42,SPR_STAT_43,
  SPR_STAT_44,SPR_STAT_45,SPR_STAT_46,SPR_STAT_47,
# 126 "wl_def.h"
  SPR_GRD_S_1,SPR_GRD_S_2,SPR_GRD_S_3,SPR_GRD_S_4,
  SPR_GRD_S_5,SPR_GRD_S_6,SPR_GRD_S_7,SPR_GRD_S_8,

  SPR_GRD_W1_1,SPR_GRD_W1_2,SPR_GRD_W1_3,SPR_GRD_W1_4,
  SPR_GRD_W1_5,SPR_GRD_W1_6,SPR_GRD_W1_7,SPR_GRD_W1_8,

  SPR_GRD_W2_1,SPR_GRD_W2_2,SPR_GRD_W2_3,SPR_GRD_W2_4,
  SPR_GRD_W2_5,SPR_GRD_W2_6,SPR_GRD_W2_7,SPR_GRD_W2_8,

  SPR_GRD_W3_1,SPR_GRD_W3_2,SPR_GRD_W3_3,SPR_GRD_W3_4,
  SPR_GRD_W3_5,SPR_GRD_W3_6,SPR_GRD_W3_7,SPR_GRD_W3_8,

  SPR_GRD_W4_1,SPR_GRD_W4_2,SPR_GRD_W4_3,SPR_GRD_W4_4,
  SPR_GRD_W4_5,SPR_GRD_W4_6,SPR_GRD_W4_7,SPR_GRD_W4_8,

  SPR_GRD_PAIN_1,SPR_GRD_DIE_1,SPR_GRD_DIE_2,SPR_GRD_DIE_3,
  SPR_GRD_PAIN_2,SPR_GRD_DEAD,

  SPR_GRD_SHOOT1,SPR_GRD_SHOOT2,SPR_GRD_SHOOT3,




  SPR_DOG_W1_1,SPR_DOG_W1_2,SPR_DOG_W1_3,SPR_DOG_W1_4,
  SPR_DOG_W1_5,SPR_DOG_W1_6,SPR_DOG_W1_7,SPR_DOG_W1_8,

  SPR_DOG_W2_1,SPR_DOG_W2_2,SPR_DOG_W2_3,SPR_DOG_W2_4,
  SPR_DOG_W2_5,SPR_DOG_W2_6,SPR_DOG_W2_7,SPR_DOG_W2_8,

  SPR_DOG_W3_1,SPR_DOG_W3_2,SPR_DOG_W3_3,SPR_DOG_W3_4,
  SPR_DOG_W3_5,SPR_DOG_W3_6,SPR_DOG_W3_7,SPR_DOG_W3_8,

  SPR_DOG_W4_1,SPR_DOG_W4_2,SPR_DOG_W4_3,SPR_DOG_W4_4,
  SPR_DOG_W4_5,SPR_DOG_W4_6,SPR_DOG_W4_7,SPR_DOG_W4_8,

  SPR_DOG_DIE_1,SPR_DOG_DIE_2,SPR_DOG_DIE_3,SPR_DOG_DEAD,
  SPR_DOG_JUMP1,SPR_DOG_JUMP2,SPR_DOG_JUMP3,






  SPR_SS_S_1,SPR_SS_S_2,SPR_SS_S_3,SPR_SS_S_4,
  SPR_SS_S_5,SPR_SS_S_6,SPR_SS_S_7,SPR_SS_S_8,

  SPR_SS_W1_1,SPR_SS_W1_2,SPR_SS_W1_3,SPR_SS_W1_4,
  SPR_SS_W1_5,SPR_SS_W1_6,SPR_SS_W1_7,SPR_SS_W1_8,

  SPR_SS_W2_1,SPR_SS_W2_2,SPR_SS_W2_3,SPR_SS_W2_4,
  SPR_SS_W2_5,SPR_SS_W2_6,SPR_SS_W2_7,SPR_SS_W2_8,

  SPR_SS_W3_1,SPR_SS_W3_2,SPR_SS_W3_3,SPR_SS_W3_4,
  SPR_SS_W3_5,SPR_SS_W3_6,SPR_SS_W3_7,SPR_SS_W3_8,

  SPR_SS_W4_1,SPR_SS_W4_2,SPR_SS_W4_3,SPR_SS_W4_4,
  SPR_SS_W4_5,SPR_SS_W4_6,SPR_SS_W4_7,SPR_SS_W4_8,

  SPR_SS_PAIN_1,SPR_SS_DIE_1,SPR_SS_DIE_2,SPR_SS_DIE_3,
  SPR_SS_PAIN_2,SPR_SS_DEAD,

  SPR_SS_SHOOT1,SPR_SS_SHOOT2,SPR_SS_SHOOT3,




  SPR_MUT_S_1,SPR_MUT_S_2,SPR_MUT_S_3,SPR_MUT_S_4,
  SPR_MUT_S_5,SPR_MUT_S_6,SPR_MUT_S_7,SPR_MUT_S_8,

  SPR_MUT_W1_1,SPR_MUT_W1_2,SPR_MUT_W1_3,SPR_MUT_W1_4,
  SPR_MUT_W1_5,SPR_MUT_W1_6,SPR_MUT_W1_7,SPR_MUT_W1_8,

  SPR_MUT_W2_1,SPR_MUT_W2_2,SPR_MUT_W2_3,SPR_MUT_W2_4,
  SPR_MUT_W2_5,SPR_MUT_W2_6,SPR_MUT_W2_7,SPR_MUT_W2_8,

  SPR_MUT_W3_1,SPR_MUT_W3_2,SPR_MUT_W3_3,SPR_MUT_W3_4,
  SPR_MUT_W3_5,SPR_MUT_W3_6,SPR_MUT_W3_7,SPR_MUT_W3_8,

  SPR_MUT_W4_1,SPR_MUT_W4_2,SPR_MUT_W4_3,SPR_MUT_W4_4,
  SPR_MUT_W4_5,SPR_MUT_W4_6,SPR_MUT_W4_7,SPR_MUT_W4_8,

  SPR_MUT_PAIN_1,SPR_MUT_DIE_1,SPR_MUT_DIE_2,SPR_MUT_DIE_3,
  SPR_MUT_PAIN_2,SPR_MUT_DIE_4,SPR_MUT_DEAD,

  SPR_MUT_SHOOT1,SPR_MUT_SHOOT2,SPR_MUT_SHOOT3,SPR_MUT_SHOOT4,




  SPR_OFC_S_1,SPR_OFC_S_2,SPR_OFC_S_3,SPR_OFC_S_4,
  SPR_OFC_S_5,SPR_OFC_S_6,SPR_OFC_S_7,SPR_OFC_S_8,

  SPR_OFC_W1_1,SPR_OFC_W1_2,SPR_OFC_W1_3,SPR_OFC_W1_4,
  SPR_OFC_W1_5,SPR_OFC_W1_6,SPR_OFC_W1_7,SPR_OFC_W1_8,

  SPR_OFC_W2_1,SPR_OFC_W2_2,SPR_OFC_W2_3,SPR_OFC_W2_4,
  SPR_OFC_W2_5,SPR_OFC_W2_6,SPR_OFC_W2_7,SPR_OFC_W2_8,

  SPR_OFC_W3_1,SPR_OFC_W3_2,SPR_OFC_W3_3,SPR_OFC_W3_4,
  SPR_OFC_W3_5,SPR_OFC_W3_6,SPR_OFC_W3_7,SPR_OFC_W3_8,

  SPR_OFC_W4_1,SPR_OFC_W4_2,SPR_OFC_W4_3,SPR_OFC_W4_4,
  SPR_OFC_W4_5,SPR_OFC_W4_6,SPR_OFC_W4_7,SPR_OFC_W4_8,

  SPR_OFC_PAIN_1,SPR_OFC_DIE_1,SPR_OFC_DIE_2,SPR_OFC_DIE_3,
  SPR_OFC_PAIN_2,SPR_OFC_DIE_4,SPR_OFC_DEAD,

  SPR_OFC_SHOOT1,SPR_OFC_SHOOT2,SPR_OFC_SHOOT3,





  SPR_BLINKY_W1,SPR_BLINKY_W2,SPR_PINKY_W1,SPR_PINKY_W2,
  SPR_CLYDE_W1,SPR_CLYDE_W2,SPR_INKY_W1,SPR_INKY_W2,




  SPR_BOSS_W1,SPR_BOSS_W2,SPR_BOSS_W3,SPR_BOSS_W4,
  SPR_BOSS_SHOOT1,SPR_BOSS_SHOOT2,SPR_BOSS_SHOOT3,SPR_BOSS_DEAD,

  SPR_BOSS_DIE1,SPR_BOSS_DIE2,SPR_BOSS_DIE3,




  SPR_SCHABB_W1,SPR_SCHABB_W2,SPR_SCHABB_W3,SPR_SCHABB_W4,
  SPR_SCHABB_SHOOT1,SPR_SCHABB_SHOOT2,

  SPR_SCHABB_DIE1,SPR_SCHABB_DIE2,SPR_SCHABB_DIE3,SPR_SCHABB_DEAD,
  SPR_HYPO1,SPR_HYPO2,SPR_HYPO3,SPR_HYPO4,




  SPR_FAKE_W1,SPR_FAKE_W2,SPR_FAKE_W3,SPR_FAKE_W4,
  SPR_FAKE_SHOOT,SPR_FIRE1,SPR_FIRE2,

  SPR_FAKE_DIE1,SPR_FAKE_DIE2,SPR_FAKE_DIE3,SPR_FAKE_DIE4,
  SPR_FAKE_DIE5,SPR_FAKE_DEAD,




  SPR_MECHA_W1,SPR_MECHA_W2,SPR_MECHA_W3,SPR_MECHA_W4,
  SPR_MECHA_SHOOT1,SPR_MECHA_SHOOT2,SPR_MECHA_SHOOT3,SPR_MECHA_DEAD,

  SPR_MECHA_DIE1,SPR_MECHA_DIE2,SPR_MECHA_DIE3,

  SPR_HITLER_W1,SPR_HITLER_W2,SPR_HITLER_W3,SPR_HITLER_W4,
  SPR_HITLER_SHOOT1,SPR_HITLER_SHOOT2,SPR_HITLER_SHOOT3,SPR_HITLER_DEAD,

  SPR_HITLER_DIE1,SPR_HITLER_DIE2,SPR_HITLER_DIE3,SPR_HITLER_DIE4,
  SPR_HITLER_DIE5,SPR_HITLER_DIE6,SPR_HITLER_DIE7,




  SPR_GIFT_W1,SPR_GIFT_W2,SPR_GIFT_W3,SPR_GIFT_W4,
  SPR_GIFT_SHOOT1,SPR_GIFT_SHOOT2,

  SPR_GIFT_DIE1,SPR_GIFT_DIE2,SPR_GIFT_DIE3,SPR_GIFT_DEAD,




  SPR_ROCKET_1,SPR_ROCKET_2,SPR_ROCKET_3,SPR_ROCKET_4,
  SPR_ROCKET_5,SPR_ROCKET_6,SPR_ROCKET_7,SPR_ROCKET_8,

  SPR_SMOKE_1,SPR_SMOKE_2,SPR_SMOKE_3,SPR_SMOKE_4,
  SPR_BOOM_1,SPR_BOOM_2,SPR_BOOM_3,
# 316 "wl_def.h"
  SPR_GRETEL_W1,SPR_GRETEL_W2,SPR_GRETEL_W3,SPR_GRETEL_W4,
  SPR_GRETEL_SHOOT1,SPR_GRETEL_SHOOT2,SPR_GRETEL_SHOOT3,SPR_GRETEL_DEAD,

  SPR_GRETEL_DIE1,SPR_GRETEL_DIE2,SPR_GRETEL_DIE3,




  SPR_FAT_W1,SPR_FAT_W2,SPR_FAT_W3,SPR_FAT_W4,
  SPR_FAT_SHOOT1,SPR_FAT_SHOOT2,SPR_FAT_SHOOT3,SPR_FAT_SHOOT4,

  SPR_FAT_DIE1,SPR_FAT_DIE2,SPR_FAT_DIE3,SPR_FAT_DEAD,




  SPR_BJ_W1,SPR_BJ_W2,SPR_BJ_W3,SPR_BJ_W4,
  SPR_BJ_JUMP1,SPR_BJ_JUMP2,SPR_BJ_JUMP3,SPR_BJ_JUMP4,
# 393 "wl_def.h"
  SPR_KNIFEREADY,SPR_KNIFEATK1,SPR_KNIFEATK2,SPR_KNIFEATK3,
  SPR_KNIFEATK4,

  SPR_PISTOLREADY,SPR_PISTOLATK1,SPR_PISTOLATK2,SPR_PISTOLATK3,
  SPR_PISTOLATK4,

  SPR_MACHINEGUNREADY,SPR_MACHINEGUNATK1,SPR_MACHINEGUNATK2,MACHINEGUNATK3,
  SPR_MACHINEGUNATK4,

  SPR_CHAINREADY,SPR_CHAINATK1,SPR_CHAINATK2,SPR_CHAINATK3,
  SPR_CHAINATK4,




  SPR_NULLSPRITE, SPR_TOTAL
};
# 420 "wl_def.h"
typedef enum {
 di_north,
 di_east,
 di_south,
 di_west
} controldir_t;

typedef enum {
 dr_normal,
 dr_lock1,
 dr_lock2,
 dr_lock3,
 dr_lock4,

 dr_elevator





} door_t;

typedef enum {
 ac_badobject = -1,
 ac_no,
 ac_yes
} activetype;

typedef enum {
 nothing,
 playerobj,
 inertobj,
 guardobj,
 officerobj,
 ssobj,
 dogobj,
 bossobj,
 schabbobj,
 fakeobj,
 mechahitlerobj,
 mutantobj,
 needleobj,
 fireobj,
 bjobj,
 ghostobj,
 realhitlerobj,
 gretelobj,
 giftobj,
 fatobj,
 rocketobj,

 spectreobj,
 angelobj,
 transobj,
 uberobj,
 willobj,
 deathobj,
 hrocketobj,
 sparkobj
} classtype;

typedef enum {
 dressing,
 block,
 bo_gibs,



 bo_alpo,
 bo_firstaid,
 bo_key1,
 bo_key2,
 bo_key3,
 bo_key4,
 bo_cross,
 bo_chalice,
 bo_bible,
 bo_crown,
 bo_clip,
 bo_clip2,
 bo_machinegun,
 bo_chaingun,
 bo_food,
 bo_fullheal,
 bo_25clip,

 bo_spear





} stat_t;

typedef enum {
 east,
 northeast,
 north,
 northwest,
 west,
 southwest,
 south,
 southeast,
 nodir
} dirtype;



typedef enum {
 en_guard,
 en_officer,
 en_ss,
 en_dog,
 en_boss,
 en_schabbs,
 en_fake,
 en_hitler,
 en_mutant,
 en_blinky,
 en_clyde,
 en_pinky,
 en_inky,
 en_gretel,
 en_gift,
 en_fat,
 en_spectre,
 en_angel,
 en_trans,
 en_uber,
 en_will,
 en_death
} enemy_t;







typedef struct statstruct
{
 byte tilex,tiley;
 byte *visspot;
 int shapenum;
 byte flags;
 byte itemnumber;
} statobj_t;







typedef struct doorstruct
{
 byte tilex,tiley;
 boolean vertical;
 byte lock;
 enum {dr_open,dr_closed,dr_opening,dr_closing} action;
 int ticcount;
} doorobj_t;







typedef struct objstruct
{
 int id;

 activetype active;
 int ticcount;
 classtype obclass;
 int state;

 byte flags;

 long distance;
 dirtype dir;

 fixed x,y;
 unsigned tilex,tiley;
 byte areanumber;

 int viewx;
 unsigned viewheight;
 fixed transx, transy;

 int angle;
 int hitpoints;
 long speed;

 int temp1,temp2,temp3;
 struct objstruct *next,*prev;
} objtype;

typedef struct statestruct
{
 boolean rotate;
 int shapenum;
 int tictime;
 void (*think)(objtype *ob);
 void (*action)(objtype *ob);
 int next;
} statetype;


enum {
 bt_nobutton=-1,
 bt_attack=0,
 bt_strafe,
 bt_run,
 bt_use,
 bt_readyknife,
 bt_readypistol,
 bt_readymachinegun,
 bt_readychaingun,
 bt_strafeLeft,
 bt_strafeRight,
 bt_cycleWeapon,
 bt_start
};






typedef enum {
   wp_none = -1,
 wp_knife = 0,
 wp_pistol = 1,
 wp_machinegun = 2,

 wp_chaingun = 3




} weapontype;


enum {
 gd_baby,
 gd_easy,
 gd_medium,
 gd_hard
};







typedef struct
{
 int difficulty;
 int mapon;
 long oldscore,score,nextextra;
 int lives;
 int health;
 int ammo;
 int keys;



 weapontype bestweapon,weapon,chosenweapon;

 int faceframe;
 int attackframe,attackcount,weaponframe;

 int episode,secretcount,treasurecount,killcount,
   secrettotal,treasuretotal,killtotal;
 long TimeCount;
 long killx,killy;
 boolean victoryflag;
} gametype;


typedef enum {
 ex_stillplaying,
 ex_completed,
 ex_died,
 ex_warped,
 ex_resetgame,
 ex_loadedgame,
 ex_victorious,
 ex_abort,
 ex_demodone,
 ex_secretlevel
} exit_t;
# 725 "wl_def.h"
extern char str[80], str2[20];

extern int viewwidth, viewheight;
extern int viewwidthwin, viewheightwin;
extern int xoffset, yoffset;

extern int centerx;
extern int shootdelta;

extern boolean startgame,loadedgame;
extern int mouseadjustment;


extern int pixelangle[1280];
extern long finetangent[3600/4];
extern fixed sintable[], *costable;

extern char configname[13];

void CalcProjection(long focal);
void NewGame(int difficulty,int episode);
void NewViewSize(int width);
void ShowViewSize(int width);

int LoadTheGame(const char *fn, int x, int y);
int SaveTheGame(const char *fn, const char *tag, int x, int y);
int ReadSaveTag(const char *fn, const char *tag);

void ShutdownId();
int WriteConfig();

int WolfMain(int argc, char *argv[]);
# 767 "wl_def.h"
extern boolean ingame;
extern gametype gamestate;
extern int doornum;

extern char demoname[13];

extern long spearx,speary;
extern unsigned spearangle;
extern boolean spearflag;


void ScanInfoPlane (void);
void SetupGameLevel (void);
void DrawPlayScreen (void);
void GameLoop (void);
void ClearMemory (void);
void PlayDemo(int demonumber);
int PlayDemoFromFile(const char *demoname);
void RecordDemo();
void DrawHighScores();
void DrawPlayBorder();
void DrawPlayBorderSides();
void DrawStatusBar();
# 802 "wl_def.h"
extern long funnyticount;

extern exit_t playstate;

extern boolean madenoise;

extern objtype objlist[150],*new,*obj,*player,*lastobj,
     *objfreelist,*killerobj;
extern statobj_t statobjlist[400],*laststatobj;
extern doorobj_t doorobjlist[64],*lastdoorobj;

extern unsigned farmapylookup[64];

extern byte tilemap[64][64];
extern byte spotvis[64][64];
extern int actorat[64][64];

extern boolean singlestep,godmode,noclip;




extern boolean mouseenabled,joystickenabled,joypadenabled;
extern int joystickport;
extern int dirscan[4];
extern int buttonscan[12];
extern int buttonmouse[4];
extern int buttonjoy[6];

extern boolean buttonheld[12];

extern int viewsize;




extern int controlx,controly;
extern boolean buttonstate[12];
# 848 "wl_def.h"
extern boolean demorecord,demoplayback;
extern byte *demoptr, *lastdemoptr;
extern memptr demobuffer;


void StatusDrawPic(unsigned x, unsigned y, unsigned picnum);

void InitRedShifts (void);
void FinishPaletteShifts (void);

void CenterWindow(word w,word h);
void InitActorList (void);
void GetNewActor (void);
void StopMusic(void);
void StartMusic(void);
void PlayLoop (void);
void StartDamageFlash (int damage);
void StartBonusFlash (void);
# 875 "wl_def.h"
void IntroScreen (void);
void PreloadGraphics(void);
void LevelCompleted (void);
void CheckHighScore (long score,word other);
void Victory (void);
void ClearSplitVWB (void);
void PG13();
# 891 "wl_def.h"
int DebugKeys (void);
void PicturePause (void);
# 902 "wl_def.h"
extern long lasttimecount;
extern long frameon;


extern fixed viewx, viewy;
extern fixed viewsin, viewcos;

extern int horizwall[], vertwall[];


void BuildTables();
void CalcTics();
void ThreeDRefresh();

void FizzleFade(boolean abortable, int frames, int color);
# 929 "wl_def.h"
void SpawnNewObj(unsigned tilex, unsigned tiley, int state);
void NewState(objtype *ob, int state);

boolean TryWalk (objtype *ob);
void SelectChaseDir (objtype *ob);
void SelectDodgeDir (objtype *ob);
void SelectRunDir (objtype *ob);
void MoveObj (objtype *ob, long move);
boolean SightPlayer (objtype *ob);

void KillActor (objtype *ob);
void DamageActor (objtype *ob, unsigned damage);

boolean CheckLine (objtype *ob);
boolean CheckSight (objtype *ob);
# 956 "wl_def.h"
extern long thrustspeed;
extern unsigned plux,pluy;

extern int anglefrac;
extern int facecount;

void SpawnPlayer (int tilex, int tiley, int dir);
void DrawFace (void);
void DrawHealth (void);
void TakeDamage (int points,objtype *attacker);
void HealSelf (int points);
void DrawLevel (void);
void DrawLives (void);
void GiveExtraMan (void);
void DrawScore (void);
void GivePoints (long points);
void DrawWeapon (void);
void DrawKeys (void);
void GiveWeapon (int weapon);
void DrawAmmo (void);
void GiveAmmo (int ammo);
void GiveKey (int key);
void GetBonus (statobj_t *check);

void Thrust (int angle, long speed);
# 990 "wl_def.h"
extern doorobj_t doorobjlist[64],*lastdoorobj;
extern int doornum;

extern unsigned doorposition[64],pwallstate;

extern byte areaconnect[37][37];

extern boolean areabyplayer[37];

extern unsigned pwallstate;
extern unsigned pwallpos;
extern unsigned pwallx,pwally;
extern int pwalldir;


void InitDoorList (void);
void InitStaticList (void);
void SpawnStatic (int tilex, int tiley, int type);
void SpawnDoor (int tilex, int tiley, boolean vertical, int lock);
void MoveDoors (void);
void MovePWalls (void);
void OpenDoor (int door);
void PlaceItemType (int itemtype, int tilex, int tiley);
void PushWall (int checkx, int checky, int dir);
void OperateDoor (int door);
void InitAreas (void);
# 1025 "wl_def.h"
void A_DeathScream(objtype *ob);

void SpawnBJVictory(void);

void SpawnStand (enemy_t which, int tilex, int tiley, int dir);
void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir);

void US_ControlPanel(byte);

void SpawnDeadGuard (int tilex, int tiley);
void SpawnBoss (int tilex, int tiley);
void SpawnGretel (int tilex, int tiley);
void SpawnTrans (int tilex, int tiley);
void SpawnUber (int tilex, int tiley);
void SpawnWill (int tilex, int tiley);
void SpawnDeath (int tilex, int tiley);
void SpawnAngel (int tilex, int tiley);
void SpawnSpectre (int tilex, int tiley);
void SpawnGhosts (int which, int tilex, int tiley);
void SpawnSchabbs (int tilex, int tiley);
void SpawnGift (int tilex, int tiley);
void SpawnFat (int tilex, int tiley);
void SpawnFakeHitler (int tilex, int tiley);
void SpawnHitler (int tilex, int tiley);
# 1066 "wl_def.h"
extern void HelpScreens();
extern void EndText();

# 1 "wl_act3.h" 1



typedef enum {
 s_none,

 s_boom1,
 s_boom2,
 s_boom3,

 s_rocket,

 s_smoke1,
 s_smoke2,
 s_smoke3,
 s_smoke4,

 s_grdstand,

 s_grdpath1,
 s_grdpath1s,
 s_grdpath2,
 s_grdpath3,
 s_grdpath3s,
 s_grdpath4,

 s_grdpain,
 s_grdpain1,

 s_grdshoot1,
 s_grdshoot2,
 s_grdshoot3,

 s_grdchase1,
 s_grdchase1s,
 s_grdchase2,
 s_grdchase3,
 s_grdchase3s,
 s_grdchase4,

 s_grddie1,
 s_grddie2,
 s_grddie3,
 s_grddie4,


 s_dogpath1,
 s_dogpath1s,
 s_dogpath2,
 s_dogpath3,
 s_dogpath3s,
 s_dogpath4,

 s_dogjump1,
 s_dogjump2,
 s_dogjump3,
 s_dogjump4,
 s_dogjump5,

 s_dogchase1,
 s_dogchase1s,
 s_dogchase2,
 s_dogchase3,
 s_dogchase3s,
 s_dogchase4,

 s_dogdie1,
 s_dogdie2,
 s_dogdie3,
 s_dogdead,





 s_ofcstand,

 s_ofcpath1,
 s_ofcpath1s,
 s_ofcpath2,
 s_ofcpath3,
 s_ofcpath3s,
 s_ofcpath4,

 s_ofcpain,
 s_ofcpain1,

 s_ofcshoot1,
 s_ofcshoot2,
 s_ofcshoot3,

 s_ofcchase1,
 s_ofcchase1s,
 s_ofcchase2,
 s_ofcchase3,
 s_ofcchase3s,
 s_ofcchase4,

 s_ofcdie1,
 s_ofcdie2,
 s_ofcdie3,
 s_ofcdie4,
 s_ofcdie5,







 s_mutstand,

 s_mutpath1,
 s_mutpath1s,
 s_mutpath2,
 s_mutpath3,
 s_mutpath3s,
 s_mutpath4,

 s_mutpain,
 s_mutpain1,

 s_mutshoot1,
 s_mutshoot2,
 s_mutshoot3,
 s_mutshoot4,

 s_mutchase1,
 s_mutchase1s,
 s_mutchase2,
 s_mutchase3,
 s_mutchase3s,
 s_mutchase4,

 s_mutdie1,
 s_mutdie2,
 s_mutdie3,
 s_mutdie4,
 s_mutdie5,






 s_ssstand,

 s_sspath1,
 s_sspath1s,
 s_sspath2,
 s_sspath3,
 s_sspath3s,
 s_sspath4,

 s_sspain,
 s_sspain1,

 s_ssshoot1,
 s_ssshoot2,
 s_ssshoot3,
 s_ssshoot4,
 s_ssshoot5,
 s_ssshoot6,
 s_ssshoot7,
 s_ssshoot8,
 s_ssshoot9,

 s_sschase1,
 s_sschase1s,
 s_sschase2,
 s_sschase3,
 s_sschase3s,
 s_sschase4,

 s_ssdie1,
 s_ssdie2,
 s_ssdie3,
 s_ssdie4,
# 364 "wl_act3.h"
 s_blinkychase1,
 s_blinkychase2,
 s_inkychase1,
 s_inkychase2,
 s_pinkychase1,
 s_pinkychase2,
 s_clydechase1,
 s_clydechase2,




 s_bossstand,

 s_bosschase1,
 s_bosschase1s,
 s_bosschase2,
 s_bosschase3,
 s_bosschase3s,
 s_bosschase4,

 s_bossdie1,
 s_bossdie2,
 s_bossdie3,
 s_bossdie4,

 s_bossshoot1,
 s_bossshoot2,
 s_bossshoot3,
 s_bossshoot4,
 s_bossshoot5,
 s_bossshoot6,
 s_bossshoot7,
 s_bossshoot8,




 s_gretelstand,

 s_gretelchase1,
 s_gretelchase1s,
 s_gretelchase2,
 s_gretelchase3,
 s_gretelchase3s,
 s_gretelchase4,

 s_greteldie1,
 s_greteldie2,
 s_greteldie3,
 s_greteldie4,

 s_gretelshoot1,
 s_gretelshoot2,
 s_gretelshoot3,
 s_gretelshoot4,
 s_gretelshoot5,
 s_gretelshoot6,
 s_gretelshoot7,
 s_gretelshoot8,




 s_schabbstand,

 s_schabbchase1,
 s_schabbchase1s,
 s_schabbchase2,
 s_schabbchase3,
 s_schabbchase3s,
 s_schabbchase4,

 s_schabbdeathcam,

 s_schabbdie1,
 s_schabbdie2,
 s_schabbdie3,
 s_schabbdie4,
 s_schabbdie5,
 s_schabbdie6,

 s_schabbshoot1,
 s_schabbshoot2,

 s_needle1,
 s_needle2,
 s_needle3,
 s_needle4,





 s_giftstand,

 s_giftchase1,
 s_giftchase1s,
 s_giftchase2,
 s_giftchase3,
 s_giftchase3s,
 s_giftchase4,

 s_giftdeathcam,

 s_giftdie1,
 s_giftdie2,
 s_giftdie3,
 s_giftdie4,
 s_giftdie5,
 s_giftdie6,

 s_giftshoot1,
 s_giftshoot2,




 s_fatstand,

 s_fatchase1,
 s_fatchase1s,
 s_fatchase2,
 s_fatchase3,
 s_fatchase3s,
 s_fatchase4,

 s_fatdeathcam,

 s_fatdie1,
 s_fatdie2,
 s_fatdie3,
 s_fatdie4,
 s_fatdie5,
 s_fatdie6,

 s_fatshoot1,
 s_fatshoot2,
 s_fatshoot3,
 s_fatshoot4,
 s_fatshoot5,
 s_fatshoot6,





 s_fakestand,

 s_fakechase1,
 s_fakechase1s,
 s_fakechase2,
 s_fakechase3,
 s_fakechase3s,
 s_fakechase4,

 s_fakedie1,
 s_fakedie2,
 s_fakedie3,
 s_fakedie4,
 s_fakedie5,
 s_fakedie6,

 s_fakeshoot1,
 s_fakeshoot2,
 s_fakeshoot3,
 s_fakeshoot4,
 s_fakeshoot5,
 s_fakeshoot6,
 s_fakeshoot7,
 s_fakeshoot8,
 s_fakeshoot9,

 s_fire1,
 s_fire2,






 s_mechastand,

 s_mechachase1,
 s_mechachase1s,
 s_mechachase2,
 s_mechachase3,
 s_mechachase3s,
 s_mechachase4,

 s_mechadie1,
 s_mechadie2,
 s_mechadie3,
 s_mechadie4,

 s_mechashoot1,
 s_mechashoot2,
 s_mechashoot3,
 s_mechashoot4,
 s_mechashoot5,
 s_mechashoot6,


 s_hitlerchase1,
 s_hitlerchase1s,
 s_hitlerchase2,
 s_hitlerchase3,
 s_hitlerchase3s,
 s_hitlerchase4,

 s_hitlerdeathcam,

 s_hitlerdie1,
 s_hitlerdie2,
 s_hitlerdie3,
 s_hitlerdie4,
 s_hitlerdie5,
 s_hitlerdie6,
 s_hitlerdie7,
 s_hitlerdie8,
 s_hitlerdie9,
 s_hitlerdie10,

 s_hitlershoot1,
 s_hitlershoot2,
 s_hitlershoot3,
 s_hitlershoot4,
 s_hitlershoot5,
 s_hitlershoot6,





 s_bjrun1,
 s_bjrun1s,
 s_bjrun2,
 s_bjrun3,
 s_bjrun3s,
 s_bjrun4,

 s_bjjump1,
 s_bjjump2,
 s_bjjump3,
 s_bjjump4,

 s_deathcam,



 s_player,
 s_attack,

 MAXSTATES
} stateenum;

extern statetype gamestates[MAXSTATES];
# 1070 "wl_def.h" 2

fixed FixedByFrac(fixed a, fixed b);
# 8 "wl_menu.c" 2

enum {MOUSE,JOYSTICK,KEYBOARDBTNS,KEYBOARDMOVE};



void CP_ReadThis();







static const char endStrings[9][80]=
{
 "Dost thou wish to\nleave with such hasty\nabandon?",
 "Your GP32 is rigged with\na needle that if you hit\nA will jab you...\nWanna Quit?",
 "Press B for more carnage.\nPress A to be a weenie.",
 "So, you think you can\nquit this easily, huh?\n",
 "Press B to save the world.\nPress A to abandon it in\nits hour of need.",
 "Press B if you are brave.\nPress A to cower in shame.",
 "Heroes, press B.\nWimps, press A.",
 "You are at an intersection.\nA sign says, 'Press A to quit.'\n>",
 "For guns and glory, press B.\nFor work and worry, press A."
};

CP_iteminfo



 MainItems={76,55, 9,newgame,24},

 SndItems={48,20,12,0,52},
 LSItems={85,55,10,0,24},
 CtlItems={24,70,6,-1,56},
 CusItems={8,48 +13*2,9,-1,0},
 NewEitems={10,23,11,0,88},
 NewItems={50,100,4,2,24};

CP_itemtype
MainMenu[]=
{
 {1,"New Game",(MenuFunc)CP_NewGame},
 {0,"Sound",(MenuFunc)CP_Sound},
 {0,"Control",(MenuFunc)CP_Control},
 {1,"Load Game",(MenuFunc)CP_LoadGame},
 {0,"Save Game",(MenuFunc)CP_SaveGame},
 {1,"Change View",(MenuFunc)CP_ChangeView},



 {1,"View Scores",(MenuFunc)CP_ViewScores},
 {1,"Back to Demo",0},
 {1,"Quit",0}
},

SndMenu[]=
{
 {1,"None",0},
 {1,"PC Speaker",0},
 {1,"AdLib/Sound Blaster",0},
 {0,"",0},
 {0,"",0},
 {1,"None",0},
 {1,"Disney Sound Source",0},
 {1,"Sound Blaster",0},
 {0,"",0},
 {0,"",0},
 {1,"None",0},
 {1,"AdLib/Sound Blaster",0}
},

CtlMenu[]=
{
 {0,"Mouse Enabled",0},
 {0,"Joystick Enabled",0},
 {0,"Use joystick port 2",0},
 {0,"Gravis GamePad Enabled",0},
 {0,"Mouse Sensitivity",(MenuFunc)MouseSensitivity},
 {1,"Customize controls",(MenuFunc)CustomControls}
},


NewEmenu[]=
{
 {1,"Episode 1\n"
  "Escape from Wolfenstein",0},
 {0,"",0},
 {3,"Episode 2\n"
  "Operation: Eisenfaust",0},
 {0,"",0},
 {3,"Episode 3\n"
  "Die, Fuhrer, Die!",0},
 {0,"",0},
 {3,"Episode 4\n"
  "A Dark Secret",0},
 {0,"",0},
 {3,"Episode 5\n"
  "Trail of the Madman",0},
 {0,"",0},
 {3,"Episode 6\n"
  "Confrontation",0}
},



NewMenu[]=
{
 {1,"I can play GP32?",0},
 {1,"Don't hurt me.",0},
 {1,"Bring 'em on!",0},
 {1,"I am Death incarnate!",0}
},

LSMenu[]=
{
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0},
 {1,"",0}
},

CusMenu[]=
{
 {1,"",0},
 {0,"",0},
 {0,"",0},
 {1,"",0},
 {0,"",0},
 {0,"",0},
 {1,"",0},
 {0,"",0},
 {1,"",0}
};


static const int color_hlite[] = { 0x2b, 0x13, 0x47, 0x67 };
static const int color_norml[] = { 0x2b, 0x17, 0x4a, 0x6b };


static int EpisodeSelect[6] = { 1 };


static int SaveGamesAvail[10],StartGame,SoundStatus=1,pickquick;
static char SaveGameNames[10][32],SaveName[13]="savegam?.";
# 170 "wl_menu.c"
static const char
     *ScanNames[] =
     {
 "?","?","1","2","3","4","5","6","7","8","9","0","-","+","?","?",
 "Q","W","E","R","T","Y","U","I","O","P","[","]","|","?","A","S",
 "D","F","G","H","J","K","L",";","\"","?","?","?","Z","X","C","V",
 "B","N","M",",",".","/","?","?","?","?","?","?","?","?","?","?",
 "?","?","?","?","?","?","?","?","\xf","?","-","\x15","5","\x11","+","?",
 "\x13","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?",
 "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?",
 "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?"
     },
     *ExtScanNames[] =
     {
 "Esc","BkSp","Tab","Ctrl","LShft","Space","CapsLk","F1","F2","F3","F4",
 "F5","F6","F7","F8","F9","F10","F11","F12","ScrlLk","Enter","RShft",
 "PrtSc","Alt","Home","PgUp","End","PgDn","Ins","Del","NumLk","Up",
 "Down","Left","Right",""
     };

static const ScanCode
     ExtScanCodes[] =
     {
 1,0xe,0xf,0x1d,0x2a,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,
 0x3f,0x40,0x41,0x42,0x43,0x44,0x57,0x59,0x46,0x1c,0x36,
 0x37,0x38,0x47,0x49,0x4f,0x51,0x52,0x53,0x45,0x48,
 0x50,0x4b,0x4d,0x00
     };

const char *IN_GetScanName(ScanCode scan)
{
 const char **p;
 const ScanCode *s;

 for (s = ExtScanCodes, p = ExtScanNames; *s; p++, s++)
  if (*s == scan)
   return *p;

 return ScanNames[scan];
}






void US_ControlPanel(byte scancode)
{
 int which;

 if (ingame)
  if (CP_CheckQuick(scancode))
   return;

 StartCPMusic(WONDERIN_MUS);
 SetupControlPanel();




 switch(scancode)
 {
  case 0x3b:



   BossKey();

   goto finishup;

  case 0x3c:
   CP_SaveGame(0);
   goto finishup;

  case 0x3d:
   PrintMessage("Calling CP_LoadGame(0)");
   CP_LoadGame(0);
   goto finishup;

  case 0x3e:
   CP_Sound();
   goto finishup;

  case 0x3f:
   CP_ChangeView();
   goto finishup;

  case 0x40:
   CP_Control();
   goto finishup;

  finishup:
   CleanupControlPanel();



   return;
 }





 PrintMessage("Calling DrawMainMenu()");
 DrawMainMenu();
 PrintMessage("Calling MenuFadeIn()");
 VL_FadeIn(0,255,gamepal,10);
 StartGame=0;




 do
 {
  which=HandleMenu(&MainItems,&MainMenu[0],((void *)0));
# 327 "wl_menu.c"
  switch(which)
  {
   case viewscores:
    if (MainMenu[viewscores].routine == ((void *)0))
     if (CP_EndGame())
      StartGame=1;

    DrawMainMenu();
    VL_FadeIn(0,255,gamepal,10);
    break;

   case backtodemo:
    MM_SortMem();
    StartGame=1;
    if (!ingame)
     StartCPMusic(NAZI_NOR_MUS);
    VL_FadeOut(0,255,0,0,0,-10);
    break;

   case -1:
   case quit:
    CP_Quit();
    break;

   default:
    if (!StartGame)
    {
     DrawMainMenu();
     VL_FadeIn(0,255,gamepal,10);
    }
  }




 } while(!StartGame);




 PrintMessage("Calling CleanupControlPanel()");
 CleanupControlPanel();




 if (startgame || loadedgame)
 {
  MainMenu[viewscores].routine = ((void *)0);
  strcpy(MainMenu[viewscores].string,"End Game");
 }







}






void DrawMainMenu()
{
 ClearMScreen();

 VWB_DrawPic(112,184,C_MOUSELBACKPIC);
 PrintMessage("Calling DrawStripes(10)");
 DrawStripes(10);
 VWB_DrawPic(84,0,C_OPTIONSPIC);

 PrintMessage("DrawWindow(MENU_X-8,MENU_Y-3,MENU_W,MENU_H,BKGDCOLOR)");
 DrawWindow(76 -8,55 -3,178,13*9+6,0x2d);




 if (ingame)
 {

  strcpy(&MainMenu[backtodemo].string[8],"Game");

  MainMenu[backtodemo].active=2;
 }
 else
 {
  strcpy(&MainMenu[backtodemo].string[8],"Demo");

  MainMenu[backtodemo].active=1;
 }

 PrintMessage("DrawMenu(&MainItems,&MainMenu[0])");
 DrawMenu(&MainItems,&MainMenu[0]);
 VW_UpdateScreen();
 PrintMessage("Exiting DrawMainMenu()");
}
# 449 "wl_menu.c"
void BossKey()
{
}







int CP_CheckQuick(unsigned scancode)
{
 switch(scancode)
 {



  case 0x41:
   CA_CacheGrChunk(1 +1);

   WindowH=160;
   if (Confirm("Are you sure you want\n" "to end the game you\n" "are playing? (A(Y) or B(N)):"))
   {
    playstate = ex_died;
    pickquick = gamestate.lives = 0;
   }

   DrawPlayBorder();
   WindowH=200;
   fontnumber=0;
   MainMenu[savegame].active = 0;
   return 1;




  case 0x42:
   if (SaveGamesAvail[LSItems.curpos] && pickquick)
   {
    CA_CacheGrChunk(1 +1);
    fontnumber = 1;
    Message("Saving""...");
    CP_SaveGame(1);
    fontnumber=0;
   }
   else
   {

    CA_CacheGrChunk(1 +1);
    CA_CacheGrChunk(C_CURSOR1PIC);
    CA_CacheGrChunk(C_CURSOR2PIC);
    CA_CacheGrChunk(C_DISKLOADING1PIC);
    CA_CacheGrChunk(C_DISKLOADING2PIC);
    CA_CacheGrChunk(C_SAVEGAMEPIC);
    CA_CacheGrChunk(C_MOUSELBACKPIC);





    VL_FadeOut(0,255,0,0,0,-30);;

    StartCPMusic(WONDERIN_MUS);
    pickquick=CP_SaveGame(0);

    { fontcolor = 0; backcolor = 15; };
    IN_ClearKeysDown();
    DrawPlayScreen ();

    if (!startgame && !loadedgame)
    {
     VL_FadeIn(0,255,gamepal,30);;
     StartMusic ();
    }

    if (loadedgame)
     playstate = ex_abort;
    lasttimecount = get_TimeCount();


    CA_UnCacheGrChunk(C_CURSOR1PIC);
    CA_UnCacheGrChunk(C_CURSOR2PIC);
    CA_UnCacheGrChunk(C_DISKLOADING1PIC);
    CA_UnCacheGrChunk(C_DISKLOADING2PIC);
    CA_UnCacheGrChunk(C_SAVEGAMEPIC);
    CA_UnCacheGrChunk(C_MOUSELBACKPIC);



   }
   return 1;


  case 0x43:
   if (SaveGamesAvail[LSItems.curpos] && pickquick)
   {
    char string[100]="Load Game called\n\"";

    CA_CacheGrChunk(1 +1);
    fontnumber = 1;

    strcat(string,SaveGameNames[LSItems.curpos]);
    strcat(string,"\"?");

    if (Confirm(string))
     CP_LoadGame(1);

    DrawPlayBorder();
    fontnumber=0;
   }
   else
   {

    CA_CacheGrChunk(1 +1);
    CA_CacheGrChunk(C_CURSOR1PIC);
    CA_CacheGrChunk(C_CURSOR2PIC);
    CA_CacheGrChunk(C_DISKLOADING1PIC);
    CA_CacheGrChunk(C_DISKLOADING2PIC);
    CA_CacheGrChunk(C_LOADGAMEPIC);
    CA_CacheGrChunk(C_MOUSELBACKPIC);





    VL_FadeOut(0,255,0,0,0,-30);;

    StartCPMusic(WONDERIN_MUS);
    pickquick=CP_LoadGame(0);

    { fontcolor = 0; backcolor = 15; };
    IN_ClearKeysDown();
    DrawPlayScreen ();

    if (!startgame && !loadedgame)
    {
     VL_FadeIn(0,255,gamepal,30);;
     StartMusic ();
    }

    if (loadedgame)
     playstate = ex_abort;

    lasttimecount = get_TimeCount();


    CA_UnCacheGrChunk(C_CURSOR1PIC);
    CA_UnCacheGrChunk(C_CURSOR2PIC);
    CA_UnCacheGrChunk(C_DISKLOADING1PIC);
    CA_UnCacheGrChunk(C_DISKLOADING2PIC);
    CA_UnCacheGrChunk(C_LOADGAMEPIC);
    CA_UnCacheGrChunk(C_MOUSELBACKPIC);



   }
   return 1;




  case 0x44:
   CA_CacheGrChunk(1 +1);

   WindowX=WindowY=0;
   WindowW=320;
   WindowH=160;
   if (Confirm(endStrings[(US_RndT()&0x7)+(US_RndT()&1)]))
   {
    VW_UpdateScreen();
    SD_MusicOff();
    SD_StopSound();
    VL_FadeOut(0,255,43,0,0,-10);

    Quit(((void *)0));
   }

   DrawPlayBorder();
   WindowH=200;
   fontnumber=0;
   return 1;
  }

 return 0;
}







int CP_EndGame()
{
 if (!Confirm("Are you sure you want\n" "to end the game you\n" "are playing? (A(Y) or B(N)):"))
  return 0;

 pickquick = gamestate.lives = 0;
 playstate = ex_died;

 MainMenu[savegame].active = 0;
 MainMenu[viewscores].routine = (MenuFunc)CP_ViewScores;
 strcpy(MainMenu[viewscores].string,"View Scores");

 return 1;
}







void CP_ViewScores()
{
 fontnumber=0;






 StartCPMusic(ROSTER_MUS);





 DrawHighScores();
 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
 fontnumber=1;

 IN_Ack();

 StartCPMusic(WONDERIN_MUS);
 VL_FadeOut(0,255,43,0,0,-10);





}







void CP_NewGame()
{
 int which,episode;






 episode = 0;



firstpart:

 PrintMessage("Calling DrawNewEpisode()");
 DrawNewEpisode();
 do
 {
  PrintMessage("which=HandleMenu(&NewEitems,&NewEmenu[0],NULL)");
  which=HandleMenu(&NewEitems,&NewEmenu[0],((void *)0));
  switch(which)
  {
   case -1:
    VL_FadeOut(0,255,43,0,0,-10);
    return;

   default:
    if (!EpisodeSelect[which/2])
    {
     SD_PlaySound (NOWAYSND);
     Message("Please select \"Read This!\"\n"
       "from the Options menu to\n"
       "find out how to order this\n"
       "episode from Apogee.");
     IN_ClearKeysDown();
     IN_Ack();
     DrawNewEpisode();
     which = 0;
    }
    else
    {
     episode = which/2;
     which = 1;
    }
    break;
  }

 } while (!which);

 ShootSnd();




 if (ingame)
  if (!Confirm("You are currently in\n" "a game. Continuing will\n" "erase old game. Ok?"))
  {
   VL_FadeOut(0,255,43,0,0,-10);
   return;
  }

 VL_FadeOut(0,255,43,0,0,-10);
# 781 "wl_menu.c"
 DrawNewGame();
 which=HandleMenu(&NewItems,&NewMenu[0],DrawNewGameDiff);
 if (which<0)
 {
  VL_FadeOut(0,255,43,0,0,-10);


  goto firstpart;
# 797 "wl_menu.c"
 }

 ShootSnd();
 NewGame(which,episode);
 StartGame=1;
 VL_FadeOut(0,255,43,0,0,-10);
# 811 "wl_menu.c"
 pickquick = 0;





}







void DrawNewEpisode(void)
{
 int i;

 PrintMessage("Calling ClearMScreen()");
 ClearMScreen();
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);

 PrintMessage("DrawWindow(NE_X-4,NE_Y-4,NE_W+8,NE_H+8,BKGDCOLOR)");
 DrawWindow(10 -4,23 -4,320-10*2 +8,200-23*2 +8,0x2d);
 { fontcolor = 0x47; backcolor = 0x2d; };
 PrintY=2;
 WindowX=0;
 PrintMessage("US_CPrint(\"Which episode to play?\")");
 US_CPrint("Which episode to play?");

 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintMessage("DrawMenu(&NewEitems,&NewEmenu[0])");
 DrawMenu(&NewEitems,&NewEmenu[0]);

 for (i=0;i<6;i++)
  VWB_DrawPic(10 +32,23 +i*26,C_EPISODE1PIC+i);

 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
 WaitKeyUp();
}






void DrawNewGame(void)
{
 ClearMScreen();
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);

 { fontcolor = 0x47; backcolor = 0x2d; };
 PrintX=50 +20;
 PrintY=100 -32;


 US_Print("How tough are you?");




 DrawWindow(50 -5,100 -10,225,13*4+15,0x2d);

 DrawMenu(&NewItems,&NewMenu[0]);
 DrawNewGameDiff(NewItems.curpos);
 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
 WaitKeyUp();
}






void DrawNewGameDiff(int w)
{
 VWB_DrawPic(50 +185,100 +7,w+C_BABYMODEPIC);
}







void CP_Sound()
{
 int which;






 DrawSoundMenu();
 VL_FadeIn(0,255,gamepal,10);
 WaitKeyUp();

 do
 {
  which=HandleMenu(&SndItems,&SndMenu[0],((void *)0));



  switch(which)
  {



   case 0:
    if (SoundMode!=sdm_Off)
    {
     SD_WaitSoundDone();
     SD_SetSoundMode(sdm_Off);
     DrawSoundMenu();
    }
    break;
   case 1:
    if (SoundMode!=sdm_PC)
    {
     SD_WaitSoundDone();
     SD_SetSoundMode(sdm_PC);
     CA_LoadAllSounds();
     DrawSoundMenu();
     ShootSnd();
    }
    break;
   case 2:
    if (SoundMode!=sdm_AdLib)
    {
     SD_WaitSoundDone();
     SD_SetSoundMode(sdm_AdLib);
     CA_LoadAllSounds();
     DrawSoundMenu();
     ShootSnd();
    }
    break;




   case 5:
    if (DigiMode!=sds_Off)
    {
     SD_SetDigiDevice(sds_Off);
     DrawSoundMenu();
    }
    break;
   case 6:
    break;
   case 7:
    if (DigiMode!=sds_SoundBlaster)
    {
     SD_SetDigiDevice(sds_SoundBlaster);
     DrawSoundMenu();
     ShootSnd();
    }
    break;




   case 10:
    if (MusicMode!=smm_Off)
    {
     SD_SetMusicMode(smm_Off);
     DrawSoundMenu();
     ShootSnd();
    }
    break;
   case 11:
    if (MusicMode!=smm_AdLib)
    {
     SD_SetMusicMode(smm_AdLib);
     DrawSoundMenu();
     ShootSnd();
     StartCPMusic(WONDERIN_MUS);
    }
    break;
  }
 } while(which>=0);

 VL_FadeOut(0,255,43,0,0,-10);





}






void DrawSoundMenu(void)
{
 int i,on;




 ClearMScreen();
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);

 DrawWindow(48 -8,20 -3,250,4*13-7,0x2d);
 DrawWindow(48 -8,20 +5*13 -3,250,4*13-7,0x2d);
 DrawWindow(48 -8,20 +5*13 +5*13 -3,250,3*13-7,0x2d);




 if (!AdLibPresent && !SoundBlasterPresent)
 {
  SndMenu[2].active=SndMenu[10].active=SndMenu[11].active=0;
 }

 SndMenu[6].active = 0;

 if (!SoundBlasterPresent)
  SndMenu[7].active=0;

 if (!SoundBlasterPresent)
  SndMenu[5].active=0;

 DrawMenu(&SndItems,&SndMenu[0]);
 VWB_DrawPic(100,20 -20,C_FXTITLEPIC);
 VWB_DrawPic(100,20 +5*13 -20,C_DIGITITLEPIC);
 VWB_DrawPic(100,20 +5*13 +5*13 -20,C_MUSICTITLEPIC);

 for (i=0;i<SndItems.amount;i++)
  if (SndMenu[i].string[0])
  {



   on=0;
   switch(i)
   {



    case 0: if (SoundMode==sdm_Off) on=1; break;
    case 1: if (SoundMode==sdm_PC) on=1; break;
    case 2: if (SoundMode==sdm_AdLib) on=1; break;




    case 5: if (DigiMode==sds_Off) on=1; break;
    case 6: break;
    case 7: if (DigiMode==sds_SoundBlaster) on=1; break;




    case 10: if (MusicMode==smm_Off) on=1; break;
    case 11: if (MusicMode==smm_AdLib) on=1; break;
   }

   if (on)
    VWB_DrawPic(48 +24,20 +i*13+2,C_SELECTEDPIC);
   else
    VWB_DrawPic(48 +24,20 +i*13+2,C_NOTSELECTEDPIC);
  }

 DrawMenuGun(&SndItems);
 VW_UpdateScreen();
}





void DrawLSAction(int which)
{





 DrawWindow(96,80,130,42,0x17);
 DrawOutline(96,80,130,42,0,0x13);
 VWB_DrawPic(96 +8,80 +5,C_DISKLOADING1PIC);

 fontnumber=1;
 { fontcolor = 0; backcolor = 0x17; };
 PrintX=96 +46;
 PrintY=80 +13;

 if (!which)
  US_Print("Loading""...");
 else
  US_Print("Saving""...");

 VW_UpdateScreen();
}







int CP_LoadGame(int quick)
{
 int which, exit=0;
 char name[13];

 strcpy(name, SaveName);




 if (quick)
 {
  which=LSItems.curpos;

  if (SaveGamesAvail[which])
  {
   name[7]=which+'0';
   loadedgame=true;
   LoadTheGame(name, 0, 0);
   loadedgame=false;

   DrawStatusBar();

   return 1;
  }
 }







 DrawLoadSaveScreen(0);

 do
 {
  which=HandleMenu(&LSItems,&LSMenu[0],TrackWhichGame);
  if (which>=0 && SaveGamesAvail[which])
  {
   ShootSnd();
   name[7]=which+'0';

   DrawLSAction(0);
   loadedgame=true;

   LoadTheGame(name, 96 +8, 80 +5);

   StartGame=1;
   ShootSnd();
# 1175 "wl_menu.c"
   exit=1;
   break;
  }

 } while(which>=0);

 VL_FadeOut(0,255,43,0,0,-10);






 return exit;
}






void TrackWhichGame(int w)
{
 static int lastgameon=0;

 PrintLSEntry(lastgameon,0x17);
 PrintLSEntry(w,0x13);

 lastgameon=w;
}






void DrawLoadSaveScreen(int loadsave)
{



 int i;


 ClearMScreen();
 fontnumber=1;
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);
 DrawWindow(85 -10,55 -5,175,10*13+10,0x2d);
 DrawStripes(10);

 if (!loadsave)
  VWB_DrawPic(60,0,C_LOADGAMEPIC);
 else
  VWB_DrawPic(60,0,C_SAVEGAMEPIC);

 for (i=0;i<10;i++)
  PrintLSEntry(i,0x17);

 DrawMenu(&LSItems,&LSMenu[0]);
 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
 WaitKeyUp();
}






void PrintLSEntry(int w,int color)
{
 { fontcolor = color; backcolor = 0x2d; };
 DrawOutline(85 +LSItems.indent,55 +w*13,175 -LSItems.indent-15,11,color,color);
 PrintX=85 +LSItems.indent+2;
 PrintY=55 +w*13+1;
 fontnumber=0;

 if (SaveGamesAvail[w])
  US_Print(SaveGameNames[w]);
 else
  US_Print("      - ""empty"" -");

 fontnumber=1;
}







int CP_SaveGame(int quick)
{
 int which, exit=0;
 char name[13], input[32];

 strcpy(name,SaveName);




 if (quick)
 {
  which=LSItems.curpos;

  if (SaveGamesAvail[which])
  {
   name[7] = which+'0';
   SaveTheGame(name, &SaveGameNames[which][0], 0, 0);

   return 1;
  }
 }







 DrawLoadSaveScreen(1);

 do
 {
  which=HandleMenu(&LSItems,&LSMenu[0],TrackWhichGame);
  if (which>=0)
  {



   if (SaveGamesAvail[which]) {
    if (!Confirm("There's already a game\n" "saved at this position.\n" "      Overwrite?"))
    {
     DrawLoadSaveScreen(1);
     continue;
    }
    else
    {
     DrawLoadSaveScreen(1);
     PrintLSEntry(which,0x13);
     VW_UpdateScreen();
    }
   }
   ShootSnd();

   strcpy(input,&SaveGameNames[which][0]);
   name[7]=which+'0';

   fontnumber=0;
   if (!SaveGamesAvail[which])
    VW_Bar(85 +LSItems.indent+1,55 +which*13+1,175 -LSItems.indent-16,10,0x2d);
   VW_UpdateScreen();

   if (US_LineInput(85 +LSItems.indent+2,55 +which*13+1,input,input,true,31,175 -LSItems.indent-30))
   {
    SaveGamesAvail[which] = 1;
    DrawLSAction(1);
    strcpy(&SaveGameNames[which][0],input);
    SaveTheGame(name, input, 96 +8, 80 +5);
    ShootSnd();
    exit=1;
   }
   else
   {
    VW_Bar(85 +LSItems.indent+1,55 +which*13+1,175 -LSItems.indent-16,10,0x2d);
    PrintLSEntry(which,0x13);
    VW_UpdateScreen();
    SD_PlaySound(ESCPRESSEDSND);
    continue;
   }

   fontnumber=1;
   break;
  }

 } while(which>=0);

 VL_FadeOut(0,255,43,0,0,-10);






 return exit;
}







int CalibrateJoystick()
{





 word xmin,ymin,xmax,ymax,jb;

 DrawWindow(85 -5,40 -5,158,140,0x17);
 DrawOutline(85 -5,40 -5,158,140,0,0x13);
 { fontcolor = 0; backcolor = 0x17; };

 WindowX = PrintX = 85;
 WindowW = 158;
 WindowH = 140;
 WindowY = PrintY = 40;
 US_Print("    ""Calibrate""\n    ""Joystick""\n");
 VWB_DrawPic(85 +40,40 +30,C_JOY1PIC);
 PrintY = 40 +80;
 US_Print("Move joystick to\nupper left and\npress button 0\n");
 { fontcolor = 0x2d; backcolor = 0x17; };
 US_Print("   ""ESC to exit");

 VW_UpdateScreen();

 do {
  jb=IN_JoyButtons();
  IN_CheckAck();
  if ((Keyboard[(0x01)]))
   return 0;

  if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
   PicturePause();

 } while(!(jb&0x20));

 SD_PlaySound(SHOOTSND);
 IN_GetJoyAbs(joystickport, &xmin, &ymin);


 DrawWindow(85 -5,40 -5,158,140,0x17);
 DrawOutline(85 -5,40 -5,158,140,0,0x13);
 { fontcolor = 0; backcolor = 0x17; };

 PrintX = 85;
 PrintY = 40;
 US_Print("    ""Calibrate""\n    ""Joystick""\n");
 VWB_DrawPic(85 +40,40 +30,C_JOY2PIC);
 PrintY = 40 +80;
 US_Print("Move joystick to\nlower right and\npress button 1\n");
 { fontcolor = 0x2d; backcolor = 0x17; };
 US_Print("   ""ESC to exit");

 VW_UpdateScreen();

 do {
  jb = IN_JoyButtons();
  IN_CheckAck();
  if ((Keyboard[(0x01)]))
   return 0;
  if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
   PicturePause();
 } while(!(jb&0x40));

 IN_GetJoyAbs(joystickport,&xmax,&ymax);
 SD_PlaySound(SHOOTSND);

 while (IN_JoyButtons() );




 if ((xmin != xmax) && (ymin != ymax))
  IN_SetupJoy(joystickport,xmin,xmax,ymin,ymax);
 else
  return 0;

 return 1;
}







void CP_Control()
{
 enum {MOUSEENABLE,JOYENABLE,USEPORT2,PADENABLE,MOUSESENS,CUSTOMIZE};
 int which;






 DrawCtlScreen();
 VL_FadeIn(0,255,gamepal,10);
 WaitKeyUp();

 do
 {
  which=HandleMenu(&CtlItems,&CtlMenu[0],((void *)0));
  switch(which)
  {
   case MOUSEENABLE:
    mouseenabled^=1;
    DrawCtlScreen();
    CusItems.curpos=-1;
    ShootSnd();
    break;

   case JOYENABLE:
    joystickenabled^=1;
    DrawCtlScreen();
    CusItems.curpos=-1;
    ShootSnd();
    break;
   case USEPORT2:
    joystickport^=1;
    DrawCtlScreen();
    ShootSnd();
    break;

   case PADENABLE:
    joypadenabled^=1;
    DrawCtlScreen();
    ShootSnd();
    break;

   case MOUSESENS:
   case CUSTOMIZE:
    DrawCtlScreen();
    VL_FadeIn(0,255,gamepal,10);
    WaitKeyUp();
    break;
  }
 } while(which>=0);

 VL_FadeOut(0,255,43,0,0,-10);





}






void DrawMouseSens()
{
 ClearMScreen();
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);
 DrawWindow(10,80,300,30,0x2d);

 WindowX=0;
 WindowW=320;
 PrintY=82;
 { fontcolor = 0x4a; backcolor = 0x2d; };
 US_CPrint("Adjust Mouse Sensitivity");

 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintX=14;
 PrintY=95;
 US_Print("Slow");
 PrintX=269;
 US_Print("Fast");

 VW_Bar(60,97,200,10,0x17);
 DrawOutline(60,97,200,10,0,0x13);
 DrawOutline(60+20*mouseadjustment,97,20,10,0,0x4a);
 VW_Bar(61+20*mouseadjustment,98,19,9,0x47);

 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
}






void MouseSensitivity()
{
 ControlInfo ci;
 int exit=0,oldMA;


 oldMA=mouseadjustment;
 DrawMouseSens();
 do
 {
  ReadAnyControl(&ci);
  switch(ci.dir)
  {
   case dir_North:
   case dir_West:
    if (mouseadjustment)
    {
     mouseadjustment--;
     VW_Bar(60,97,200,10,0x17);
     DrawOutline(60,97,200,10,0,0x13);
     DrawOutline(60+20*mouseadjustment,97,20,10,0,0x4a);
     VW_Bar(61+20*mouseadjustment,98,19,9,0x47);
     VW_UpdateScreen();
     SD_PlaySound(MOVEGUN1SND);

     while((Keyboard[(0x4b)])) IN_CheckAck();
     WaitKeyUp();
    }
    break;

   case dir_South:
   case dir_East:
    if (mouseadjustment<9)
    {
     mouseadjustment++;
     VW_Bar(60,97,200,10,0x17);
     DrawOutline(60,97,200,10,0,0x13);
     DrawOutline(60+20*mouseadjustment,97,20,10,0,0x4a);
     VW_Bar(61+20*mouseadjustment,98,19,9,0x47);
     VW_UpdateScreen();
     SD_PlaySound(MOVEGUN1SND);

     while((Keyboard[(0x4d)])) IN_CheckAck();
     WaitKeyUp();
    }
    break;
   default:
    break;
  }

  if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
   PicturePause();

  if (ci.button0 || (Keyboard[(0x39)]) || (Keyboard[(0x1c)]))
   exit = 1;
  else if (ci.button1 || (Keyboard[(0x01)]))
   exit = 2;

 } while(!exit);

 if (exit == 2) {
  mouseadjustment = oldMA;
  SD_PlaySound(ESCPRESSEDSND);
 } else
  SD_PlaySound(SHOOTSND);

 WaitKeyUp();
 VL_FadeOut(0,255,43,0,0,-10);
}






void DrawCtlScreen()
{
 int i, x, y;

 ClearMScreen();
 DrawStripes(10);
 VWB_DrawPic(80,0,C_CONTROLPIC);
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);
 DrawWindow(24 -8,70 -5,284,13*7-7,0x2d);

 WindowX=0;
 WindowW=320;
 { fontcolor = 0x17; backcolor = 0x2d; };

 if (JoysPresent[0])
   CtlMenu[1].active=
   CtlMenu[2].active=
   CtlMenu[3].active=1;

 CtlMenu[2].active=CtlMenu[3].active=joystickenabled;

 if (MousePresent)
 {
  CtlMenu[4].active=
  CtlMenu[0].active=1;
 }

 CtlMenu[4].active=mouseenabled;


 DrawMenu(&CtlItems,&CtlMenu[0]);


 x=24 +CtlItems.indent-24;
 y=70 +3;
 if (mouseenabled)
   VWB_DrawPic(x,y,C_SELECTEDPIC);
 else
   VWB_DrawPic(x,y,C_NOTSELECTEDPIC);

 y=70 +16;
 if (joystickenabled)
   VWB_DrawPic(x,y,C_SELECTEDPIC);
 else
   VWB_DrawPic(x,y,C_NOTSELECTEDPIC);

 y=70 +29;
 if (joystickport)
   VWB_DrawPic(x,y,C_SELECTEDPIC);
 else
   VWB_DrawPic(x,y,C_NOTSELECTEDPIC);

 y=70 +42;
 if (joypadenabled)
   VWB_DrawPic(x,y,C_SELECTEDPIC);
 else
   VWB_DrawPic(x,y,C_NOTSELECTEDPIC);




 if (CtlItems.curpos<0 || !CtlMenu[CtlItems.curpos].active)
   for (i=0;i<6;i++)
  if (CtlMenu[i].active)
  {
   CtlItems.curpos=i;
   break;
  }

 DrawMenuGun(&CtlItems);
 VW_UpdateScreen();
}







enum {FIRE,STRAFE,RUN,OPEN};
char mbarray[4][3]={"b0","b1","b2","b3"};
int order[4]={RUN,OPEN,FIRE,STRAFE};

void CustomControls(void)
{
 int which;


 DrawCustomScreen();
 do
 {
  which=HandleMenu(&CusItems,&CusMenu[0],FixupCustom);
  switch(which)
  {
   case 0:
  DefineMouseBtns();
  DrawCustMouse(1);
  break;
   case 3:
  DefineJoyBtns();
  DrawCustJoy(0);
  break;
   case 6:
  DefineKeyBtns();
  DrawCustKeybd(0);
  break;
   case 8:
  DefineKeyMove();
  DrawCustKeys(0);
  }
 } while(which>=0);



 VL_FadeOut(0,255,43,0,0,-10);
}






void DefineMouseBtns(void)
{
 CustomCtrls mouseallowed={ {0,1,1,1} };
 EnterCtrlData(2,&mouseallowed,DrawCustMouse,PrintCustMouse,MOUSE);
}






void DefineJoyBtns(void)
{
 CustomCtrls joyallowed={ {1,1,1,1} };
 EnterCtrlData(5,&joyallowed,DrawCustJoy,PrintCustJoy,JOYSTICK);
}






void DefineKeyBtns(void)
{
 CustomCtrls keyallowed={ {1,1,1,1} };
 EnterCtrlData(8,&keyallowed,DrawCustKeybd,PrintCustKeybd,KEYBOARDBTNS);
}






void DefineKeyMove(void)
{
 CustomCtrls keyallowed={ {1,1,1,1} };
 EnterCtrlData(10,&keyallowed,DrawCustKeys,PrintCustKeys,KEYBOARDMOVE);
}






enum {FWRD,RIGHT,BKWD,LEFT};
int moveorder[4]={LEFT,RIGHT,FWRD,BKWD};

void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type)
{
 int j,exit,tick,redraw,which = 0,x = 0,picked;
 ControlInfo ci;

 ShootSnd();
 PrintY=48 +13*index;
 IN_ClearKeysDown();
 exit=0;
 redraw=1;



 for (j=0;j<4;j++)
   if (cust->allowed[j])
   {
 which=j;
 break;
   }

 do
 {
  if (redraw)
  {
   x=60 +60*which;
   DrawWindow(5,PrintY-1,310,13,0x2d);

   DrawRtn(1);
   DrawWindow(x-2,PrintY,60,11,0x17);
   DrawOutline(x-2,PrintY,60,11,0,0x13);
   { fontcolor = 0; backcolor = 0x17; };
   PrintRtn(which);
   PrintX=x;
   { fontcolor = 0x17; backcolor = 0x2d; };
   VW_UpdateScreen();
   WaitKeyUp();
   redraw=0;
  }

  ReadAnyControl(&ci);

 if (type==MOUSE || type==JOYSTICK)
  if ((Keyboard[(0x1c)]) || (Keyboard[(0x1d)]) || (Keyboard[(0x38)]))
  {
   IN_ClearKeysDown();
   ci.button0=ci.button1=false;
  }




  if ((ci.button0|ci.button1|ci.button2|ci.button3)||
   ((type==KEYBOARDBTNS||type==KEYBOARDMOVE) && LastScan==0x1c))
  {
   tick = picked = 0;
   set_TimeCount(0);

   { fontcolor = 0; backcolor = 0x17; };

   do
   {
 int button,result=0;

 if (type==KEYBOARDBTNS||type==KEYBOARDMOVE)
   IN_ClearKeysDown();

 IN_CheckAck();




 if (get_TimeCount() >10)
 {
  switch(tick)
  {
   case 0:
 VW_Bar(x,PrintY+1,60 -2,10,0x17);
 break;
   case 1:
 PrintX=x;
 US_Print("?");
 SD_PlaySound(HITWALLSND);
  }
  tick^=1;
  set_TimeCount(0);
  VW_UpdateScreen();
 }




 switch(type)
 {
  case MOUSE:
   button = IN_MouseButtons();
    switch(button)
    {
 case 1: result=1; break;
 case 2: result=2; break;
 case 4: result=3; break;
    }

    if (result)
    {
 int z;


 for (z=0;z<4;z++)
   if (order[which]==buttonmouse[z])
   {
    buttonmouse[z]=bt_nobutton;
    break;
   }

 buttonmouse[result-1]=order[which];
 picked=1;
 SD_PlaySound(SHOOTDOORSND);
    }
    break;

  case JOYSTICK:
    if (ci.button0) result=1;
    else
    if (ci.button1) result=2;
    else
    if (ci.button2) result=3;
    else
    if (ci.button3) result=4;

    if (result)
    {
 int z;


 for (z=0;z<4;z++)
   if (order[which]==buttonjoy[z])
   {
    buttonjoy[z]=bt_nobutton;
    break;
   }

 buttonjoy[result-1]=order[which];
 picked=1;
 SD_PlaySound(SHOOTDOORSND);
    }
    break;

  case KEYBOARDBTNS:
    if (LastScan)
    {
 buttonscan[order[which]]=LastScan;
 picked=1;
 ShootSnd();
 IN_ClearKeysDown();
    }
    break;

  case KEYBOARDMOVE:
    if (LastScan)
    {
 dirscan[moveorder[which]]=LastScan;
 picked=1;
 ShootSnd();
 IN_ClearKeysDown();
    }
    break;
 }




 if ((Keyboard[(0x01)]))
 {
  picked=1;
  continue;
 }

   } while(!picked);

   { fontcolor = 0x17; backcolor = 0x2d; };
   redraw=1;
   WaitKeyUp();
   continue;
  }

  if (ci.button1 || (Keyboard[(0x01)]))
 exit=1;




  switch(ci.dir)
  {
   case dir_West:
  do
  {
   which--;
   if (which<0)
 which=3;
  } while(!cust->allowed[which]);
  redraw=1;
  SD_PlaySound(MOVEGUN1SND);
  while(ReadAnyControl(&ci),ci.dir!=dir_None);
  IN_ClearKeysDown();
  break;

   case dir_East:
  do
  {
   which++;
   if (which>3)
 which=0;
  } while(!cust->allowed[which]);
  redraw=1;
  SD_PlaySound(MOVEGUN1SND);
  while(ReadAnyControl(&ci),ci.dir!=dir_None);
  IN_ClearKeysDown();
  break;
   case dir_North:
   case dir_South:
  exit=1;
   default:
    break;
  }
 } while(!exit);

 SD_PlaySound(ESCPRESSEDSND);
 WaitKeyUp();
 DrawWindow(5,PrintY-1,310,13,0x2d);
}






void FixupCustom(int w)
{
 static int lastwhich=-1;
 int y=48 +26+w*13;


 VL_Hlin(7,y-1,(32)-(7)+1,0x2b);
 VL_Hlin(7,y+12,(32)-(7)+1,0x23);


 VL_Hlin(7,y-2,(32)-(7)+1,0x29);
 VL_Hlin(7,y+13,(32)-(7)+1,0x29);
# 2055 "wl_menu.c"
 switch(w)
 {
  case 0: DrawCustMouse(1); break;
  case 3: DrawCustJoy(1); break;
  case 6: DrawCustKeybd(1); break;
  case 8: DrawCustKeys(1);
 }


 if (lastwhich>=0)
 {
  y=48 +26+lastwhich*13;
  VL_Hlin(7,y-1,(32)-(7)+1,0x2b);
  VL_Hlin(7,y+12,(32)-(7)+1,0x23);


  VL_Hlin(7,y-2,(32)-(7)+1,0x29);
  VL_Hlin(7,y+13,(32)-(7)+1,0x29);
# 2082 "wl_menu.c"
  if (lastwhich!=w)
   switch(lastwhich)
   {
    case 0: DrawCustMouse(0); break;
    case 3: DrawCustJoy(0); break;
    case 6: DrawCustKeybd(0); break;
    case 8: DrawCustKeys(0);
   }
 }

 lastwhich=w;
}






void DrawCustomScreen(void)
{
 int i;

 ClearMScreen();
 WindowX=0;
 WindowW=320;
 VWB_DrawPic(112,184,C_MOUSELBACKPIC);
 DrawStripes(10);
 VWB_DrawPic(80,0,C_CUSTOMIZEPIC);




 { fontcolor = 0x4a; backcolor = 0x2d; };
 WindowX=0;
 WindowW=320;


 PrintY=48;
 US_CPrint("Mouse\n");





 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintX=60;
 US_Print("Run");
 PrintX=60 +60*1;
 US_Print("Open");
 PrintX=60 +60*2;
 US_Print("Fire");
 PrintX=60 +60*3;
 US_Print("Strafe""\n");

 DrawWindow(5,PrintY-1,310,13,0x2d);
 DrawCustMouse(0);
 US_Print("\n");






 { fontcolor = 0x4a; backcolor = 0x2d; };
 US_CPrint("Joystick/Gravis GamePad\n");
# 2156 "wl_menu.c"
 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintX=60;
 US_Print("Run");
 PrintX=60 +60*1;
 US_Print("Open");
 PrintX=60 +60*2;
 US_Print("Fire");
 PrintX=60 +60*3;
 US_Print("Strafe""\n");

 DrawWindow(5,PrintY-1,310,13,0x2d);
 DrawCustJoy(0);
 US_Print("\n");






 { fontcolor = 0x4a; backcolor = 0x2d; };
 US_CPrint("Keyboard\n");



 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintX=60;
 US_Print("Run");
 PrintX=60 +60*1;
 US_Print("Open");
 PrintX=60 +60*2;
 US_Print("Fire");
 PrintX=60 +60*3;
 US_Print("Strafe""\n");

 DrawWindow(5,PrintY-1,310,13,0x2d);
 DrawCustKeybd(0);
 US_Print("\n");





 { fontcolor = 0x17; backcolor = 0x2d; };
 PrintX=60;
 US_Print("Left");
 PrintX=60 +60*1;
 US_Print("Right");
 PrintX=60 +60*2;
 US_Print("Frwd");
 PrintX=60 +60*3;
 US_Print("Bkwrd""\n");

 DrawWindow(5,PrintY-1,310,13,0x2d);
 DrawCustKeys(0);




 if (CusItems.curpos<0)
  for (i=0;i<CusItems.amount;i++)
   if (CusMenu[i].active)
   {
    CusItems.curpos=i;
    break;
   }


 VW_UpdateScreen();
 VL_FadeIn(0,255,gamepal,10);
}


void PrintCustMouse(int i)
{
 int j;

 for (j=0;j<4;j++)
  if (order[i]==buttonmouse[j])
  {
   PrintX=60 +60*i;
   US_Print(mbarray[j]);
   break;
  }
}

void DrawCustMouse(int hilight)
{
 int i,color;


 color=0x17;
 if (hilight)
  color=0x13;
 { fontcolor = color; backcolor = 0x2d; };

 if (!mouseenabled)
 {
  { fontcolor = 0x2b; backcolor = 0x2d; };
  CusMenu[0].active=0;
 }
 else
  CusMenu[0].active=1;

 PrintY=48 +13*2;
 for (i=0;i<4;i++)
  PrintCustMouse(i);
}

void PrintCustJoy(int i)
{
 int j;

 for (j=0;j<4;j++)
  if (order[i]==buttonjoy[j])
  {
   PrintX=60 +60*i;
   US_Print(mbarray[j]);
   break;
  }
}

void DrawCustJoy(int hilight)
{
 int i,color;


 color=0x17;
 if (hilight)
  color=0x13;
 { fontcolor = color; backcolor = 0x2d; };

 if (!joystickenabled)
 {
  { fontcolor = 0x2b; backcolor = 0x2d; };
  CusMenu[3].active=0;
 }
 else
  CusMenu[3].active=1;

 PrintY=48 +13*5;
 for (i=0;i<4;i++)
  PrintCustJoy(i);
}


void PrintCustKeybd(int i)
{
 PrintX=60 +60*i;
 US_Print(IN_GetScanName(buttonscan[order[i]]));
}

void DrawCustKeybd(int hilight)
{
 int i,color;


 color=0x17;
 if (hilight)
  color=0x13;
 { fontcolor = color; backcolor = 0x2d; };

 PrintY=48 +13*8;
 for (i=0;i<4;i++)
  PrintCustKeybd(i);
}

void PrintCustKeys(int i)
{
 PrintX=60 +60*i;
 US_Print(IN_GetScanName(dirscan[moveorder[i]]));
}

void DrawCustKeys(int hilight)
{
 int i,color;


 color=0x17;
 if (hilight)
  color=0x13;
 { fontcolor = color; backcolor = 0x2d; };

 PrintY=48 +13*10;
 for (i=0;i<4;i++)
  PrintCustKeys(i);
}







void CP_ChangeView()
{
 int exit = 0, oldview, newview;
 ControlInfo ci;

 WindowX=WindowY=0;
 WindowW=320;
 WindowH=200;
 newview=oldview=viewsize;
 DrawChangeView(oldview);

 do {
  CheckPause();
  ReadAnyControl(&ci);
  switch(ci.dir) {
  case dir_South:
  case dir_West:
   newview--;
   if (newview<4)
    newview=4;
   ShowViewSize(newview);
   VW_UpdateScreen();
   SD_PlaySound(HITWALLSND);
   TicDelay(10);
   break;

  case dir_North:
  case dir_East:
   newview++;
   if (newview>20)
    newview=20;
   ShowViewSize(newview);
   VW_UpdateScreen();
   SD_PlaySound(HITWALLSND);
   TicDelay(10);
   break;
  default:
   break;
  }

  if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
   PicturePause();

  if (ci.button0 || (Keyboard[(0x1c)]))
   exit = 1;
  else if (ci.button1 || (Keyboard[(0x01)])) {
   SD_PlaySound(ESCPRESSEDSND);
   VL_FadeOut(0,255,43,0,0,-10);
   return;
  }
 } while(!exit);

 if (oldview != newview) {
  SD_PlaySound(SHOOTSND);
  Message("Thinking""...");
  NewViewSize(newview);
 }

 ShootSnd();
 VL_FadeOut(0,255,43,0,0,-10);
}






void DrawChangeView(int view)
{
 VW_Bar(0,160,320,40,0x7f);
 ShowViewSize(view);

 PrintY=161;
 WindowX=0;
 WindowY=320;
 { fontcolor = 0x13; backcolor = 0x2d; };

 US_CPrint("Use arrows to size""\n");
 US_CPrint("ENTER to accept""\n");
 US_CPrint("ESC to cancel");

 VW_UpdateScreen();

 VL_FadeIn(0,255,gamepal,10);
}







void CP_Quit()
{
 if (Confirm(endStrings[(US_RndT()&0x7)+(US_RndT()&1)]))
 {
  VW_UpdateScreen();
  SD_MusicOff();
  SD_StopSound();
  VL_FadeOut(0,255,43,0,0,-10);
  GpAppExit();
  Quit(((void *)0));
 }

 DrawMainMenu();
}
# 2469 "wl_menu.c"
void ClearMScreen(void)
{

 PrintMessage("VW_Bar(0,0,320,200,BORDCOLOR)");
 VW_Bar(0,0,320,200,0x29);
# 2482 "wl_menu.c"
}







void CacheLump(int lumpstart, int lumpend)
{
 int i;

 for (i=lumpstart;i<=lumpend;i++)
  CA_CacheGrChunk(i);
}


void UnCacheLump(int lumpstart, int lumpend)
{
 int i;

 for (i=lumpstart;i<=lumpend;i++)
  CA_UnCacheGrChunk(i);
}







void DrawWindow(int x,int y,int w,int h,int wcolor)
{
 PrintMessage("VW_Bar(x,y,w,h,wcolor)");
 VW_Bar(x,y,w,h,wcolor);
 PrintMessage("DrawOutline(x,y,w,h,BORD2COLOR,DEACTIVE)");
 DrawOutline(x,y,w,h,0x23,0x2b);
 PrintMessage("Exiting DrawWindow");
}

void DrawOutline(int x,int y,int w,int h,int color1,int color2)
{
 VL_Hlin(x,y,(x+w)-(x)+1,color2);
 VL_Vlin(x,y,(y+h)-(y)+1,color2);
 VL_Hlin(x,y+h,(x+w)-(x)+1,color1);
 VL_Vlin(x+w,y,(y+h)-(y)+1,color1);
}







void SetupControlPanel()
{
 int entry_start_idx;

 ERR_CODE err_code;
 GPDIRENTRY *p_list;
 unsigned long list_count = 0, read_count = 0;
 GPFILEATTR mAttr;
 int which, i;

 CA_CacheGrChunk(1 +1);

 CacheLump(10, 42);




 { fontcolor = 0x17; backcolor = 0x2d; };
 fontnumber = 1;
 WindowH = 200;

 if (!ingame)
  CA_LoadAllSounds();
 else
  MainMenu[savegame].active = 1;





 err_code = GpDirEnumNum("gp:\\GAME\\Wolf3D", &list_count);
 if (err_code != SM_OK)
 {
  Quit("GpDirEnumNum(GP32WOLF_PATH, &list_count)");
 }
# 2585 "wl_menu.c"
 entry_start_idx = 0;
 p_list = (GPDIRENTRY*)gm_calloc(list_count, sizeof(GPDIRENTRY));
 GpDirEnumList("gp:\\GAME\\Wolf3D", entry_start_idx, list_count, p_list, &read_count);
 for (i=0; i<read_count; i++)
 {
  err_code = GpFileAttr(p_list[i].name, &mAttr);
  if (err_code != SM_OK)
  {

  }
  if (err_code == SM_OK && ((mAttr.attr & 0x10) == 0))
  {
   strlwr(p_list[i].name);
   PrintMessage(p_list[i].name);
   if(strncmp(p_list[i].name,SaveName,7) == 0)
   {
    which = p_list[i].name[7] - '0';
    if (which < 10)
    {
     char temp[32];

     if (ReadSaveTag(p_list[i].name, temp) != -1)
     {
      SaveGamesAvail[which]=1;


     }
    }
   }
  }
 }
 gm_free(p_list);


}







void CleanupControlPanel()
{

 PrintMessage("UnCacheLump(CONTROLS_LUMP_START,CONTROLS_LUMP_END)");
 UnCacheLump(10,42);





 fontnumber = 0;
}







int HandleMenu(CP_iteminfo *item_i,CP_itemtype *items,void (*routine)(int w))
{
 char key;
 static int redrawitem=1,lastitem=-1;
 int i,x,y,basey,exit,which,shape,timer;
 ControlInfo ci;


 which=item_i->curpos;
 x=item_i->x&-8;
 basey=item_i->y-2;
 y=basey+which*13;

 VWB_DrawPic(x,y,C_CURSOR1PIC);
 SetMenuTextColor(items+which,1);
 if (redrawitem)
 {
  PrintX=item_i->x+item_i->indent;
  PrintY=item_i->y+which*13;
  US_Print((items+which)->string);
 }



 if (routine)
  routine(which);
 VW_UpdateScreen();

 shape=C_CURSOR1PIC;
 timer=8;
 exit=0;
 set_TimeCount(0);
 IN_ClearKeysDown();


 do
 {



  if (get_TimeCount() > timer)
  {
   set_TimeCount(0);
   if (shape==C_CURSOR1PIC)
   {
    shape=C_CURSOR2PIC;
    timer=8;
   }
   else
   {
    shape=C_CURSOR1PIC;
    timer=70;
   }
   VWB_DrawPic(x,y,shape);
   if (routine)
    routine(which);
   VW_UpdateScreen();
  }

  CheckPause();




  key=LastASCII;
  if (key)
  {
   int ok=0;




   if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
    PicturePause();


   if (key>='a')
    key-='a'-'A';

   for (i=which+1;i<item_i->amount;i++)
    if ((items+i)->active && (items+i)->string[0]==key)
    {
     EraseGun(item_i,items,x,y,which);
     which=i;
     DrawGun(item_i,items,x,&y,which,basey,routine);
     ok=1;
     IN_ClearKeysDown();
     break;
    }




   if (!ok)
   {
    for (i=0;i<which;i++)
     if ((items+i)->active && (items+i)->string[0]==key)
     {
      EraseGun(item_i,items,x,y,which);
      which=i;
      DrawGun(item_i,items,x,&y,which,basey,routine);
      IN_ClearKeysDown();
      break;
     }
   }
  }




  ReadAnyControl(&ci);
  switch(ci.dir)
  {




   case dir_North:

   EraseGun(item_i,items,x,y,which);




   if (which && (items+which-1)->active)
   {
    y-=6;
    DrawHalfStep(x,y);
   }




   do
   {
    if (!which)
     which=item_i->amount-1;
    else
     which--;
   } while(!(items+which)->active);

   DrawGun(item_i,items,x,&y,which,basey,routine);



   TicDelay(20);
   break;





   case dir_South:

   EraseGun(item_i,items,x,y,which);



   if (which!=item_i->amount-1 && (items+which+1)->active)
   {
    y+=6;
    DrawHalfStep(x,y);
   }

   do
   {
    if (which==item_i->amount-1)
     which=0;
    else
     which++;
   } while(!(items+which)->active);

   DrawGun(item_i,items,x,&y,which,basey,routine);




   TicDelay(20);
   break;

   default:
    break;
  }

  if (ci.button0 || (Keyboard[(0x39)]) || (Keyboard[(0x1c)]))
   exit = 1;




 } while(!exit);


 IN_ClearKeysDown();




 if (lastitem!=which)
 {
  VW_Bar(x-1,y,25,16,0x2d);
  PrintX=item_i->x+item_i->indent;
  PrintY=item_i->y+which*13;
  US_Print((items+which)->string);
  redrawitem=1;
 }
 else
  redrawitem=0;

 if (routine)
  routine(which);
 VW_UpdateScreen();

 item_i->curpos=which;

 lastitem=which;
 switch(exit)
 {
  case 1:



   if ((items+which)->routine!=((void *)0))
   {
    ShootSnd();
    VL_FadeOut(0,255,43,0,0,-10);
    (items+which)->routine(0);
   }
   return which;

  case 2:
   SD_PlaySound(ESCPRESSEDSND);
   return -1;
 }

 return 0;
}





void EraseGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int y,int which)
{
 VW_Bar(x-1,y,25,16,0x2d);
 SetMenuTextColor(items+which,0);

 PrintX=item_i->x+item_i->indent;
 PrintY=item_i->y+which*13;
 US_Print((items+which)->string);
 VW_UpdateScreen();
}





void DrawHalfStep(int x,int y)
{
 VWB_DrawPic(x,y,C_CURSOR1PIC);
 VW_UpdateScreen();
 SD_PlaySound(MOVEGUN1SND);
 set_TimeCount(0);
 while(get_TimeCount() < 8);
}





void DrawGun(CP_iteminfo *item_i,CP_itemtype *items,int x,int *y,int which,int basey,void (*routine)(int w))
{
 VW_Bar(x-1,*y,25,16,0x2d);
 *y=basey+which*13;
 VWB_DrawPic(x,*y,C_CURSOR1PIC);
 SetMenuTextColor(items+which,1);

 PrintX=item_i->x+item_i->indent;
 PrintY=item_i->y+which*13;
 US_Print((items+which)->string);




 if (routine)
  routine(which);
 VW_UpdateScreen();
 SD_PlaySound(MOVEGUN2SND);
}






void TicDelay(int count)
{
 ControlInfo ci;

 set_TimeCount(0);
 do {
  ReadAnyControl(&ci);
 } while( (get_TimeCount() < count) && (ci.dir!=dir_None) );
}







void DrawMenu(CP_iteminfo *item_i,CP_itemtype *items)
{
 int i,which=item_i->curpos;



 WindowX=PrintX=item_i->x+item_i->indent;
 WindowY=PrintY=item_i->y;
 WindowW=320;
 WindowH=200;

 for (i=0;i<item_i->amount;i++)
 {

  SetMenuTextColor(items+i,which==i);

  PrintY=item_i->y+i*13;
  if ((items+i)->active)
  {


   US_Print((items+i)->string);
  }
  else
  {
   { fontcolor = 0x2b; backcolor = 0x2d; };


   US_Print((items+i)->string);
   { fontcolor = 0x17; backcolor = 0x2d; };
  }


  US_Print("\n");
 }
}







void SetMenuTextColor(CP_itemtype *items,int hlight)
{

 if (hlight)
 {


  { fontcolor = color_hlite[items->active]; backcolor = 0x2d; };
 }
 else
 {


  { fontcolor = color_norml[items->active]; backcolor = 0x2d; };
 }
}







void WaitKeyUp(void)
{
 ControlInfo ci;
 while(ReadAnyControl(&ci),
  ci.button0|ci.button1|ci.button2|ci.button3|
  (Keyboard[(0x39)])|(Keyboard[(0x1c)])|(Keyboard[(0x01)]));
}







void ReadAnyControl(ControlInfo *ci)
{
 int mouseactive=0;

 IN_ReadControl(0,ci);

 if (mouseenabled)
 {
 }

 if (joystickenabled && !mouseactive)
 {
 }
}







int Confirm(const char *string)
{
 int xit=0,x,y,tick=0,whichsnd[2]={ESCPRESSEDSND,SHOOTSND};

 Message(string);
 IN_ClearKeysDown();

 while((IN_JoyButtons() & 0x20) || (IN_JoyButtons() & 0x40) || (Keyboard[(0x15)]) || (Keyboard[(0x31)]) || (Keyboard[(0x01)])) IN_CheckAck();




 x=PrintX;
 y=PrintY;
 set_TimeCount(0);

 do
 {
  IN_CheckAck();
  if (get_TimeCount() >= 10)
  {
   switch(tick)
   {
    case 0:
     VW_Bar(x,y,8,13,0x17);
     break;
    case 1:
     PrintX=x;
     PrintY=y;
     US_Print("_");
   }
   VW_UpdateScreen();
   tick^=1;
   set_TimeCount(0);
  }

  if ((Keyboard[(0x0f)]) && (Keyboard[(0x19)]) && MS_CheckParm("debugmode"))
   PicturePause();

 } while(!(IN_JoyButtons() & 0x20) && !(IN_JoyButtons() & 0x40) && !(Keyboard[(0x15)]) && !(Keyboard[(0x31)]) && !(Keyboard[(0x01)]));

 if ((IN_JoyButtons() & 0x40) || (Keyboard[(0x15)]))
 {
  xit=1;
  ShootSnd();
 }

 while((IN_JoyButtons() & 0x20) || (IN_JoyButtons() & 0x40) || (Keyboard[(0x15)]) || (Keyboard[(0x31)]) || (Keyboard[(0x01)])) IN_CheckAck();

 IN_ClearKeysDown();
 SD_PlaySound(whichsnd[xit]);
 return xit;
}






void Message(const char *string)
{
 word h=0, mw=0;

 CA_CacheGrChunk(1 +1);
 fontnumber=1;

 VW_MeasurePropString(string, &mw, &h);
 mw += 4;

 PrintY=(WindowH/2)-h/2;
 PrintX=WindowX=160-mw/2;

 DrawWindow(WindowX-5,PrintY-5,mw+10,h+10,0x17);
 DrawOutline(WindowX-5,PrintY-5,mw+10,h+10,0,0x13);
 { fontcolor = 0; backcolor = 0x17; };
 US_Print(string);
 VW_UpdateScreen();
}

static int lastmusic = -1;

void StartCPMusic(int song)
{
 FreeMusic();

 lastmusic = song;

 SD_StartMusic(song);
}

void FreeMusic()
{
 SD_MusicOff();
}






void CheckPause()
{
 if (Paused)
 {
  switch(SoundStatus)
  {
   case 0: SD_MusicOn(); break;
   case 1: SD_MusicOff(); break;
  }

  SoundStatus^=1;
  VL_WaitVBL(3);
  IN_ClearKeysDown();
  Paused=false;
 }
}







void DrawMenuGun(CP_iteminfo *iteminfo)
{
 int x, y;

 x = iteminfo->x;
 y = iteminfo->y+iteminfo->curpos*13-2;

 VWB_DrawPic(x,y,C_CURSOR1PIC);
}







void DrawStripes(int y)
{

 VW_Bar(0,y,320,24,0);
 VL_Hlin(0,y+22,(319)-(0)+1,0x2c);




}

void ShootSnd()
{
 SD_PlaySound(SHOOTSND);
}







void CheckForEpisodes()
{
# 3369 "wl_menu.c"
 int wl = 0;
 int filePtr;
# 3441 "wl_menu.c"
 if(!wl)
 {

  filePtr = OpenRead("vswap.wl6");
  if(filePtr != -1)
  {
   strcpy(extension, "wl6");






   NewEmenu[2].active =
   NewEmenu[4].active =
   NewEmenu[6].active =
   NewEmenu[8].active =
   NewEmenu[10].active =
   EpisodeSelect[1] =
   EpisodeSelect[2] =
   EpisodeSelect[3] =
   EpisodeSelect[4] =
   EpisodeSelect[5] = 1;
   wl = 6;
   CloseRead(filePtr);
  }
 }


 if(!wl)
 {
  filePtr = OpenRead("vswap.wl3");
  if(filePtr != -1)
  {
   strcpy(extension, "wl3");
   NewEmenu[2].active =
   NewEmenu[4].active =
   EpisodeSelect[1] =
   EpisodeSelect[2] = 1;
   wl = 3;
   CloseRead(filePtr);
  }
 }
# 3499 "wl_menu.c"
 if(!wl)
  Quit("NO WOLFENSTEIN 3-D DATA FILES to be found!");
# 3510 "wl_menu.c"
 strcat(configname, extension);
 strcat(SaveName, extension);




}

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2005-03-29 20:23 Norbert Nemec
  0 siblings, 0 replies; 387+ messages in thread
From: Norbert Nemec @ 2005-03-29 20:23 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1251 bytes --]

nobbi@Marvin:~/tmp/siesta-1.3f1p/Src $ gfortran-4.0 -v
Using built-in specs.
Target: i486-linux
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,f95,objc,ada --prefix=/usr 
--libexecdir=/usr/lib --enable-shared --with-system-zlib --enable-nls 
--enable-threads=posix --without-included-gettext --program-suffix=-4.0 
--enable-__cxa_atexit --enable-libstdcxx-allocator=mt 
--enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm 
--enable-java-awt=gtk --enable-gtk-cairo --enable-mpfr 
--enable-checking=release i486-linux
Thread model: posix
gcc version 4.0.0 20050301 (prerelease) (Debian 4.0-0pre6ubuntu6)
nobbi@Marvin:~/tmp/siesta-1.3f1p/Src $ gfortran-4.0 -c alloc.F90
alloc.F90: In function 'dealloc_s1':
alloc.F90:1186: internal compiler error: in gfc_conv_descriptor_data, at 
fortran/trans-array.c:181

(The attached file is from siesta, a widely used software for molecular 
computations. The full code is available at 
http://www.uam.es/departamentos/ciencias/fismateriac/siesta/, free for 
academic use.)

-- 
_________________________________________Norbert Nemec
         Bernhardstr. 2 ... D-93053 Regensburg
     Tel: 0941 - 2009638 ... Mobil: 0179 - 7475199
           eMail: <Norbert@Nemec-online.de>


[-- Attachment #2: alloc.F90 --]
[-- Type: text/plain, Size: 59900 bytes --]

! 
! Copyright (c) Fundacion General Universidad Autonoma de Madrid:
! E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
! and J.M.Soler, 1996-2003
! 
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
! "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
! A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
! OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
! LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
! DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
! THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
! (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
! OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!
MODULE alloc

      use precision
#ifdef MPI
      use mpi_siesta
#endif

! ------------------------------------------------------------------
! Allocation, reallocation, and deallocation utility routines
! Written by J.M.Soler. May 2000.
! ------------------------------------------------------------------
! SUBROUTINE alloc_default( old, new, restore, &
!                           copy, shrink, imin, routine )
!   Sets defaults for allocation
! INPUT (optional):
!   type(allocDefaults) restore : default settings to be restored
!   logical             copy    : Copy old array to new array?
!   logical             shrink  : Reduce array size?
!   integer             imin    : First index (typically 1 in Fortan,
!                                              0 in C)
!   character(len=*)    routine : Name of calling routine
! OUTPUT (optional):
!   type(allocDefaults) old     : default settings before the call
!   type(allocDefaults) new     : default settings after the call
! BEHAVIOR:
!   All these defaults can be superseeded by optional arguments in
!     each call to realloc.
!   Initial default values: copy    = .true.
!                           shrink  = .true.
!                           imin    = 1
!                           routine = 'unknown'
!   If restore is present together with any of copy, shrink, imin, or
!   routine, these are applied AFTER resetting the restore defaults.
! USAGE:
!   In order to restore the allocation defaults possibly set by the
! calling routine, the suggested construction is:
!   use alloc_module
!   type(allocDefaults) oldDefaults
!   call alloc_default( old=oldDefaults, routine=..., &
!                       copy=..., shrink=... )
!   call realloc(...)
!   call alloc_default( restore=oldDefaults )
! Notice that, if the restore call is skipped, the new defaults will
! stay in effect until a new call to alloc_dafault is made.
! ------------------------------------------------------------------
! SUBROUTINE alloc_report( level, unit, file, printNow )
!   Sets the output file for the allocation report
! INPUT (optional):
!   integer       :: level    : Level (detail) of report
!   integer       :: unit     : Output unit
!   character*(*) :: file     : Output file name
!   logical       :: printNow : If present & true => print report now
! BEHAVIOR:
!   The detail/extent of the report increses with the value of level:
! level=0 : no report at all (the default)
! level=1 : only total memory peak and where it occurred
! level=2 : detailed report created but printed only upon request
! level=3 : detailed report printed at every new memory peak
! level=4 : print every individual reallocation or deallocation
!   If unit is present, alloc_report merely takes note of it for
! future use, assuming that it has been already open outside.
! In this case, file is not used.
!   If unit is absent, and file is present, a file with that
! name is open for future use.
!   If both arguments are absent, a file named 'alloc_report'
! is open for future use.
! ------------------------------------------------------------------
! SUBROUTINE realloc( array, [i1min,] i1max,
!                     [[i2min,] i2max, [[i3min,] i3max]],
!                     name, routine, copy, shrink )
! INPUT:
!   integer       :: i1min        : Lower bound of first dimension
!                                   If not present, it is fixed by 
!                                   the last call to alloc_default.
!                                   If present and the rank is 2(3),
!                                   then i2min(&i3min) must also be
!                                   present
!   integer       :: i1max        : Upper bound of first dimension
!   integer       :: i2min,i2max  : Bounds of second dimension, if
!                                   applicable
!   integer       :: i3min,i3max  : Bounds of third dimension, if appl.
!
! INPUT (optional):
!   character*(*) :: name         : Actual array name or a label for it
!   character*(*) :: routine      : Name of the calling routine
!                                     or routine section
!   logical       :: copy         : Save (copy) contents of old array 
!                                   to new array?
!   logical       :: shrink       : Reallocate if the new array bounds 
!                                   are contained within the old ones? 
!                                   If not present, copy and/or shrink
!                                      are fixed by the last call to
!                                      alloc_default. 
! INPUT/OUTPUT:
!   TYPE, pointer :: array : Array to be allocated or reallocated.
!                            Implemented types and ranks are:
!                              integer, rank 1, 2, or 3
!                              real*4,  rank 1, 2, or 3
!                              real*8,  rank 1, 2, or 3
!                              logical, rank 1, 2, or 3
!                              character(len=*), rank 1
! BEHAVIOR:
!   Pointers MUST NOT enter in an undefined state. Before using them
! for the first time, they must be nullified explicitly. Alternatively,
! in f95, the can be initialized as null() upon declaration.
!   If argument array is not associated on input, it is just allocated.
!   If array is associated and has the same bounds (or smaller bonds
! and shrink is false) nothing is done. Thus, it is perfectly safe and
! efficient to call realloc repeatedly without deallocating the array.
! However, subroutine dealloc is provided to eliminate large arrays
! when they are not needed.
!   In order to save (copy) the contents of the old array, the new array
! needs to be allocated before deallocating the old one. Thus, if the
! contents are not needed, or if reducing memory is a must, calling
! realloc with copy=.false. makes it to deallocate before allocating.
!   The elements that are not copied (because copy=.false. or because
! they are outside the bounds of the input array) return with value
! zero (integer and real), .false. (logical), or blank (character).
!   If imin>imax for any dimension, the array pointer returns
! associated to a zero-size array.
!   Besides allocating or reallocating the array, realloc keeps a count
! of memory usage (and prints a report in a file previously fixed by a
! call to alloc_report). Thus, it is not recommended to call realloc
! to reallocate an array not allocated by it the first time.
!   If name is not present, the memory count associated to the
! allocation/deallocation is still made, but the allocation report
! will account the array under the generic name 'unknown'.
!   The routine argument is NOT used to classify the counting of
! memory usage. The classification uses only the name argument.
! This is because a pointer may be allocated in one routine and
! deallocated in a different one (i.e. when it is used to return an
! array whose size is not known in advance). However, the routine
! argument is reported when alloc_report=4, and it is also used to
! report in which routine the memory peack occurs. If you want the
! routine name to be used for classification, you should include it
! as part of the name argument, like in name='matInvert '//'aux'.
! ---------------------------------------------------------------------
! SUBROUTINE dealloc( array, name, routine )
! INPUT (optional):
!   character*(*) :: name    : Actual array name or a label for it
!   character*(*) :: routine : Name of the calling routine
!                                or routine section
! INPUT/OUTPUT:
!   TYPE, pointer :: array : Array be deallocated (same types and
!                            kinds as in realloc).
! BEHAVIOR:
!   Besides deallocating the array, realloc decreases the count of
! memory usage previously counted by realloc. Thus, dealloc should 
! not be called to deallocate an array not allocated by realloc.
! Equally, arrays allocated or reallocated by realloc should be 
! deallocated by dealloc.
! ---------------------------------------------------------------------

implicit none

PUBLIC ::             &
  alloc_default,      &! Sets allocation defaults
  alloc_report,       &! Sets log report defaults
  re_alloc,           &! Allocation/reallocation
  de_alloc,           &! Deallocation
  allocDefaults        ! Derived type to hold allocation defaults

PRIVATE      ! Nothing is declared public beyond this point


! JMS/AG: It might be necessary to comment out dealloc_s1 due to
! an apparent bug in the DEC compiler

interface de_alloc
  module procedure dealloc_d1, dealloc_d2, dealloc_d3, dealloc_d4, &
                   dealloc_i1, dealloc_i2, dealloc_i3,             &
                   dealloc_l1, dealloc_l2, dealloc_l3,             &
                   dealloc_s1,                         &
                   dealloc_r1, dealloc_r2, dealloc_r3
end interface

! JMS/AG: realloc_s1 removed
!         due to an apparent bug in the DEC compiler
! JMS/AG: realloc_s1s removed 
!         due to apparent bugs in DEC & SGI compilers
! JMS/AG: Due to an apparent bug in the SGI compiler,
!         the following are removed:
!   realloc_d1s, realloc_i1s, realloc_l1s, realloc_r1s

interface re_alloc
  module procedure &
    realloc_d1,  realloc_i1,  realloc_l1,  realloc_r1,  &
    realloc_d2,  realloc_i2,  realloc_l2,  realloc_r2,  &
    realloc_d3,  realloc_i3,  realloc_l3,  realloc_r3,  &
    realloc_d4,                                         &
    realloc_d2s, realloc_i2s, realloc_l2s, realloc_r2s, &
    realloc_d3s, realloc_i3s, realloc_l3s, realloc_r3s, &
    realloc_d4s
end interface

!$$$! Real kinds
!$$$integer, parameter ::          &
!$$$  SP = kind(1.),               &! Kind single precision
!$$$  DP = kind(1.d0)               ! Kind double precision

! Derived type to hold allocation default options
type allocDefaults
  private
  logical           copy
  logical           shrink
  integer           imin
  character(len=32) routine
end type allocDefaults

! Initial default values
type(allocDefaults), save ::   &
  DEFAULT = allocDefaults(     &
    .true.,                    &! Copy default
    .true.,                    &! Shrink default
     1,                        &! Imin default
    'unknown' )                 ! Routine name default
character(len=*), parameter :: &
  DEFAULT_NAME = 'unknown'      ! Array name default
integer, save ::               &
  REPORT_LEVEL = 0,            &! Level (detail) of allocation report
  REPORT_UNIT  = 0              ! Output file unit for report
character(len=50), save ::     &
  REPORT_FILE = 'alloc_report'  ! Output file name for report
  
! Internal auxiliary type for a binary tree
type TREE
  character(len=80)   :: name  ! Name of an allocated array
  real(DP)            :: mem   ! Present memory use of the array
  real(DP)            :: max   ! Maximum memory use of the array
  real(DP)            :: peak  ! Memory use of the array during
                               !   peak of total memory
  type(TREE), pointer :: left  ! Pointer to data of allocated arrays 
                               !   preceeding in alphabetical order
  type(TREE), pointer :: right ! Pointer to data of allocated arrays 
                               !   trailing in alphabetical order
end type TREE

! Global variables used to store allocation data
real(DP),   parameter     :: MBYTE = 1.e6_dp
type(TREE), pointer, save :: REPORT_TREE
real(DP),            save :: TOT_MEM  = 0._dp
real(DP),            save :: PEAK_MEM = 0._dp
character(len=80),   save :: PEAK_ARRAY = ' '
character(len=32),   save :: PEAK_ROUTINE = ' '
integer,             save :: MAX_LEN  = 0
  
! Other common variables
integer :: IERR
logical :: ASSOCIATED_ARRAY, NEEDS_ALLOC, NEEDS_COPY, NEEDS_DEALLOC

CONTAINS

! ------------------------------------------------------------------
SUBROUTINE alloc_default( old, new, restore,          &
                          routine, copy, shrink, imin )
implicit none
type(allocDefaults), optional, intent(out) :: old, new
type(allocDefaults), optional, intent(in)  :: restore
character(len=*),    optional, intent(in)  :: routine
logical,             optional, intent(in)  :: copy, shrink
integer,             optional, intent(in)  :: imin

if (present(old))     old = DEFAULT
if (present(restore)) DEFAULT = restore
if (present(copy))    DEFAULT%copy   = copy
if (present(shrink))  DEFAULT%shrink = shrink
if (present(imin))    DEFAULT%imin   = imin
if (present(routine)) DEFAULT%routine = routine
if (present(new))     new = DEFAULT
END SUBROUTINE alloc_default
! ------------------------------------------------------------------

SUBROUTINE alloc_report( level, unit, file, printNow )

implicit none

integer,          optional, intent(in) :: level, unit
character(len=*), optional, intent(in) :: file
logical,          optional, intent(in) :: printNow

logical open
integer node

#ifdef MPI
integer MPIerror
#endif

#ifdef MPI
call MPI_Comm_Rank( MPI_Comm_World, node, MPIerror )
#else
node = 0
#endif

if (present(level)) then
  REPORT_LEVEL = level
end if

if (node == 0) then
  if (present(unit)) then
    if (unit > 0) then
      REPORT_UNIT = unit
      if (present(file)) then
        REPORT_FILE = file
      else
        REPORT_FILE = 'unknown'
      end if
    end if
  else if (present(file)) then
    if (file /= REPORT_FILE) then
      REPORT_FILE = file
      inquire( file=REPORT_FILE, opened=open, number=REPORT_UNIT )
      if (.not.open) then
        call io_assign(REPORT_UNIT)
        open( REPORT_UNIT, file=REPORT_FILE, status='unknown')
      end if
    end if
  else if (REPORT_UNIT==0) then
    REPORT_FILE = 'alloc_report'
    call io_assign(REPORT_UNIT)
    open( REPORT_UNIT, file=REPORT_FILE, status='unknown')
  end if
end if

#ifdef MPI
! Distribute information to other nodes and open REPORT_UNIT
call MPI_Bcast(REPORT_UNIT,1,MPI_integer,0,MPI_Comm_World,MPIerror)
call MPI_Bcast(REPORT_FILE,50,MPI_character,0,MPI_Comm_World,MPIerror)

if (node > 0) then
  open( REPORT_UNIT, file=REPORT_FILE, status='unknown')
end if
#endif

if (present(printNow)) then
  if (printNow) call print_report
end if

END SUBROUTINE alloc_report

! ------------------------------------------------------------------

SUBROUTINE realloc_i1( array, i1min, i1max, &
                       name, routine, copy, shrink )
! Arguments
implicit none
integer, dimension(:),      pointer    :: array
integer,                    intent(in) :: i1min
integer,                    intent(in) :: i1max
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
logical,          optional, intent(in) :: copy
logical,          optional, intent(in) :: shrink

! Internal variables and arrays
character, parameter           :: type='I'
integer, parameter             :: rank=1
integer, dimension(:), pointer :: old_array
integer, dimension(2,rank)     :: b, c, new_bounds, old_bounds

! Get old array bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array          ! Keep pointer to old array
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if

! Copy new requested array bounds
new_bounds(1,:) = (/ i1min /)
new_bounds(2,:) = (/ i1max /)

! Find if it is a new allocation or a true reallocation,
! and if the contents need to be copied (saved)
! Argument b returns common bounds
! Options routine also reads common variable ASSOCIATED_ARRAY,
! and it sets NEEDS_ALLOC, NEEDS_DEALLOC, and NEEDS_COPY
call options( b, c, old_bounds, new_bounds, copy, shrink )

! Deallocate old space
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if

! Allocate new space
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0
end if

! Copy contents and deallocate old space
if (NEEDS_COPY) then
  array(c(1,1):c(2,1)) = old_array(c(1,1):c(2,1))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if

END SUBROUTINE realloc_i1

! ------------------------------------------------------------------
SUBROUTINE realloc_i2( array, i1min,i1max, i2min,i2max,       &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='I'
integer, parameter                     :: rank=2
integer, dimension(:,:),    pointer    :: array, old_array
integer,                    intent(in) :: i1min, i1max, i2min, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min /)
new_bounds(2,:) = (/ i1max, i2max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1),b(1,2):b(2,2)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_i2
! ------------------------------------------------------------------
SUBROUTINE realloc_i3( array, i1min,i1max, i2min,i2max, i3min,i3max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='I'
integer, parameter                     :: rank=3
integer, dimension(:,:,:),  pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max, &
                                          i3min,i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min, i3min /)
new_bounds(2,:) = (/ i1max, i2max, i3max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate(array(b(1,1):b(2,1),b(1,2):b(2,2),b(1,3):b(2,3)),stat=IERR)
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_i3
! ------------------------------------------------------------------
SUBROUTINE realloc_r1( array, i1min, i1max,        &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='R'
integer, parameter                     :: rank=1
real(SP), dimension(:),     pointer    :: array, old_array
integer,                    intent(in) :: i1min, i1max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min /)
new_bounds(2,:) = (/ i1max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._sp
end if
if (NEEDS_COPY) then
  array(c(1,1):c(2,1)) = old_array(c(1,1):c(2,1))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_r1
! ------------------------------------------------------------------
SUBROUTINE realloc_r2( array, i1min,i1max, i2min,i2max, &
                       name, routine, copy, shrink )
implicit none
character, parameter             :: type='R'
integer, parameter               :: rank=2
real(SP), dimension(:,:),   pointer    :: array, old_array
integer,                    intent(in) :: i1min, i1max, i2min, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min /)
new_bounds(2,:) = (/ i1max, i2max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1),b(1,2):b(2,2)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._sp
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_r2
! ------------------------------------------------------------------
SUBROUTINE realloc_r3( array, i1min,i1max, i2min,i2max, i3min,i3max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='R'
integer, parameter                     :: rank=3
real(SP), dimension(:,:,:), pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max, &
                                          i3min,i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array          ! Keep pointer to old array
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min, i3min /)
new_bounds(2,:) = (/ i1max, i2max, i3max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate(array(b(1,1):b(2,1),b(1,2):b(2,2),b(1,3):b(2,3)),stat=IERR)
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._sp
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_r3
! ------------------------------------------------------------------
SUBROUTINE realloc_d1( array, i1min, i1max,        &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='D'
integer, parameter                     :: rank=1
real(DP), dimension(:),     pointer    :: array, old_array
integer,                    intent(in) :: i1min, i1max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min /)
new_bounds(2,:) = (/ i1max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._dp
end if
if (NEEDS_COPY) then
  array(c(1,1):c(2,1)) = old_array(c(1,1):c(2,1))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_d1
! ------------------------------------------------------------------
SUBROUTINE realloc_d2( array, i1min,i1max, i2min,i2max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='D'
integer, parameter                     :: rank=2
real(DP), dimension(:,:),   pointer    :: array, old_array
integer,                    intent(in) :: i1min, i1max, i2min, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min /)
new_bounds(2,:) = (/ i1max, i2max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1),b(1,2):b(2,2)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._dp
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_d2
! ------------------------------------------------------------------
SUBROUTINE realloc_d3( array, i1min,i1max, i2min,i2max, i3min,i3max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='D'
integer, parameter                     :: rank=3
real(DP), dimension(:,:,:), pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max, &
                                          i3min,i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
integer :: i1, i2, i3
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min, i3min /)
new_bounds(2,:) = (/ i1max, i2max, i3max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate(array(b(1,1):b(2,1),b(1,2):b(2,2),b(1,3):b(2,3)),stat=IERR)
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._dp
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3)) =  &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3))
!  do i3 = c(1,3),c(2,3)
!  do i2 = c(1,2),c(2,2)
!  do i1 = c(1,1),c(2,1)
!    array(i1,i2,i3) = old_array(i1,i2,i3)
!  end do
!  end do
!  end do
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_d3
! ------------------------------------------------------------------
SUBROUTINE realloc_d4( array, i1min,i1max, i2min,i2max, &
                              i3min,i3max, i4min,i4max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='D'
integer, parameter                     :: rank=4
real(DP), dimension(:,:,:,:), pointer  :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max, &
                                          i3min,i3max, i4min,i4max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min, i3min, i4min /)
new_bounds(2,:) = (/ i1max, i2max, i3max, i4max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate(array(b(1,1):b(2,1),b(1,2):b(2,2), &
                 b(1,3):b(2,3),b(1,4):b(2,4)),stat=IERR)
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = 0._dp
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3),c(1,4):c(2,4))= &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3),c(1,4):c(2,4))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_d4
! ------------------------------------------------------------------
SUBROUTINE realloc_l1( array, i1min,i1max,  &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='L'
integer, parameter                     :: rank=1
logical, dimension(:),      pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min /)
new_bounds(2,:) = (/ i1max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = .false.
end if
if (NEEDS_COPY) then
  array(c(1,1):c(2,1)) = old_array(c(1,1):c(2,1))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_l1
! ------------------------------------------------------------------
SUBROUTINE realloc_l2( array, i1min,i1max, i2min,i2max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='L'
integer, parameter                     :: rank=2
logical, dimension(:,:),    pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min /)
new_bounds(2,:) = (/ i1max, i2max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate( array(b(1,1):b(2,1),b(1,2):b(2,2)), stat=IERR )
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = .false.
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2)) = &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_l2
! ------------------------------------------------------------------
SUBROUTINE realloc_l3( array, i1min,i1max, i2min,i2max, i3min,i3max, &
                       name, routine, copy, shrink )
implicit none
character, parameter                   :: type='L'
integer, parameter                     :: rank=3
logical, dimension(:,:,:),  pointer    :: array, old_array
integer,                    intent(in) :: i1min,i1max, i2min,i2max, &
                                          i3min,i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
integer, dimension(2,rank)             :: b, c, new_bounds, old_bounds
ASSOCIATED_ARRAY = associated(array)
if (ASSOCIATED_ARRAY) then
  old_array => array 
  old_bounds(1,:) = lbound(old_array)
  old_bounds(2,:) = ubound(old_array)
end if
new_bounds(1,:) = (/ i1min, i2min, i3min /)
new_bounds(2,:) = (/ i1max, i2max, i3max /)
call options( b, c, old_bounds, new_bounds, copy, shrink )
if (NEEDS_DEALLOC .and. .not.NEEDS_COPY) then
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
if (NEEDS_ALLOC) then
  allocate(array(b(1,1):b(2,1),b(1,2):b(2,2),b(1,3):b(2,3)),stat=IERR)
  call alloc_err( IERR, name, routine, new_bounds )
  call count( size(array), type, name, routine )
  array = .false.
end if
if (NEEDS_COPY) then
      array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3)) = &
  old_array(c(1,1):c(2,1),c(1,2):c(2,2),c(1,3):c(2,3))
  call count( -size(old_array), type, name, routine ) 
  deallocate(old_array)
end if
END SUBROUTINE realloc_l3
! ------------------------------------------------------------------
! ------------------------------------------------------------------

SUBROUTINE realloc_i1s( array, i1max, &
                        name, routine, copy, shrink )
! Arguments
implicit none
integer, dimension(:),      pointer    :: array
integer,                    intent(in) :: i1max
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
logical,          optional, intent(in) :: copy
logical,          optional, intent(in) :: shrink

call realloc_i1( array, DEFAULT%imin, i1max, &
                 name, routine, copy, shrink )

END SUBROUTINE realloc_i1s

! ------------------------------------------------------------------
SUBROUTINE realloc_i2s( array, i1max, i2max,  &
                        name, routine, copy, shrink )
implicit none
integer, dimension(:,:),    pointer    :: array
integer,                    intent(in) :: i1max, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_i2( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_i2s
! ------------------------------------------------------------------
SUBROUTINE realloc_i3s( array, i1max, i2max, i3max,  &
                        name, routine, copy, shrink )
implicit none
integer, dimension(:,:,:),  pointer    :: array
integer,                    intent(in) :: i1max, i2max, i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_i3( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 DEFAULT%imin, i3max,                             &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_i3s
! ------------------------------------------------------------------
SUBROUTINE realloc_r1s( array, i1max, &
                        name, routine, copy, shrink )
implicit none
real(SP), dimension(:),     pointer    :: array
integer,                    intent(in) :: i1max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_r1( array, DEFAULT%imin, i1max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_r1s
! ------------------------------------------------------------------
SUBROUTINE realloc_r2s( array, i1max, i2max, &
                        name, routine, copy, shrink )
implicit none
real(SP), dimension(:,:),   pointer    :: array
integer,                    intent(in) :: i1max, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_r2( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_r2s
! ------------------------------------------------------------------
SUBROUTINE realloc_r3s( array, i1max, i2max, i3max, &
                        name, routine, copy, shrink )
implicit none
real(SP), dimension(:,:,:), pointer    :: array
integer,                    intent(in) :: i1max, i2max, i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_r3( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 DEFAULT%imin, i3max,                             &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_r3s
! ------------------------------------------------------------------
SUBROUTINE realloc_d1s( array, i1max, &
                        name, routine, copy, shrink )
implicit none
real(DP), dimension(:),     pointer    :: array
integer,                    intent(in) :: i1max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_d1( array, DEFAULT%imin, i1max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_d1s
! ------------------------------------------------------------------
SUBROUTINE realloc_d2s( array, i1max, i2max, &
                        name, routine, copy, shrink )
implicit none
real(DP), dimension(:,:),   pointer    :: array
integer,                    intent(in) :: i1max, i2max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_d2( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_d2s
! ------------------------------------------------------------------
SUBROUTINE realloc_d3s( array, i1max, i2max, i3max, &
                        name, routine, copy, shrink )
implicit none
real(DP), dimension(:,:,:), pointer    :: array
integer,                    intent(in) :: i1max, i2max, i3max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_d3( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 DEFAULT%imin, i3max,                             &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_d3s
! ------------------------------------------------------------------
SUBROUTINE realloc_d4s( array, i1max, i2max, i3max, i4max, &
                        name, routine, copy, shrink )
implicit none
real(DP), dimension(:,:,:,:), pointer  :: array
integer,                    intent(in) :: i1max, i2max, i3max, i4max
character(len=*), optional, intent(in) :: name, routine
logical,          optional, intent(in) :: copy, shrink
call realloc_d4( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                        DEFAULT%imin, i3max, DEFAULT%imin, i4max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_d4s
! ------------------------------------------------------------------
SUBROUTINE realloc_l1s( array, i1max, &
                        name, routine, copy, shrink )
implicit none
logical, dimension(:),      pointer    :: array
integer,                    intent(in) :: i1max
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
logical,          optional, intent(in) :: copy
logical,          optional, intent(in) :: shrink
call realloc_l1( array, DEFAULT%imin, i1max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_l1s
! ------------------------------------------------------------------
SUBROUTINE realloc_l2s( array, i1max, i2max, &
                        name, routine, copy, shrink )
implicit none
logical, dimension(:,:),    pointer    :: array
integer,                    intent(in) :: i1max, i2max
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
logical,          optional, intent(in) :: copy
logical,          optional, intent(in) :: shrink
call realloc_l2( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 name, routine, copy, shrink )
END SUBROUTINE realloc_l2s
! ------------------------------------------------------------------
SUBROUTINE realloc_l3s( array, i1max, i2max, i3max, &
                        name, routine, copy, shrink )
implicit none
logical, dimension(:,:,:),  pointer    :: array
integer,                    intent(in) :: i1max, i2max, i3max
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
logical,          optional, intent(in) :: copy
logical,          optional, intent(in) :: shrink
call realloc_l3( array, DEFAULT%imin, i1max, DEFAULT%imin, i2max, &
                 DEFAULT%imin, i3max, name, routine, copy, shrink )
END SUBROUTINE realloc_l3s
! ------------------------------------------------------------------
! ------------------------------------------------------------------
SUBROUTINE dealloc_i1( array, name, routine )

! Arguments
implicit none
integer, dimension(:),      pointer    :: array
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine

if (associated(array)) then
  call count( -size(array), 'I', name, routine ) 
  deallocate(array)
end if

END SUBROUTINE dealloc_i1

! ------------------------------------------------------------------
SUBROUTINE dealloc_i2( array, name, routine )
implicit none
integer, dimension(:,:),    pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'I', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_i2
! ------------------------------------------------------------------
SUBROUTINE dealloc_i3( array, name, routine )
implicit none
integer, dimension(:,:,:),  pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'I', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_i3
! ------------------------------------------------------------------
SUBROUTINE dealloc_r1( array, name, routine )
implicit none
real(SP), dimension(:),     pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'R', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_r1
! ------------------------------------------------------------------
SUBROUTINE dealloc_r2( array, name, routine )
implicit none
real(SP), dimension(:,:),   pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'R', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_r2
! ------------------------------------------------------------------
SUBROUTINE dealloc_r3( array, name, routine )
implicit none
real(SP), dimension(:,:,:), pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'R', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_r3
! ------------------------------------------------------------------
SUBROUTINE dealloc_d1( array, name, routine )
implicit none
real(DP), dimension(:),     pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'D', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_d1
! ------------------------------------------------------------------
SUBROUTINE dealloc_d2( array, name, routine )
implicit none
real(DP), dimension(:,:),   pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'D', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_d2
! ------------------------------------------------------------------
SUBROUTINE dealloc_d3( array, name, routine )
implicit none
real(DP), dimension(:,:,:), pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'D', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_d3
! ------------------------------------------------------------------
SUBROUTINE dealloc_d4( array, name, routine )
implicit none
real(DP), dimension(:,:,:,:), pointer  :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'D', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_d4
! ------------------------------------------------------------------
SUBROUTINE dealloc_l1( array, name, routine )
implicit none
logical, dimension(:),      pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'L', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_l1
! ------------------------------------------------------------------
SUBROUTINE dealloc_l2( array, name, routine )
implicit none
logical, dimension(:,:),    pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'L', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_l2
! ------------------------------------------------------------------
SUBROUTINE dealloc_l3( array, name, routine )
implicit none
logical, dimension(:,:,:),  pointer    :: array
character(len=*), optional, intent(in) :: name, routine
if (associated(array)) then
  call count( -size(array), 'L', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_l3
! ------------------------------------------------------------------
SUBROUTINE dealloc_s1( array, name, routine )
implicit none
character(len=*), dimension(:), pointer :: array
character(len=*), optional, intent(in)  :: name, routine
if (associated(array)) then
  call count( -size(array)*len(array), 'S', name, routine ) 
  deallocate(array)
end if
END SUBROUTINE dealloc_s1
! ------------------------------------------------------------------

SUBROUTINE options( final_bounds, common_bounds, &
                    old_bounds, new_bounds, copy, shrink )
! Arguments
integer, dimension(:,:), intent(out) :: final_bounds
integer, dimension(:,:), intent(out) :: common_bounds
integer, dimension(:,:), intent(in)  :: old_bounds
integer, dimension(:,:), intent(in)  :: new_bounds
logical,       optional, intent(in)  :: copy
logical,       optional, intent(in)  :: shrink

! Internal variables and arrays
logical want_shrink

! Find if it is a new allocation or a true reallocation,
! and if the contents need to be copied (saved)
if (ASSOCIATED_ARRAY) then

  ! Check if array bounds have changed
  if ( all(new_bounds==old_bounds) ) then
    ! Old and new arrays are equal. Nothing needs to be done
    NEEDS_ALLOC   = .false. 
    NEEDS_DEALLOC = .false.
    NEEDS_COPY    = .false.
  else 

    ! Want to shrink?
    if (present(shrink)) then
      want_shrink = shrink
    else
      want_shrink = DEFAULT%shrink
    end if

    if (.not. want_shrink  &
        .and. all(new_bounds(1,:)>=old_bounds(1,:)) &
        .and. all(new_bounds(2,:)<=old_bounds(2,:)) ) then
      ! Old array is already fine. Nothing needs to be done
      NEEDS_ALLOC   = .false. 
      NEEDS_DEALLOC = .false.
      NEEDS_COPY    = .false.
    else
      ! Old array needs to be substituted by a new array
      NEEDS_ALLOC   = .true.
      NEEDS_DEALLOC = .true.
      if (present(copy)) then
        NEEDS_COPY = copy
      else
        NEEDS_COPY = DEFAULT%copy
      end if

      ! Ensure that bounds shrink only if desired
      if (want_shrink) then
        final_bounds(1,:) = new_bounds(1,:)
        final_bounds(2,:) = new_bounds(2,:)
      else
        final_bounds(1,:) = min( old_bounds(1,:), new_bounds(1,:) )
        final_bounds(2,:) = max( old_bounds(2,:), new_bounds(2,:) )
      end if

      ! Find common section of old and new arrays
      common_bounds(1,:) = max( old_bounds(1,:), final_bounds(1,:) )
      common_bounds(2,:) = min( old_bounds(2,:), final_bounds(2,:) )
    end if

  end if

else
  ! Old array does not exist. Allocate new one
  NEEDS_ALLOC   = .true. 
  NEEDS_DEALLOC = .false.
  NEEDS_COPY    = .false.
  final_bounds(1,:) = new_bounds(1,:)
  final_bounds(2,:) = new_bounds(2,:)
end if

END SUBROUTINE options

! ------------------------------------------------------------------

SUBROUTINE count( delta_size, type, name, routine )

implicit none

integer, intent(in)          :: delta_size  ! +/-size(array)
character, intent(in)        :: type        ! 'I' => integer
                                            ! 'R' => real*4
                                            ! 'D' => real*8
                                            ! 'L' => logical
                                            ! 'S' => character (string)
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine

character(len=32)   :: aname, rname
character(len=1)    :: memType, task
real(DP)            :: delta_mem
logical             :: newPeak
logical,  save      :: header_written = .false.
logical,  save      :: tree_nullified = .false.
integer             :: memSize, nodes
#ifdef MPI
integer             :: MPIerror
#endif

if (REPORT_LEVEL <= 0) return

#ifdef MPI
call MPI_Comm_Size( MPI_Comm_World, nodes, MPIerror )
#else
nodes = 1
#endif

! Compound routine+array name
if (present(name)) then
  aname = name
else
  aname = DEFAULT_NAME
end if
MAX_LEN = max( MAX_LEN, len(trim(aname)) )
if (present(routine)) then
  rname = routine
else
  rname = DEFAULT%routine
end if

! Find memory increment and total allocated memory
delta_mem = delta_size * type_mem(type)
TOT_MEM = TOT_MEM + delta_mem

if (TOT_MEM > PEAK_MEM+0.5_dp) then
  newPeak = .true.
  PEAK_MEM = TOT_MEM
  PEAK_ARRAY = aname
  PEAK_ROUTINE = rname
!  print'(/,a,f18.6),a,/)',
!    'alloc_count: Memory peak =', PEAK_MEM/MBYTE, ' Mbytes'
else
  newPeak = .false.
end if

! Add/subtract/classify array memory
if (REPORT_LEVEL > 1) then
  if (.not.tree_nullified) then
    nullify(report_tree)
    tree_nullified = .true.
  end if
  call tree_add( report_tree, aname, delta_mem )
  if (newPeak) call tree_peak( report_tree )
end if

! Print report - only do this if number of nodes is 1 as
! not all processors made follow the same route here
if (newPeak .and. (REPORT_LEVEL==1 .or. REPORT_LEVEL==3) .and. &
    nodes == 1) then
  call print_report
end if
if (REPORT_LEVEL == 4 .and. nodes == 1) then
  if (.not.header_written) then
    write(REPORT_UNIT,'(/,a7,9x,1x,a4,28x,1x,2a15)') &
     'Routine', 'Name', 'Incr. (MB)', 'Total (MB)'
    header_written = .true.
  end if
  write(REPORT_UNIT,'(a16,1x,a32,1x,2f15.6)') &
     rname, aname, delta_mem/MBYTE, TOT_MEM/MBYTE
end if

! Call siesta counting routine 'memory'
if (delta_size > 0) then
  task = 'A'
else
  task = 'D'
end if
select case( type )
case ('R')         ! Real --> single
  memType = 'S'
  memSize = abs(delta_size)
case ('S')         ! Character (string) --> integer/4
  memType = 'I'
  memSize = abs(delta_size) / type_mem('I')
case default
  memType = type
  memSize = abs(delta_size)
end select
call memory( task, memType, memSize, trim(rname) )

END SUBROUTINE count

! ------------------------------------------------------------------

INTEGER FUNCTION type_mem( var_type )
!
! It is not clear that the sizes assumed are universal for
! non-Cray machines...
!
implicit none
character, intent(in) :: var_type

select case( var_type )
#ifdef CRAY
  case('I')
    type_mem = 8
  case('R')
    type_mem = 8
  case('L')
    type_mem = 8
#else
  case('I')
    type_mem = 4
  case('R')
    type_mem = 4
  case('L')
    type_mem = 4
#endif
case('D')
  type_mem = 8
case('S')
  type_mem = 1
case default
  print*, 'alloc_count: ERROR: unknown type = ', var_type
  stop
end select

END FUNCTION type_mem

! ------------------------------------------------------------------

RECURSIVE SUBROUTINE tree_add( t, name, delta_mem )

implicit none
type(TREE),       pointer    :: t
character(len=*), intent(in) :: name
real(DP),         intent(in) :: delta_mem

logical, save :: warn_negative = .true.

if (.not.associated(t)) then
  allocate( t )
  t%name = name
  t%mem  = delta_mem
  t%max  = delta_mem
  t%peak = 0._dp
  nullify( t%left, t%right )
else if (name == t%name) then
  t%mem = t%mem + delta_mem
  t%max = max( t%max, t%mem )
else if ( llt(name,t%name) ) then
  call tree_add( t%left, name, delta_mem )
else
  call tree_add( t%right, name, delta_mem )
end if

if (warn_negative .and. t%mem<0._dp) then
  write(6,'(/,a,/,2a,/,a,f18.0,a,/,a,/)')  &
    'WARNING: alloc-realloc-dealloc name mismatch',  &
    '         Name: ', trim(name),                   &
    '         Size: ', t%mem, ' Bytes',              &
    'Subsequent mismatches will not be reported'
  warn_negative = .false.
end if

END SUBROUTINE tree_add

! ------------------------------------------------------------------

RECURSIVE SUBROUTINE tree_peak( t )

implicit none
type(TREE), pointer :: t

if (.not.associated(t)) return

t%peak = t%mem
call tree_peak( t%left )
call tree_peak( t%right )

END SUBROUTINE tree_peak

! ------------------------------------------------------------------

RECURSIVE SUBROUTINE tree_print( t )

implicit none
type(TREE), pointer :: t

if (.not.associated(t)) return

call tree_print( t%left )

write(REPORT_UNIT,'(a,1x,3f15.6,f9.2)') &
  t%name(1:MAX_LEN), t%mem/MBYTE, t%max/MBYTE, t%peak/MBYTE, &
  100._dp * t%peak / (PEAK_MEM + tiny(PEAK_MEM) )

call tree_print( t%right )

END SUBROUTINE tree_print

! ------------------------------------------------------------------

SUBROUTINE print_report

implicit none

character(len=80) :: string = 'Name'
character         :: date*8, time*10, zone*5
integer           :: node, nodes

#ifdef MPI
integer           :: MPIerror, nodePEAK
integer           :: Status(MPI_Status_Size)
real(DP)          :: G_TOT_MEM, G_PEAK_MEM(2), L_PEAK_MEM(2)
#endif

! Get the local node number and the total number of nodes
#ifdef MPI
call MPI_Comm_Rank( MPI_Comm_World, node, MPIerror )
call MPI_Comm_Size( MPI_Comm_World, nodes, MPIerror )
#else
node = 0
nodes = 0
#endif

#ifdef MPI
if (nodes > 1) then
!
! For parallel version need to find the values across all nodes
!

! Create combination of local peak memory value and node number
  L_PEAK_MEM(1) = PEAK_MEM
  L_PEAK_MEM(2) = node

! Find maximum memory values and their nodes
#ifdef NODAT
  call MPI_Reduce(TOT_MEM,G_TOT_MEM,1,MPI_double_precision, &
    MPI_Sum,0,MPI_Comm_World,MPIerror)
  call MPI_Reduce(L_PEAK_MEM,G_PEAK_MEM,1,MPI_2double_precision, &
    MPI_MaxLoc,0,MPI_Comm_World,MPIerror)
#else
  call MPI_Reduce(TOT_MEM,G_TOT_MEM,1,DAT_double, &
    MPI_Sum,0,MPI_Comm_World,MPIerror)
  call MPI_Reduce(L_PEAK_MEM,G_PEAK_MEM,1,DAT_2double, &
    MPI_MaxLoc,0,MPI_Comm_World,MPIerror)
#endif

! Tell the rest of the nodes where the peak is
  if (node == 0) nodePEAK = nint(G_PEAK_MEM(2))
  call MPI_Bcast(nodePEAK,1,MPI_integer,0,MPI_Comm_World,MPIerror)

! Get details of peak use - if the maximum is on node 0 then just copy
  if (nodePEAK > 0) then

    if (node == 0) then
      call MPI_Send(G_TOT_MEM,1,MPI_integer,nodePEAK, &
        1,MPI_Comm_World,MPIerror)
    endif

    if (node == nodePEAK) then
      call MPI_Recv(G_TOT_MEM,1,MPI_integer,0, &
        1,MPI_Comm_World,Status,MPIerror)
    endif

  end if

else

  nodePEAK  = 0
  G_TOT_MEM = TOT_MEM

end if
#endif

if (node == 0) then

  if (REPORT_LEVEL < 4) rewind(REPORT_UNIT)

  call date_and_time( date, time, zone )

  write(REPORT_UNIT,'(/,a,16a)')                &
    'Allocation summary at ',                   &
    date(1:4),'/',date(5:6),'/',date(7:8),' ',  &
    time(1:2),':',time(3:4),':',time(5:10),' ', &
    zone(1:3),':',zone(4:5)

  write(REPORT_UNIT,'(2(/,a,f18.6,a),/,2a,/,2a)')            &
    'Present memory allocation: ', TOT_MEM/MBYTE,  ' Mbyte', &
    'Maximum memory allocation: ', PEAK_MEM/MBYTE, ' Mbyte', &
    'Occurred after allocating: ', trim(PEAK_ARRAY),         &
    'In routine:                ', trim(PEAK_ROUTINE)
#ifdef MPI
  if (nodes > 1) then
    write(REPORT_UNIT,'(/,a,f18.6,a)')            &
      'Present memory all nodes : ', G_TOT_MEM/MBYTE,  ' Mbyte'
  end if
#endif

  if (REPORT_LEVEL > 1) then
    write(REPORT_UNIT,'(/,a,/,a,1x,3a15,a9)') &
      'Allocated array sizes (in Mbyte):', &
      string(1:MAX_LEN), 'Present', 'Maximum', 'At peak', '%'
    call tree_print( report_tree )
  end if

end if

END SUBROUTINE print_report

! ------------------------------------------------------------------

SUBROUTINE alloc_err( ierr, name, routine, bounds )

implicit none

integer,                    intent(in) :: ierr
character(len=*), optional, intent(in) :: name
character(len=*), optional, intent(in) :: routine
integer, dimension(:,:),    intent(in) :: bounds

integer i

if (ierr/=0) then
  print*, 'alloc_err: allocate status error', ierr
  if (present(name).and.present(routine)) then
    print*, 'alloc_err: array ', name, &
               ' requested by ', routine
  elseif (present(name)) then
    print*, 'alloc_err: array ', name, &
               ' requested by unknown'
  elseif (present(routine)) then
    print*, 'alloc_err: array unknown', &
               ' requested by ', routine
  endif
  print'(a,i3,2i8)', ('alloc_err: dim, lbound, ubound:', &
                      i,bounds(i,1),bounds(i,2),         &
                      i=1,size(bounds,dim=1))
  stop 'alloc_err: allocate error'
end if

END SUBROUTINE alloc_err

! ------------------------------------------------------------------

END MODULE alloc

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2003-09-04 12:33 stughi fed
  0 siblings, 0 replies; 387+ messages in thread
From: stughi fed @ 2003-09-04 12:33 UTC (permalink / raw)
  To: gcc-bugs

I get the fallowing error while cross compiling busybox-1.0-pre3/cvs :

arm-linux-gcc -I./include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wstrict-prototypes -Wshadow -Os -fstrict-aliasing -fomit-frame-pointer -D_GNU_SOURCE -DNDEBUG     -c -o shell/ash.o shell/ash.c
shell/ash.c: In function `init':
shell/ash.c:1690: Internal compiler error in int_mode_for_mode, at stor-layout.c:290
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [shell/ash.o] Error 1

binutils is 2.13.2.1
gcc is 3.2.3
glibc is 2.3.2
linux is 2.4.19-rmk6-pxa1-hh13

thx
stughi


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 2003-08-10 20:22 Peter N Tenney
  0 siblings, 0 replies; 387+ messages in thread
From: Peter N Tenney @ 2003-08-10 20:22 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 232 bytes --]

make build
mozilla-firebird-0.6.1_1

nsJVMManager.cpp:881: Internal compiler error.
nsJVMManager.cpp:881: Please submit a full bug report.
nsJVMManager.cpp:881: See 
<URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

[-- Attachment #2: mozilla-firebird.build.bz2 --]
[-- Type: application/x-tar, Size: 50085 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  2003-01-31 12:27 internal " Nico Schottelius
@ 2003-01-31 12:39 ` Eric Botcazou
  0 siblings, 0 replies; 387+ messages in thread
From: Eric Botcazou @ 2003-01-31 12:39 UTC (permalink / raw)
  To: Nico Schottelius; +Cc: gcc-bugs

> gcc -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -I. -I. -I../bfd -I./config
> -I./../include -I./.. -I./../bfd -I./../intl -I../intl
> -DLOCALEDIR="\"/usr/dev/share/locale\""   -W -Wall -Wstrict-prototypes
> -Wmissing-prototypes -g -O2 -c ./config/tc-ppc.c
>
> compiler output:
>
> config/tc-ppc.c: In function `md_assemble':
> config/tc-ppc.c:2172: warning: right shift count >= width of type
> config/tc-ppc.c:2174: warning: right shift count >= width of type
> config/tc-ppc.c:2179: warning: right shift count >= width of type
> config/tc-ppc.c:2181: warning: right shift count >= width of type
> config/tc-ppc.c:2186: warning: right shift count >= width of type
> config/tc-ppc.c:2188: warning: right shift count >= width of type
> config/tc-ppc.c:2193: warning: right shift count >= width of type
> config/tc-ppc.c:2195: warning: right shift count >= width of type
> config/tc-ppc.c: In function `md_apply_fix3':
> config/tc-ppc.c:5388: warning: right shift count >= width of type
> config/tc-ppc.c:5395: warning: right shift count >= width of type
> config/tc-ppc.c:5402: warning: right shift count >= width of type
> config/tc-ppc.c:5409: warning: right shift count >= width of type
> config/tc-ppc.c:5537: Internal compiler error in simplify_subreg, at
> simplify-rt x.c:2452
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

Exact duplicate of PR optimization/8275. Fixed in the upcoming 3.2.2 release.

-- 
Eric Botcazou


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2003-01-31 12:27 Nico Schottelius
  2003-01-31 12:39 ` Eric Botcazou
  0 siblings, 1 reply; 387+ messages in thread
From: Nico Schottelius @ 2003-01-31 12:27 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 2489 bytes --]

the error occured while trying to compile binutils to support cross compiling
for ppc-linux on a i386-linux.

version:

nico@flapp:~/tar.gz/ppc/binutils-2.13.90.0.4 $ gcc --version
gcc (GCC) 3.2.1
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

system:

nico@flapp:~/tar.gz/ppc/binutils-2.13.90.0.4 $ uname -a
Linux flapp 2.4.21-pre3 #1 Wed Jan 15 21:57:25 CET 2003 i686 unknown

(a self made distro)

gccoptions:

--prefix=/usr/dev passwd to configure, no more options set otherwise.

commandline:

gcc -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -I. -I. -I../bfd -I./config -I./../include -I./.. -I./../bfd -I./../intl -I../intl -DLOCALEDIR="\"/usr/dev/share/locale\""   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ./config/tc-ppc.c

compiler output:

config/tc-ppc.c: In function `md_assemble':
config/tc-ppc.c:2172: warning: right shift count >= width of type
config/tc-ppc.c:2174: warning: right shift count >= width of type
config/tc-ppc.c:2179: warning: right shift count >= width of type
config/tc-ppc.c:2181: warning: right shift count >= width of type
config/tc-ppc.c:2186: warning: right shift count >= width of type
config/tc-ppc.c:2188: warning: right shift count >= width of type
config/tc-ppc.c:2193: warning: right shift count >= width of type
config/tc-ppc.c:2195: warning: right shift count >= width of type
config/tc-ppc.c: In function `md_apply_fix3':
config/tc-ppc.c:5388: warning: right shift count >= width of type
config/tc-ppc.c:5395: warning: right shift count >= width of type
config/tc-ppc.c:5402: warning: right shift count >= width of type
config/tc-ppc.c:5409: warning: right shift count >= width of type
config/tc-ppc.c:5537: Internal compiler error in simplify_subreg, at simplify-rt
x.c:2452
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.


preprocessed file: think you can easily get this with
tar xfz binutils-2.13.90.0.4; ./configure --target=ppc-linux;make

any more informations needed ?

greetings,

Nico

-- 
Please send your messages pgp-signed and/or pgp-encrypted (don't encrypt mails
to mailing list!). If you don't know what pgp is visit www.gnupg.org.
(public pgp key: ftp.schottelius.org/pub/familiy/nico/pgp-key)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
  2002-05-25  3:39 Alignment of unions containing vector types David Robinson
@ 2002-10-03  8:00 ` David Robinson
  0 siblings, 0 replies; 387+ messages in thread
From: David Robinson @ 2002-10-03  8:00 UTC (permalink / raw)
  To: bug-gcc

GCC 3.2 (and 3.1) compiled for i686-pc-linux-gnu, on Redhat 7.3, Linux
kernel 2.4.18, CPU Pentium-4.

gcc -c bug.c
void
test(void)
{
    int buff;

    asm volatile(
#define buff "%0"
	"xorl %0,%0"
	    : "+r" (buff));
}

gives:
bug.c: In function `test':
bug.c:6: Internal compiler error in emit_move_insn, at expr.c:2577
Please submit a full bug report.


 David Robinson



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2002-09-20 14:22 Xavier Ordoquy
  0 siblings, 0 replies; 387+ messages in thread
From: Xavier Ordoquy @ 2002-09-20 14:22 UTC (permalink / raw)
  To: gcc-bugs

Hi,

apologize for not using gnat.

I tried to compile oprofile (http://oprofile.sourceforge.net/) 0.3 and
it fails with g++ 3.2.1-0pre2 (Debian sid system) but compiles fine with
2.95.4

opp_symbol.cpp
opp_symbol.cpp: In function `void 
   __static_initialization_and_destruction_0(int, int)':
opp_symbol.cpp:39: Internal compiler error in cp_expr_size, at
cp/cp-lang.c:130
Please submit a full bug report,

Hope this helps.

-- 


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2002-06-14  1:46 Sylvain Tricot
  0 siblings, 0 replies; 387+ messages in thread
From: Sylvain Tricot @ 2002-06-14  1:46 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 889 bytes --]

command:c++ -DDEBUG -g -O2 -c map.cpp

styx@loustyx:~/st/dev/cpp/bug_report/common > c++ --version
2.95.2
styx@loustyx:~/st/dev/cpp/bug_report/common > c++ -DDEBUG -g -O2 -c map.cpp
map.cpp: In method `void CMap_::Allocate(const C2DSize_ &)':
map.cpp:49: Internal compiler error.
map.cpp:49: Please submit a full bug report.
map.cpp:49: See <URL:http://www.gnu.org/software/gcc/bugs.html> for
instructions.

note:
- bug appears after I add this stupid line in shared.h

typedef int TradeRouteId;

- bug disappears if one of these flags is removed : -DDEBUG -g -O2

- I want to make some extra removals but bug always disappears.

for example, it disappears when string "map.Allocate (was %p) (%d,%d)"
is shorten

This bug is more volatile than a neutrino ;-)


PS: my linux is SuSE-7.0 with standard installation of packages
./CD1/suse/d1/gcc.rpm
./CD1/suse/d1/gccmesg.rpm

Good luck !




[-- Attachment #2: styx.tar.gz --]
[-- Type: application/x-gtar, Size: 67171 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2002-03-18 22:17 Samiran
  0 siblings, 0 replies; 387+ messages in thread
From: Samiran @ 2002-03-18 22:17 UTC (permalink / raw)
  To: bug-gcc, gcc-bugs


Hi all, 

give me some suggestion to solve this problem ,at the time of
make -w all-gcc install-gcc 
I got the following [ small portion is given]  


____________________________________________________________________________
__________________________________-
gcc -c  -DIN_GCC     -g -O2  -DHAVE_CONFIG_H    -I.
-I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc -I/src/gcc/gcc-core-2.95.2/gcc-
2.95.2/gcc/config -I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/../include
/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/genattr.c
gcc -c  -DIN_GCC     -g -O2  -DHAVE_CONFIG_H    -I.
-I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc -I/src/gcc/gcc-core-2.95.2/gcc-
2.95.2/gcc/config -I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/../include
/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/rtl.c
gcc -c  -DIN_GCC     -g -O2  -DHAVE_CONFIG_H    -I.
-I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc -I/src/gcc/gcc-core-2.95.2/gcc-
2.95.2/gcc/config -I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/../include
/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/bitmap.c
gcc -c  -DIN_GCC     -g -O2  -DHAVE_CONFIG_H    -I.
-I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc -I/src/gcc/gcc-core-2.95.2/gcc-
2.95.2/gcc/config -I/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/../include
/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/print-rtl.c
gcc  -DIN_GCC     -g -O2  -DHAVE_CONFIG_H  -o genattr \
 genattr.o rtl.o bitmap.o print-rtl.o ` case "obstack.o" in ?*) echo
obstack.o ;; esac ` ` case "" in ?*) echo  ;; esac ` ` c
ase "" in ?*) echo  ;; esac `  ` case "" in ?*) echo  ;; esac ` ` case "" in
?*) echo  ;; esac ` -ladvapi32
./genattr /src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/config/i386/i386.md >
tmp-attr.h
.  At file position: 155ound character
Following characters are:

;; This file is part of GNU CC.

;; GNU CC is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software FouAborting.
genattr: Internal compiler error in `dump_and_abort', at
/src/gcc/gcc-core-2.95.2/gcc-2.95.2/gcc/rtl.c:539
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for
instructions.
make[1]: *** [s-attr] Error 33
make[1]: Leaving directory `/tmp/build/gcc/gcc'
make: *** [all-gcc] Error 2
make: Leaving directory `/tmp/build/gcc'

____________________________________________________________________________
__________________________________-


I'm a software engineer working on ECOS porting on a 386 pc. I have
  downloaded gcc-core-2.95.2 ,I am trying to Build and install  for 386 PC
for eCos as described in
  The building of the Intel x86 GNU tools are described (for the
  Windows host platform) on the eCos website at:
  http://sources.redhat.com/ecos/tools/win-i386-elf.html


Rgds.
Samiran






^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2002-01-11 16:35 Tim Janik
  0 siblings, 0 replies; 387+ messages in thread
From: Tim Janik @ 2002-01-11 16:35 UTC (permalink / raw)
  To: gcc-bugs, debian-gcc


the appended code, when compiled with:
$ gcc -D_REENTRANT -g -ggdb3 -fno-strict-aliasing -fno-cond-mismatch \
  -ffor-scope -Wno-cast-qual -Wall -Wmissing-prototypes \
  -Wmissing-declarations -Winline -Wmissing-noreturn -Wredundant-decls \
  -O6 -pipe -fstrength-reduce -fexpensive-optimizations -finline-functions \
  -frerun-cse-after-loop -freg-struct-return -frerun-loop-opt -fgcse \
  -fno-keep-static-consts -Wp,-MD,foo.pp -c gccerror.c  -fPIC -DPIC \
  -o gccerror.o

produces:

gccerror.c: In function `gsl_filter_tscheb2_rp':
gccerror.c:175: Internal compiler error:
gccerror.c:175: Internal compiler error, output_operand_lossage `invalid expression as operand'


>Release:       3.0.3 (Debian testing/unstable)
System: Linux birgrave 2.2.20 #1 SMP Thu Dec 13 10:05:39 CET 2001 i686 unknown
Architecture: i686
host: i386-pc-linux-gnu
build: i386-pc-linux-gnu
target: i386-pc-linux-gnu
$ gcc --version
2.95.4

(doesn't seem to be reproducable with gcc-3.0.3 btw)

---
ciaoTJ

/* LGPL */

#include <math.h>

typedef struct _GslComplex GslComplex;
struct _GslComplex
{
  double re;
  double im;
};

static inline GslComplex
gsl_complex (double re,
             double im)
{
  GslComplex r;
  r.re = re;
  r.im = im;
  return r;
}
static inline GslComplex
gsl_complex_add (GslComplex c1,
                 GslComplex c2)
{
  return gsl_complex (c1.re + c2.re, c1.im + c2.im);
}
static inline GslComplex
gsl_complex_add3 (GslComplex c1,
                  GslComplex c2,
                  GslComplex c3)
{
  return gsl_complex (c1.re + c2.re + c3.re, c1.im + c2.im + c3.im);
}
static inline GslComplex
gsl_complex_sub (GslComplex c1,
                 GslComplex c2)
{
  return gsl_complex (c1.re - c2.re, c1.im - c2.im);
}

#define GSL_PI          \
          (3.1415926535897932384626433832795029)
static inline double
gsl_trans_freq2s (double w)
{
  return tan (w / 2.);
}
static inline GslComplex
gsl_complex_div (GslComplex a,
                 GslComplex b)
{
  GslComplex c;
  if (fabs (b.re) >= fabs (b.im))
    {
      double r = b.im / b.re, den = b.re + r * b.im;
      c.re = (a.re + r * a.im) / den;
      c.im = (a.im - r * a.re) / den;
    }
  else
    {
      double r = b.re / b.im, den = b.im + r * b.re;
      c.re = (a.re * r + a.im) / den;
      c.im = (a.im * r - a.re) / den;
    }
  return c;
}

static inline double
gsl_trans_zepsilon2ss (double zepsilon)
{
  double e2 = (1.0 - zepsilon) * (1.0 - zepsilon);
  /* 1___                                      _________________
   * |   \                                    |       1.0
   * |-----\<---- 1 - zepsilon  zepsilon = \  | ----------------
   * |_______\________________               \|  1 + sepsilon^2
   */
  return sqrt ((1.0 - e2) / e2);
}

static inline GslComplex
gsl_trans_s2z (GslComplex s)
{
  /*       1 + (Td/2) * s
   *  z = ----------------
   *       1 - (Td/2) * s
   */
  GslComplex one = { 1, 0 };
  return gsl_complex_div (gsl_complex_add (one, s), gsl_complex_sub (one, s));
  /* return gsl_complex_div (gsl_complex_sub (s, one), gsl_complex_add (s, one)); */
}

static double
tschebyscheff_eval (unsigned int degree,
                    double       x)
{
  double td = x, td_m_1 = 1;
  unsigned int d = 1;

  /* eval polynomial for a certain x */
  if (degree == 0)
    return 1;

  while (d < degree)
    {
      double td1 = 2 * x * td - td_m_1;

      td_m_1 = td;
      td = td1;
      d++;
    }
  return td;
}


void
gsl_filter_tscheb2_rp (unsigned int iorder,
                       double       c_freq, /* 1..pi */
                       double       steepness,
                       double       epsilon,
                       GslComplex  *roots,  /* [0..iorder-1] */
                       GslComplex  *poles);

void
gsl_filter_tscheb2_rp (unsigned int iorder,
                       double       c_freq, /* 1..pi */
                       double       steepness,
                       double       epsilon,
                       GslComplex  *roots,  /* [0..iorder-1] */
                       GslComplex  *poles)
{
  double pi = GSL_PI, order = iorder;
  double r_freq = c_freq * steepness;
  double kappa_c = gsl_trans_freq2s (c_freq);
  double kappa_r = gsl_trans_freq2s (r_freq);
  double tepsilon;
  double alpha;
  double beta_mul = pi / (2.0 * order);
  GslComplex root;
  unsigned int i;

  if (!(r_freq < GSL_PI))
    return;

  epsilon = gsl_trans_zepsilon2ss (epsilon);
  tepsilon = epsilon * tschebyscheff_eval (iorder, kappa_r / kappa_c);
  alpha = asinh (tepsilon) / order;

  /* construct poles polynomial from tschebyscheff polynomial */
  for (i = 1; i <= iorder; i++)
    {
      double t = (i << 1) + iorder - 1;
      double beta = t * beta_mul;

      root.re = sinh (alpha) * cos (beta);
      root.im = cosh (alpha) * sin (beta);
      root = gsl_complex_div (gsl_complex (kappa_r, 0), root);
      root = gsl_trans_s2z (root);
      poles[i - 1] = root;
    }

  /* construct roots polynomial from tschebyscheff polynomial */
  for (i = 1; i <= iorder; i++)
    {
      double t = (i << 1) - 1;
      GslComplex root = gsl_complex (0, cos (t * beta_mul));

      if (fabs (root.im) > 1e-14)
        {
          root = gsl_complex_div (gsl_complex (kappa_r, 0), root);
          root = gsl_trans_s2z (root);
        }
      else
        root = gsl_complex (-1, 0);
      roots[i - 1] = root;
    }

}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-10-04 23:43 Shura
  0 siblings, 0 replies; 387+ messages in thread
From: Shura @ 2001-10-04 23:43 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 809 bytes --]

GCC Version:
  gcc version 3.0-1 (cygwin-mingw special)

System types:
  i386-mingw32

Complete command line:
  g++ -c -Wall D2POINTS.CPP

Compiler output:
  In file included from D2POINTS.cpp:17:
  d2.h:423: Internal compiler error in tree_low_cst, at
cygwin/gcc-3.0/gcc/tree.c
     :3462
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.
----------------------------------------------------------
ëÏÎËÕÒÓ "$1000 ÚÁ ÉÄÅÀ!" http://ngs.ru/konkurs1000
----------------------------------------------------------
ë×ÁÒÔÉÒÙ, ÄÏÍÁ, ËÏÔÅÄÖÉ × îÏ×ÏÓÉÂÉÒÓËÅ http://www.levan.ru





[-- Attachment #2: d2points.ii.gz --]
[-- Type: application/x-gzip, Size: 101601 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2001-07-27  7:09 Daniel R. Grayson
  0 siblings, 0 replies; 387+ messages in thread
From: Daniel R. Grayson @ 2001-07-27  7:09 UTC (permalink / raw)
  To: gcc-bugs; +Cc: dan

    rhenium# cat foo.cc
    struct w {
      operator int ();
    } & f();
    void c(int b) {
      b ? f() : w();
    }

    rhenium# g++ -c foo.cc
    foo.cc: In function `void c(int)':
    foo.cc:6: Internal compiler error in `instantiate_virtual_regs_1', at function.c:3881
    Please submit a full bug report.
    See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

    rhenium# g++ -v
    Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs
    gcc version 2.95.3 20010315 (release)

    rhenium# uname -a
    Linux rhenium 2.4.6 #61 Fri Jul 13 09:17:38 CDT 2001 i686 unknown


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-05-29  2:53 Andrey Korotchenko A.
  0 siblings, 0 replies; 387+ messages in thread
From: Andrey Korotchenko A. @ 2001-05-29  2:53 UTC (permalink / raw)
  To: gcc-bugs

gcc version 2.95.3 [FreeBSD] 20010315 (release)
g++ 1.cpp
where 1.cpp is:

class A
    {
    public:
    static int func();
    };

template <class T>
class B: public A
    {
    public:
    T cc;
    friend int A::func();
    };

B<int> Bi;
>From ros@tao-group.com Tue May 29 05:16:00 2001
From: ros@tao-group.com
To: gcc-gnats@gcc.gnu.org
Subject: c++/2988: Incorrect error on assignment of const char[] to char *
Date: Tue, 29 May 2001 05:16:00 -0000
Message-id: <20010529121514.6768.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-05/msg00899.html
Content-length: 1500

>Number:         2988
>Category:       c++
>Synopsis:       Incorrect error on assignment of const char[] to char *
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Tue May 29 05:16:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     ros@tao-group.com
>Release:        gcc version 2.95.2 20000220 (Debian GNU/Linux)
>Organization:
>Environment:
Debian GNU/Linux 2.2
>Description:
>From C++ Programming Language 3rd Ed 5.2.2:

The type of a string literal is ... const char[n];
A string literal can be assigned to char *

The compiler fails to allow this in conditional expressions.

(Verified still a problem using codesourcery with build
2001-05-28.)
>How-To-Repeat:
compile attached; default options suffice. Observe message

assignment to `char *' from `const char *' discards qualifiers 
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="ros2.cc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ros2.cc"

aW50Cm1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKewogIGNoYXIgKmFyZ3NbNF07CiAgaW50
IGZsYWdzOwoKICAvLyB0aGlzIGZhaWxzCgogIGFyZ3NbMV0gPSAoZmxhZ3M9PTApID8gKGNoYXIg
KikiLW4iIDogKGNoYXIgKikiLXAiOwoKICAvLyB0aGlzIGVxdWl2YWxlbnQgY29kZSB3b3Jrcwog
CiAgaWYgKGZsYWdzPT0wKSAKICAgIGFyZ3NbMV0gPSAiLW4iOwogIGVsc2UKICAgIGFyZ3NbMV0g
PSAiLXAiOwoKICByZXR1cm4gMDsKfQo=


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-05-02  5:55 Andre Poenitz
  0 siblings, 0 replies; 387+ messages in thread
From: Andre Poenitz @ 2001-05-02  5:55 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1367 bytes --]

I just got 

error message:

relpol.C:28: Internal compiler error.
relpol.C:28: Please submit a full bug report.
relpol.C:28: See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.


gcc:

poenitz@millo:~/work/editor/graph > g++ -v
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)

(Stock gcc from SuSE 7.1)


system:

poenitz@millo:~/work/editor/graph > uname -a
Linux millo 2.2.16 #2 Wed Apr 18 17:22:56 CEST 2001 i686 unknown


The gzip'd .i file is over 70k, so I put it under 

  http://mathematik.htwm.de/tmp/relpol.ii.gz

In case somebody wants to see it per mail, I'll send it individually.

It is not really urgent, but compiler bugs are annoing... 
Have fun chasing the bug ;-)

Andre'

PS:

Sorry for posting here, this GnatsWeb thingy did not really work 
(error msg:

----------- snip -------------
Software error:

[Wed May 2 05:47:55 2001] CGI.pm: CGI version 2.56 required--this is only
version 2.46 at
/www/gcc/cgi-bin/gnatsweb.pl line 97. BEGIN failed--compilation aborted at
/www/gcc/cgi-bin/gnatsweb.pl line 97. 

For help, please send mail to the webmaster
(sourcemaster@sources.redhat.com), giving this error message and the time
and date of the error. 
----------- snip -------------



-- 
André Pönitz ............................................. poenitz@htwm.de


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2001-04-24  9:21 Luca Hall
@ 2001-04-24 10:31 ` Zack Weinberg
  0 siblings, 0 replies; 387+ messages in thread
From: Zack Weinberg @ 2001-04-24 10:31 UTC (permalink / raw)
  To: Luca Hall; +Cc: gcc-bugs

On Tue, Apr 24, 2001 at 12:20:59PM -0400, Luca Hall wrote:
> [ xinitric@unix ] $ gcc -v -save-temps -Wall digits.c -o digits
...
> GNU C version 2.95.2 19991024 (release) (i386-unknown-freebsd) compiled by 
> GNU C version 2.95.2 19991024 (release).
> digits.c: In function `main':
> digits.c:7: int-array initialized from non-wide string
> digits.c:7: (near initialization for `digits[0]')
...
> digits.c:9: (near initialization for `digits[9]')
> digits.c:10: Internal compiler error in `const_hash', at varasm.c:2372
> Please submit a full bug report.

Reproducible with close-to-tip of 2.95 branch and with a smaller test
case:

$ cat test.c
int main (void) {
        int digits[1][10] = {
                "zero"
                };
	return 0;
}
$ gcc -v -c test.c
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20010319 (Debian prerelease)
 /usr/lib/gcc-lib/i386-linux/2.95.4/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ test.c /tmp/ccYG1Wzt.i
GNU CPP version 2.95.4 20010319 (Debian prerelease) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/2.95.4/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3
 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../i386-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i386-linux/2.95.4/cc1 /tmp/ccYG1Wzt.i -quiet -dumpbase test.c -version -o /tmp/cc6nBsxM.s
GNU C version 2.95.4 20010319 (Debian prerelease) (i386-linux) compiled by GNU C version 2.95.4 20010319 (Debian prerelease).
test.c: In function `main':
test.c:4: invalid initializer
test.c:4: (near initialization for `digits[0]')
test.c:4: Internal compiler error in `const_hash', at varasm.c:2377
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

Unfortunately I don't have a debug build of 2.95 branch right now so I
cannot chase this further.

The bug is also present in 3.0 and in mainline, although it manifests
differently.  In mainline we hit a tree-check ICE in store_constructor,
trying to take TYPE_ALIGN of the error_mark_node.  In 3.0 (which is
built without tree checking), we abort in tree_low_cst, because
output_constructor has done

4492     if (index != 0)
4493       pos = (tree_low_cst (TYPE_SIZE_UNIT (TREE_TYPE (val)), 1)
4494              * (tree_low_cst (index, 0) - tree_low_cst (min_index, 0)));

and val is error_mark_node.  tree_low_cst gets handed a garbage
pointer which happens to flunk host_integerp.

I'm thinking the appropriate fix here is, when we emit that "invalid
initializer" message, instead of handing back the error_mark_node, we
should gin up a dummy initializer of the appropriate type and use
that, thus avoiding having to teach lots of backend code about
error_marks.

zw


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-04-24  9:21 Luca Hall
  2001-04-24 10:31 ` Zack Weinberg
  0 siblings, 1 reply; 387+ messages in thread
From: Luca Hall @ 2001-04-24  9:21 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 2285 bytes --]

[ xinitric@unix ] $ gcc -v -save-temps -Wall digits.c -o digits
Using builtin specs.
gcc version 2.95.2 19991024 (release)
/usr/libexec/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -Dunix 
-D__FreeBSD__=4 -D__FreeBSD_cc_version=400004
-D__i386__ -D__unix__ -D__FreeBSD__=4 -D__FreeBSD_cc_version=400004 -D__i386
-D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) -Wall
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__ELF__ digits.c
digits.i GNU CPP version 2.95.2 19991024 (release) (i386 FreeBSD/ELF) 
#include
"..." search starts here: #include <...> search starts here:  /usr/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
/usr/include/g++
End of omitted list.
/usr/libexec/cc1 digits.i -quiet -dumpbase digits.c -Wall -version -o 
digits.s
GNU C version 2.95.2 19991024 (release) (i386-unknown-freebsd) compiled by 
GNU C version 2.95.2 19991024 (release).
digits.c: In function `main':
digits.c:7: int-array initialized from non-wide string
digits.c:7: (near initialization for `digits[0]')
digits.c:7: int-array initialized from non-wide string
digits.c:7: (near initialization for `digits[1]')
digits.c:7: int-array initialized from non-wide string
digits.c:7: (near initialization for `digits[2]')
digits.c:7: int-array initialized from non-wide string
digits.c:7: (near initialization for `digits[3]')
digits.c:8: int-array initialized from non-wide string
digits.c:8: (near initialization for `digits[4]')
digits.c:8: int-array initialized from non-wide string
digits.c:8: (near initialization for `digits[5]')
digits.c:8: int-array initialized from non-wide string
digits.c:8: (near initialization for `digits[6]')
digits.c:8: int-array initialized from non-wide string
digits.c:8: (near initialization for `digits[7]')
digits.c:9: int-array initialized from non-wide string
digits.c:9: (near initialization for `digits[8]')
digits.c:9: int-array initialized from non-wide string
digits.c:9: (near initialization for `digits[9]')
digits.c:10: Internal compiler error in `const_hash', at varasm.c:2372
Please submit a full bug report.
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

[-- Attachment #2: digits.i.gz --]
[-- Type: application/x-gzip, Size: 1528 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2001-04-18  9:18 Vig Attila
  0 siblings, 0 replies; 387+ messages in thread
From: Vig Attila @ 2001-04-18  9:18 UTC (permalink / raw)
  To: gcc-bugs

Hello!

I think I've found a bug in the gcc compiler. The attached
source file is the shortest version, which reproduces the error.
It doesn't compiling either, gcc stops with internal compiler error
message.
The system is an official Debian 2.2.r0. The CPU is an AMD Athlon.

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)

I did this:
$ gcc -o error error.cpp

error.cpp:6: parse error before {'
error.cpp:10: ANSI C++ forbids declaration Var2' with no type
error.cpp:10: initialization to         nt' from Critical *' lacks a
cast
error.cpp:11: parse error before }'
error.cpp:13: conflicting types for Class Critical * var2'
error.cpp:10: previous declaration as   nt var2'
error.cpp:14: parse error before }'
error.cpp:14: Internal compiler error in Make_decl_rtl', at varasm.c:738
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
make: *** [error.o] Error 1
$

Please inform me wether this bug is new for you, I'd like to be
very proud to myself. :))

If you have any other questions, just ask them.

Bye,
Attila
>From superluser@mail.isc.rit.edu Wed Apr 18 09:56:00 2001
From: "Andrew A. Gill" <superluser@mail.isc.rit.edu>
To: axp-list@redhat.com
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: gcc 2.96 optimization bug on RedHat7.0/alpha
Date: Wed, 18 Apr 2001 09:56:00 -0000
Message-id: <Pine.LNX.4.33.0104181223060.4253-100000@res104a-017.rh.rit.edu>
References: <3ADDCA70.ACA7A70C@voicenet.com>
X-SW-Source: 2001-04/msg00386.html
Content-length: 1959

[does gcc-bugs still want to be cc'd?]

On Wed, 18 Apr 2001, Uncle George antagonized the horn and now...

> I'm sorry that u believe this but i believe that the results from
>
> -O0 == -O1 == -O2 == -O3 == -O4
>
> should all be the same.  If any one of them failes to be equal, then
> the compiler failed to produce the correct code to derive the correct
> results. It is particularly onerous if the failure is not reported in
> any fashion.

Does anyone remember the old PBS instructional television sketch where
the guy decides that he hates rules and wishes that they were never
invented and then he falls asleep and he dreams that he's in a world
without rules and he's run over by a car or something? [*]

Anyways, we're talking about a programming language.  It has a formal
syntax and grammar.  Like English.  I would say that English has many
problems--so does C.  English has no separate you (pl.), for example.
Does this mean that English is buggy?

We're dealing with documented results, here.  This means that the burden
is on you.  If you don't like C's implementation, try another language.
Lord knows that there are others out there that many people find much
better than C.

> It is never perfectly OK to produce bad code.  AND i dont care what
> standard one uses to justify this 'OK'ness.

So stop writing bad code! <g>


[*] Where was I?  Oh, yeah--I like TV.

-- 
|Andrew A. Gill                       |I posted to Silent-Tristero and|
|<superluser@mail.rit.edu>            |all I got was this stupid sig! |
|alt.tv.simpsons CBG-FAQ author       |                               |
|                          (Report all obscene mail to Le Maitre Pots)|
|< http://trystero.rh.rit.edu >                         Temporary sig: --

FORTRAN?  The syntactically incorrect statement "DO 10 I = 1.10" will
parse and generate code creating a variable, DO10I, as follows:
"DO10I = 1.10"  If that doesn't terrify you, it should.
 - fortune database


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2001-04-10  0:27 joop renes
  0 siblings, 0 replies; 387+ messages in thread
From: joop renes @ 2001-04-10  0:27 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 475 bytes --]

please find attached a sincere attempt to report an internal compiler
error on my P-75 RH 7.0 box. the error ocurred upon typing gcc -g -Wall
-O6 -DDEVMNT commonchess.cpp.  this is the umptennth episode in the soap
series "I wanted to learn C++  and decided to write a chess program.  I
had a working version of ths code on RH 6.2, but I had problems with
namespaces there, so I decided to migrate. Apart from this everything
works OK for me thanks.
kind regards
joop renes


[-- Attachment #2: chessdialog.hpp.bz2 --]
[-- Type: application/x-bzip2, Size: 2986 bytes --]

[-- Attachment #3: commonchessdialog.cpp.bz2 --]
[-- Type: application/x-bzip2, Size: 4653 bytes --]

[-- Attachment #4: commonchessdialog.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 31723 bytes --]

[-- Attachment #5: commonchessdialog.s.bz2 --]
[-- Type: application/x-bzip2, Size: 8843 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-02-20  4:12 Ryszard Kabatek
  0 siblings, 0 replies; 387+ messages in thread
From: Ryszard Kabatek @ 2001-02-20  4:12 UTC (permalink / raw)
  To: gcc-bugs

Hi, I tested the current gcc snapshot.
In my sample I got the folowing error message:

x.cc: In function `int main(int, char**)':
x.cc:8: parse error before `&' token
x.cc:9: Internal error #122.
x.cc:9: Internal compiler error in finish_function, at cp/decl.c:14003
Please submit a full bug report, with preprocessed source if
appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.           

I know, I should use 'std::exception' instead of 'exception'. 
But I would expect something like:

`exception' undeclared ...,

but not an internal compiler error.


#include <iostream>
#include <exception>
 
int main(int argc, char** argv)
{
  try {
  }
  catch (exception& exc) {
  }
  return 0;
}                                                                               


My configuration:
PC, RedHat 7.0.
gcc version 2.97 20010205 (experimental)


Regards
-- 
Ryszard Kabatek


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2001-02-16 10:00 ` Alexandre Oliva
@ 2001-02-16 11:24   ` Neil Booth
  0 siblings, 0 replies; 387+ messages in thread
From: Neil Booth @ 2001-02-16 11:24 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: martin.hjelmstedt, gcc-bugs

Alexandre Oliva wrote:-

> On Feb 16, 2001, martin.hjelmstedt@cellnetwork.com wrote:
> 
> > Here it is! I'm afraid to say that the .ii file (in compressed size)
> > exceeds your 200000 byte size limit. What should I do with it?
> 
> Use Gnats.  See the on-line bug reporting instructions at
> gcc.gnu.org.

Even better, reduce the testcase to a few lines.  This is possible in
99% of cases with a little effort, and has the benefit that the bug
is easier to diagnose and fix.

Neil.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2001-02-16  2:21 martin.hjelmstedt
@ 2001-02-16 10:00 ` Alexandre Oliva
  2001-02-16 11:24   ` Neil Booth
  0 siblings, 1 reply; 387+ messages in thread
From: Alexandre Oliva @ 2001-02-16 10:00 UTC (permalink / raw)
  To: martin.hjelmstedt; +Cc: gcc-bugs

On Feb 16, 2001, martin.hjelmstedt@cellnetwork.com wrote:

> Here it is! I'm afraid to say that the .ii file (in compressed size)
> exceeds your 200000 byte size limit. What should I do with it?

Use Gnats.  See the on-line bug reporting instructions at
gcc.gnu.org.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2001-02-16  2:21 martin.hjelmstedt
  2001-02-16 10:00 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: martin.hjelmstedt @ 2001-02-16  2:21 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2716 bytes --]

Hi,

Here it is! I'm afraid to say that the .ii file (in compressed size)
exceeds your 200000 byte size limit. What should I do with it?

=====================================================================
Compiler version: egcs-2.91.66
=====================================================================
OS version: RedHat Linux 6.2 on PC.
=====================================================================
Compiler invocation and output:


g++ -c -g -D_LINUX  -I. -Iusr/include/X11 -I/usr/include
-I/usr/project/tyr/ccas
e/tyr/source/lib/opcomhandler/includedir -I/ccase/tyr/source/lib/include
-I/ccas
e/comlib/update/include -I/ccase/tyr/source/lib/comp_v201/include/os_linux
-I/cc
ase/tyr/source/lib/tyr_components
-I/ccase/tyr/source/lib/tyr_components/mine -I
/usr/project/tyr/ilog/rules611/include
-I/ccase/tyr/source/lib/catsevent/source
-I/ccase/tyr/source/lib/eventbus/source -I/ccase/tyr/source/lib/roe/source
-I./g
ame -I./game/activity -I./game/order -I./game_image -I./arbiter -I./event
-I./re
source -I./ruleset -I./ruleset/Generic -I./flow -o Act2Dir.o Act2Dir.cpp
In file included from ruleset/Generic/Generic.h:295,
                 from game/activity/PSOSurveillance.cpp:30,
                 from Act2Dir.cpp:5:
game/activity/FireWarningShots.hpp:47: warning: ANSI C++ forbids
initialization
of const member `cWARNING_SHOT_ROUNDS_PER_FIRE'
game/activity/FireWarningShots.hpp:47: warning: making
`cWARNING_SHOT_ROUNDS_PER
_FIRE' static
In file included from game/activity/GMOActivity.cpp:30,
                 from Act2Dir.cpp:36:
game/MinefieldAdmin.hpp:132: warning: ANSI C++ forbids initialization of
const m
ember `cMINEFIELD_ADMIN_QUESTION_TIMEOUT'
game/MinefieldAdmin.hpp:132: warning: making
`cMINEFIELD_ADMIN_QUESTION_TIMEOUT'
 static
game/activity/CivilActivity.cpp: In method `void RescuePersonnelLoad::Tick
()':
In file included from Act2Dir.cpp:42:
game/activity/CivilActivity.cpp:634: Internal compiler error.
game/activity/CivilActivity.cpp:634: Please submit a full bug report to
`egcs-bu
gs@egcs.cygnus.com'.
game/activity/CivilActivity.cpp:634: See
<URL: http://egcs.cygnus.com/faq.html#bu
greport> for details.
make: *** [Act2Dir.o] Error 1
=======================================================================

Regards,


Martin Hjelmstedt

____________________________________________________________________
Martin Hjelmstedt             tel. direct: +46 42 19 82 68
System developer              e-mail: martin.hjelmstedt@cellnetwork.com

Command Training & SAR
Simulation department              tel. +46 42 19 82 00
Cell ITS AB                   fax: +46 42 14 29 65
                         http://www.cellits.com

Rusthållsgatan 21
S-253 61 Helsingborg
Sweden


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-10-30  8:04 Philippe Bouchard
  0 siblings, 0 replies; 387+ messages in thread
From: Philippe Bouchard @ 2000-10-30  8:04 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 24656 bytes --]

Program:
#include <list>
 
using namespace std;
struct A
{
};
int main()
{
  class list<class A>::iterator i;
}
Outputs:
explicitclass.cpp: In function `int main()':
explicitclass.cpp:12: Internal compiler error.
explicitclass.cpp:12: Please submit a full bug report.
explicitclass.cpp:12: See <URL: http://www.gnu.org/software/gcc/bugs.html >
for instructions.
Under:
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)
Thank you.
begin:vcard 
n:Bouchard;Philippe
x-mozilla-html:FALSE
org:Corel Linux
adr:;;;;;;
version:2.1
email;internet:philippeb@corel.com
title:Software Engineer
x-mozilla-cpt:;0
fn:Philippe Bouchard
end:vcard
>From Cossettep@stlaurent.com Mon Oct 30 08:15:00 2000
From: "FOR Cossette, Pierre" <Cossettep@stlaurent.com>
To: "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>
Subject: bug ?
Date: Mon, 30 Oct 2000 08:15:00 -0000
Message-id: <31D030D8A5D8D111983000A02437D03F251E85@srv_nt_wood.for.stlaurent.com>
X-SW-Source: 2000-10/msg00601.html
Content-type: multipart/mixed; boundary="----------=_1583533119-4114-690"

This is a multi-part message in MIME format...

------------=_1583533119-4114-690
Content-length: 447

Title: bug ?





After installing the gcc compiler on HP-UX 10.20 (HP9000/735), I got this.


 <<essai.s>>  <<essai.i>>  <<trace>> 
If you need more info, it'll be a pleasure to send all I can.


Thanks


---------------------------------------
Pierre Cossette
Smurfit-Stone
Ressources forestières
1053 Boul. Ducharme
La Tuque, Qc, G9X 3C3
Tél.: 819-523-4531 ext.453
Fax.: 819-523-9157
courriel: pcossette@smurfit.com



essai.s
essai.i
trace


------------=_1583533119-4114-690
Content-Type: text/x-c; charset=us-ascii; name="essai.i"
Content-Disposition: inline; filename="essai.i"
Content-Transfer-Encoding: base64
Content-Length: 15271

IyAxICJlc3NhaS5jIgojIDEgIi9vcHQvZ2NjL2xpYi9nY2MtbGliL2hwcGEx
LjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9pbmNsdWRlL3N0ZGlvLmgiIDEgMwoK
IyAxICIvb3B0L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4xLWhwLWhwdXgxMC4y
MC8yLjk1LjIvaW5jbHVkZS9zdGRhcmcuaCIgMSAzCiAKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCiMgMSAiL29wdC9nY2MvbGliL2djYy1saWIvaHBwYTEuMS1o
cC1ocHV4MTAuMjAvMi45NS4yL2luY2x1ZGUvdmEtcGEuaCIgMSAzCgogCgoK
Cgp0eXBlZGVmIHZvaWQgKl9fZ251Y192YV9saXN0OwoKCiAKCiMgNTIgIi9v
cHQvZ2NjL2xpYi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUu
Mi9pbmNsdWRlL3ZhLXBhLmgiIDMKCiMgMjQgIi9vcHQvZ2NjL2xpYi9nY2Mt
bGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9pbmNsdWRlL3N0ZGFy
Zy5oIiAyIDMKCiMgMTM3ICIvb3B0L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4x
LWhwLWhwdXgxMC4yMC8yLjk1LjIvaW5jbHVkZS9zdGRhcmcuaCIgMwoKCgoK
CiMgMjA5ICIvb3B0L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4xLWhwLWhwdXgx
MC4yMC8yLjk1LjIvaW5jbHVkZS9zdGRhcmcuaCIgMwoKCgoKIyAyICIvb3B0
L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4xLWhwLWhwdXgxMC4yMC8yLjk1LjIv
aW5jbHVkZS9zdGRpby5oIiAyIDMKCiAKCgoKCiMgMSAiL3Vzci9pbmNsdWRl
L3N5cy9zdGRzeW1zLmgiIDEgMwogCgoKCgogCgoKCgoKCgoKCgoKCiMgNjEg
Ii91c3IvaW5jbHVkZS9zeXMvc3Rkc3ltcy5oIiAzCgoKCiAKCgojIDgzICIv
dXNyL2luY2x1ZGUvc3lzL3N0ZHN5bXMuaCIgMwoKCgogCgoKCgoKCgoKCgog
CgoKCgoKCgoKCgogCgogCgoKCgoKCgoKCiAKCgoKCgoKCgogCgoKCgoKCgoK
IAogCgoKCgoKCgoKIAoKCgoKCgoKCiAKCgoKCgoKCgogCgoKCgoKCgoKIAoK
CgoKCgoKCgoKCiAKCgoKCgoKCgogCgoKCgoKCgoKCgogCgoKCiMgMjE5ICIv
dXNyL2luY2x1ZGUvc3lzL3N0ZHN5bXMuaCIgMwoKCiMgMjI5ICIvdXNyL2lu
Y2x1ZGUvc3lzL3N0ZHN5bXMuaCIgMwoKCgoKCgoKCgoKCiMgMjUyICIvdXNy
L2luY2x1ZGUvc3lzL3N0ZHN5bXMuaCIgMwoKCgojIDggIi9vcHQvZ2NjL2xp
Yi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9pbmNsdWRl
L3N0ZGlvLmgiIDIgMwoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMu
aCIgMSAzCiAKCiAKCgogICAgICAgICAgICAgIAoKCgoKCgoKIyAxICIvdXNy
L2luY2x1ZGUvc3lzL19pbnR0eXBlcy5oIiAxIDMKIAoKCgogCgoKCiAKIAoK
CiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgNTIgIi91c3IvaW5jbHVk
ZS9zeXMvX2ludHR5cGVzLmgiIDMKCgoKCgoKCgoKdHlwZWRlZiBjaGFyIGlu
dDhfdDsgCQkJICAKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7IAkJ
ICAKdHlwZWRlZiBzaG9ydCBpbnQxNl90OyAJCQkgIAp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IHVpbnQxNl90OwkgIAp0eXBlZGVmIGludCAgaW50MzJfdDsg
CQkJIAp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsJCSAKCnR5cGVk
ZWYgaW50IGludGZhc3RfdDsgCQkJIAp0eXBlZGVmIHVuc2lnbmVkIGludCB1
aW50ZmFzdF90OwkgCgoKCgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQ2NF90OyAJ
CSAgCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVpbnQ2NF90OwkgIAoK
CgoKCnR5cGVkZWYgaW50NjRfdCAgaW50bWF4X3Q7IAkJICAKdHlwZWRlZiB1
aW50NjRfdCB1aW50bWF4X3Q7CSAJIAoKCgoKCgoKCnR5cGVkZWYgbG9uZyAg
aW50cHRyX3Q7CQkJIAp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWludHB0cl90
OyAJIAoKCiAKCgoKCgogCnR5cGVkZWYgY2hhciBpbnRfbGVhc3Q4X3Q7Cgog
CnR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50X2xlYXN0OF90OyAKCiAKdHlw
ZWRlZiBpbnQgaW50X2Zhc3Q4X3Q7CgogCnR5cGVkZWYgdW5zaWduZWQgaW50
IHVpbnRfZmFzdDhfdDsgCgogCnR5cGVkZWYgc2hvcnQgaW50X2xlYXN0MTZf
dDsKCiAKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1aW50X2xlYXN0MTZfdDsg
CgogCnR5cGVkZWYgaW50IGludF9mYXN0MTZfdDsKCiAKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgdWludF9mYXN0MTZfdDsgCgogCnR5cGVkZWYgaW50IGludF9s
ZWFzdDMyX3Q7CgogCnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfbGVhc3Qz
Ml90OyAKCiAKdHlwZWRlZiBpbnQgaW50X2Zhc3QzMl90OwoKIAp0eXBlZGVm
IHVuc2lnbmVkIGludCB1aW50X2Zhc3QzMl90OyAKCgoKCiAKdHlwZWRlZiBp
bnQ2NF90IGludF9sZWFzdDY0X3Q7CgogCnR5cGVkZWYgaW50NjRfdCBpbnRf
ZmFzdDY0X3Q7CgogCnR5cGVkZWYgdWludDY0X3QgdWludF9sZWFzdDY0X3Q7
CgogCnR5cGVkZWYgdWludDY0X3QgdWludF9mYXN0NjRfdDsgCgoKCiAKCgoK
CgoKCgoKCnR5cGVkZWYgdWludDMyX3QgcHRyMzJfdDsKCgogCgoKIyAxNCAi
L3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMKCgoKCgoKCiAgICAgdHlw
ZWRlZiBpbnQzMl90IGRldl90OwkJIAoKCgoKCgoKCgoKICAgICAgICAgdHlw
ZWRlZiB1aW50MzJfdCBpbm9fdDsKCgoKCgoKICAgICB0eXBlZGVmIHVpbnQx
Nl90IG1vZGVfdDsJCSAKCgoKCiAgICAgdHlwZWRlZiB1aW50MTZfdCBubGlu
a190OwkJIAoKCgoKICAgIHR5cGVkZWYgaW50MzJfdCBmcG9zMzJfdDsJCSAK
CgoKCgogICAgICAgdHlwZWRlZiBpbnQ2NF90IGZwb3M2NF90OwkgCgoKCgoK
CgoKICAgICAgIHR5cGVkZWYgaW50MzJfdCBmcG9zX3Q7CQkgCgoKCgoKICAg
ICB0eXBlZGVmIHVpbnQzMl90IGZzYmxrY250MzJfdDsJIAoKCgoKCiAgICAg
ICB0eXBlZGVmIHVpbnQ2NF90IGZzYmxrY250NjRfdDsJIAoKCgoKCgoKCiAg
ICAgICB0eXBlZGVmIHVpbnQzMl90IGZzYmxrY250X3Q7CSAKCgoKCgogICAg
IHR5cGVkZWYgaW50MzJfdCBvZmYzMl90OwkgCgoKCgoKICAgICAgICB0eXBl
ZGVmIGludDY0X3Qgb2ZmNjRfdDsJIAoKCgoKCgoKCiAgICAgICAgdHlwZWRl
ZiBpbnQzMl90IG9mZl90OwkJIAoKCgoKCiAgICAgdHlwZWRlZiB1aW50MzJf
dCBmc2ZpbGNudDMyX3Q7CSAKCgoKCgogICAgICAgdHlwZWRlZiB1aW50NjRf
dCBmc2ZpbGNudDY0X3Q7CSAKCgoKCgoKCgogICAgICAgIHR5cGVkZWYgdWlu
dDMyX3QgZnNmaWxjbnRfdDsJIAoKCgoKCiAgICAgdHlwZWRlZiBpbnQzMl90
IGJsa2NudDMyX3Q7CSAKCgoKCgogICAgICAgdHlwZWRlZiBpbnQ2NF90IGJs
a2NudDY0X3Q7CSAKCgoKCgoKCgogICAgICAgIHR5cGVkZWYgaW50MzJfdCBi
bGtjbnRfdDsJIAoKCgoKCiAgICAgdHlwZWRlZiBpbnQzMl90IHBpZF90OwkJ
IAoKCgoKICAgICB0eXBlZGVmIGludDMyX3QgbHdwaWRfdDsgICAgICAgICAg
ICAgICAKCgoKCiAgICAgdHlwZWRlZiBpbnQzMl90IGdpZF90OwkJIAoKCgoK
ICAgICB0eXBlZGVmIGludDMyX3QgdWlkX3Q7CQkgCgoKCgogICAgIHR5cGVk
ZWYgaW50MzJfdCB0aWRfdDsJCSAKCgoKCgoKCiAgICAgICAgdHlwZWRlZiBp
bnQzMl90IHNzaXplX3Q7CSAKCgoKCgogICAgIHR5cGVkZWYgdWludDE2X3Qg
X19zaXRlX3Q7CQkgCgoKCgogICAgIHR5cGVkZWYgdWludDE2X3QgX19jbm9k
ZV90OwkgCgoKCgoKCiAgICAgdHlwZWRlZiBsb25nIHRpbWVfdDsJCSAKCgoK
CgoKCgoKICAgICAgICB0eXBlZGVmIHVpbnQzMl90IHNpemVfdDsJIAoKCgoK
CgoKICAgICB0eXBlZGVmIHVpbnQzMl90IGNsb2NrX3Q7CQkgCgoKCgoKCiAg
ICAgIHR5cGVkZWYgaW50MzJfdCBrZXlfdDsJCSAKCgogICB0eXBlZGVmIHVu
c2lnbmVkIHNob3J0IF9fdXNob3J0OwkgCgogICB0eXBlZGVmIGludDMyX3Qg
X19kYWRkcl90OwkJIAogICB0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsJCSAK
ICAgdHlwZWRlZiBpbnQzMl90IF9fc3dibGtfdDsKCgoKCgoKICAgICB0eXBl
ZGVmIF9fY2FkZHJfdAkJY2FkZHJfdDsKCgoKCgoKCiAgICAgdHlwZWRlZiBp
bnQzMl90IGlkX3Q7CSAKCgoKCiAgICAgdHlwZWRlZiB1aW50MzJfdCB1c2Vj
b25kc190OwkgCgoKIAoKCgogICAgICB0eXBlZGVmIHVpbnQzMl90IHJsaW0z
Ml90OwoKCgoKCiAgICAgICAgdHlwZWRlZiB1aW50NjRfdCBybGltNjRfdDsK
CgoKCgoKCgogICAgICAgdHlwZWRlZiB1aW50MzJfdCBybGltX3Q7CgoKCiAK
ICAgdHlwZWRlZiBfX3NpdGVfdAkJc2l0ZV90OwoKCgogICB0eXBlZGVmIHVu
c2lnbmVkIGNoYXIJdV9jaGFyOwkgICAgCiAgIHR5cGVkZWYgdW5zaWduZWQg
c2hvcnQJdV9zaG9ydDsgICAgCiAgIHR5cGVkZWYgdW5zaWduZWQgaW50CQl1
X2ludDsgICAgICAKICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nCXVfbG9uZzsg
ICAgIAogICB0eXBlZGVmIHVuc2lnbmVkIGludAkJdWludDsJICAgIAogICB0
eXBlZGVmIHVuc2lnbmVkIHNob3J0CXVzaG9ydDsJICAgIAogICB0eXBlZGVm
IHVuc2lnbmVkIGNoYXIgIHViaXQ4OwogICB0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IHViaXQxNjsKICAgdHlwZWRlZiB1aW50MzJfdAkgIHViaXQzMjsKICAg
dHlwZWRlZiBjaGFyICAgICAgICAgICBzYml0ODsKICAgdHlwZWRlZiBzaG9y
dCAgICAgICAgICBzYml0MTY7CiAgIHR5cGVkZWYgaW50MzJfdCAgICAgICAg
c2JpdDMyOwoKICAgdHlwZWRlZiBfX3N3YmxrX3QJCXN3YmxrX3Q7CiAgIHR5
cGVkZWYgX19kYWRkcl90CQlkYWRkcl90OwogICB0eXBlZGVmIF9fY25vZGVf
dAkJY25vZGVfdDsKCiAgICAKICAgdHlwZWRlZiB1aW50cHRyX3QJCXBoeXNh
ZGRyX3Q7CQogICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcJcGFkZHJfdDsgCSAK
CiAgICAKCgoKCiAgIHR5cGVkZWYgaW50cHRyX3QJCXBhZ2VfdDsJCQoKCgog
ICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmdfdDsKCgogICB0eXBlZGVm
IGludDE2X3QJCWNudF90OwoKCgogICB0eXBlZGVmIHVpbnQzMl90IHNwYWNl
X3Q7CgogICB0eXBlZGVmIHVpbnQzMl90CQlwcm90X3Q7CiAgIHR5cGVkZWYg
dWludDMyX3QgICAgICAgICAgICAgY2Rub190OwogICB0eXBlZGVmIHVpbnQx
Nl90CQl1c2VfdDsKCiAgIHR5cGVkZWYgc3RydWN0IF9waHlzYWRyIHsgaW50
cHRyX3QgclsxXTsgfSAqcGh5c2FkcjsKICAgdHlwZWRlZiBzdHJ1Y3QgX3F1
YWQgeyBsb25nIHZhbFsyXTsgfSBxdWFkOwoKICAgdHlwZWRlZiBpbnQgc3B1
X3Q7CgoKCgoKICAgICB0eXBlZGVmIHNob3J0IGNwdV90OwoKICAgICB0eXBl
ZGVmIHN0cnVjdCBsYWJlbF90IHsKCgoKCgoKCglpbnQzMl90ICAgICBsYmxf
cnA7CglpbnQzMl90ICAgICBsYmxfc3A7CglpbnQzMl90ICAgICBsYmxfc1sx
N107CQoJaW50MzJfdCAgICAgbGJsX3NzWzFdOwogCWRvdWJsZSAgICAgIGxi
bF9zZls0XTsKCiAgICB9IGxhYmVsX3Q7CgoKICAgdHlwZWRlZiBjaGFyICpk
bV9tZXNzYWdlOwoKCgoKICAgICAgdHlwZWRlZiBpbnQzMl90CWFpZF90OwoK
CgogCgoKCgogICB0eXBlZGVmIHBpZF90CQlzaWRfdDsJICAgIAoKCgoKCgoK
CiAKCgogCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgog
ICAgIHR5cGVkZWYgaW50MzJfdCBmZF9tYXNrOwoKCgoKCgoKCgogICAgICAg
dHlwZWRlZiBzdHJ1Y3QgZmRfc2V0IHsKICAgICAgICAgZmRfbWFzayBmZHNf
Yml0c1soKCggMjA0OCAgICkrKCggIChzaXplb2YoZmRfbWFzaykgKiA4KSAg
KS0xKSkvKCAgKHNpemVvZihmZF9tYXNrKSAqIDgpICApKSBdOwogICAgICAg
fSBmZF9zZXQ7CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoK
CgoKCXR5cGVkZWYgaW50NjRfdCAga19vZmZfdDsKCgoKICAJdHlwZWRlZiB1
aW50NjRfdCBrX3JsaW1fdDsKCgoKICAJdHlwZWRlZiBpbnQ2NF90IGtfYmxr
Y250X3Q7CgoKCiAgCXR5cGVkZWYgdWludDMyX3Qga19mc2ZpbGNudF90OwoK
CgogIAl0eXBlZGVmIHVpbnQzMl90IGtfZnNibGtjbnRfdDsKCgoKCXR5cGVk
ZWYgaW50MzJfdCBkaXJfb2ZmX3Q7CgoKCiMgNTUyICIvdXNyL2luY2x1ZGUv
c3lzL3R5cGVzLmgiIDMKCgoKCgojIDExICIvb3B0L2djYy9saWIvZ2NjLWxp
Yi9ocHBhMS4xLWhwLWhwdXgxMC4yMC8yLjk1LjIvaW5jbHVkZS9zdGRpby5o
IiAyIDMKCgoKCgoKCgoKCgoKIAoKCiAgIHR5cGVkZWYgc3RydWN0IHsKCWlu
dAkJIF9fY250OwoJdW5zaWduZWQgY2hhcgkqX19wdHI7Cgl1bnNpZ25lZCBj
aGFyCSpfX2Jhc2U7Cgl1bnNpZ25lZCBzaG9ydAkgX19mbGFnOwoJdW5zaWdu
ZWQgY2hhciAJIF9fZmlsZUw7CQkgCgl1bnNpZ25lZCBjaGFyIAkgX19maWxl
SDsJCSAKICAgfSBGSUxFOwoKICAgdHlwZWRlZiBzdHJ1Y3QgewoJaW50CQkg
X19jbnQ7Cgl1bnNpZ25lZCBjaGFyCSpfX3B0cjsKCXVuc2lnbmVkIGNoYXIJ
Kl9fYmFzZTsKCXVuc2lnbmVkIHNob3J0CSBfX2ZsYWc7Cgl1bnNpZ25lZCBj
aGFyIAkgX19maWxlTDsJCSAKCXVuc2lnbmVkIGNoYXIgCSBfX2ZpbGVIOwkJ
IAoJdW5zaWduZWQgY2hhcgkqX19idWZlbmRwOwkJIAoJdW5zaWduZWQgY2hh
cgkqX19uZXdiYXNlOwoJdW5zaWduZWQgY2hhcgkgX19zbWJ1Zls4ICsyKjRd
OwkgCgoKCgl2b2lkCQkqX191bnVzZWQ7CgogICB9IF9GSUxFWDsKCiAKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgog
ICAgIHR5cGVkZWYgZG91YmxlICpfX3ZhX2xpc3Q7CgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKICAgCgoKCgogICBleHRlcm4gRklMRSBfX2lvYltdOwoKCiAg
ICAgZXh0ZXJuIGludCByZW1vdmUoY29uc3QgY2hhciAqKTsKCiAgICAgZXh0
ZXJuIGludCByZW5hbWUoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwoK
ICAgICBleHRlcm4gY2hhciAqdG1wbmFtKGNoYXIgKik7CiAgICAgZXh0ZXJu
IGludCBmY2xvc2UoRklMRSAqKTsKICAgICBleHRlcm4gaW50IGZmbHVzaChG
SUxFICopOwogICAgIGV4dGVybiB2b2lkIHNldGJ1ZihGSUxFICosIGNoYXIg
Kik7CiAgICAgZXh0ZXJuIGludCBzZXR2YnVmKEZJTEUgKiwgY2hhciAqLCBp
bnQsIHNpemVfdCk7CiAgICAgZXh0ZXJuIGludCBmcHJpbnRmKEZJTEUgKiwg
Y29uc3QgY2hhciAqLCAuLi4pOwogICAgIGV4dGVybiBpbnQgZnNjYW5mKEZJ
TEUgKiwgY29uc3QgY2hhciAqLC4uLik7CiAgICAgZXh0ZXJuIGludCBwcmlu
dGYoY29uc3QgY2hhciAqLC4uLik7CiAgICAgZXh0ZXJuIGludCBzY2FuZihj
b25zdCBjaGFyICosLi4uKTsKICAgICBleHRlcm4gaW50IHNwcmludGYoY2hh
ciAqLCBjb25zdCBjaGFyICosLi4uKTsKICAgICBleHRlcm4gaW50IHNzY2Fu
Zihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwuLi4pOwogICAgIGV4dGVy
biBpbnQgZmdldGMoRklMRSAqKTsKICAgICBleHRlcm4gY2hhciAqZmdldHMo
Y2hhciAqLCBpbnQsIEZJTEUgKik7CiAgICAgZXh0ZXJuIGludCBmcHV0Yyhp
bnQsIEZJTEUgKik7CiAgICAgZXh0ZXJuIGludCBmcHV0cyhjb25zdCBjaGFy
ICosIEZJTEUgKik7CiAgICAgZXh0ZXJuIGludCBnZXRjKEZJTEUgKik7CiAg
ICAgZXh0ZXJuIGludCBnZXRjaGFyKHZvaWQpOwogICAgIGV4dGVybiBjaGFy
ICpnZXRzKGNoYXIgKik7CiAgICAgZXh0ZXJuIGludCBwdXRjKGludCwgRklM
RSAqKTsKICAgICBleHRlcm4gaW50IHB1dGNoYXIoaW50KTsKICAgICBleHRl
cm4gaW50IHB1dHMoY29uc3QgY2hhciAqKTsKICAgICBleHRlcm4gaW50IHVu
Z2V0YyhpbnQsIEZJTEUgKik7CgogICAgIGV4dGVybiBGSUxFICp0bXBmaWxl
KHZvaWQpOwogICAgIGV4dGVybiBpbnQgZmdldHBvcyhGSUxFICosIGZwb3Nf
dCAqKTsKICAgICBleHRlcm4gaW50IGZzZXRwb3MoRklMRSAqLCBjb25zdCBm
cG9zX3QgKik7CiAgICAgZXh0ZXJuIEZJTEUgKmZvcGVuKGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqKTsKICAgICBleHRlcm4gRklMRSAqZnJlb3Blbihj
b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgRklMRSAqKTsKIyAxNzggIi9v
cHQvZ2NjL2xpYi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUu
Mi9pbmNsdWRlL3N0ZGlvLmgiIDMKCgogICAgIGV4dGVybiBpbnQgZnNlZWso
RklMRSAqLCBsb25nIGludCwgaW50KTsKICAgICBleHRlcm4gbG9uZyBpbnQg
ZnRlbGwoRklMRSAqKTsKICAgICBleHRlcm4gdm9pZCByZXdpbmQoRklMRSAq
KTsKICAgICBleHRlcm4gdm9pZCBjbGVhcmVycihGSUxFICopOwogICAgIGV4
dGVybiBpbnQgZmVvZihGSUxFICopOwogICAgIGV4dGVybiBpbnQgZmVycm9y
KEZJTEUgKik7CiAgICAgZXh0ZXJuIHZvaWQgcGVycm9yKGNvbnN0IGNoYXIg
Kik7CiMgMTk1ICIvb3B0L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4xLWhwLWhw
dXgxMC4yMC8yLjk1LjIvaW5jbHVkZS9zdGRpby5oIiAzCgojIDI1NiAiL29w
dC9nY2MvbGliL2djYy1saWIvaHBwYTEuMS1ocC1ocHV4MTAuMjAvMi45NS4y
L2luY2x1ZGUvc3RkaW8uaCIgMwoKCgoKCgoKICAgICAgIGV4dGVybiBzaXpl
X3QgZnJlYWQodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgRklMRSAqKTsKICAg
ICAgIGV4dGVybiBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKiwgc2l6ZV90
LCBzaXplX3QsIEZJTEUgKik7CgoKCgoKCiAKCgoKCgoKCiAgICAgZXh0ZXJu
IGludCBfX2Zsc2J1Zih1bnNpZ25lZCBjaGFyLCBGSUxFICopOwogICAgIGV4
dGVybiBpbnQgX19maWxidWYoRklMRSAqKTsKCgoKCiAgCgojIDMyNCAiL29w
dC9nY2MvbGliL2djYy1saWIvaHBwYTEuMS1ocC1ocHV4MTAuMjAvMi45NS4y
L2luY2x1ZGUvc3RkaW8uaCIgMwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgog
ICAgIGV4dGVybiBjaGFyICpjdGVybWlkKGNoYXIgKik7CiAgICAgZXh0ZXJu
IGludCBmaWxlbm8oRklMRSAqKTsKICAgICBleHRlcm4gRklMRSAqZmRvcGVu
KGludCwgY29uc3QgY2hhciAqKTsKCgoKCgoKCgoKCgoKCgoKCgoKCgogICAg
ICAgICB0eXBlZGVmIGRvdWJsZSAqX192YV9saXN0X187CgoKCiAgICAgZXh0
ZXJuIGNoYXIgKm9wdGFyZzsKICAgICBleHRlcm4gaW50IG9wdGVycjsKICAg
ICBleHRlcm4gaW50IG9wdGluZDsKICAgICBleHRlcm4gaW50IG9wdG9wdDsK
CgogICAgICAgZXh0ZXJuIGludCBnZXRvcHQoaW50LCBjaGFyICogY29uc3Qg
W10sIGNvbnN0IGNoYXIgKik7CiAgICAgICBleHRlcm4gY2hhciAqY3VzZXJp
ZChjaGFyICopOwoKCgoKCgoKCgoKCiAgICAgZXh0ZXJuIGludCBnZXR3KEZJ
TEUgKik7CiAgICAgZXh0ZXJuIGludCBwdXR3KGludCwgRklMRSAqKTsKICAg
ICBleHRlcm4gaW50IHBjbG9zZShGSUxFICopOwogICAgIGV4dGVybiBGSUxF
ICpwb3Blbihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiAgICAgZXh0
ZXJuIGNoYXIgKnRlbXBuYW0oY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICop
OwoKCgoKCgoKCgoKCgoKCiAKCgoKCgoKCgogICAgIGV4dGVybiBpbnQgdnBy
aW50Zihjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKICAgICBleHRl
cm4gaW50IHZmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX2dudWNf
dmFfbGlzdCk7CiAgICAgZXh0ZXJuIGludCB2c3ByaW50ZihjaGFyICosIGNv
bnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwoKCgoKCgoKCgoKCgoKICAg
ICBleHRlcm4gaW50IHZzY2FuZihjb25zdCBjaGFyICosIF9fZ251Y192YV9s
aXN0KTsKICAgICBleHRlcm4gaW50IHZmc2NhbmYoRklMRSAqLCBjb25zdCBj
aGFyICosIF9fZ251Y192YV9saXN0KTsKICAgICBleHRlcm4gaW50IHZzc2Nh
bmYoY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKICAg
ICBleHRlcm4gaW50IGZjbG9zZV91bmxvY2tlZChGSUxFICopOwogICAgIGV4
dGVybiBpbnQgZmZsdXNoX3VubG9ja2VkKEZJTEUgKik7CiAgICAgZXh0ZXJu
IGNoYXIgKmZnZXRzX3VubG9ja2VkKGNoYXIgKiwgaW50LCBGSUxFICopOwog
ICAgIGV4dGVybiBpbnQgZnB1dHNfdW5sb2NrZWQoY29uc3QgY2hhciAqLCBG
SUxFICopOwogICAgIGV4dGVybiBpbnQgc2V0dmJ1Zl91bmxvY2tlZChGSUxF
ICosIGNoYXIgKiwgaW50LCBzaXplX3QpOwogICAgIGV4dGVybiBpbnQgcHV0
c191bmxvY2tlZChjb25zdCBjaGFyICopOwogICAgIGV4dGVybiBpbnQgdW5n
ZXRjX3VubG9ja2VkKGludCwgRklMRSAqKTsKICAgICBleHRlcm4gaW50IGZz
ZWVrX3VubG9ja2VkKEZJTEUgKiwgbG9uZyBpbnQsIGludCk7CiAgICAgZXh0
ZXJuIGxvbmcgaW50IGZ0ZWxsX3VubG9ja2VkKEZJTEUgKik7CiAgICAgZXh0
ZXJuIHZvaWQgcmV3aW5kX3VubG9ja2VkKEZJTEUgKik7CiAgICAgZXh0ZXJu
IHNpemVfdCBmcmVhZF91bmxvY2tlZCh2b2lkICosIHNpemVfdCwgc2l6ZV90
LCBGSUxFICopOwogICAgIGV4dGVybiBzaXplX3QgZndyaXRlX3VubG9ja2Vk
KGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIEZJTEUgKik7CiAgICAg
ZXh0ZXJuIHZvaWQgZmxvY2tmaWxlKEZJTEUgKik7CiAgICAgZXh0ZXJuIHZv
aWQgZnVubG9ja2ZpbGUoRklMRSAqKTsKICAgICBleHRlcm4gaW50IGZpbGVu
b191bmxvY2tlZChGSUxFICopOwogICAgIGV4dGVybiBpbnQgZ2V0d191bmxv
Y2tlZChGSUxFICopOwogICAgIGV4dGVybiBpbnQgcHV0d191bmxvY2tlZChp
bnQsIEZJTEUgKik7CgojIDQ4MCAiL29wdC9nY2MvbGliL2djYy1saWIvaHBw
YTEuMS1ocC1ocHV4MTAuMjAvMi45NS4yL2luY2x1ZGUvc3RkaW8uaCIgMwoK
CiAgIGV4dGVybiB1bnNpZ25lZCBjaGFyICpfX2J1ZmVuZHRhYltdOwoKCgoK
CgoKCgoKCgoKIAoKCgoKIyA1MTkgIi9vcHQvZ2NjL2xpYi9nY2MtbGliL2hw
cGExLjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9pbmNsdWRlL3N0ZGlvLmgiIDMK
CgojIDU5MyAiL29wdC9nY2MvbGliL2djYy1saWIvaHBwYTEuMS1ocC1ocHV4
MTAuMjAvMi45NS4yL2luY2x1ZGUvc3RkaW8uaCIgMwoKIyA2MDIgIi9vcHQv
Z2NjL2xpYi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9p
bmNsdWRlL3N0ZGlvLmgiIDMKCgoKCgkJCgoKCgoKCiMgMSAiZXNzYWkuYyIg
MgoKaW50IG1haW4oKQp7CgljaGFyIGluYnVmWzQwXSx0ZXh0ZVs0MF0sdGV4
dGUyWzQwXSxwbGFjZTsKCXByaW50ZigiRW50cmV6IGR1IHRleHRlXG4iKTsK
IAoJc2NhbmYoICIlcyIsICZ0ZXh0ZSk7CglzY2FuZiggIiVzIiwgJnRleHRl
Mik7CglwcmludGYoImxvbmcgdGV4dGU9JWRcbiIsc3RybGVuKHRleHRlKSk7
CglwcmludGYoImxvbmcgdGV4dGUyPSVkXG4iLHN0cmxlbih0ZXh0ZTIpKTsK
CXByaW50ZigiaW5idWY9JXMgIHRleHRlPSVzXG4iLGluYnVmLHRleHRlKTsK
CXByaW50ZigiaW5idWY9JXMgIHRleHRlMj0lc1xuIixpbmJ1Zix0ZXh0ZTIp
OwpyZXR1cm4gMDsKfQo=

------------=_1583533119-4114-690
Content-Type: text/plain; charset=us-ascii; name="essai.s"
Content-Disposition: inline; filename="essai.s"
Content-Transfer-Encoding: base64
Content-Length: 2957

CS5MRVZFTCAxLjEKCS5TUEFDRSAkUFJJVkFURSQKCS5TVUJTUEEgJERBVEEk
LFFVQUQ9MSxBTElHTj04LEFDQ0VTUz0zMQoJLlNVQlNQQSAkQlNTJCxRVUFE
PTEsQUxJR049OCxBQ0NFU1M9MzEsWkVSTyxTT1JUPTgyCgkuU1BBQ0UgJFRF
WFQkCgkuU1VCU1BBICRMSVQkLFFVQUQ9MCxBTElHTj04LEFDQ0VTUz00NAoJ
LlNVQlNQQSAkQ09ERSQsUVVBRD0wLEFMSUdOPTgsQUNDRVNTPTQ0LENPREVf
T05MWQoJLklNUE9SVCAkZ2xvYmFsJCxEQVRBCgkuSU1QT1JUICQkZHluY2Fs
bCxNSUxMSUNPREUKOyBnY2NfY29tcGlsZWQuOgoJLklNUE9SVCBfX21haW4s
Q09ERQoJLklNUE9SVCBwcmludGYsQ09ERQoJLlNQQUNFICRURVhUJAoJLlNV
QlNQQSAkTElUJAoKCS5hbGlnbiA0CkwkQzAwMDAKCS5TVFJJTkcgIkVudHJl
eiBkdSB0ZXh0ZVx4MGFceDAwIgoJLklNUE9SVCBzY2FuZixDT0RFCgkuYWxp
Z24gNApMJEMwMDAxCgkuU1RSSU5HICIlc1x4MDAiCgkuSU1QT1JUIHN0cmxl
bixDT0RFCgkuYWxpZ24gNApMJEMwMDAyCgkuU1RSSU5HICJsb25nIHRleHRl
PSVkXHgwYVx4MDAiCgkuYWxpZ24gNApMJEMwMDAzCgkuU1RSSU5HICJsb25n
IHRleHRlMj0lZFx4MGFceDAwIgoJLmFsaWduIDQKTCRDMDAwNAoJLlNUUklO
RyAiaW5idWY9JXMgIHRleHRlPSVzXHgwYVx4MDAiCgkuYWxpZ24gNApMJEMw
MDA1CgkuU1RSSU5HICJpbmJ1Zj0lcyAgdGV4dGUyPSVzXHgwYVx4MDAiCgku
U1BBQ0UgJFRFWFQkCgkuU1VCU1BBICRDT0RFJAoKCS5hbGlnbiA0CgkuTlNV
QlNQQSAkQ09ERSQsUVVBRD0wLEFMSUdOPTgsQUNDRVNTPTQ0LENPREVfT05M
WQoJLkVYUE9SVCBtYWluLEVOVFJZLFBSSVZfTEVWPTMsUlROVkFMPUdSCm1h
aW4KCS5QUk9DCgkuQ0FMTElORk8gRlJBTUU9MTkyLENBTExTLFNBVkVfUlAs
U0FWRV9TUCxFTlRSWV9HUj0zCgkuRU5UUlkKCXN0dyAlcjIsLTIwKCVyMzAp
Cgljb3B5ICVyMywlcjEKCWNvcHkgJXIzMCwlcjMKCXN0d20gJXIxLDE5Migl
cjMwKQoJLkNBTEwgCglibCBfX21haW4sJXIyCglub3AKCWxkaWwgTFInTCRD
MDAwMCwlcjE5CglsZG8gUlInTCRDMDAwMCglcjE5KSwlcjI2CgkuQ0FMTCBB
UkdXMD1HUgoJYmwgcHJpbnRmLCVyMgoJbm9wCglsZG8gNDgoJXIzKSwlcjE5
CglsZGlsIExSJ0wkQzAwMDEsJXIyMAoJbGRvIFJSJ0wkQzAwMDEoJXIyMCks
JXIyNgoJY29weSAlcjE5LCVyMjUKCS5DQUxMIEFSR1cwPUdSLEFSR1cxPUdS
CglibCBzY2FuZiwlcjIKCW5vcAoJbGRvIDg4KCVyMyksJXIxOQoJbGRpbCBM
UidMJEMwMDAxLCVyMjAKCWxkbyBSUidMJEMwMDAxKCVyMjApLCVyMjYKCWNv
cHkgJXIxOSwlcjI1CgkuQ0FMTCBBUkdXMD1HUixBUkdXMT1HUgoJYmwgc2Nh
bmYsJXIyCglub3AKCWxkbyA0OCglcjMpLCVyMTkKCWNvcHkgJXIxOSwlcjI2
CgkuQ0FMTCBBUkdXMD1HUgoJYmwgc3RybGVuLCVyMgoJbm9wCgljb3B5ICVy
MjgsJXIxOQoJbGRpbCBMUidMJEMwMDAyLCVyMjAKCWxkbyBSUidMJEMwMDAy
KCVyMjApLCVyMjYKCWNvcHkgJXIxOSwlcjI1CgkuQ0FMTCBBUkdXMD1HUixB
UkdXMT1HUgoJYmwgcHJpbnRmLCVyMgoJbm9wCglsZG8gODgoJXIzKSwlcjE5
Cgljb3B5ICVyMTksJXIyNgoJLkNBTEwgQVJHVzA9R1IKCWJsIHN0cmxlbiwl
cjIKCW5vcAoJY29weSAlcjI4LCVyMTkKCWxkaWwgTFInTCRDMDAwMywlcjIw
CglsZG8gUlInTCRDMDAwMyglcjIwKSwlcjI2Cgljb3B5ICVyMTksJXIyNQoJ
LkNBTEwgQVJHVzA9R1IsQVJHVzE9R1IKCWJsIHByaW50ZiwlcjIKCW5vcAoJ
bGRvIDQ4KCVyMyksJXIxOQoJbGRpbCBMUidMJEMwMDA0LCVyMjAKCWxkbyBS
UidMJEMwMDA0KCVyMjApLCVyMjYKCWxkbyA4KCVyMyksJXIyNQoJY29weSAl
cjE5LCVyMjQKCS5DQUxMIEFSR1cwPUdSLEFSR1cxPUdSLEFSR1cyPUdSCgli
bCBwcmludGYsJXIyCglub3AKCWxkbyA4OCglcjMpLCVyMTkKCWxkaWwgTFIn
TCRDMDAwNSwlcjIwCglsZG8gUlInTCRDMDAwNSglcjIwKSwlcjI2CglsZG8g
OCglcjMpLCVyMjUKCWNvcHkgJXIxOSwlcjI0CgkuQ0FMTCBBUkdXMD1HUixB
UkdXMT1HUixBUkdXMj1HUgoJYmwgcHJpbnRmLCVyMgoJbm9wCglsZGkgMCwl
cjI4CgliLG4gTCQwMDAyCkwkMDAwMgoJbGR3IC0yMCglcjMpLCVyMgoJbGRv
IDY0KCVyMyksJXIzMAoJbGR3bSAtNjQoJXIzMCksJXIzCglidixuICVyMCgl
cjIpCgkuRVhJVAoJLlBST0NFTkQK

------------=_1583533119-4114-690
Content-Type: text/x-c; charset=us-ascii; name="trace"
Content-Disposition: inline; filename="trace"
Content-Transfer-Encoding: base64
Content-Length: 1940

UmVhZGluZyBzcGVjcyBmcm9tIC9vcHQvZ2NjL2xpYi9nY2MtbGliL2hwcGEx
LjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9zcGVjcwpnY2MgdmVyc2lvbiAyLjk1
LjIgMTk5OTEwMjQgKHJlbGVhc2UpCiAvb3B0L2djYy9saWIvZ2NjLWxpYi9o
cHBhMS4xLWhwLWhwdXgxMC4yMC8yLjk1LjIvY3BwIC1sYW5nLWMgLXYgLURf
X0dOVUNfXz0yIC1EX19HTlVDX01JTk9SX189OTUgLURocHBhIC1EaHA5MDAw
czgwMCAtRF9faHA5MDAwczgwMCAtRGhwOWs4IC1EUFdCIC1EaHB1eCAtRHVu
aXggLURfX2hwcGFfXyAtRF9faHA5MDAwczgwMF9fIC1EX19ocDkwMDBzODAw
IC1EX19ocDlrOF9fIC1EX19QV0JfXyAtRF9faHB1eF9fIC1EX191bml4X18g
LURfX2hwcGEgLURfX2hwOTAwMHM4MDAgLURfX2hwOWs4IC1EX19QV0IgLURf
X2hwdXggLURfX3VuaXggLUFzeXN0ZW0odW5peCkgLUFzeXN0ZW0oaHB1eCkg
LUFjcHUoaHBwYSkgLUFtYWNoaW5lKGhwcGEpIC1EX19ocDkwMDBzNzAwIC1E
X1BBX1JJU0MxXzEgLURfSFBVWF9TT1VSQ0UgLURfSElVWF9TT1VSQ0UgLURf
X1NURENfRVhUX18gZXNzYWkuYyAvdmFyL3RtcC9jY2YzRHdIZS5pCkdOVSBD
UFAgdmVyc2lvbiAyLjk1LjIgMTk5OTEwMjQgKHJlbGVhc2UpIChocHBhKQoj
aW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6CiNpbmNsdWRlIDwu
Li4+IHNlYXJjaCBzdGFydHMgaGVyZToKIC9vcHQvZ2NjL2luY2x1ZGUKIC9v
cHQvZ2NjL2xpYi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUu
Mi8uLi8uLi8uLi8uLi9ocHBhMS4xLWhwLWhwdXgxMC4yMC9pbmNsdWRlCiAv
b3B0L2djYy9saWIvZ2NjLWxpYi9ocHBhMS4xLWhwLWhwdXgxMC4yMC8yLjk1
LjIvaW5jbHVkZQogL3Vzci9pbmNsdWRlCkVuZCBvZiBzZWFyY2ggbGlzdC4K
VGhlIGZvbGxvd2luZyBkZWZhdWx0IGRpcmVjdG9yaWVzIGhhdmUgYmVlbiBv
bWl0dGVkIGZyb20gdGhlIHNlYXJjaCBwYXRoOgogL29wdC9nY2MvbGliL2dj
Yy1saWIvaHBwYTEuMS1ocC1ocHV4MTAuMjAvMi45NS4yLy4uLy4uLy4uLy4u
L2luY2x1ZGUvZysrLTMKRW5kIG9mIG9taXR0ZWQgbGlzdC4KIC9vcHQvZ2Nj
L2xpYi9nY2MtbGliL2hwcGExLjEtaHAtaHB1eDEwLjIwLzIuOTUuMi9jYzEg
L3Zhci90bXAvY2NmM0R3SGUuaSAtcXVpZXQgLWR1bXBiYXNlIGVzc2FpLmMg
LXZlcnNpb24gLW8gL3Zhci90bXAvY2NIenl2TmEucwpHTlUgQyB2ZXJzaW9u
IDIuOTUuMiAxOTk5MTAyNCAocmVsZWFzZSkgKGhwcGExLjEtaHAtaHB1eDEw
LjIwKSBjb21waWxlZCBieSBDQy4KIC91c3IvY2NzL2Jpbi9hcyAtbyAvdmFy
L3RtcC9jY3BRWUl4ZC5vIC92YXIvdG1wL2NjSHp5dk5hLnMKYXM6ICIvdmFy
L3RtcC9jY0h6eXZOYS5zIiwgbGluZSA0MDogZXJyb3IgMTA1MjogRGlyZWN0
aXZlIG5hbWUgbm90IHJlY29nbml6ZWQgLSBOU1VCU1BBCg==

------------=_1583533119-4114-690--
>From sebor@roguewave.com Mon Oct 30 08:17:00 2000
From: Martin Sebor <sebor@roguewave.com>
To: Philippe Bouchard <philippeb@corel.com>
Cc: gcc-bugs <gcc-bugs@gcc.gnu.org>
Subject: Re: Internal Compiler Error
Date: Mon, 30 Oct 2000 08:17:00 -0000
Message-id: <39FDA011.B2CEFCCD@roguewave.com>
References: <39FD5440.E999E9D9@corel.com>
X-SW-Source: 2000-10/msg00602.html
Content-length: 882

Philippe Bouchard wrote:
> 
> Program:
> #include <list>
> 
> 
> using namespace std;
> 
> struct A
> {
> };
> 
> int main()
> {
>   class list<class A>::iterator i;
    ^^^^^

FYI: this assumes that list<A>::iterator is a class which isn't
necessarily true (it could be, and in the case of STLport it actually
is, a template, in which case the code is ill-formed). No argument that
the ICE is a bug, though.

Regards
Martin

> }
> 
> Outputs:
> explicitclass.cpp: In function `int main()':
> explicitclass.cpp:12: Internal compiler error.
> explicitclass.cpp:12: Please submit a full bug report.
> explicitclass.cpp:12: See <URL:
> http://www.gnu.org/software/gcc/bugs.html
> < http://www.gnu.org/software/gcc/bugs.html > > for instructions.
> 
> Under:
> Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
> gcc version 2.95.2 20000220 (Debian GNU/Linux)
> 
> Thank you.
>From Cossettep@stlaurent.com Mon Oct 30 08:58:00 2000
From: "FOR Cossette, Pierre" <Cossettep@stlaurent.com>
To: "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>
Subject: forget my bug request
Date: Mon, 30 Oct 2000 08:58:00 -0000
Message-id: <31D030D8A5D8D111983000A02437D03F251E88@srv_nt_wood.for.stlaurent.com>
X-SW-Source: 2000-10/msg00603.html
Content-length: 562

Title: forget my bug request





Hi,


You can forget the bug report I just sent you; I found the answer in the FAQ.


The new problem I now have, is that the a.out file generated by gcc does a core dump. If I use cc, the a.out file is OK (and much smaller).

I'll check a few things and let you know if I can't solve the problem.


Thanks


---------------------------------------
Pierre Cossette
Smurfit-Stone
Ressources forestières
1053 Boul. Ducharme
La Tuque, Qc, G9X 3C3
Tél.: 819-523-4531 ext.453
Fax.: 819-523-9157
courriel: pcossette@smurfit.com





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-09-07  8:08 Jose Santiago
  0 siblings, 0 replies; 387+ messages in thread
From: Jose Santiago @ 2000-09-07  8:08 UTC (permalink / raw)
  To: gcc-bugs

I have provided a somewhat minimal program that produces an Internal
Compiler Error under all versions of gcc that I have access to.

-------------------

The GCC version:
        egcs-2.91.66, gcc-2.95.2 & gcc-2.96-20000904
The system type:
        Linux-2.2.X/Glibc-2.1.3, HPUX-10.20/11.0, SunOS-5.6, AIX-4.3.2
All options you passed to the compiler:
        g++ -Wall -o test main.cpp

-------------------

//This is a minimal example of the problem source.
//I realize that there is a bug in the source.
//I originally made this mistake when trying to
//create an intance of an enum defined in the scope
//of an embedded class under another class.
class S {
  public:
    class SS {
      public:
        enum STATE_TYPE { INITIAL, INTERMEDIATE, FINAL };
    }; /* class S:SS */
}; /* class S */

int main(void)
{
  enum S::SS::STATE_TYPE state1; //Intended this.
  enum S::SS state2; //did this instead causes compiler error.
  return 0;
}

-- 
Jose Santiago


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-08-28 10:02 Lars Hecking
  0 siblings, 0 replies; 387+ messages in thread
From: Lars Hecking @ 2000-08-28 10:02 UTC (permalink / raw)
  To: gcc-bugs; +Cc: Thomas Dickey

[-- Attachment #1: Type: text/plain, Size: 1737 bytes --]

 gcc version 2.95.2 19991024 (release)
 alphaev5-dec-osf4.0f (uname: OSF1 V4.0 1229 alpha alpha)
 Compiler options: -O2  -fPIC

 The problem appears when compiling tack in current releases of ncurses 5.1.
 Can't say how long this problem has really existed, as I only started
 using shared ncurses libs recently.

$ make
[...]
cd tack && make DESTDIR="" all
make[1]: Entering directory `/usr/var/tmp/ncurses-5.1/tack'
cd ../obj_s; gcc -DHAVE_CONFIG_H -I../tack -I.  -DNDEBUG -I. -I../include -I/usr/local/ncurses/include -O2  -fPIC -c ../tack/pad.c
In file included from /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/stdarg.h:36,
                 from ../include/curses.h:78,
                 from ../tack/tack.h:49,
                 from ../tack/pad.c:22:
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va-alpha.h:36: warning: redefinition of `va_list'
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va_list.h:7: warning: `va_list' previously declared here
../tack/pad.c: In function `pad_home1':
../tack/pad.c:333: Internal compiler error in `int_mode_for_mode', at stor-layout.c:202
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
make[1]: *** [../obj_s/pad.o] Error 1
make[1]: Leaving directory `/usr/var/tmp/ncurses-5.1/tack'
make: *** [all] Error 2
$ 

 I have attached the preprocessed output of the source file
 (gcc -DHAVE_CONFIG_H -I../tack -I.  -DNDEBUG -I. -I../include \
  -I/usr/local/ncurses/include -O2  -fPIC -E ../tack/pad.c -o pad.i)

 Thanks!

 [I seem to have a lot more problems with gcc on this platform, esp.
  with C++. Would it be worth upgrading to a newer-than-2.95.2
  snapshot/cvs version?]


[-- Attachment #2: pad.i.gz --]
[-- Type: application/x-gzip, Size: 18840 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler error
  2000-08-18 14:41 Internal Compiler error Brian Sondreal
@ 2000-08-18 19:27 ` Eric Christopher
  0 siblings, 0 replies; 387+ messages in thread
From: Eric Christopher @ 2000-08-18 19:27 UTC (permalink / raw)
  To: Brian Sondreal; +Cc: gcc-bugs

> Preprocessed output of the source file that caused the compiler error,
> even if the source code can be downloaded from elsewhere:
> c++ -c  -I. -I.. -I../liboctave -I../src -I../libcruft/misc  -I../glob
> -I../glob -DHAVE_CONFIG_H -fno-rtti -fno-exceptions
> -fno-implicit-templates -g -O2 -Wall sighandlers.cc

Please provide this.

> sighandlers.cc:649: Internal compiler error in `output_die', at
> dwarf2out.c:5426
> Please submit a full bug report.
> See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
> instructions.

-eric
>From jamaddi@lbl.gov Fri Aug 18 21:02:00 2000
From: Jason Maddi <jamaddi@lbl.gov>
To: gcc-bugs@gcc.gnu.org
Subject: Error compiling expression "float b = 1e4.*3"
Date: Fri, 18 Aug 2000 21:02:00 -0000
Message-id: <399E0907.FFEFCCB3@lbl.gov>
X-SW-Source: 2000-08/msg00437.html
Content-length: 1926

Problem:  Internal compiler error.
Summary:  the expression "1e4.*3" produces the above error while "1e4*3"
does not.

System: PC with K6-III 400 running  Linux kernel 2.4.0-test5.

Included below is the test routine and the gcc output.

Sincerely,
Jason Maddi
(jamaddi@lbl.gov)

----------------- test routine ---------------------------

main()
{
        float b = 1e4.*3;
}


-----------------  gcc output ----------------------------

$ gcc -v --save-temps bugtest.C
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/specs

gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/cpp -lang-c++ -v
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__
-Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__
-D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386)
-Amachine(i386) -Di386 -D__i386 -D__i386__ -Di586 -Dpentium -D__i586
-D__i586__ -D__pentium -D__pentium__ bugtest.C bugtest.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/../../../../include/g++-3

 /usr/local/include
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/../../../../i586-pc-linux-gnu/include

 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.
 /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.95.2/cc1plus bugtest.ii
-quiet -dumpbase bugtest.cc -version -o bugtest.s
GNU C++ version 2.95.2 19991024 (release) (i586-pc-linux-gnu) compiled
by GNU C version 2.95.2 19991024 (release).
bugtest.C: In function `int main()':
bugtest.C:4: Internal compiler error.
bugtest.C:4: Please submit a full bug report.
bugtest.C:4: See
<URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler error
@ 2000-08-18 14:41 Brian Sondreal
  2000-08-18 19:27 ` Eric Christopher
  0 siblings, 1 reply; 387+ messages in thread
From: Brian Sondreal @ 2000-08-18 14:41 UTC (permalink / raw)
  To: gcc-bugs

The GCC version: 2.95.2
The system type: IRIX 6.5
All options you passed to the compiler: None.
Preprocessed output of the source file that caused the compiler error,
even if the source code can be downloaded from elsewhere:
c++ -c  -I. -I.. -I../liboctave -I../src -I../libcruft/misc  -I../glob
-I../glob -DHAVE_CONFIG_H -fno-rtti -fno-exceptions
-fno-implicit-templates -g -O2 -Wall sighandlers.cc
sighandlers.cc:649: Internal compiler error in `output_die', at
dwarf2out.c:5426
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make[2]: *** [sighandlers.o] Error 1
make[2]: Leaving directory
`/usr/people/bsondre/play/octave/octave-2.0.16/src'
make[1]: *** [src] Error 2
make[1]: Leaving directory
`/usr/people/bsondre/play/octave/octave-2.0.16'
make: *** [all] Error 2 
-- 
Brian Sondreal
Special Projects
284-5118


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2000-08-16 10:57 Internal compiler error donigt01
@ 2000-08-16 11:17 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 2000-08-16 11:17 UTC (permalink / raw)
  To: donigt01; +Cc: gcc-bugs

On Aug 16, 2000, donigt01 <donigt01@med.nyu.edu> wrote:

> sql_acl.cc:1367: Internal compiler error in `scan_region', at
> except.c:2566

Thanks, known bug, fixed in the current development tree of GCC.

Next time,
> Please submit a full bug report.
> See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
> instructions.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-08-16 10:57 donigt01
  2000-08-16 11:17 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: donigt01 @ 2000-08-16 10:57 UTC (permalink / raw)
  To: gcc-bugs

version:  gcc2.95
system: Digital Unix 4.0f
options passed to the  compiler:
CC = gcc
CFLAGS = -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -O6 -DDBUG_OFF

Problem encountered while trying to make Mysql-3.22.32.

sql_acl.cc: In function `int replace_column_table(THD *, GRANT_TABLE *,
TABLE *, const LEX_USER &, List<LEX_COLUMN> &, const char *, const char
*, unsigned int, bool)':
sql_acl.cc:1367: Internal compiler error in `scan_region', at
except.c:2566
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2000-08-15  1:50 Itcher, Yossy
  0 siblings, 0 replies; 387+ messages in thread
From: Itcher, Yossy @ 2000-08-15  1:50 UTC (permalink / raw)
  To: 'bug-gcc@gnu.org'

can you help me I don't know way I get this internet compiler error ?

thanks;

:/iEngine/src/menu_ctl.c:219: internal error--unrecognizable insn:
(insn:QI 148 147 149 (set (mem:SI (pre_dec:SI (reg:SI 4 SP)))
        (zero_extend:SI (const_int 15))) -1 (nil)
    (nil))
gcco: Internal compiler error: program cc1 got fatal signal 6



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-08-01 12:12 Jan Bacher
  0 siblings, 0 replies; 387+ messages in thread
From: Jan Bacher @ 2000-08-01 12:12 UTC (permalink / raw)
  To: gcc-bugs

Current CC:		Dec Alpha, Tru64 5.0

GCC Version:		2.95.2

System Type:		DEC Alpha, PC164LX, firmware 5.5, Tru64 5.0, 1G RAM

Compiler Options:	no additional cflags, ran as "make" and again as "make 
bootstrap-lean"

Failure Point:		{stuff deleted}
rm -f SYSCALLS.c tmp-SYSCALLS.s
cat ../../gccdir/gcc/sys-types.h ../../gccdir/gcc/sys-protos.h > SYSCALLS.c
./xgcc -B/usr/local/alphaev56-dec-osf5.0/bin/ -B./ 
-I/usr/local/alphaev56-dec-osf5.0/include -DIN_GCC -DHAIFA -O2 -g 
-I./include -I. -I../../gccdir/gcc -I../../gccdir/gcc/config 
-I../../gccdir/gcc/../include -aux-info SYSCALLS.c.X -S -o tmp-SYSCALLS.s 
SYSCALLS.c
xgcc: Internal compiler error: program cpp got fatal signal 11
*** Exit 1
Stop.

Problem:		cannot build gcc, no compiler output produced from SYSCALLS.c


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-08-01  9:36 Levente Farkas
  0 siblings, 0 replies; 387+ messages in thread
From: Levente Farkas @ 2000-08-01  9:36 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1519 bytes --]

hi,
I've found a bug in the compiler which was not in the gcc-2.95.
-----------
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000724 (experimental)
-----------
(this is the rh 7.0beta's gcc) the following command line on a rh linux 6.2:
-----------
gcc -c -pipe -Werror -fPIC  -fhonor-std -Wreorder -Woverloaded-virtual
-nostdinc++ -g -O0 -DMM_NODLL -D__HONOR_STD  -I/home/lfarkas/Mindmaker/include
-I/usr/include/stlport lapack/dlasrc/dtgevc.cpp -o lapack/dlasrc/dtgevc.o
-----------
give the following error:
-----------
lapack/dlasrc/dtgevc.cpp: In function `int dtgevc_ (char *, char *, 
logical *, const integer *, doublereal *, integer *, doublereal *, 
integer *, doublereal *, integer *, doublereal *, integer *, const 
integer *, integer *, doublereal *, integer *)':
lapack/dlasrc/dtgevc.cpp:250: parse error before `;'
lapack/dlasrc/dtgevc.cpp:307: parse error before `='
lapack/dlasrc/dtgevc.cpp:311: parse error before `='
lapack/dlasrc/dtgevc.cpp:315: parse error before `='
lapack/dlasrc/dtgevc.cpp:388: parse error before `*'
lapack/dlasrc/dtgevc.cpp:390: Internal error #122.
lapack/dlasrc/dtgevc.cpp:390: Internal compiler error in 
finish_function, at ../gcc/cp/decl.c:14451
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
-----------
I attached the preprocessed source file for you.
yours.

 -- Levente
 "The only thing worse than not knowing the truth is
  ruining the bliss of ignorance."
dtgevc.i.gz


[-- Attachment #2: dtgevc.i.gz --]
[-- Type: application/x-gzip, Size: 90032 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-07-26  7:02 emcgrat
  0 siblings, 0 replies; 387+ messages in thread
From: emcgrat @ 2000-07-26  7:02 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 554 bytes --]

I am trying to compile this C-code and I get this error using gcc and g++:

dclsn22> gcc prog.c
prog.c: In function `main':
prog.c:102: Internal compiler error in `assign_stack_temp_for_type', at
function
.c:937
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
dclsn22>


Here is the source code that I ftped to this workstation:

(See attached file: PROG.C)

Thanks,

Ethan McGrath
Mechanical and Thermal Analysis and Test Group
IBM Endicott
Phone: 607-755-1056
Email: emcgrat@us.ibm.com

[-- Attachment #2: PROG.C --]
[-- Type: text/x-c, Size: 52812 bytes --]

// Interface Program between FEM models    
//                                      
//                                      
//                                      

// Define statements and included header files:

#include <stdio.h>
#include <math.h>
#define MAX_INTERIOR_NODE 100000
#define MAX_BOUNDARY_NODE 10000
#define MAX 1000

// Function Prototypes:

         // The following function reads the ANSYS data into an array that is MAX rows by 5 columns.
         // The columns are node #, x, y, and z coordinates, and Temperature. The temperature is left blank
         // until the interpolation function processes it and gives each node a value. This function is 
         // passed the FEM_array array to fill and the max size of the array defined in the header statements.
int fill_FEM(float FEM_array[][5], int limit);             

         // The following function reads the FLOTHERM temperature data file and stores the X, Y, and Z grid
         // lines into three separate one-dim arrays. The corresponding temperatures are stored in a single
         // three-dim array. The function asks the user for the number of grid points in the X, Y, and Z
         // directions. This function is passed the one-dim arrays arr_Temp_x, arr_Temp_y, and arr_Temp_z,
         // the three-dim array Temp_array, and three pointers to the variables that store the number of X,
         // Y, and Z grid lines.
float fill_FLOTHERM(float T_or_F_array[MAX][MAX][MAX],float *arr_x,float *arr_y,float *arr_z,int *xgrid_max,int *ygrid_max,int *zgrid_max);

//         // The following function reads the FLOTHERM heat flux data. The heat fluxes associated with the 
//         // corresponding grid points are stored in a single three-dim array. The function uses the max grid
//         // number values that the user entered in the fill_Temp function call. This function is passed the 
//         // one-dim arrays arr_Flux_x, arr_Flux_y, and arr_Flux_z, the three-dim array Flux_array
//void fill_Flux(float *Flux_array_i,float *arr_Flux_x,float *arr_Flux_y,float *arr_Flux_z,int *xgrid_max,int *ygrid_max,int *zgrid_max);

         // The following function takes the current data and writes a new ANSYS data file with an extra
         // column for Temperature. This function is passed the FEM_array array that now has its temperature
         // column filled from the interpolation function, and the variable "nmax" which contains the number
         // of FE nodes in the array.
void output_FEM(float FEM_array[][5], int nmax);

         // The following function was taken from the book "Numerical Recipes in C" and performs a search on 
         // a monotonically (increasing or decreasing) organized one-dim array using a guess and bisection
         // method. This function is passed the array to search in, the maximum number of entries to search,
         // the number you are looking for, and a pointer to the resultiong array element. The pointer points
         // to the element arr[i] just before the number you are looking for, such that number lies between 
         // arr[i] and arr[i+1]. The function returns that pointer.
void hunt(float, int, float, int *);

         // The following function interpolates temperatures to interior nodes.
         //
         //
         //
         //
         //
void interpolate_interior(int i,float FEM_array[][5],float *arr_Temp_x,float *arr_Temp_y,float *arr_Temp_z,float Temp_array[MAX][MAX][MAX]);

         // The following function interpolates Temperatures to boundary FEM nodes using heat flux data.
         //
         //
         //
         //
         //
void interpolate_boundary(int b, float FEM_interior_array[][5], float FEM_boundary_array[][5],
                          float Temp_array[MAX][MAX][MAX], float *arr_Temp_x, float *arr_Temp_y, float *arr_Temp_z,
                              float *x_grid_max, float *y_grid_max, float *z_grid_max,
                          float X_Flux_array[MAX][MAX][MAX], float *X_arr_Flux_x, float *X_arr_Flux_y, float *X_arr_Flux_z, 
                              float *X_Flux_x_grid_max, float *X_Flux_y_grid_max, float *X_Flux_z_grid_max,
                          float Y_Flux_array[MAX][MAX][MAX], float *Y_arr_Flux_x, float *Y_arr_Flux_y, float *Y_arr_Flux_z,
                              float *Y_Flux_x_grid_max, float *Y_Flux_y_grid_max, float *Y_Flux_z_grid_max,
                          float Z_Flux_array[MAX][MAX][MAX], float *Z_arr_Flux_x, float *Z_arr_Flux_y, float *Z_arr_Flux_z,
                              float *Z_Flux_x_grid_max, float *Z_Flux_y_grid_max, float *Z_Flux_z_grid_max);

//
//
//
//
//
// Main Function:
//
//
//
//
//

int main (void)
{
   
   // Variable Declaration 

   int i, b;                                                      // for interior and boundary node loop increments respectively.
   int n_interior_max, n_boundary_max;                            // max number of nodes in FEM interior and boundary node data.
   int x_grid_max, y_grid_max, z_grid_max;                        // FLOTHERM maximum grid values.

   int X_Flux_x_grid_max, X_Flux_y_grid_max, X_Flux_z_grid_max;   // Heat Flux
   int Y_Flux_x_grid_max, Y_Flux_y_grid_max, Y_Flux_z_grid_max;   // Heat Flux
   int Z_Flux_x_grid_max, Z_Flux_y_grid_max, Z_Flux_z_grid_max;   // Heat Flux

   // Arrays: 
   float FEM_interior_array[MAX_INTERIOR_NODE][5];            // Ansys node list of interior nodes.
   float FEM_boundary_array[MAX_BOUNDARY_NODE][5];            // Ansys node list of boundary nodes.
   float Temp_array[MAX][MAX][MAX];                           // 3-D Temperature array of Flotherm Temperature data.
      float arr_Temp_x[MAX];                                     // 1-D x-Grid point array of Flotherm Temperature data.
      float arr_Temp_y[MAX];                                     // 1-D y-Grid point array of Flotherm Temperature data.
      float arr_Temp_z[MAX];                                     // 1-D z-Grid point array of Flotherm Temperature data.
   
   // Note for flux arrays: the capital letter in front is the direction of the flux and the small letter at the end is the gridline axis.
   float X_Flux_array[MAX][MAX][MAX];                         // 3-D X direction Heat Flux array of Flotherm Heat Flux data.
      float X_arr_Flux_x[MAX];                                   // 1-D X direction Heat Flux x-grid point array of data.
      float X_arr_Flux_Y[MAX];                                   // 1-D X direction Heat Flux y-grid point array of data.
      float X_arr_Flux_Z[MAX];                                   // 1-D X direction Heat Flux z-grid point array of data.
   float Y_Flux_array[MAX][MAX][MAX];                         // 3-D Y direction Heat Flux array of Flotherm Heat Flux data.
      float Y_arr_Flux_x[MAX];                                   // 1-D Y direction Heat Flux x-grid point array of data.
      float Y_arr_Flux_Y[MAX];                                   // 1-D Y direction Heat Flux y-grid point array of data.
      float Y_arr_Flux_Z[MAX];                                   // 1-D Y direction Heat Flux z-grid point array of data.
   float Z_Flux_array[MAX][MAX][MAX];                         // 3-D Z direction Heat Flux array of Flotherm Heat Flux data.
      float Z_arr_Flux_x[MAX];                                   // 1-D Z direction Heat Flux x-grid point array of data.
      float Z_arr_Flux_Y[MAX];                                   // 1-D Z direction Heat Flux y-grid point array of data.
      float Z_arr_Flux_Z[MAX];                                   // 1-D Z direction Heat Flux z-grid point array of data.
   printf("Finished initializing all arrays to start.\n");

   
   // Function call to fill Temperature array with FLOTHERM data.
   fill_Temp(Temp_array, arr_Temp_x, arr_Temp_y, arr_Temp_z, &x_grid_max, &y_grid_max, &z_grid_max);   
   printf("Finished filling Temperature arrays.\n");

   // Function call to fill the Heat Flux array with FLOTHERM data.
   fill_Flux(X_Flux_array, X_arr_Flux_x, X_arr_Flux_y, X_arr_Flux_z, &X_Flux_x_grid_max, &X_Flux_y_grid_max, &X_Flux_z_grid_max);
   fill_Flux(Y_Flux_array, Y_arr_Flux_x, Y_arr_Flux_y, Y_arr_Flux_z, &Y_Flux_x_grid_max, &Y_Flux_y_grid_max, &Y_Flux_z_grid_max);
   fill_Flux(Z_Flux_array, Z_arr_Flux_x, Z_arr_Flux_y, Z_arr_Flux_z, &Z_Flux_x_grid_max, &Z_Flux_y_grid_max, &Z_Flux_z_grid_max);
   printf("Finished filling Heat Flux arrays.\n");

   // Function call to fill FEM array with ANSYS data.
   n_interior_max=fill_FEM(FEM_interior_array, MAX_INTERIOR_NODE);                                       
   printf("Interior node count is %i.\n", n_interior_max);
   n_boundary_max=fill_FEM(FEM_boundary_array, MAX_BOUNDARY_NODE);
   printf("Boundary node count is %i.\n", n_boundary_max);
   
   /*---------------------------------------------------------------------------------------------------------*/

   // Main Loop 

   for (i=1; i<=n_interior_max; i++)                                                       // Loop through all interior FE Nodes to apply temperature. 
   {
      interpolate_interior(i, FEM_array, arr_Temp_x, arr_Temp_y, arr_Temp_z, Temp_array);  // Interpolate for each interior node.
      printf("Interior node %i has ben successfully interpolated.\n", i);
   }
   output_FEM(FEM_interior_array, n_interior_max);                                         // Write output file.
   printf("Finished interpolating the %i interior nodes.\n", n_interior_max);

   for (b=1; b<=n_boundary_max; b++)                                                       // Loop through all boundary FE Nodes to apply temperature. 
   {
      interpolate_boundary(b, FEM_array, arr_Temp_x, arr_Temp_y, arr_Temp_z, Temp_array);  // Interpolate for each boundary node.
      printf("Interior node %i has ben successfully interpolated.\n", b);
   }
   output_FEM(FEM_boundary_array, n_boundary_max);                                         // Write output file.
   printf("Finished interpolating the %i interior nodes.\n", n_boundary_max);
   printf("This program has finished successfully!\n");
}


/* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */
/* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */
/* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */
/* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */
/* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */

//
//
//
//
//
// fill_FEM function:
//
//
//
//
//

int fill_FEM(float FEM_array[][5], int limit)
{
   int i=1;               // 'i' is the node number increment and the return value of the function:  
                          //  the total number of nodes in the FEM data file                         
                                                                                                     
   FILE * fp;             // pointer to the data file                                                
   char filename[40];     // string array to store the filename that the user is prompted to enter   


   printf("Enter the name of the ansys data file along with its extension:\n");  // Emter the file   
   scanf("%s", &filename);

   if ((fp=fopen(filename, "r")) == NULL)                        // Open the file. */
   {
      fprintf(stdin, "Can't open \"%s\" file.\n", filename);
      exit(1);
   }
   
   fscanf(fp,"\n\n\n\n");                                       // Skip down a couple rows to where data starts. 
   while (i <= limit)                                           // Loop through all data.                            
   {
      // If its every twentieth line skip a line twice.  
      if ( ((i) % 20) == 0)                                        
         fscanf(fp, "\n\n");
      
      // Scan the data into the FEM array's first 4 columns and go to next node.
      else if (fscanf(fp, "%f %f %f %f\n", &FEM_array[i][0], &FEM_array[i][1], &FEM_array[i][2], &FEM_array[i][3]) == 4)
         i++;                           
      
      // Stop scanning data because there are no more nodes according to the 'else if' test statement.
      else
         break;                            
   }                                                                                  
   printf("Finished scanning ANSYS file \"%s\"\n.", filename);
   if (fclose(fp) != 0)
      printf("Error in closing FE node file \"%s\".\n", filename);
   return (i+1);     // Return the number of nodes in the FEM file.                            
}

//
//
//
//
//
// fill_FLOTHERM function:
//
//
//
//
//

void fill_FLOTHERM(float *T_or_HF[MAX][MAX][MAX], float *arr_x, float *arr_y, float *arr_z, int *xgrid_max, int *ygrid_max, int *zgrid_max)
{
   FILE * fp;                            // File pointer.
   char filename[40];                    // Filename character sring.
   int i, j, k;                          // Loop increments corresponding to x, y, and z gridlines respectively.
   int x_max, y_max, z_max;              // Function variables passed to main (thru pointers) and used in the function for max # of gridlines.
   char ch;                              // Character variable used as temporary storage for the file pointer.

   
   // Enter the temperature file name.
   printf("Enter the name of the FLOTHERM file along with its extension:\n");
   scanf("%s", &filename);

   // Determines the number of grid rows and returns the pointer to the main function:
   printf("Enter the number of x grid rows in the FLOTHERM file:\n");
   scanf("%i\n", &x_max);
   printf("Enter the number of y grid rows in the FLOTHERM file:\n");
   scanf("%i\n", &y_max);
   printf("Enter the number of z grid rows in the FLOTHERM file:\n");
   scanf("%i\n", &z_max);
   
   *xgrid_max=x_max;      // The value that xgrid_max points to is x_max number of grid lines.
   *ygrid_max=y_max;      // The value that ygrid_max points to is y_max number of grid lines.
   *zgrid_max=z_max;      // The value that zgrid_max points to is z_max number of grid lines.
   
   if ((fp=fopen(filename, "r")) == NULL)
   {
      fprintf(stdin, "Can't open \"%c\" file.\n", filename);
      exit(1);
   }
   fscanf(fp,"\n");
      
// Determine X values and store them in the array arr_x:
   
   rewind(fp);                             // Rewind the file pointer.
   for (i=0; i < x_max; i++)               // Loop thru the X line and get their values.
   {
      ch = getc(fp);                       // Skip through until the second equals sign.
      while ( ch != '=')
         getc(fp);
      ch = getc(fp);
      while ( ch != '=')
         getc(fp);
      fscanf(fp, "%f", &arr_x[i]);         // Store the X value in the ith array entry of the array arr_x.
   }
   printf("Finished scanning 1-d x array.\n");

// Determine Y values and store them in the array arr_y:
   
   rewind(fp);                             // Rewind the file pointer.
   fscanf(fp, "\n\n");                     // Skip a line to the first Y value line.
   for (j=0; j < y_max; j++)               // Loop thru the Y lines and get their values.
   {
      ch = getc(fp);                       // Skip through until the second equals sign.
      while ( ch != '=')
         getc(fp);
      ch = getc(fp);
      while ( ch != '=')
         getc(fp);
      fscanf(fp, "%f", &arr_y[j]);         // Store the Y value in the jth array entry of the array arr_y.
      fscanf(fp, "\n");                    // Skip a line to the next Y value.

   }
   printf("Finished scanning 1-d y array.\n");

// Determine Z values and store them in the array arr_z:

   rewind(fp);                             // Rewind the file pointer.
   fscanf(fp, "\n");                       // Skip a line to the first Z value line.
   for (k=0; k < z_max; k++)               // Loop thru the Z lines and get their values.
   {
      ch = getc(fp);                       // Skip through until the second equals sign.
      while ( ch != '=')
         getc(fp);
      ch = getc(fp);
      while ( ch != '=')
         getc(fp);
      fscanf(fp, "%f", &arr_z[k]);         // Store the Z value in the kth array entry of the array arr_z
      fscanf(fp, "\n");                    // Skip a line.
      for (j=0; j < y_max; j++)            // Skip down y_max number of grid lines to the next Z value line.
      {
         fscanf(fp, "\n");
      }
   }
   printf("Finished scanning 1-d z array.\n");
   
// Loop routine to assign Temperature or Heat Flux values to the 3-D array, based on known values for the maximum number
// of x, y, and z grid lines.

   rewind(fp);                                       // Rewind the file pointer.
   fscanf(fp, "\n\n");                               // Skip two lines.
   for (k=0; k < z_max; k++)                         // Loop through all Z coordinates.
   {
      for (j=0; j < y_max; j++)                      // Loop through all Y coordinates.
      {
         ch = getc(fp);                              // Move to the right until the first comma.
         while (ch != ',')
            getc(fp);
         for (i=0; i < x_max; i++)                   // Loop through all X coordinates.
         {
            fscanf(fp, "%f", &T_or_HF[i][j][k]);     // Assign the appropriate temperature value.
            getc(fp);                                // Move one space to the right.
         }
         fscanf(fp, "\n");                           // Goto the next line.
      }
      fscanf(fp, "\n");                              // Goto the next line.
   }
   printf("Finished scanning 3-d Temperature or Heat Flux array.\n");
   if (fclose(fp) != 0)
      printf("Error in closing FLOTHERM file \"%s\".\n", filename);
}

//
//
//
//
//
// output_FEM function
//
//
//
//
//

void output_FEM(float FEM_array[][5], int n_max)
{
   int i;                           // Loop incrementor.
   int node;                        // Loop variable to store the converted (float to int) node value.
   
   FILE * fp_out;                   // File pointer to the output date file.
   char filename[40];               // String array to store user entered file name.
   printf("Enter the name of the new ansys data file to be created"); 
   printf(" along with its extension:\n");                           // Emter the file name.   
   scanf("%s", &filename);

   if ((fp_out=fopen(filename, "w")) == NULL)                        // Open the file for writing. 
   {
      fprintf(stdin, "Can't write to \"%s\" file.\n", filename);     // Error check for opening.   
      exit(1);
   }
   printf("Starting to write output file \"%s\".\n", filename);
   fprintf(fp_out, "SORT TABLE ON  NODE NODE NODE\n\n");             // Print the top ANSYS data line.               
   for (i=0; i < n_max; i++)                                         // Loop through the FEM array and place         
   {                                                                 // values in the temperature spots.             
      fprintf(fp_out, "NODE \tX\t\tY\t\tZ\tT\n");                    // Mimic the ANSYS data format.                 
      node = (int) FEM_array[i][0];                                  // Cast the node number as int instead of float.       
      fprintf(fp_out, "%i\t", node);                                 // Print the node number.                       
      fprintf(fp_out, "%f\t", FEM_array[i][1];                       // Print the X coordinate.                      
      fprintf(fp_out, "%f\t", FEM_array[i][2];                       // Print the Y coordinate.                      
      fprintf(fp_out, "%f\t", FEM_array[i][3];                       // Print the Z coordinate.                      
      fprintf(fp_out, "%f\t", FEM_array[i][4];
   }
   printf("Finished writing output file \"%s\".\n", filename);
   if (fclose(fp_out) != 0)
      printf("Error in closing output file \"%s\".\n", filename);    // Close the file with error check.
}

//
//
//
//
//
// Function to interpolate temperature grid data to interior FEM nodes.
//
//
//
//
//
void interpolate_interior(i, FEM_array, arr_x, arr_y, arr_z, Temp_array);
{
   // Variable Declaration

   int p, q, r;                                // array element indexes to represent temperature grid values used in hunt().
   int caseres;                                // integer to determine grid case.

   float zmax, zmin, xmax, xmin, ymax, ymin;   // model size parameters.
   float nxi, nyi, nyz;                        // temporary FE node coordinates.
   float dx, dy, dz;                           // shape function calculation parameters.
   float centx, centy, centz;
   float s, t, u;
   float s1,s2,s3,s4,s5,s6,s7,s8;
   float t1,t2,t3,t4,t5,t6,t7,t8;
   float u1,u2,u3,u4,u5,u6,u7,u8;


   nxi=FEM_array[i-1][1];                   // Store coordinates of FE node i
   nyi=FEM_array[i-1][2];                   // in three temporary loop variables.
   nyz=FEM_array[i-1][3];   

   printf("Hunting through Flotherm mesh for bounding grid points of FE coordinates.\n");
   hunt(arr_Temp_x, x_grid_max, nxi, &(p+1)); // Function call to find nearest x-coordinate grid points to FE node. 
   hunt(arr_Temp_y, y_grid_max, nyi, &(q+1)); // Function call to find nearest y-coordinate grid points to FE node. 
   hunt(arr_Temp_z, z_grid_max, nzi, &(r+1)); // Function call to find nearest z-coordinate grid points to FE node. 
   printf("Finished hunting.\n");             // The "+1" is because the hunt function uses unary offset arrays.

   /*---------------------------------------------------------------------------------------*/

   // Determine Case of the particular FE node with respect to the nearest temp grid points. 
   printf("Determining case.\n");
   // case 1: X1=X2 Y1=Y2 Z1=Z2 Use [1] temperature to determine FE temperature.
   if ((nxi == arr_Temp_x[p]) && (nyi == arr_Temp_y[q]) && (nzi == arr_Temp_z[r]))
      caseres=1;
   // case 2: X1=X2 Y1=\Y2 Z1=Z2 Use [2] temperatures to determine FE temperature. 
   if ((nxi == arr_Temp_x[p]) && (nyi != arr_Temp_y[q]) && (nzi == arr_Temp_z[r]))
      caseres=2;
   // case 3: X1=\X2 Y1=Y2 Z1=Z2 Use [2] temperatures to determine FE temperature.
   if ((nxi != arr_Temp_x[p]) && (nyi == arr_Temp_y[q]) && (nzi == arr_Temp_z[r]))
      caseres=3;
   // case 4: X1=\X2 Y1=\Y2 Z1=Z2 Use [4] temperatures to determine FE temperature.
   if ((nxi != arr_Temp_x[p]) && (nyi != arr_Temp_y[q]) && (nzi == arr_Temp_z[r]))
      caseres=4;
   // case 5: X1=X2 Y1=Y2 Z1=\Z2 Use [2] temperatures to determine FE temperature.
   if ((nxi == arr_Temp_x[p]) && (nyi == arr_Temp_y[q]) && (nzi != arr_Temp_z[r]))
      caseres=5;
   // case 6: X1=X2 Y1=\Y2 Z1=\Z2 Use [4] temperatures to determine FE temperature.
   if ((nxi == arr_Temp_x[p]) && (nyi != arr_Temp_y[q]) && (nzi != arr_Temp_z[r]))
      caseres=6;
   // case 7: X1=\X2 Y1=Y2 Z1=Z2 Use [4] temperatures to determine FE temperature.
   if ((nxi != arr_Temp_x[p]) && (nyi == arr_Temp_y[q]) && (nzi != arr_Temp_z[r]))
      caseres=7;
   // case 8: X1=\X2 Y1=\Y2 Z1=\Z2 Use [8] temperatures to determine FE temperature.
   if ((nxi != arr_Temp_x[p]) && (nyi != arr_Temp_y[q]) && (nzi != arr_Temp_z[r]))
      caseres=8;   
   printf("Case found\n.");

   /* ------------------------------------------------------------------------------------*/

   // [8] noded interpolation: X1=\X2 Y1=\Y2 Z1=\Z2:
   if (caseres == 8)
      {
      xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
      xmin=arr_Temp_x[p];
      ymax=arr_Temp_y[q+1];
      ymin=arr_Temp_y[q];
      zmax=arr_Temp_z[r+1];
      zmin=arr_Temp_z[r];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q][r+1];
      T3=Temp_array[p][q+1][r];
      T4=Temp_array[p][q+1][r+1];
      T5=Temp_array[p+1][q][r];
      T6=Temp_array[p+1][q][r+1];
      T7=Temp_array[p+1][q+1][r];
      T8=Temp_array[p+1][q]+1[r+1];


      dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
      dy=ymax-ymin;
      dz=zmax-zmin;
      centx=(xmax+xmin)/2;              // Identify center coordinates of the bounding box.
      centy=(ymax+ymin)/2;
      centz=(zmax+zmin)/2;
      s=(nxi-centx)*2/dx;
      t=(nyi-centy)*2/dy;
      u=(nzi-centz)*2/dz;
      s1=(xmin-centx)/(dx/2);
      s2=(xmin-centx)/(dx/2);
      s3=(xmin-centx)/(dx/2);
      s4=(xmin-centx)/(dx/2);
      s5=(xmax-centx)/(dx/2);
      s6=(xmax-centx)/(dx/2);
      s7=(xmax-centx)/(dx/2);
      s8=(xmax-centx)/(dx/2);
      t1=(ymin-centy)/(dy/2);
      t2=(ymin-centy)/(dy/2);
      t3=(ymax-centy)/(dy/2);
      t4=(ymax-centy)/(dy/2);
      t5=(ymin-centy)/(dy/2);
      t6=(ymin-centy)/(dy/2);
      t7=(ymax-centy)/(dy/2);
      t8=(ymax-centy)/(dy/2);
      u1=(zmin-centz)/(dz/2);
      u2=(zmax-centz)/(dz/2);
      u3=(zmin-centz)/(dz/2);
      u4=(zmax-centz)/(dz/2);
      u5=(zmin-centz)/(dz/2);
      u6=(zmax-centz)/(dz/2);
      u7=(zmin-centz)/(dz/2);
      u8=(zmax-centz)/(dz/2);
      tavg=(1/8)*(1+s*s1)*(1+t*t1)*(1+u*u1)*T1;
      tavg=tavg+(1/8)*(1+s*s2)*(1+t*t2)*(1+u*u2)*T2;
      tavg=tavg+(1/8)*(1+s*s3)*(1+t*t3)*(1+u*u3)*T3;
      tavg=tavg+(1/8)*(1+s*s4)*(1+t*t4)*(1+u*u4)*T4;
      tavg=tavg+(1/8)*(1+s*s5)*(1+t*t5)*(1+u*u5)*T5;
      tavg=tavg+(1/8)*(1+s*s6)*(1+t*t6)*(1+u*u6)*T6;
      tavg=tavg+(1/8)*(1+s*s7)*(1+t*t7)*(1+u*u7)*T7;
      tavg=tavg+(1/8)*(1+s*s8)*(1+t*t8)*(1+u*u8)*T8;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }

   /*----------------------------------------------------------------------------------*/
      
   // [4] noded interpolation: X1=\X2 Y1=Y2 Z1=\Z2:
      
   if (caseres == 7)
   {
      xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
      xmin=arr_Temp_x[p];
      zmax=arr_Temp_z[r+1];
      zmin=arr_Temp_z[r];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q][r+1];
      T3=Temp_array[p+1][q][r];
      T4=Temp_array[p+1][q][r+1];

      dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
      dz=zmax-zmin;
      centx=(xmax+xmin)/2;              // Identify center coordinates of the bounding box.
      centz=(zmax+zmin)/2;
      s=(nxi-centx)*2/dx;
      u=(nzi-centz)*2/dz;
      s1=(xmin-centx)/(dx/2);
      s2=(xmin-centx)/(dx/2);
      s3=(xmax-centx)/(dx/2);
      s4=(xmax-centx)/(dx/2);
      u1=(zmin-centz)/(dz/2);
      u2=(zmax-centz)/(dz/2);
      u3=(zmin-centz)/(dz/2);
      u4=(zmax-centz)/(dz/2);
      tavg=(1/4)*(1+s*s1)*(1+u*u1)*T1;
      tavg=tavg+(1/4)*(1+s*s2)*(1+u*u2)*T2;
      tavg=tavg+(1/4)*(1+s*s3)*(1+u*u3)*T3;
      tavg=tavg+(1/4)*(1+s*s4)*(1+u*u4)*T4;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }
      
   /*----------------------------------------------------------------------------------*/

   // [4] noded interpolation: X1=X2 Y1=\Y2 Z1=\Z2:

   if (caseres == 6)
   {
      ymax=arr_Temp_y[q+1];             // Convert array entries into single variables for clarity.
      ymin=arr_Temp_y[q];
      zmax=arr_Temp_z[r+1];
      zmin=arr_Temp_z[r];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q][r+1];
      T3=Temp_array[p][q+1][r];
      T4=Temp_array[p][q+1][r+1];

      dy=ymax-ymin;                     // Store dimensions of bounding box around FE node.
      dz=zmax-zmin;
      centy=(ymax+ymin)/2;              // Identify center coordinates of the bounding box.
      centz=(zmax+zmin)/2;
      t=(nyi-centy)*2/dy;
      u=(nzi-centz)*2/dz;
      t1=(ymin-centy)/(dy/2);
      t2=(ymin-centy)/(dy/2);
      t3=(ymax-centy)/(dy/2);
      t4=(ymax-centy)/(dy/2);
      u1=(zmin-centz)/(dz/2);
      u2=(zmax-centz)/(dz/2);
      u3=(zmin-centz)/(dz/2);
      u4=(zmax-centz)/(dz/2);
      tavg=(1/4)*(1+t*t1)*(1+u*u1)*T1;
      tavg=tavg+(1/4)*(1+t*t2)*(1+u*u2)*T2;
      tavg=tavg+(1/4)*(1+t*t3)*(1+u*u3)*T3;
      tavg=tavg+(1/4)*(1+t*t4)*(1+u*u4)*T4;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }

   /*----------------------------------------------------------------------------------*/

   // [2] noded interpolation: X1=X2 Y1=Y2 Z1=\Z2:

   if (caseres == 5)
   {
      zmax=arr_Temp_z[r+1];             // Convert array entries into single variables for clarity.
      zmin=arr_Temp_z[r];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q][r+1];

      dz=zmax-zmin;                     // Store dimensions of bounding box around FE node.
      tavg=(dz-abs(nzi-zmin))*T1;
      tavg=tavg+(dz-abs(nzi-zmax))*T2;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }

   /*----------------------------------------------------------------------------------*/

   // [4] noded interpolation: X1=\X2 Y1=\Y2 Z1=Z2:

   if (caseres == 4)
   {
      xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
      xmin=arr_Temp_x[p];
      ymax=arr_Temp_y[q+1];
      ymin=arr_Temp_y[q];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q+1][r];
      T3=Temp_array[p+1][q][r];
      T4=Temp_array[p+1][q+1][r];

      dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
      dy=ymax-ymin;
      centx=(xmax+xmin)/2;              // Identify center coordinates of the bounding box.
      centy=(ymax+ymin)/2;
      s=(nxi-centx)*2/dx;
      t=(nyi-centy)*2/dy;
      s1=(xmin-centx)/(dx/2);
      s2=(xmin-centx)/(dx/2);
      s3=(xmax-centx)/(dx/2);
      s4=(xmax-centx)/(dx/2);
      t1=(ymin-centy)/(dy/2);
      t2=(ymax-centy)/(dy/2);
      t3=(ymin-centy)/(dy/2);
      t4=(ymax-centy)/(dy/2);
      tavg=(1/4)*(1+s*s1)*(1+t*t1)*T1;
      tavg=tavg+(1/4)*(1+s*s2)*(1+t*t2)*T2;
      tavg=tavg+(1/4)*(1+s*s3)*(1+t*t3)*T3;
      tavg=tavg+(1/4)*(1+s*s4)*(1+t*t4)*T4;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }

   /*----------------------------------------------------------------------------------*/

   // [2] noded interpolation: X1=\X2 Y1=Y2 Z1=Z2:

   if (caseres == 3)
   {
      xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
      xmin=arr_Temp_x[p];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p+1][q][r];

      dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
      tavg=(dx-abs(nxi-xmin))*T1;
      tavg=tavg+(dx-abs(nxi-xmax))*T2;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }

   /*----------------------------------------------------------------------------------*/

   // [2] noded interpolation: X1=X2 Y1=\Y2 Z1=Z2:

   if (caseres == 2)
   {
      ymax=arr_Temp_y[q+1];             // Convert array entries into single variables for clarity.
      ymin=arr_Temp_y[q];
         
      // Linearly average the temperatures of the eight stored grid points
      // based on isoparametric element shape functions:

      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.
      T2=Temp_array[p][q+1][r];

      dy=ymax-ymin;                     // Store dimensions of bounding box around FE node.
      tavg=(dy-abs(nyi-ymin))*T1;
      tavg=tavg+(dy-abs(nyi-ymax))*T2;

      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }
      
   /*----------------------------------------------------------------------------------*/

   // [1] noded interpolation: X1=X2 Y1=Y2 Z1=Z2:

   else // (caseres == 1)
   {
      T1=Temp_array[p][q][r];             // Store temperature values corresponding to the grid points.

      tavg=T1;
      FEM_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
   }
}

//
//
//
//
//
// Function to interpolate on the boundary FEM nodes.
//
//
//
//
//
void interpolate_boundary(int b, float FEM_interior_array[][5], float FEM_boundary_array[][5],
                          float Temp_array[MAX][MAX][MAX], float *arr_Temp_x, float *arr_Temp_y, float *arr_Temp_z,
                              float *x_grid_max, float *y_grid_max, float *z_grid_max,
                          float X_Flux_array[MAX][MAX][MAX], float *X_arr_Flux_x, float *X_arr_Flux_y, float *X_arr_Flux_z, 
                              float *X_Flux_x_grid_max, float *X_Flux_y_grid_max, float *X_Flux_z_grid_max,
                          float Y_Flux_array[MAX][MAX][MAX], float *Y_arr_Flux_x, float *Y_arr_Flux_y, float *Y_arr_Flux_z,
                              float *Y_Flux_x_grid_max, float *Y_Flux_y_grid_max, float *Y_Flux_z_grid_max,
                          float Z_Flux_array[MAX][MAX][MAX], float *Z_arr_Flux_x, float *Z_arr_Flux_y, float *Z_arr_Flux_z,
                              float *Z_Flux_x_grid_max, float *Z_Flux_y_grid_max, float *Z_Flux_z_grid_max)
{
   // Variable Declaration.
   int d, e, f;              // Array element indices for I_arr_Flux_x, I_arr_Flux_y, and I_arr_Flux_z respectively.
   int p, q, r;              // Array element indices for arr_Temp_x, arr_Temp_y, and arr_Temp_z respectively.
   int caseres;                                // integer to determine grid case.
   int first, second, third, fourth;           // boundary node numbers closest to the current boundary node.
   int j, closest_interior_node;               // closest interior node number and temporary storage number.
   int plane1, plane2, plane3;                 // integer to determine the case of the particular boundary node: face, corner, edge.
   int Temperature_plane_to_use;               // node number indicating which plane of temperature grid points to use...the other is discarded.
   char which_plane;                           // character to determine which face plane a particular boundary node lies in. This is for plane1...the face case.
   float closest_interior_node_distance=100000, temp_distance;
   float tempxj, tempyj, tempzj;
   float first_closest_distance, second_closest_distance, third_closest_distance, fourth_closest_distance; // distances to closest boundary nodes.
   float length;                               // Length used in converting flux value to temperature
   float zmax, zmin, xmax, xmin, ymax, ymin;   // model size parameters.
   float nxi, nyi, nyz;                        // temporary FE node coordinates.
   float dx, dy, dz;                           // shape function calculation parameters.
   float centx, centy, centz;
   float s, t, u;
   float s1,s2,s3,s4,s5,s6,s7,s8;
   float t1,t2,t3,t4,t5,t6,t7,t8;
   float u1,u2,u3,u4,u5,u6,u7,u8;


   nxi=FEM_boundary_array[b-1][1];                   // Store coordinates of boundary FE node i
   nyi=FEM_boundary_array[b-1][2];                   // in three temporary loop variables.
   nyz=FEM_boundary_array[b-1][3];   

   for (j=1; j <= n_interior_max; j++)
   {
      tempxj=FEM_interior_array[j][1];
      tempyj=FEM_interior_array[j][2];
      tempzj=FEM_interior_array[j][3];
      temp_distance=((nxi-tempxj)^2+(nyi-tempyj)^2+(nzi-tempzj)^2)^.5;
      if (temp_distance < closest_interior_node_distance)
      {
         closest_interior_node_distance = temp_distance;
         closest_interior_node = j;
      }
   }
   for (j=1; j <= n_boundary_max; j++)                // Loop thru boundary nodes to determine the 4 nearest nodes.
   {
      tempxj=FEM_boundary_array[j][1];
      tempyj=FEM_boundary_array[j][2];
      tempzj=FEM_boundary_array[j][3];
      if (tempxi == nxi && tempyi == nyi && tempzi == nzi)
         continue;
      temp_distance=((nxi-tempxj)^2+(nyi-tempyj)^2+(nzi-tempzj)^2)^.5;
      if (temp_distance < first_closest_distance)
      {
         fourth_closest_distance = third_closest_distance;
         third_closest_distance = second_closest_distance;         
         second_closest_distance = first_closest_distance;
         first_closest_distance = temp_distance;
         fourth = third;
         third = second;
         second = first;
         first = j;
      }
      if (temp_distance < second_closest_distance)
      {
         fourth_closest_distance = third_closest_distance;
         third_closest_distance = second_closest_distance;
         second_closest_distance = temp_distance;         
         fourth = third;
         third = second;
         second = j;
      }
      if (temp_distance < third_closest_distance)
      {
         fourth_closest_distance = third_closest_distance;         
         third_closest_distance = temp_distance;
         fourth = third;
         third = j;
      }
      if (temp_distance < fourth_closest_distance)
      {
         fourth_closest_distance = temp_distance;
         fourth = j;
      }
   }

   // Determine the Temperature grid bounding box for the particular boundary node.
   printf("Hunting through Flotherm mesh for bounding Temperature grid points of FE coordinates.\n");
   hunt(arr_Temp_x, x_grid_max, nxi, &p); // function call to find nearest x-coordinate grid points to FE node. 
   hunt(arr_Temp_y, y_grid_max, nyi, &q); // function call to find nearest y-coordinate grid points to FE node. 
   hunt(arr_Temp_z, z_grid_max, nzi, &r); // function call to find nearest z-coordinate grid points to FE node. 
   printf("Finished hunting.\n");

   // Now determine which plane(s) the particular boundary node i lies in.
   if (FEM_boundary_array[first][1] == nxi || FEM_boundary_array[second][1] == nxi || FEM_boundary_array[third][1] == nxi || FEM_boundary_array[fourth][1] == nxi)
      plane1=1;
   else plane1=0;
   if (FEM_boundary_array[first][2] == nyi || FEM_boundary_array[second][2] == nyi || FEM_boundary_array[third][2] == nyi || FEM_boundary_array[fourth][2] == nyi)
      plane2=1;
   else plane2=0;
   if (FEM_boundary_array[first][3] == nzi || FEM_boundary_array[second][3] == nzi || FEM_boundary_array[third][3] == nzi || FEM_boundary_array[fourth][3] == nzi)
      plane3=1;
   else plane3=0;
   caseres = plane1 + plane2 + plane3;

   // For the case where the boundary node lies in one plane only, i.e., on a face (not an edge or corner):
   if (caseres == 1)         // Boundary node lies on one plane only.
   {
      if (FEM_boundary_array[first][1] == nxi || FEM_boundary_array[second][1] == nxi || FEM_boundary_array[third][1] == nxi || FEM_boundary_array[fourth][1] == nxi) 
         which_plane='X';
      if (FEM_boundary_array[first][2] == nyi || FEM_boundary_array[second][2] == nyi || FEM_boundary_array[third][2] == nyi || FEM_boundary_array[fourth][2] == nyi)
         which_plane='Y';
      if (FEM_boundary_array[first][3] == nzi || FEM_boundary_array[second][3] == nzi || FEM_boundary_array[third][3] == nzi || FEM_boundary_array[fourth][3] == nzi)
         which_plane='Z';

      if (which_plane == 'X')        // The X-plane is the boundary plane.
      {
         // Hunt through the X-flux grid and find the box that bounds the particular FE node in the Z-plane.
         printf("Hunting through Flotherm mesh for bounding X-heat flux grid points of FE coordinates.\n");
         hunt(X_arr_Flux_x, X_Flux_x_grid_max, nxi, &d); // function call to find nearest x-coordinate grid points to FE node. 
         hunt(X_arr_Flux_y, X_Flux_y_grid_max, nyi, &e); // function call to find nearest y-coordinate grid points to FE node. 
         hunt(X_arr_Flux_z, X_Flux_z_grid_max, nzi, &f); // function call to find nearest z-coordinate grid points to FE node. 
         printf("Finished hunting.\n");
         if (nxi != X_arr_Flux_x[d])
            printf("Error: FEM node %i does not align with Heat Flux grid data points.\n", i);

         // Discriminate between temperature nodes OUTSIDE the material set.
         if (arr_Temp_x[p] < nxi && FEM_interior_array[1][closest_interior_node] < nxi)
            Temperature_plane_to_use = p;
         if (arr_Temp_x[p+1] < nxi && FEM_interior_array[1][closest_interior_node] < nxi)
            Temperature_plane_to_use = p+1;
         if (arr_Temp_x[p] > nxi && FEM_interior_array[1][closest_interior_node] > nxi)
            Temperature_plane_to_use = p;
         if (arr_Temp_x[p+1] > nxi && FEM_interior_array[1][closest_interior_node] > nxi)
            Temperature_plane_to_use = p+1;
 
            // [4] noded interpolation: FEM X = FLUX X   Y1=\Y2 Z1=\Z2:

         length = abs (nxi-arr_Temp_x[Temperature_plane_to_use]);       // Length for determining temperature using flux data.
         ymax=arr_Temp_y[q+1];             // Convert array entries into single variables for clarity.
         ymin=arr_Temp_y[q];
         zmax=arr_Temp_z[r+1];
         zmin=arr_Temp_z[r];
         
         // Linearly average the temperatures of the eight stored grid points
         // based on isoparametric element shape functions:

         T1=Temp_array[Temperature_plane_to_use][q][r]-X_Flux_array[d][e][f] * length / k; // Store temperature values corresponding to the grid points.
         T2=Temp_array[Temperature_plane_to_use][q][r+1]-X_Flux_array[d][e][f+1] * length / k;
         T3=Temp_array[Temperature_plane_to_use][q+1][r]-X_Flux_array[d][e+1][f] * length / k;
         T4=Temp_array[Temperature_plane_to_use][q+1][r+1]-X_Flux_array[d][e+1][f+1] * length / k;

         dy=ymax-ymin;                     // Store dimensions of bounding box around FE node.
         dz=zmax-zmin;
         centy=(ymax+ymin)/2;              // Identify center coordinates of the bounding box.
         centz=(zmax+zmin)/2;
         t=(nyi-centy)*2/dy;
         u=(nzi-centz)*2/dz;
         t1=(ymin-centy)/(dy/2);
         t2=(ymin-centy)/(dy/2);
         t3=(ymax-centy)/(dy/2);
         t4=(ymax-centy)/(dy/2);
         u1=(zmin-centz)/(dz/2);
         u2=(zmax-centz)/(dz/2);
         u3=(zmin-centz)/(dz/2);
         u4=(zmax-centz)/(dz/2);
         tavg=(1/4)*(1+t*t1)*(1+u*u1)*T1;
         tavg=tavg+(1/4)*(1+t*t2)*(1+u*u2)*T2;
         tavg=tavg+(1/4)*(1+t*t3)*(1+u*u3)*T3;
         tavg=tavg+(1/4)*(1+t*t4)*(1+u*u4)*T4;

         FEM_boundary_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
      }
       
      if (which_plane == 'Y')        // The Y-plane is the boundary plane.
      {
         // Hunt through the Y-flux grid and find the box that bounds the particular FE node in the Y-plane.
         printf("Hunting through Flotherm mesh for bounding Y-heat flux grid points of FE coordinates.\n");
         hunt(Y_arr_Flux_x, Y_Flux_x_grid_max, nxi, &d); // function call to find nearest x-coordinate grid points to FE node. 
         hunt(Y_arr_Flux_y, Y_Flux_y_grid_max, nyi, &e); // function call to find nearest y-coordinate grid points to FE node. 
         hunt(Y_arr_Flux_z, Y_Flux_z_grid_max, nzi, &f); // function call to find nearest z-coordinate grid points to FE node. 
         printf("Finished hunting.\n");
         
         // Discriminate between temperature nodes OUTSIDE the material set.
         if (arr_Temp_y[q] < nyi && FEM_interior_array[2][closest_interior_node] < nyi)
            Temperature_plane_to_use = q;
         if (arr_Temp_y[q+1] < nyi && FEM_interior_array[2][closest_interior_node] < nyi)
            Temperature_plane_to_use = q+1;
         if (arr_Temp_y[q] > nyi && FEM_interior_array[2][closest_interior_node] > nyi)
            Temperature_plane_to_use = q;
         if (arr_Temp_y[q+1] > nyi && FEM_interior_array[2][closest_interior_node] > nyi)
            Temperature_plane_to_use = q+1;
      
            // [4] noded interpolation: X1=\X2 Y1=Y2 Z1=\Z2:
         length = abs (nyi-arr_Temp_y[Temperature_plane_to_use]);       // Length for determining temperature using flux data.
         xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
         xmin=arr_Temp_x[p];
         zmax=arr_Temp_z[r+1];
         zmin=arr_Temp_z[r];
         
         // Linearly average the temperatures of the eight stored grid points
         // based on isoparametric element shape functions:

         T1=Temp_array[p][Temperature_plane_to_use][r]-Y_Flux_array[d][e][f] * length / k; // Store temperature values corresponding to the grid points.
         T2=Temp_array[p][Temperature_plane_to_use][r+1]-Y_Flux_array[d][e][f+1] * length / k;
         T3=Temp_array[p+1][Temperature_plane_to_use][r]-Y_Flux_array[d+1][e][f] * length / k;
         T4=Temp_array[p+1][Temperature_plane_to_use][r+1]-Y_Flux_array[d+1][e][f+1] * length / k;

         dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
         dz=zmax-zmin;
         centx=(xmax+xmin)/2;              // Identify center coordinates of the bounding box.
         centz=(zmax+zmin)/2;
         s=(nxi-centx)*2/dx;
         u=(nzi-centz)*2/dz;
         s1=(xmin-centx)/(dx/2);
         s2=(xmin-centx)/(dx/2);
         s3=(xmax-centx)/(dx/2);
         s4=(xmax-centx)/(dx/2);
         u1=(zmin-centz)/(dz/2);
         u2=(zmax-centz)/(dz/2);
         u3=(zmin-centz)/(dz/2);
         u4=(zmax-centz)/(dz/2);
         tavg=(1/4)*(1+s*s1)*(1+u*u1)*T1;
         tavg=tavg+(1/4)*(1+s*s2)*(1+u*u2)*T2;
         tavg=tavg+(1/4)*(1+s*s3)*(1+u*u3)*T3;
         tavg=tavg+(1/4)*(1+s*s4)*(1+u*u4)*T4;

         FEM_boundary_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
      }

      if (which_plane == 'Z')        // The Z-plane is the boundary plane.
      {
         // Hunt through the Z-flux grid and find the box that bounds the particular FE node in the Z-plane.
         printf("Hunting through Flotherm mesh for bounding Z-heat flux grid points of FE coordinates.\n");
         hunt(Z_arr_Flux_x, Z_Flux_x_grid_max, nxi, &d); // function call to find nearest x-coordinate grid points to FE node. 
         hunt(Z_arr_Flux_y, Z_Flux_y_grid_max, nyi, &e); // function call to find nearest y-coordinate grid points to FE node. 
         hunt(Z_arr_Flux_z, Z_Flux_z_grid_max, nzi, &f); // function call to find nearest z-coordinate grid points to FE node. 
         printf("Finished hunting.\n");
         
         // Discriminate between temperature nodes OUTSIDE the material set. 
         if (arr_Temp_z[r] < nzi && FEM_interior_array[3][closest_interior_node] < nzi)
            Temperature_plane_to_use = r;
         if (arr_Temp_z[r+1] < nzi && FEM_interior_array[3][closest_interior_node] < nzi)
            Temperature_plane_to_use = r+1;
         if (arr_Temp_z[r] > nzi && FEM_interior_array[3][closest_interior_node] > nzi)
            Temperature_plane_to_use = r;
         if (arr_Temp_z[r+1] > nzi && FEM_interior_array[3][closest_interior_node] > nzi)
            Temperature_plane_to_use = r+1;
      
         // [4] noded interpolation: X1=\X2 Y1=\Y2 Z1=Z2:
         length = abs (nzi-arr_Temp_z[Temperature_plane_to_use]);       // Length for determining temperature using flux data.
         xmax=arr_Temp_x[p+1];             // Convert array entries into single variables for clarity.
         xmin=arr_Temp_x[p];
         ymax=arr_Temp_y[q+1];
         ymin=arr_Temp_y[q];
         
         // Linearly average the temperatures of the eight stored grid points
         // based on isoparametric element shape functions:

         T1=Temp_array[p][q][Temperature_plane_to_use]-Z_Flux_array[d][e][f] * length / k; // Store temperature values corresponding to the grid points.
         T2=Temp_array[p][q+1][Temperature_plane_to_use]-Z_Flux_array[d][e+1][f] * length / k;
         T3=Temp_array[p+1][q][Temperature_plane_to_use]-Z_Flux_array[d+1][e][f] * length / k;
         T4=Temp_array[p+1][q+1][Temperature_plane_to_use]-Z_Flux_array[d+1][e+1][f] * length / k;

         dx=xmax-xmin;                     // Store dimensions of bounding box around FE node.
         dy=ymax-ymin;
         centx=(xmax+xmin)/2;              // Identify center coordinates of the bounding box.
         centy=(ymax+ymin)/2;
         s=(nxi-centx)*2/dx;
         t=(nyi-centy)*2/dy;
         s1=(xmin-centx)/(dx/2);
         s2=(xmin-centx)/(dx/2);
         s3=(xmax-centx)/(dx/2);
         s4=(xmax-centx)/(dx/2);
         t1=(ymin-centy)/(dy/2);
         t2=(ymax-centy)/(dy/2);
         t3=(ymin-centy)/(dy/2);
         t4=(ymax-centy)/(dy/2);
         tavg=(1/4)*(1+s*s1)*(1+t*t1)*T1;
         tavg=tavg+(1/4)*(1+s*s2)*(1+t*t2)*T2;
         tavg=tavg+(1/4)*(1+s*s3)*(1+t*t3)*T3;
         tavg=tavg+(1/4)*(1+s*s4)*(1+t*t4)*T4;

         FEM_boundary_array[i-1][5]=tavg;             // Store interpolated temperature in FEM export array.
      }
   }

   if (caseres == 2)
   {
      printf("...");


   }

   if (caseres == 3)
   {
      printf("...");


   }
}

//
//
//
//
//
// Hunt function:                                                             
//                                                                            
// Given an array xx[1..n], and give a value x, returns a value jlo such that 
// that x is between xx[jlo] and xx[jlo+1]. xx[1..n] must be monotonic either 
// increasing or decreasing. jlo=0 or jlo=n is returned to indicate that x is 
// out of range. jlo on input is taken as the initial guess for jlo on output.
//
//
//
//
//
void hunt(float xx[], int n, float x, int *jlo)
{
   int jm,jhi,inc;
   int ascnd;

   ascnd=(xx[n]] >= xx[1]);
   if (*jlo <= 0 || *jlo > n)
   {
      *jlo=0;
      jhi=n+1;
   }
   else 
   {
      inc=1;
      if (x >= xx[*jlo] == ascnd)
      {
         if (*jlo == n)
            return;
         jhi=(*jlo)+1;
         while (x >= xx[jhi] == ascnd)
         {
            *jlo=jhi;
            inc += inc;
            jhi=(*jlo)+inc;
            if (jhi > n)
            {
               jhi=n+1;
               break;
            }
         }
      }
      else
      {
         if (*jlo == 1)
         {
            *jlo=0;
            return;
         }
         jhi=(*jlo)--;
         while (x < xx[*jlo] == ascnd)
         {
            jhi=(*jlo);
            inc <<= 1;
            if (inc >= jhi)
            {
               *jlo=0;
               break;
            }
            else *jlo=jhi-inc;
         }
      }
   }
   while (jhi-(*jlo) != 1)
   {
      jm=(jhi+(*jlo)) >> 1;
      if (x >= xx[jm] == ascnd)
         *jlo=jm;
      else
         jhi=jm;
   }
   if (x == xx[n]) *jlo=n-1;
   if (x == xx[1]) *jlo=1;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-07-20  3:01 Jos van den Oever
  0 siblings, 0 replies; 387+ messages in thread
From: Jos van den Oever @ 2000-07-20  3:01 UTC (permalink / raw)
  To: gcc-bugs, Jan van Male

[-- Attachment #1: Type: text/plain, Size: 1762 bytes --]

The compiler requested I submit a bug report. I've cut the code as much as I could without losing the compiler error.
Hope it's useful, Jos

oever@snow:~/cpp/sfbox/sfbox > g++ -v --save-temps -O2 -fshort-double -c test.cp
p
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -
D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinu
x -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix)
 -D__EXCEPTIONS -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i
386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ te
st.cpp test.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/i
nclude
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus test.ii -quiet -dumpbas
e test.cc -O2 -version -fshort-double -o test.s
GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C
version 2.95.2 19991024 (release).
test.cpp: In function `int main(...)':
test.cpp:13: Internal compiler error in `output_fix_trunc', at ./config/i386/i38
6.c:4012
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
test.cpp
test.ii.bz2


[-- Attachment #2: test.cpp --]
[-- Type: text/x-c, Size: 209 bytes --]

#include <math.h>

void main() {
        int i;
        double x[1];
        x[0] = 1;
        double y=1;
        for (i=0; i==0; i++) {
                pow(10,x[i]);
        }
        1/exp(y);
	return 0;
}

[-- Attachment #3: test.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 3520 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-07-18  4:30 Levente Farkas
  0 siblings, 0 replies; 387+ messages in thread
From: Levente Farkas @ 2000-07-18  4:30 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]

with gcc:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000702 (experimental)
on redhat linux 6.2 the following compile command of lapack give an error.
I attached the preprocessed file.
yours.
------------------------
gcc -c -pipe -Werror -fPIC  -fhonor-std -Wreorder -Woverloaded-virtual -nostdinc
++ -g -O0 -DMM_NODLL -D__HONOR_STD -I/home/lfarkas/Mindmaker/include/lapack -I/h
ome/lfarkas/Mindmaker/include -I/usr/include/stlport lapack/allaux/ilaenv.cpp -o
 lapack/allaux/ilaenv.o
lapack/allaux/ilaenv.cpp: In function `integer ilaenv_ (integer *,
const char *, const char *, integer *, integer *, integer *, integer *,
long int, long int)':
lapack/allaux/ilaenv.cpp:553: Unrecognizable insn:
(insn 192 190 4858 (set (reg:SI 1 edx)
        (plus:SI (reg:SI 0 eax)
            (const (plus (unspec[
                            (symbol_ref/v:SI ("subnam.12"))
                        ]  7)
                    (const_int -1 [0xffffffff]))))) -1 (nil)
    (nil))
lapack/allaux/ilaenv.cpp:553: Internal compiler error in
`insn_default_length', at insn-attrtab.c:203
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
make: *** [lapack/allaux/ilaenv.o] Error 1
------------------------
 -- Levente
 "The only thing worse than not knowing the truth is
  ruining the bliss of ignorance."
ilaenv.i.gz


[-- Attachment #2: ilaenv.i.gz --]
[-- Type: application/x-gzip, Size: 5789 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <Pine.LNX.4.21.0007101930060.11967-100000@gilesc>
@ 2000-07-10 11:31 ` Giles Constant
  0 siblings, 0 replies; 387+ messages in thread
From: Giles Constant @ 2000-07-10 11:31 UTC (permalink / raw)
  To: gcc-bugs

Update :

you can reduce down to this :-)

-----BEGIN-----
#include <map>

struct map<int,int>::iterator itor;
-----END-----

On Mon, 10 Jul 2000, Giles Constant wrote:

> Date: Mon, 10 Jul 2000 19:35:26 +0100 (BST)
> From: Giles Constant <gilesc@ftech.net>
> To: gcc-bugs@gcc.gnu.org
> Subject: Internal compiler error
> 
> Hi hackers, 
> 
> I hit an internal compiler error in a rather large program, but
> fortunately managed to strip down to the exact problem which seems to be
> in instantiating const iterator structs for a map.  I'm running
> 2.95.2 under linux/i386.  Not sure which version of stl it is, but I can
> find out if you need it.
> 
> Have fun!
> 
> Try compiling the following with g++ -c -Wall foo.cpp :
> 
> ---BEGIN---
> 
> #include <map>
> #include <string>
> 
> const map<string, string> mymap;
> 
> void foo(const string& bar) {
>    const struct map<string, string>::iterator itor =
>      mymap.find(bar);
> }  
> 
> ---END---
> 
> -- 
> Giles Constant <gilesc@ftech.net> -  Network Operations
> Frontier Internet Services Limited   http://www.frontier-internet.ltd.uk/
> Tel: +44 (0)20 7510 4700             Fax: +44 (0)20 7531 9930
> All statements made are subject to Frontier's Terms and Conditions of
> Business which are available upon request.
> 
> 

-- 
Giles Constant <gilesc@ftech.net> -  Network Operations
Frontier Internet Services Limited   http://www.frontier-internet.ltd.uk/
Tel: +44 (0)20 7510 4700             Fax: +44 (0)20 7531 9930
All statements made are subject to Frontier's Terms and Conditions of
Business which are available upon request.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-07-02  8:11 Erkki Seppala
  0 siblings, 0 replies; 387+ messages in thread
From: Erkki Seppala @ 2000-07-02  8:11 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 34115 bytes --]

Code: (*.cc-file)

template <class T> struct Bar { };
template <class T> struct Foo {
  struct Baz;
};

template <class T>
struct Foo<T>::Baz :
  public Bar<T> {
};

Produced *.ii-file is essentially the same.

Problem:

Command

  gcc -v --save-temps gccbug.cc

produces

Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)
 /usr/lib/gcc-lib/i386-linux/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ gccbug.cc gccbug.ii
GNU CPP version 2.95.2 20000220 (Debian GNU/Linux) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /lhome/flux/include
 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i386-linux/2.95.2/cc1plus gccbug.ii -quiet -dumpbase gccbug.cc -version -o gccbug.s
GNU C++ version 2.95.2 20000220 (Debian GNU/Linux) (i386-linux) compiled by GNU C version 2.95.2 20000220 (Debian GNU/Linux).
gccbug.cc:8: Internal compiler error.
gccbug.cc:8: Please submit a full bug report.
gccbug.cc:8: See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

The obvious workaround is to move the definition to the actual
header file, but this creates a dependency.
-- 
  _____________________________________________________________________
     / __// /__ ____  __                              Erkki Seppälä\   \
    / /_ / // // /\ \/ //ircnet                Inside Informatics ry\  /
   /_/  /_/ \___/ /_/\_\@inside.org        http://www.inside.org/~flux/
>From mi@murlo.zaytman.com Sun Jul 02 08:44:00 2000
From: Mikhail Teterin <mi@murlo.zaytman.com>
To: bug-gcc@gnu.org
Subject: Internal compiler error in `loop_iterations', at unroll.c:3689
Date: Sun, 02 Jul 2000 08:44:00 -0000
Message-id: <200007021544.LAA31662@murlo.zaytman.com>
X-SW-Source: 2000-07/msg00017.html
Content-length: 28366

>Submitter-Id:   net
>Originator:     Mikhail Teterin
>Organization:   Virtual Estates, Inc.
>Confidential:   no
>Synopsis:       Internal compiler error in `loop_iterations', at unroll.c:3689
>Severity:       serious
>Priority:       medium
>Category:       optimization
>Release:        gcc version 2.95.2 19991024 (release)
>Class:          ice-on-legal-code
>Environment: 

	The operating system is FreeBSD-4.0-stable. The machine is
	a dual Pentium100 with 128Mb of RAM.

>Description: 

	The optimization flags:
	-fstrength-reduce -finline-functions \
		-fomit-frame-pointer -march=i586 -mcpu=i586 -O
	result in "ice" when compiling the 7 year old part of xloadimage --
	the xpixmap.c.

>How-To-Repeat: 

cc -v --save-temps -c -fstrength-reduce -finline-functions -fomit-frame-pointer -march=i586 -mcpu=i586 -O -pipe -DSYSV -DHAS_SELECT_INCLUDE -DHAS_JPEG -DHAS_TIFF -I/usr/X11R6/include -DSYSPATHFILE=\"/usr/X11R6/lib/X11/app-defaults/Xloadimage\" xpixmap.c
cc: Warning: -pipe ignored since -save-temps specified
Using builtin specs.
gcc version 2.95.2 19991024 (release)
 /usr/libexec/cpp -lang-c -v -I/usr/X11R6/include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -Dunix -D__FreeBSD__=4 -D__FreeBSD_cc_version=400004 -D__i386__ -D__unix__ -D__FreeBSD__=4 -D__FreeBSD_cc_version=400004 -D__i386 -D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__ELF__ -DSYSV -DHAS_SELECT_INCLUDE -DHAS_JPEG -DHAS_TIFF -DSYSPATHFILE="/usr/X11R6/lib/X11/app-defaults/Xloadimage" xpixmap.c xpixmap.i
GNU CPP version 2.95.2 19991024 (release) (i386 FreeBSD/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/X11R6/include
 /usr/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/include/g++
End of omitted list.
 /usr/libexec/cc1 xpixmap.i -quiet -dumpbase xpixmap.c -march=i586 -mcpu=i586 -O -version -fstrength-reduce -finline-functions -fomit-frame-pointer -o xpixmap.s
GNU C version 2.95.2 19991024 (release) (i386-unknown-freebsd) compiled by GNU C version 2.95.2 19991024 (release).
xpixmap.c: In function `xpixmapLoad':
xpixmap.c:231: Internal compiler error in `loop_iterations', at unroll.c:3689
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

The following C-file is a part of the ages old xloadimage. The xpixmap.i.bz2
is uuencoded after this:

/* xpixmap.c:
 *
 * XPixMap format file read and identify routines.  these can handle any
 * "format 1" XPixmap file with up to BUFSIZ - 1 chars per pixel.  it's
 * not nearly as picky as it might be.
 *
 * unlike most image loading routines, this is X specific since it
 * requires X color name parsing.  to handle this we have global X
 * variables for display and screen.  it's ugly but it keeps the rest
 * of the image routines clean.
 *
 * Copyright 1989 Jim Frost.  See included file "copyright.h" for complete
 * copyright information.
 */

#include "copyright.h"
#include "xloadimage.h"

/* SUPPRESS 530 */
/* SUPPRESS 560 */

extern Display *Disp; /* X display, null if in "identify" mode */
extern int      Scrn; /* X screen number */

#define XPM_FORMAT 1

static void corrupted(fullname, zf)
     char  *fullname;
     ZFILE *zf;
{
  zclose(zf);
  printf("%s: X Pixmap file is corrupted\n", fullname);
  exit(1);
}

Image *xpixmapLoad(fullname, name, verbose)
     char         *fullname, *name;
     unsigned int  verbose;
{ ZFILE         *zf;
  char           buf[BUFSIZ];
  char           what[BUFSIZ];
  char          *p;
  char          *imagetitle;
  unsigned int   value;
  unsigned int   format;  /* image format */
  unsigned int   w, h;    /* image dimensions */
  unsigned int   cpp;     /* chars per pixel */
  unsigned int   ncolors; /* number of colors */
  unsigned int   depth;   /* depth of image */
  char         **ctable;  /* color table */
  Image         *image;
  XColor         xcolor;
  unsigned int   a, b, x, y;
  int            c;
  byte          *dptr;

  if (! (zf= zopen(fullname)))
    return(NULL);

  /* read #defines until we have all that are necessary or until we
   * get an error
   */

  format= w= h= ncolors= 0;
  for (;;) {
    if (! zgets((byte *)buf, BUFSIZ - 1, zf)) {
      zclose(zf);
      return(NULL);
    }
    if (!strncmp(buf, "#define", 7)) {
      if (sscanf(buf, "#define %s %d", what, &value) != 2) {
	zclose(zf);
	return(NULL);
      }
      if (! (p= rindex(what, '_')))
	p= what;
      else
	p++;
      if (!strcmp(p, "format"))
	format= value;
      else if (!strcmp(p, "width"))
	w= value;
      else if (!strcmp(p, "height"))
	h= value;
      else if (!strcmp(p, "ncolors"))
	ncolors= value;

      /* this one is ugly
       */

      else if (!strcmp(p, "pixel")) { /* this isn't pretty but it works */
	if (p == what)
	  continue;
	*(--p)= '\0';
	if (!(p= rindex(what, '_')) || (p == what) || strcmp(++p, "per"))
	  continue;
	*(--p)= '\0';
	if (!(p= rindex(what, '_')))
	  p= what;
	if (strcmp(++p, "chars"))
	  continue;
	cpp= value;
      }
    }
    else if ((sscanf(buf, "static char * %s", what) == 1) &&
	     (p= rindex(what, '_')) && !strcmp(++p, "colors[]"))
      break;
  }

  if ((format != XPM_FORMAT) || !w || !h || !ncolors || !cpp) {
    zclose(zf);
    return(NULL);
  }

  if (p= rindex(what, '_')) {     /* get the name in the image if there is */
    *p= '\0';                     /* one */
    imagetitle= dupString(what);
  }
  else {
    p= what;
    imagetitle= dupString(name);
  }

  if (verbose)
    printf("%s is a %dx%d X Pixmap image with %d colors titled '%s'\n",
	   name, w, h, ncolors, imagetitle);

  for (depth= 1, value= 2; value < ncolors; value <<= 1, depth++)
    ;
  image= newRGBImage(w, h, depth);
  image->rgb.used= ncolors;
  image->title= dupString(imagetitle);

  /* read the colors array and build the image colormap
   */

  ctable= (char **)lmalloc(sizeof(char *) * ncolors);
  xcolor.flags= DoRed | DoGreen | DoBlue;
  for (a= 0; a < ncolors; a++) {
 
    /* read pixel value
     */

    *(ctable + a)= (char *)lmalloc(cpp);
    while (((c= zgetc(zf)) != EOF) && (c != '"'))
      ;
    if (c == EOF)
      corrupted(fullname, zf);
    for (b= 0; b < cpp; b++) {
      if ((c= zgetc(zf)) == '\\')
	c= zgetc(zf);
     if (c == EOF)
	corrupted(fullname, zf);
      *(*(ctable + a) + b)= (char)c;
    }
    if (((c= zgetc(zf)) == EOF) || (c != '"'))
      corrupted(fullname, zf);

    /* read color definition and parse it
     */

    while (((c= zgetc(zf)) != EOF) && (c != '"'))
      ;
    if (c == EOF)
      corrupted(fullname, zf);
    for (b= 0; ((c= zgetc(zf)) != EOF) && (c != '"'); b++) {
      if (c == '\\')
	c= zgetc(zf);
      if (c == EOF)
	corrupted(fullname, zf);
      buf[b]= (char)c;
    }
    buf[b]= '\0';

    if (Disp) {
      if (! XParseColor(Disp, DefaultColormap(Disp, Scrn), buf, &xcolor)) {
	printf("%s: %s: Bad color name\n", fullname, buf);
	exit(1);
      }
      *(image->rgb.red + a)= xcolor.red;
      *(image->rgb.green + a)= xcolor.green;
      *(image->rgb.blue + a)= xcolor.blue;
    }
  }

  for (;;) {
    if (! zgets((byte *)buf, BUFSIZ - 1, zf))
      corrupted(fullname, zf);
    if (sscanf(buf, "static char * %s", what) == 1)
      break;
  }

  if (p= rindex(what, '_'))
    p++;
  else
    p= what;
  if (strcmp(p, "pixels[]"))
    corrupted(fullname, zf);

  /* read in image data
   */

  dptr= image->data;
  for (y= 0; y < h; y++) {
    while (((c= zgetc(zf)) != EOF) && (c != '"'))
      ;
    for (x= 0; x < w; x++) {
      for (a= 0; a < cpp; a++) {
	if ((c= zgetc(zf)) == '\\')
	  c= zgetc(zf);
	if (c == EOF)
	  corrupted(fullname, zf);
	buf[a]= (char)c;
      }
      for (a= 0; a < ncolors; a++)
	if (!strncmp(*(ctable + a), buf, cpp))
	  break;
      if (a == ncolors) { /* major uncool */
	zclose(zf);
	printf("%s: Pixel data doesn't match color data\n", fullname);
	exit(1);
      }
      valToMem((unsigned long)a, dptr, image->pixlen);
      dptr += image->pixlen;
    }
    if ((c= zgetc(zf)) != '"')
      corrupted(fullname, zf);
  }
  zclose(zf);
  return(image);
}

int xpixmapIdent(fullname, name)
     char *fullname, *name;
{ Image *image;

  if (image= xpixmapLoad(fullname, name, (unsigned int)1)) {
    freeImage(image);
    return(1);
  }
  return(0);
}

begin 644 xpixmap.i.bz2
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
+XNY(IPH2`QKJSR"=
`
end

>Fix: 
	Omit the ``-fstrength-reduce'' option... Removing other
	options (except for the -O metaoption) does not help...
>From hjl@lucon.org Sun Jul 02 09:06:00 2000
From: "H . J . Lu" <hjl@lucon.org>
To: Ulrich Drepper <drepper@cygnus.com>, amacleod@cygnus.com, jason@redhat.com
Cc: GNU libc testers <libc-alpha@sourceware.cygnus.com>, gcc-bugs@gcc.gnu.org
Subject: Re: Problems with exception handling in glibc and gcc.
Date: Sun, 02 Jul 2000 09:06:00 -0000
Message-id: <20000702090640.A30218@lucon.org>
References: <20000702084138.A30164@lucon.org>
X-SW-Source: 2000-07/msg00018.html
Content-length: 1576

On Sun, Jul 02, 2000 at 08:41:38AM -0700, H . J . Lu wrote:
> There is a problem with exception handling with gcc 2.96 > 20000625:
> 
> http://gcc.gnu.org/ml/gcc-bugs/2000-07/msg00009.html
> 
> It seems that it is due to that the exception handling change in gcc on
> 2000-06-26 and glibc contains the older copies of exception handling
> funtions from libgcc.a used to compile glibc.
> 
> I think we knew there would be a problem and we discussed how to
> deal with it. I even proposed a solution:
> 
> http://sourceware.cygnus.com/ml/libc-hacker/2000-06/msg00106.html
> http://sourceware.cygnus.com/ml/libc-hacker/2000-06/msg00120.html
> 
> I'd like to get it fixed. Should I investigaten it? I think we
> should not export the default version, only the old one for binary
> compatibility. We then make sure the main binary always export them
> if they are used.
> 

Andrew, Jason, glibc includes and re-exports functions in frame-dwarf2.o
in libgcc.a. With the changes made on 2000-06-26, can I assume the new
ones are no longer binary compatible with the old ones? If the answer
is no, they are binary compatible, then there are some bugs when
you mix old and new. If the answer is yes, the ABI is changed, then
I think we got a problem. Remember last time when we did it, we had
to rename the functions and keep the old ones in libgcc. I don't know
what the best solution is. But I believe we have to keep the old ones
around somehow so that when we compile glibc with the new gcc, the
resulting shared glibc is still binary compatible with the existing
binaries.


H.J.
>From law@cygnus.com Sun Jul 02 09:21:00 2000
From: Jeffrey A Law <law@cygnus.com>
To: Zack Weinberg <zack@wolery.cumb.org>
Cc: Geoff Keating <geoffk@cygnus.com>, gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: GCC and C89 Defect Report 106 
Date: Sun, 02 Jul 2000 09:21:00 -0000
Message-id: <19086.962554706@upchuck>
References: <20000701213927.A21757@wolery.cumb.org>
X-SW-Source: 2000-07/msg00019.html
Content-length: 925

  In message < 20000701213927.A21757@wolery.cumb.org >you write:
  > On Sat, Jul 01, 2000 at 09:02:20PM -0700, Geoff Keating wrote:
  > > > This is not an important issue, except in so far as it means we are
  > > > not 100% C89 conformant.
  > > 
  > > Could you install these in the testsuite (as compile tests I guess),
  > > and mark them as xfail, and put in a comment saying that they are from
  > > DR106?  That way at least we'll remember.
  > 
  > I'll do better: here's the fix.  Simple case of code not having been
  > updated for the recent change that made void an incomplete type.
  > 
  > zw
  > 
  > 	* c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
  > 	and VOID_TYPE_P.
Fine.


  > 	* gcc.c-torture/compile/20000701-1.c: New test.
What is the legal status of this code?  ie, did you lift it from the ftp/web
site in your earlier message, and what is the copyright status of that code?


jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <3958CBE0.CE7D574B@geneura.ugr.es>
@ 2000-06-27 23:29 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-06-27 23:29 UTC (permalink / raw)
  To: gustavo; +Cc: gcc-bugs

Thanks for your bug report. I've put it into GNATS.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Jun 27 23:29:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: jakob@ostenfeld.dtu.dk
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Bad assembly output from g++, 2.95.2
Date: Tue, 27 Jun 2000 23:29:00 -0000
Message-id: <200006280622.IAA00865@loewis.home.cs.tu-berlin.de>
References: <20000627223356.A19686@ostenfeld.dtu.dk>
X-SW-Source: 2000-06/msg00686.html
Content-length: 628

> I was just wondering if this would ring a bell to anyone.  I don't
> have a small test-case to provoke the error (yet), I just wanted to
> hear whether someone could say ``it's fixed in 2.96'' or something
> along those lines.

Thanks for your bug report. I believe the answer to that question is
no. Please note that you don't have to provide a small test case; just
sending the preprocessor output for the file would be fine, see

http://www.gnu.org/software/gcc/bugs.html

> By the way, the most stable C++ compiler yet, would that be 2.96, or
> still 2.95.2 ?

2.95.2 is the most stable C++ compiler yet.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Jun 27 23:59:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: f981500@FFZJ0LX0.bank.dresdner.net
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error in g++
Date: Tue, 27 Jun 2000 23:59:00 -0000
Message-id: <200006280641.IAA01137@loewis.home.cs.tu-berlin.de>
References: <0006271346.AA40448@FFZJ0LX0.bank.dresdner.net>
X-SW-Source: 2000-06/msg00688.html
Content-length: 246

Thanks for your bug report. The mainline compiler (2.96 20000624
(experimental)) reports

a.cc:16: no match for call to `(not_equal_to<_Tp>) (int)'

so the bug appears to be fixed. I assume you wanted to use bind1st
somewhere...

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Jun 27 23:59:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: M.Duflot@ulg.ac.be
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Bug report
Date: Tue, 27 Jun 2000 23:59:00 -0000
Message-id: <200006280643.IAA01151@loewis.home.cs.tu-berlin.de>
References: <3958A642.8CC98AEE@ulg.ac.be>
X-SW-Source: 2000-06/msg00687.html
Content-length: 69

Thanks for your bug report. I've put it into GNATS.

Regards,
Martin
>From David.Billinghurst@riotinto.com.au Wed Jun 28 00:18:00 2000
From: "Billinghurst, David (CRTS)" <David.Billinghurst@riotinto.com.au>
To: "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>
Subject: RE: egcs-20000626 bootstrap failure on i686-pc-cygwin
Date: Wed, 28 Jun 2000 00:18:00 -0000
Message-id: <A9E96A79C068D211A6A90000C07BDF0D4D4DD5@crtsmail.crts.techaust.riotinto.com.au>
X-SW-Source: 2000-06/msg00689.html
Content-length: 1933

fixed by http://gcc.gnu.org/ml/gcc-patches/2000-06/msg00915.html

> -----Original Message-----
> From:	Billinghurst, David (CRTS) 
> Sent:	Tuesday, 27 June 2000 13:23
> To:	'gcc-bugs@gcc.gnu.org'
> Subject:	egcs-20000626 bootstrap failure on i686-pc-cygwin
> 
> Bootstrap of current egcs-20000626 snapshot fails on i686-pc-cygwin (NT
> SP5)
> with
> 
> gcc  -DIN_GCC    -g -O2  -DHAVE_CONFIG_H  -o cc1.exe diagnostic.o toplev.o
> version.o tree.o print-tree.o stor-layout.o fold-const.o function.o stmt.o
> except.o expr.o calls.o expmed.o explow.o optabs.o real.o builtins.o
> intl.o
> varasm.o rtl.o print-rtl.o rtlanal.o emit-rtl.o genrtl.o dbxout.o sdbout.o
> dwarfout.o dwarf2out.o xcoffout.o bitmap.o alias.o gcse.o integrate.o
> jump.o
> cse.o loop.o unroll.o flow.o combine.o varray.o regclass.o regmove.o
> local-alloc.o global.o reload.o reload1.o caller-save.o insn-peep.o
> reorg.o
> haifa-sched.o final.o recog.o reg-stack.o regrename.o insn-opinit.o
> insn-recog.o insn-extract.o insn-output.o insn-emit.o lcm.o profile.o
> insn-attrtab.o i386.o winnt.o convert.o mbchar.o splay-tree.o graph.o
> sbitmap.o resource.o hash.o predict.o lists.o ggc-common.o ggc-page.o
> simplify-rtx.o ssa.o bb-reorder.o sibcall.o conflict.o timevar.o ifcvt.o
> c-parse.o c-lang.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o
> c-aux-info.o c-common.o c-iterate.o  obstack.o   ./intl/libintl.a
> -ladvapi32 ../libiberty/libiberty.a
> dwarf2out.o: In function `output_loc_operands':
> /usr/local/src/egcs-20000626/gcc/dwarf2out.c:2607: undefined reference to
> `ASM_OUTPUT_DWARF_DATA2'
> /usr/local/src/egcs-20000626/gcc/dwarf2out.c:2638: undefined reference to
> `ASM_OUTPUT_DWARF_DATA2'
> 
> +++++++++++++++++++++++++++++++++++++++++
> (Mr) David Billinghurst
> Comalco Research Centre
> PO Box 316, Thomastown, Vic, Australia, 3074
> Phone:	+61 3 9469 0642
> FAX:	+61 3 9462 2700
> Email:	David.Billinghurst@riotinto.com.au
> 
> 
>From peh@ffi.no Wed Jun 28 02:02:00 2000
From: Per Espen Hagen <peh@ffi.no>
To: gcc-bugs@gcc.gnu.org
Subject: Bug in gcc 2.95.2 optimizer for SPARC
Date: Wed, 28 Jun 2000 02:02:00 -0000
Message-id: <3959BF14.9B1D6CE2@ffi.no>
X-SW-Source: 2000-06/msg00690.html
Content-type: multipart/mixed; boundary="----------=_1583533109-4114-493"

This is a multi-part message in MIME format...

------------=_1583533109-4114-493
Content-length: 1493

Hello,

While developing a program for controlling autonomous underwater
vehicles, we have discovered a bug in GCC 2.95.2.  Specifically, the
optimizer (-O2) for SPARC generates incorrect code.


Host computer:
Sun Ultra 1 (also found on Ultra 2 and SS-10) running Solaris 7 MU 4.

% uname -a
SunOS hugin2 5.7 Generic_106541-08 sun4u sparc SUNW,Ultra-1

Compiler:
GCC 2.95.2, as downloaded from http://www.sunfreeware.com/
(pre-compiled)

% gcc -v
Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)


We have managed to reproduce the bug in a simple program.  Attached
please find a tar archive with the following files:

bug.c  - The program (378 bytes)
bug    - Executable (command line: "gcc -g -O2 -o bug bug.c")
output - Compilation command line and program output

Some of the code (such as the "case 2" in the switch) may seem like
noise, but it is necessary to trigger the bug.  The bug manifests itself
between line 19 and 28.  A member of a union (v.i) is divided by 1000
within the switch, but the new value is not preserved after the switch. 
In effect, the union member is treated as a local variable in the
switch.

The bug does not appear under the other platforms we use (Solaris x86,
Linux x86), nor does it appear when compiling with -O1 or without
optimization.

If you need any additional information, please mail me.

-- 
Per Espen Hagen, Principal Scientist
Norwegian Defence Research Establishment
bug.tar


------------=_1583533109-4114-493
Content-Type: application/x-tar; charset=application/x-tarbinary;
 name="bug.tar"
Content-Disposition: inline; filename="bug.tar"
Content-Transfer-Encoding: base64
Content-Length: 18048

YnVnLmMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADAxMDA2NjQAMDAxMTM0MwAwMDAwNzEwADAwMDAwMDAwNTcy
ADA3MTIzMzUyNjU2ADAwMTE3NzUAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMHBlaAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaHVnaW4AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAwMDAwMjYwADAwMDAwNDAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAjaW5jbHVkZSA8c3RkaW8uaD4KCnVuaW9uIHVu
aW9uX3QgewogIGRvdWJsZQlkOwogIGludAkJaTsKfTsKCmludCBtYWluKHZv
aWQpCnsKICBpbnQgaWQ7CiAgdW5pb24gdW5pb25fdCB2OwogIAogIHYuaSA9
IDEwMDA7CiAgZm9yIChpZCA9IDE7IGlkID09IDE7IGlkKyspIHsKICAgIHN3
aXRjaCAoaWQpIHsKICAgICAgY2FzZSAxOgoJcHJpbnRmKCIxICVkXG4iLCB2
LmkpOwoJdi5pIC89IDEwMDA7CglwcmludGYoIjIgJWRcbiIsIHYuaSk7Cgli
cmVhazsKICAgICAgY2FzZSAyOgoJaWYgKHYuZCA+IDYpCgkgIHYuZCAtPSA2
OwoJZWxzZQoJICB2LmQgKz0gNjsKCWJyZWFrOwogICAgfQogICAgcHJpbnRm
KCIzICVkXG4iLCB2LmkpOwogIH0KICByZXR1cm4gMDsKfQoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG91dHB1dAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw
MTAwNjY0ADAwMTEzNDMAMDAwMDcxMAAwMDAwMDAwMDIyMAAwNzEyNjMzNTIx
NwAwMDEyMzIyADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDBwZWgAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGh1Z2luAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAMDAwMDI2MAAwMDAwMDQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAJSBnY2MgYnVnLmMgLU8xIC1vIGJ1ZyAmJiBidWcKMSAxMDAwCjIg
MQozIDEKJSBnY2MgYnVnLmMgLU8yIC1vIGJ1ZyAmJiBidWcKMSAxMDAwCjIg
MQozIDEwMDAKJSBnY2MgYnVnLmMgLU8yIC1nIC1vIGJ1ZyAmJiBidWcKMSAx
MDAwCjIgMQozIDEwMDAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABidWcAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc3NQAwMDEx
MzQzADAwMDA3MTAAMDAwMDAwMjI1MTAAMDcxMjYzMzUxNjIAMDAxMTU0NwAw
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHVzdGFyADAwcGVoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABodWdpbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAyNjAA
MDAwMDA0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9FTEYB
AgEAAAAAAAAAAAAAAgACAAAAAQABB5gAAAA0AAAgwAAAAAAANAAgAAUAKAAd
ABoAAAAGAAAANAABADQAAAAAAAAAoAAAAKAAAAAFAAAAAAAAAAMAAADUAAAA
AAAAAAAAAAARAAAAAAAAAAQAAAAAAAAAAQAAAAAAAQAAAAAAAAAACrgAAAq4
AAAABQABAAAAAAABAAAKuAACCrgAAAAAAAABbAAAAYgAAAAHAAEAAAAAAAIA
AAtgAAILYAAAAAAAAACoAAAAAAAAAAcAAAAAL3Vzci9saWIvbGQuc28uMQAA
AAAAAAAfAAAAMQAAACQAAAAtAAAAJwAAACkAAAAlAAAAAAAAAAAAAAAAAAAA
AAAAACwAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAMAAAAAAAAAAA
AAAAAAAAACAAAAAAAAAALwAAAAAAAAAAAAAALgAAAAAAAAAAAAAAIwAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe
AAAAAAAAAAAAAAAAAAAAAAAAAB0AAAAmAAAAIQAAAAAAAAAoAAAAAAAAAAAA
AAArAAAAAAAAAAAAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQDUAAAAAAMA
AAEAAAAAAAEA6AAAAAADAAACAAAAAAABAjAAAAAAAwAAAwAAAAAAAQVAAAAA
AAMAAAQAAAAAAAEHAAAAAAADAAAFAAAAAAABByAAAAAAAwAABgAAAAAAAQc4
AAAAAAMAAAcAAAAAAAEHRAAAAAADAAAIAAAAAAABB5gAAAAAAwAACQAAAAAA
AQpcAAAAAAMAAAoAAAAAAAEKeAAAAAADAAALAAAAAAABCpAAAAAAAwAADAAA
AAAAAgq4AAAAAAMAAA0AAAAAAAIK2AAAAAADAAAOAAAAAAACC2AAAAAAAwAA
DwAAAAAAAgwIAAAAAAMAABAAAAAAAAIMEAAAAAADAAARAAAAAAACDBgAAAAA
AwAAEgAAAAAAAgwgAAAAAAMAABMAAAAAAAIMJAAAAAADAAAUAAAAAAAAAAAA
AAAAAwAAFQAAAAAAAAAAAAAAAAMAABYAAAAAAAAAAAAAAAADAAAXAAAAAAAA
AAAAAAAAAwAAGAAAAAAAAAAAAAAAAAMAABkAAAAAAAAAAAAAAAADAAAaAAAA
AAAAAAAAAAAAAwAAGwAAAAAAAAAAAAAAAAMAABwAAAABAAEHmAAAAHQSAAAJ
AAAACAACDDwAAAAEEQAAFAAAABEAAgxAAAAAABEAABQAAAAWAAAAAAAAAAAg
AAAAAAAALAACCrgAAAAAEQAADQAAAEIAAgsIAAAAABIAAAAAAABJAAILFAAA
AAASAAAAAAAATgABClwAAAAcEgAACgAAAFQAAgtgAAAAABEAAA8AAABdAAIL
RAAAAAASAAAAAAAAZAACCyAAAAAAEgAAAAAAAGoAAgw8AAAABCEAABQAAABy
AAAAAAAAAAAgAAAAAAAAigACDCQAAAAAEQAAEwAAAJEAAgrYAAAAABEAAA4A
AACrAAEKuAAAAAARAAAMAAAAsgABCpAAAAAEEQAADAAAAL8AAQksAAAAzBIA
AAkAAADEAAILUAAAAAASAAAAAAAAyQABCngAAAAUEgAACwBfc3RhcnQAX2Vu
dmlyb24AX2VuZABfX3JlZ2lzdGVyX2ZyYW1lX2luZm8AX0dMT0JBTF9PRkZT
RVRfVEFCTEVfAGF0ZXhpdABleGl0AF9pbml0AF9EWU5BTUlDAHByaW50ZgBf
ZXhpdABlbnZpcm9uAF9fZGVyZWdpc3Rlcl9mcmFtZV9pbmZvAF9lZGF0YQBf
UFJPQ0VEVVJFX0xJTktBR0VfVEFCTEVfAF9ldGV4dABfbGliX3ZlcnNpb24A
bWFpbgAuZGl2AF9maW5pAGxpYmMuc28uMQBTWVNWQUJJXzEuMwBsaWJjLnNv
LjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAAAzwAAABAA
AAAABTfMswAAAAAAAADZAAAAAAACCtQAACkUAAAAAAACCtAAACAUAAAAAAAC
DDwAAB4TAAAAAAACCwgAACIVAAAAAAACCxQAACMVAAAAAAACCyAAACcVAAAA
AAACCywAACkVAAAAAAACCzgAACAVAAAAAAACC0QAACYVAAAAAAACC1AAAC8V
AAAAALwQIADgA6BAogOgRJwjoCCAkAABAoAABJAQAAFAAEDVAQAAABEAAEKQ
EiJ4QABA0QEAAABAAACkAQAAAJAQABCSEAARlSwgApQCoASUBEAKFwAAg5YS
4DzUIsAAQAAATgEAAABAAEDGAQAAAEAAQMcBAAAAgcPgCK4DwBed47+QEQAA
AC8AAEB////7rgXimJASIAzSBcAI1AJAAICioAASgAAjEQAAAJASIBDUBcAI
0gKAANACQACAoiAAAoAADxEAAACgEAAK0AQAAJACIATQJAAA0gI//J/CQAAB
AAAA0AQAANICAACAomAAEr//+ZACIAQRAAAAkBIgHNIFwAiAomAAAoAABRMA
AACSEmAIQABAodAFwAkRAAAAkBIgDNQFwAiSECAB0iKAAIHH4AiB6AAAneO/
kIHH4AiB6AAAneO/kBEAAAAvAABAf///yq4F4dSQEiAY0gXACICiYAACgAAI
EwAAAJISYAgVAAAA0AXACZQSoARAAECK0gXACoHH4AiB6AAAneO/kIHH4AiB
6AAAneO/iJAQI+jQJ7/wxQe/8LAQIAElAABCIwAAQiEAAEKApiABAoAABoCm
IAICgAAWFQAAQhCAABvFJ7/wxSe/8NQHv/DFP7/okhAACkAAQHOQFGKYxR+/
6MUnv/DSB7/wkBAACUAAQHCSECPokhAACNAnv/BAAEBpkBQioBCAAAjFH7/o
yRqisIGoisQBAAAAPYAAA4WgiESFoIjExSe/8NQHv/DFP7/okBSiqEAAQFuS
EAAKsAYgAYCmIAECv//axR+/6IHH4AiR6CAAgcPgCK4DwBed47+QEQAAAC8A
AEB////7rgXgrJASIBTSBcAI1AJ//ICiv/8CgAAJoAJ//NAEAACfwgAAoAQ/
/NAEAACAoj//Er//+wEAAACBx+AIgegAAJ3jv5CBx+AIgegAAJ3jv6B///+e
AQAAAH///+YBAAAAgcfgCIHoAACd47+gf///ZgEAAACBx+AIgegAAAAAAAAA
AAABAAAAADEgJWQKAAAAMiAlZAoAAAAzICVkCgAAAEAYAAAAAAAAAAILYAAC
DCQAAgwgAAIMDAACDAgAAgwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAwML//8wEAAAADAAA8
ML//8AEAAAADAABIML//7QEAAAADAABUML//6gEAAAADAABgML//5wEAAAAD
AABsML//5AEAAAADAAB4ML//4QEAAAABAAAAAAAAAQAAAOUAAAAMAAEKXAAA
AA0AAQp4AAAABAABAOgAAAAFAAEFQAAAAAoAAAG9AAAABgABAjAAAAALAAAA
EG///fgAAIzdb////gABBwBv////AAAAAQAAAAMAAgrYAAAAAgAAAFQAAAAU
AAAABwAAABcAAQdEAAAABwABByAAAAAIAAAAeAAAAAkAAAAMAAAAFQAAAABv
//38AAAAAQAAAAAAAAAAAAIMHAAAAAD/////AAAAAP////8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAEAP/xAAAAAAABANQAAAAAAwAA
AQAAAAAAAQDoAAAAAAMAAAIAAAAAAAECMAAAAAADAAADAAAAAAABBUAAAAAA
AwAABAAAAAAAAQcAAAAAAAMAAAUAAAAAAAEHIAAAAAADAAAGAAAAAAABBzgA
AAAAAwAABwAAAAAAAQdEAAAAAAMAAAgAAAAAAAEHmAAAAAADAAAJAAAAAAAB
ClwAAAAAAwAACgAAAAAAAQp4AAAAAAMAAAsAAAAAAAEKkAAAAAADAAAMAAAA
AAACCrgAAAAAAwAADQAAAAAAAgrYAAAAAAMAAA4AAAAAAAILYAAAAAADAAAP
AAAAAAACDAgAAAAAAwAAEAAAAAAAAgwQAAAAAAMAABEAAAAAAAIMGAAAAAAD
AAASAAAAAAACDCAAAAAAAwAAEwAAAAAAAgwkAAAAAAMAABQAAAAAAAAAAAAA
AAADAAAVAAAAAAAAAAAAAAAAAwAAFgAAAAAAAAAAAAAAAAMAABcAAAAAAAAA
AAAAAAADAAAYAAAAAAAAAAAAAAAAAwAAGQAAAAAAAAAAAAAAAAMAABoAAAAA
AAAAAAAAAAADAAAbAAAAAAAAAAAAAAAAAwAAHAAAAU0AAQAAAAAAAAEAAAEA
AAGhAAIMQAAAAAABAAAUAAAABQAAAAAAAAAABAD/8QAAAAwAAAAAAAAAAAQA
//EAAAAYAAAAAAAAAAAEAP/xAAAAIwABCBQAAAAAAgAACQAAADkAAQjYAAAA
AAIAAAkAAABFAAEIDAAAAAAAAAAJAAAAVAACDBAAAAAAAQAAEAAAAGIAAgwQ
AAAAAAEAABEAAABwAAIMJAAAABgBAAAUAAAAegACDBgAAAAAAQAAEgAAAIgA
AgwgAAAAAAEAABMAAACbAAEJIAAAAAACAAAJAAAApgACDAwAAAAAAQAAEAAA
ALIAAQjMAAAAAAIAAAkAAAC9AAIMCAAAAAABAAAQAAAAwQAAAAAAAAAABAD/
8QAAAMcAAQn4AAAAAAAAAAkAAADOAAAAAAAAAAAEAP/xAAAA2QACDBwAAAAA
AQAAEgAAAOYAAQoAAAAAAAIAAAkAAAD8AAIMFAAAAAABAAARAAABCQABCfgA
AAAAAAAACQAAARgAAgwQAAAAAAEAABAAAAEmAAEKUAAAAAACAAAJAAABMQAC
DCAAAAAAAQAAEwAAAT8AAAAAAAAAAAQA//EAAAFGAAEHmAAAAHQSAAAJAAAB
VQACDDwAAAAEEQAAFAAAAV4AAgxAAAAAABEAABQAAAFjAAAAAAAAAAAgAAAA
AAABeQACCrgAAAAAEQAADQAAAY8AAgsIAAAAABIAAAAAAAGWAAILFAAAAAAS
AAAAAAABmwABClwAAAAcEgAACgAAAacAAgtgAAAAABEAAA8AAAGwAAILRAAA
AAASAAAAAAABtwACCyAAAAAAEgAAAAAAAb0AAgw8AAAABCEAABQAAAHFAAAA
AAAAAAAgAAAAAAAB3QACDCQAAAAAEQAAEwAAAeQAAgrYAAAAABEAAA4AAAH+
AAEKuAAAAAARAAAMAAACBQABCpAAAAAEEQAADAAAAhIAAQksAAAAzBIAAAkA
AAIXAAILUAAAAAASAAAAAAACHAABCngAAAAUEgAACwBidWcAY3J0aS5zAHZh
bHVlcy1YYS5jAGNydHN0dWZmLmMAX19kb19nbG9iYWxfZHRvcnNfYXV4AGZy
YW1lX2R1bW15AGdjYzJfY29tcGlsZWQuAGZvcmNlX3RvX2RhdGEAX19DVE9S
X0xJU1RfXwBvYmplY3QuMTEAX19EVE9SX0xJU1RfXwBfX0VIX0ZSQU1FX0JF
R0lOX18AaW5pdF9kdW1teQBjb21wbGV0ZWQuNABmaW5pX2R1bW15AHAuMwBi
dWcuYwBMZXRleHQAY3J0c3R1ZmYuYwBfX0RUT1JfRU5EX18AX19kb19nbG9i
YWxfY3RvcnNfYXV4AF9fQ1RPUl9FTkRfXwBnY2MyX2NvbXBpbGVkLgBmb3Jj
ZV90b19kYXRhAGluaXRfZHVtbXkAX19GUkFNRV9FTkRfXwBjcnRuLnMAX3N0
YXJ0AF9TVEFSVF8AX2Vudmlyb24AX2VuZABfX3JlZ2lzdGVyX2ZyYW1lX2lu
Zm8AX0dMT0JBTF9PRkZTRVRfVEFCTEVfAGF0ZXhpdABleGl0AF9pbml0AF9F
TkRfAF9EWU5BTUlDAHByaW50ZgBfZXhpdABlbnZpcm9uAF9fZGVyZWdpc3Rl
cl9mcmFtZV9pbmZvAF9lZGF0YQBfUFJPQ0VEVVJFX0xJTktBR0VfVEFCTEVf
AF9ldGV4dABfbGliX3ZlcnNpb24AbWFpbgAuZGl2AF9maW5pAABhczogV29y
a1Nob3AgQ29tcGlsZXJzIDUuMCBBbHBoYSAwMy8yNy85OCBCdWlsZAoAAGFz
OiBXb3JrU2hvcCBDb21waWxlcnMgNS4wIEFscGhhIDAzLzI3Lzk4IEJ1aWxk
CgAAQCgjKVN1bk9TIDUuNyBHZW5lcmljIE9jdG9iZXIgMTk5OAAAYXM6IFdv
cmtTaG9wIENvbXBpbGVycyA1LjAgQWxwaGEgMDMvMjcvOTggQnVpbGQKAEdD
QzogKEdOVSkgMi45NS4yIDE5OTkxMDI0IChyZWxlYXNlKQAAYXM6IFdvcmtT
aG9wIENvbXBpbGVycyA1LjAgOTgvMTIvMjEKAEdDQzogKEdOVSkgMi45NS4y
IDE5OTkxMDI0IChyZWxlYXNlKQAAYXM6IFdvcmtTaG9wIENvbXBpbGVycyA1
LjAgQWxwaGEgMDMvMjcvOTggQnVpbGQKAEdDQzogKEdOVSkgMi45NS4yIDE5
OTkxMDI0IChyZWxlYXNlKQAAYXM6IFdvcmtTaG9wIENvbXBpbGVycyA1LjAg
QWxwaGEgMDMvMjcvOTggQnVpbGQKAGxkOiBTb2Z0d2FyZSBHZW5lcmF0aW9u
IFV0aWxpdGllcyAtIFNvbGFyaXMvRUxGICgzLjApAAAAAAABAAAAAgAAAXEA
AAANPAAAAAAAAAAAAABJNAAAAAAAAAAAAAABAAAARgAABd8AAAAHZAAAAAAB
CSwAAAAaZAAAAAABCSwAAAAgPAAAAAAAAAAAAAAvgAAAAAAAAAAAAABegAAA
AAAAAAAAAAB4gAAAAAAAAAAAAACsgAAAAAAAAAAAAADkgAAAAAAAAAAAAAEh
gAAAAAAAAAAAAAFtgAAAAAAAAAAAAAG5gAAAAAAAAAAAAAHfgAAAAAAAAAAA
AAIJgAAAAAAAAAAAAAIvgAAAAAAAAAAAAAJUgAAAAAAAAAAAAAJugAAAAAAA
AAAAAAKJgAAAAAAAAAAAAAKqgAAAAAAAAAAAAALjgAAAAAAAAAAAAAMGgAAA
AAAAAAAAAAMqgAAAAAAAAAAAAANUgAAAAAAAAAAAAANoggAAAAAAAAAAAAN9
ggAAAAAAAAAAAAOeggAAAAAAAAAAAAAAogAAAAAAAAAAAAAAogAAAAAAAAAA
AAO6ggAAAAAAAAAAAAPVgAAAGgAAAAAAAAAAogAAAAAAAAAAAAP0ggAAAAAA
AAAAAAQNgAAAFQAAAAAAAAAAogAAAAAAAAAAAAQrggAAAAAAAAAAAARFgAAA
FgAAAAAAAARagAAAAAAAAAAAAAAAogAAAAAAAAAAAAT8gAAAKQAAAAAAAAUO
gAAAMQAAAAAAAAUigAAAPAAAAAAAAAU8gAAASgAAAAAAAAVPgAAAUgAAAAAA
AAVkgAAAWQAAAAAAAAV4gAAAYQAAAAAAAAAAogAAAAAAAAAAAAWOgAAAAAAA
AAAAAAW9JAAACQABCSwAAAAARAAACQAAAAAAAAAARAAACgAAAAQAAAAARAAA
DQAAAAQAAAAARAAADgAAABAAAAAARAAADwAAACAAAAAARAAAEQAAADwAAAAA
RAAAEgAAAFQAAAAARAAAEwAAAGwAAAAARAAAEgAAAHAAAAAARAAAEwAAAHQA
AAAARAAAFAAAAHwAAAAARAAAFgAAAIQAAAAARAAAFwAAAJgAAAAARAAAHAAA
AJwAAAAARAAADgAAALQAAAAARAAAHgAAAMQAAAAARAAAHwAAAMQAAAXJQAAA
CgAAABgAAAXTQAAACwAAACIAAAAAwAAAAAAAAAQAAAAA4AAAAAAAAMQAAAXd
JAAAAAAAAMwAAAXeZAAAAAABCfgALmludGVycAAuaGFzaAAuZHluc3ltAC5k
eW5zdHIALlNVTldfdmVyc2lvbgAucmVsYS5nb3QALnJlbGEuYnNzAC5yZWxh
LnBsdAAudGV4dAAuaW5pdAAuZmluaQAucm9kYXRhAC5nb3QALnBsdAAuZHlu
YW1pYwAuZGF0YQAuY3RvcnMALmR0b3JzAC5laF9mcmFtZQAuYnNzAC5zeW10
YWIALnN0cnRhYgAuY29tbWVudAAuc3RhYi5pbmRleAAuc3RhYgAuc2hzdHJ0
YWIALnN0YWIuaW5kZXhzdHIALnN0YWJzdHIAAHZhbHVlcy1YYS5jAFh0IDsg
TyA7IFY9My4xIDsgUj1Xb3JrU2hvcCBDb21waWxlcnMgNC4yIDMwIE9jdCAx
OTk2IEMgNC4yAC9idWlsZHMzL3M5OThfMjFhL3Vzci9zcmMvbGliL2xpYmMv
c3BhcmM7IC9vcHQvU1VOV3Nwcm8uNDAvU0M0LjIvYmluLy4uL1NDNC4yL2Jp
bi9jYyAteE8zIC14Y2c4OSAtV2EsLWNnOTIgLXhzcGFjZSAtVzAsLUx0IC1Y
dCAtRF9SRUVOVFJBTlQgLURzcGFyYyAtSWluYyAtSS4uL2luYyAtRFRFWFRf
RE9NQUlOPSciU1VOV19PU1RfT1NMSUIiJyAtSS9idWlsZHMzL3M5OThfMjFh
L3Byb3RvL3Jvb3Rfc3BhcmMvdXNyL2luY2x1ZGUgLWMgLW8gdmFsdWVzLVhh
Lm8gIC4uL3BvcnQvZ2VuL3ZhbHVlcy1YYS5jIC1XMCwteHAAAGJ1Zy5jAC91
c2VyL3BlaC9nY2MtYnVnLwBidWcuYwBnY2MyX2NvbXBpbGVkLgBpbnQ6dCgw
LDEpPXIoMCwxKTswMDIwMDAwMDAwMDAwOzAwMTc3Nzc3Nzc3Nzc7AGNoYXI6
dCgwLDIpPXIoMCwyKTswOzEyNzsAbG9uZyBpbnQ6dCgwLDMpPXIoMCwxKTsw
MDIwMDAwMDAwMDAwOzAwMTc3Nzc3Nzc3Nzc7AHVuc2lnbmVkIGludDp0KDAs
NCk9cigwLDEpOzAwMDAwMDAwMDAwMDA7MDAzNzc3Nzc3Nzc3NzsAbG9uZyB1
bnNpZ25lZCBpbnQ6dCgwLDUpPXIoMCwxKTswMDAwMDAwMDAwMDAwOzAwMzc3
Nzc3Nzc3Nzc7AGxvbmcgbG9uZyBpbnQ6dCgwLDYpPXIoMCwxKTswMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDswNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3OwBsb25n
IGxvbmcgdW5zaWduZWQgaW50OnQoMCw3KT1yKDAsMSk7MDAwMDAwMDAwMDAw
MDswMTc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzsAc2hvcnQgaW50OnQoMCw4KT1y
KDAsOCk7LTMyNzY4OzMyNzY3OwBzaG9ydCB1bnNpZ25lZCBpbnQ6dCgwLDkp
PXIoMCw5KTswOzY1NTM1OwBzaWduZWQgY2hhcjp0KDAsMTApPXIoMCwxMCk7
LTEyODsxMjc7AHVuc2lnbmVkIGNoYXI6dCgwLDExKT1yKDAsMTEpOzA7MjU1
OwBmbG9hdDp0KDAsMTIpPXIoMCwxKTs0OzA7AGRvdWJsZTp0KDAsMTMpPXIo
MCwxKTs4OzA7AGxvbmcgZG91YmxlOnQoMCwxNCk9cigwLDEpOzE2OzA7AGNv
bXBsZXggaW50OnQoMCwxNSk9czhyZWFsOigwLDEpLDAsMzI7aW1hZzooMCwx
KSwzMiwzMjs7AGNvbXBsZXggZmxvYXQ6dCgwLDE2KT1yKDAsMTYpOzQ7MDsA
Y29tcGxleCBkb3VibGU6dCgwLDE3KT1yKDAsMTcpOzg7MDsAY29tcGxleCBs
b25nIGRvdWJsZTp0KDAsMTgpPXIoMCwxOCk7MTY7MDsAdm9pZDp0KDAsMTkp
PSgwLDE5KQAvdXNyL2luY2x1ZGUvc3RkaW8uaAAvdXNyL2luY2x1ZGUvc3lz
L2ZlYXR1cmVfdGVzdHMuaAAvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgA
L3Vzci9pbmNsdWRlL3N5cy92YV9saXN0LmgAX192YV9saXN0OnQoNCwxKT0o
NCwyKT0qKDAsMTkpAC91c3IvaW5jbHVkZS9zdGRpb190YWcuaABfX0ZJTEU6
dCg1LDEpPSg1LDIpPXhzX19GSUxFOgAvdXNyL2luY2x1ZGUvc3RkaW9faW1w
bC5oAHNzaXplX3Q6dCg2LDEpPSgwLDEpAF9fRklMRTpUKDUsMik9czE2X2Nu
dDooNiwxKSwwLDMyO19wdHI6KDYsMik9KigwLDExKSwzMiwzMjtfYmFzZToo
NiwyKSw2NCwzMjtfZmxhZzooMCwxMSksOTYsODtfZmlsZTooMCwxMSksMTA0
LDg7X19vcmllbnRhdGlvbjooMCw0KSwxMTIsMjtfX2ZpbGxlcjooMCw0KSwx
MTQsNjs7AEZJTEU6dCgxLDEpPSg1LDEpAHNpemVfdDp0KDEsMik9KDAsNCkA
X19sb25nbG9uZ190OnQoMSwzKT0oMCw2KQBvZmZfdDp0KDEsNCk9KDAsMykA
b2ZmNjRfdDp0KDEsNSk9KDEsMykAZnBvc190OnQoMSw2KT0oMCwzKQBmcG9z
NjRfdDp0KDEsNyk9KDEsMykAdW5pb25fdDpUKDAsMjApPXU4ZDooMCwxMyks
MCw2NDtpOigwLDEpLDAsMzI7OwBtYWluOkYoMCwxKQBpZDpyKDAsMSkAdjpy
KDAsMjApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAAABAAAAAgABANQAAADUAAAAEQAAAAAAAAAAAAAAAQAAAAAA
AAAJAAAABQAAAAIAAQDoAAAA6AAAAUgAAAADAAAAAAAAAAQAAAAEAAAADwAA
AAsAAAACAAECMAAAAjAAAAMQAAAABAAAAB0AAAAEAAAAEAAAABcAAAADAAAA
AgABBUAAAAVAAAABvQAAAAAAAAAAAAAAAQAAAAAAAAAfb////gAAAAIAAQcA
AAAHAAAAACAAAAAEAAAAAQAAAAQAAAAAAAAALQAAAAQAAAACAAEHIAAAByAA
AAAYAAAAAwAAAA0AAAAEAAAADAAAADcAAAAEAAAAAgABBzgAAAc4AAAADAAA
AAMAAAAUAAAABAAAAAwAAABBAAAABAAAAAIAAQdEAAAHRAAAAFQAAAADAAAA
DgAAAAQAAAAMAAAASwAAAAEAAAAGAAEHmAAAB5gAAALEAAAAAAAAAAAAAAAE
AAAAAAAAAFEAAAABAAAABgABClwAAApcAAAAHAAAAAAAAAAAAAAABAAAAAAA
AABXAAAAAQAAAAYAAQp4AAAKeAAAABQAAAAAAAAAAAAAAAQAAAAAAAAAXQAA
AAEAAAACAAEKkAAACpAAAAAoAAAAAAAAAAAAAAAIAAAAAAAAAGUAAAABAAAA
AwACCrgAAAq4AAAAIAAAAAAAAAAAAAAABAAAAAQAAABqAAAAAQAAAAcAAgrY
AAAK2AAAAIgAAAAAAAAAAAAAAAQAAAAMAAAAbwAAAAYAAAADAAILYAAAC2AA
AACoAAAABAAAAAAAAAAEAAAACAAAAHgAAAABAAAAAwACDAgAAAwIAAAACAAA
AAAAAAAAAAAABAAAAAAAAAB+AAAAAQAAAAMAAgwQAAAMEAAAAAgAAAAAAAAA
AAAAAAQAAAAAAAAAhQAAAAEAAAADAAIMGAAADBgAAAAIAAAAAAAAAAAAAAAE
AAAAAAAAAIwAAAABAAAAAwACDCAAAAwgAAAABAAAAAAAAAAAAAAABAAAAAAA
AACWAAAACAAAAAMAAgwkAAAMJAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAmwAA
AAIAAAAAAAAAAAAADCQAAATgAAAAFgAAADoAAAAEAAAAEAAAAKMAAAADAAAA
AAAAAAAAABEEAAACIgAAAAAAAAAAAAAAAQAAAAAAAACrAAAAAQAAAAAAAAAA
AAATJgAAAekAAAAAAAAAAAAAAAEAAAAAAAAAtAAAAAEAAAAAAAAAAAAAFRAA
AAAkAAAAAAAAAAAAAAAEAAAADAAAAMAAAAABAAAAAAAAAAAAABU0AAADVAAA
AAAAAAAAAAAABAAAAAwAAADGAAAAAwAAAAAAAAAAAAAYiAAAAOgAAAAAAAAA
AAAAAAEAAAAAAAAA0AAAAAMAAAAAAAAAAAAAGXAAAAFxAAAAAAAAAAAAAAAB
AAAAAAAAAN8AAAADAAAAAAAAAAAAABrhAAAF3wAAAAAAAAAAAAAAAQAAAAAA
ACIVAAAAAAACCxQAACMVAAAAAAACCyAAACcVAAAAAAACCywAACkVAAAAAAAC
CzgAACAVAAAAAAACC0QAACYVAAAAAAACC1AAAC8VAAAAALwQIADgA6BAogOg
RJwjoCCAkAABAoAABJAQAAFAAEDVAQAAABEAAEKQEiJ4QABA0QEAAABAAACk
AQAAAJAQABCSEAARlSwgApQCoASUBEAKFwAAg5YS4DzUIsAAQAAATgEAAABA
AEDGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

------------=_1583533109-4114-493--
>From Franz.Sirl-kernel@lauterbach.com Wed Jun 28 02:51:00 2000
From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
To: Cort Dougan <cort@fsmlabs.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Linux/PPC gcc 2.95.2 - bad access generated when using inline func
Date: Wed, 28 Jun 2000 02:51:00 -0000
Message-id: <4.3.2.7.2.20000628114753.00b8ae70@mail.lauterbach.com>
References: <20000627192947.B608@medea.fsmlabs.com>
X-SW-Source: 2000-06/msg00691.html
Content-length: 2225

Hi Cort,

I'll look at your report in detail later today, in the meantime, can you 
please try the new gcc-2.95.3-2c on 
< ftp://devel.linuxppc.org/users/fsirl/R5/RPMS/ppc/ >? I've just finished 
backporting a bunch of patches and maybe this one is already fixed.

Franz.


At 03:29 28.06.00, Cort Dougan wrote:
>GCC and system version
>---
>Reading specs from /usr/lib/gcc-lib/powerpc-unknown-linux-gnu/2.95.2/specs
>gcc version 2.95.2 19991024 (release)
>cort@medea<cort>$ uname -a
>Linux medea.fsmlabs.com 2.2.17pre5 #8 SMP Sun Jun 25 00:09:10 MDT 2000 ppc 
>unknown
>
>GCC command line and files
>---
>gcc -I/sys/linux/include -I/sys/rtlinux/include 
>-I/sys/rtlinux/include/compat  -I/sys/rtlinux/include/posix -Wall 
>-Wstrict-prototypes -O2 -g -D__RTL__ -D__KERNEL__ -DMODULE -D__powerpc__ 
>-fsigned-char -msoft-float -pipe -fno-builtin -ffixed-r2 
>-Wno-uninitialized -mmultiple -mstring -DMODVERSIONS -include 
>/sys/linux/include/linux/modversions.h  -D__powerpc__  -c rtl_core.c -o 
>rtl_core.o
>
>Preprocessed output is attached (rtl_core.i.bz2)
>
>I'm also attaching bitops.h and rtl_core.c.
>
>The problem
>---
>Calling change_bit() when it's an inline will cause a load from a bad
>address when change_bit() is called from a leaf function.  If a call to a
>function (even an empty one) in the same function that calls change_bit()
>then no bad access happens.
>
>I switched the Linux/PPC bitops (file attached) to be inline rather than
>actual function calls.  Now, RTLinux dies when I run it.
>
>The problem shows up in rtl_soft_cli() when it does a L_CLEAR() which is a
>define that does a change_bit() (which is now inline).  As the function
>rtl_soft_cli() is now gcc produces asm that tries a load from a bad
>address.  If I make rtl_soft_cli() a non-leaf function (by making a call to
>an empty function) the code runs without trouble.  The only difference in
>the asm generated is the prologue/epilogue save/restore of some general
>purpose registers.
>
>I've checked the constraints in change_bit() and think they're correct.  I
>included bitops.h in case they're not.
>
>I can provide the whole source tree for RTL (it's small) and a recipe to
>reproduce the problem and workaround if you need.
>
>


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 2000-06-16  3:33 Andreas Knüpfer
  0 siblings, 0 replies; 387+ messages in thread
From: Andreas Knüpfer @ 2000-06-16  3:33 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 2398 bytes --]

hello,

found an internal compiler error in g++ while accessing the std::vector
procs
like 

	procs.stack.push( symbols[c].number );

instead of 

	procs[d].stack.push( symbols[c].number );
.
*.ii is attached.

> g++ -v --save-temps -O3 -Wall -c gcct2vpt_main.cpp


Reading specs from
/usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/cpp -lang-c++ -v
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dunix
-Dmips -Dsgi -Dhost_mips -DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_LONGLONG
-D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix__ -D__mips__ -D__sgi__
-D__host_mips__ -D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__ -D_LONGLONG
-D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix -D__mips -D__sgi
-D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4)
-Acpu(mips) -Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__
-D__OPTIMIZE__ -Wall -D__LANGUAGE_C -D_LANGUAGE_C -DLANGUAGE_C
-D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__
-D_SGI_SOURCE -D_MIPS_FPSET=32 -D_MIPS_ISA=_MIPS_ISA_MIPS3 -D_ABIN32=2
-D_MIPS_SIM=_ABIN32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32
-D_COMPILER_VERSION=601 -U__mips -D__mips=3 -D__mips64 gcct2vpt_main.cpp
gcct2vpt_main.ii
GNU CPP version 2.95.2 19991024 (release) [AL 1.1, MM 40] SGI running
IRIX 6.x
#include "..." search starts here:
#include <...> search starts here:
 /usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/include/g++
 /usr/local/include
 /usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:

/usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/../../../../mips-sgi-irix6.2/include
End of omitted list.
 /usr/freeware/lib/gcc-lib/mips-sgi-irix6.2/2.95.2/cc1plus
gcct2vpt_main.ii -quiet -dumpbase gcct2vpt_main.cc -O3 -Wall -version -o
gcct2vpt_main.s
GNU C++ version 2.95.2 19991024 (release) (mips-sgi-irix6.2) compiled by
GNU C version 2.95.2 19991024 (release).
gcct2vpt_main.cpp: In function `void process()':
gcct2vpt_main.cpp:230: warning: int format, pointer arg (arg 5)
gcct2vpt_main.cpp:240: Internal compiler error.
gcct2vpt_main.cpp:240: Please submit a full bug report.
gcct2vpt_main.cpp:240: See
<URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
gcct2vpt_main.ii.gz


[-- Attachment #2: gcct2vpt_main.ii.gz --]
[-- Type: application/x-gzip, Size: 35250 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler error
@ 2000-06-12 10:29 Paul C. Lounsbury
  0 siblings, 0 replies; 387+ messages in thread
From: Paul C. Lounsbury @ 2000-06-12 10:29 UTC (permalink / raw)
  To: gcc-bugs

The attached code gives an internal compiler error.
command line: g++ -Wall -v boggle.C

using SunOS release 5.7 generic
Desktop: CDE 1.3.5, OpenWindows Ver. 3.6.1
Network Domain: cs.ucsb.edu
>From zack@wolery.cumb.org Mon Jun 12 10:35:00 2000
From: Zack Weinberg <zack@wolery.cumb.org>
To: Tim Prince <tprince@computer.org>, Bernd Schmidt <bernds@cygnus.co.uk>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Bootstrap failure - unrecognizable insn compiling f/target.c
Date: Mon, 12 Jun 2000 10:35:00 -0000
Message-id: <20000612103450.R8101@wolery.cumb.org>
References: <20000611225704.Q8101@wolery.cumb.org> <001301bfd438$caf3b6d0$0100000a@TIMYX18EWDT6RQ>
X-SW-Source: 2000-06/msg00311.html
Content-length: 6467

On Sun, Jun 11, 2000 at 11:38:15PM -0700, Tim Prince wrote:
> Yes, we've been having to work around this for months.  This is the main
> reason for not attempting to build g77 until after gcc has been
> bootstrapped and installed.  Perhaps I'm not sufficiently familiar with
> the process of tracking bug reports to make sure they get listed
> properly.

Well, it's good to know it's not just me ;)

I investigated a bit more thoroughly.  Here is a test case.

typedef unsigned int size_t;
typedef unsigned long long int ffetargetTypeless;
extern void *memcpy (void *__restrict, const void *__restrict, size_t);
extern void *memset (void *, int, size_t);

int
ffetarget_convert_any_typeless_ (char *res, size_t size, ffetargetTypeless l)
{
  unsigned long long int l1;
  unsigned char l5;
  size_t size_of;
  char *p;
  l5 = l;
  p = (char *) &l5;
  size_of = sizeof (l5);
  l1 = l5;
  if (size <= size_of)
    {
      int i = size_of - size;
      memcpy (res, p + i, size);
      for (; i > 0; ++p, --i)
	if (*p != '\0')
	  return 1;
    }
  else
    {
      int i = size - size_of;
      memset (res, 0, i);
      memcpy (res + i, p, size_of);
    }
  if (l1 != l)
    return 1;
  return 0;
}

(This is a stripped down version of the original function. As usual,
the Fortran front end's sheer bizarreness leaves me awestruck.)

Compile with latest CVS, -Os:

$ ../../stage1/cc1 target.i -quiet -version -Os -da -o target.s
GNU C version 2.96 20000611 (experimental) (i686-pc-linux) 
compiled by GNU C version 2.95.2 20000313 (Debian GNU/Linux).
target.i: In function `ffetarget_convert_any_typeless_':
target.i:34: Unrecognizable insn:

(insn 195 193 198 (set (reg:SI 5 edi)
        (plus:SI (reg:SI 5 edi)
            (mem:SI (plus:SI (reg:SI 6 ebp)
                    (const_int -44 [0xffffffd4])) 0))) -1 (nil)
    (expr_list:REG_EQUIV (plus:SI (mem/f:SI (plus:SI (reg:SI 6 ebp)
                    (const_int 8 [0x8])) 0)
            (mem:SI (plus:SI (reg:SI 6 ebp)
                    (const_int -44 [0xffffffd4])) 0))
        (nil)))
target.i:34: Internal compiler error in `extract_insn', at recog.c:2048
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

The crash is inside reload.

(gdb) bt
#0  fancy_abort (file=0x82ea7dc "recog.c", line=2048, 
    function=0x82eaaf0 "extract_insn") at rtl.c:1236
#1  0x804b599 in _fatal_insn (msgid=0x82c9356 "Unrecognizable insn:", 
    insn=0x4010d7c0, file=0x82ea7dc "recog.c", line=2048, 
    function=0x82eaaf0 "extract_insn") at diagnostic.c:1416
#2  0x804b5d0 in _fatal_insn_not_found (insn=0x4010d7c0, 
    file=0x82ea7dc "recog.c", line=2048, 
    function=0x82eaaf0 "extract_insn") at diagnostic.c:1427
#3  0x81bad17 in extract_insn (insn=0x4010d7c0)
    at recog.c:2048
#4  0x81b650e in cleanup_subreg_operands (insn=0x4010d7c0)
    at final.c:3092
#5  0x818ee69 in reload (first=0x401091e0, global=1, dumpfile=0x0)
    at reload1.c:1150
#6  0x8176acc in global_alloc (file=0x0) at global.c:581
#7  0x804e274 in rest_of_compilation (decl=0x40108680)
    at toplev.c:3339
#8  0x82b0907 in finish_function (nested=0) at c-decl.c:6560
#9  0x829d3fa in yyparse () at c-parse.y:313
#10 0x804c9b3 in compile_file (name=0x40104270 "target.i")
    at toplev.c:2289
#11 0x8050a40 in main (argc=6, argv=0xbffffad4)
    at toplev.c:4726

A fragment of the .greg dump-to-be, with the problem insn starred,
looks like this:

(insn 101 98 193 (set (reg:SI 19 dirflag)
        (const_int 0 [0x0])) 311 {cld} (nil)
    (expr_list:REG_EQUAL (const_int 0 [0x0])
        (nil)))

(insn 193 101 195 (set (reg:SI 5 edi)
        (mem/f:SI (plus:SI (reg:SI 6 ebp)
                (const_int 8 [0x8])) 0)) 32 {*movsi_1} (nil)
    (nil))

(insn 195 193 198 (set (reg:SI 5 edi)	*****
        (plus:SI (reg:SI 5 edi)
            (mem:SI (plus:SI (reg:SI 6 ebp)
                    (const_int -44 [0xffffffd4])) 0))) -1 (nil)
    (expr_list:REG_EQUIV (plus:SI (mem/f:SI (plus:SI (reg:SI 6 ebp)
                    (const_int 8 [0x8])) 0)
            (mem:SI (plus:SI (reg:SI 6 ebp)
                    (const_int -44 [0xffffffd4])) 0))
        (nil)))

(insn 198 195 201 (set (reg:SI 4 esi)
        (reg/v:SI 1 edx)) -1 (nil)
    (nil))

(insn 201 198 104 (set (reg:SI 2 ecx)
        (reg/v:SI 3 ebx)) -1 (nil)
    (nil))

(insn 104 201 108 (parallel[ 
            (set (reg:SI 2 ecx)
                (const_int 0 [0x0]))
            (use (reg:SI 2 ecx))
            (set (reg:SI 5 edi)
                (plus:SI (reg:SI 5 edi)
                    (reg:SI 2 ecx)))
            (set (reg:SI 4 esi)
                (plus:SI (reg:SI 4 esi)
                    (reg:SI 2 ecx)))
            (set (mem:BLK (reg:SI 5 edi) 0)
                (mem:BLK (reg:SI 4 esi) 0))
            (use (reg:SI 19 dirflag))
        ] ) 316 {rep_movqi} (insn_list 101 (nil))
    (expr_list:REG_DEAD (mem:SI (plus:SI (reg:SI 6 ebp)
                (const_int -44 [0xffffffd4])) 0)
        (expr_list:REG_DEAD (mem/f:SI (plus:SI (reg:SI 6 ebp)
                    (const_int 8 [0x8])) 0)
            (expr_list:REG_UNUSED (reg:SI 4 esi)
                (expr_list:REG_UNUSED (reg:SI 5 edi)
                    (expr_list:REG_UNUSED (reg:SI 2 ecx)
                        (expr_list:REG_DEAD (reg/v:SI 3 ebx)
                            (expr_list:REG_DEAD (reg/v:SI 1 edx)
                                (expr_list:REG_DEAD (reg:SI 19 dirflag)
                                    (nil))))))))))

After local-alloc, insns 101 and 104 were adjacent.  The intervening
insns are all setting up for the rep_movqi and were presumably
inserted by reload.

Note this part of the big parallel.

            (set (mem:BLK (reg:SI 5 edi) 0)
                (mem:BLK (reg:SI 4 esi) 0))

Before reload, that read

            (set (mem:BLK (reg/v:SI 26) 0)
                (mem:BLK (plus:SI (reg/v:SI 34)
                        (reg/v:SI 32)) 0))

I am not 100% certain, but I would bet that insn 195 is reload's
attempt to calculate (plus:SI (reg/v:SI 34) (reg/v:SI 32)) all in one
go, substituting expressions for both regs 34 and 32.  It also appears
to have gotten confused and shoved the value into %edi instead of
%esi.  The value applied to %edi by insn 193 is the correct value
going into insn 104.

The bug does not trigger at -O2 because we generate an out-of-line
call to memcpy instead of a rep movqi, with easier constraints for
reload to satisfy.

At this point I punt to the reload experts.  Bernd?

zw
>From gml4410@ggr.co.uk Mon Jun 12 10:49:00 2000
From: Lack Mr G M <gml4410@ggr.co.uk>
To: gcc-bugs@gcc.gnu.org
Subject: gcc compiles with incorrect g++ include paths
Date: Mon, 12 Jun 2000 10:49:00 -0000
Message-id: <39452286.B2CB2CC8@ggr.co.uk>
X-SW-Source: 2000-06/msg00312.html
Content-length: 2470

 
   I have just compiled gcc version 2.95.2 for a Solaris 2.6 and an SG
Irix6.5 system.

Solaris system:
Reading specs from /usr/central/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)

Irix system:
Reading specs from /usr/central/lib32/gcc-lib/mips-sgi-irix6.5/2.95.2/specs
gcc version 2.95.2 19991024 (release)


   The compiler runs Ok.  The problem is that g++ can't find it's
include files.  It is looking in the incorrect place.


   I have a set of automount maps that include architecture-specific and
architecture neutral mounts.  So I run configure like this:

 CC=cc \
  ../gcc-2.95.2/configure \
   --prefix=/usr/common --exec-prefix=/usr/central \
   --with-local-prefix=/usr/central

(for Irix I then edited the top-level Makefile to change
 libdir =${exec_prefix}/lib
to
 libdir = ${exec_prefix}/lib32
which since that fits better with the SGI setup, but that worked Ok,
basically.  It isn't the cause of the problem, as Solaris suffers the
same way).

   The problem stems from the fact that the install node of the Makefile
in libio ends up installing _G_config.h into $(tooldir)/include/.  For
my Irix system $(tooldir) is set to /usr/central/mips-sgi-irix6.5.

[Interestingly, or even alarmingly, if
 "enable_version_specific_runtime_libs" were set then it would install
 this file into /usr/common/include, which is an architecture independent
 location!].

   The rest of the header files are installed into $(gxx_include_dir).
This has the value /usr/common/include/g++-3.

   However, for the gcc compilation gxx_include_dir is set to the result
of this calculation (when written as one line):

gxx_include_dir=
/usr/central/lib32/gcc-lib/mips-sgi-irix6.5/2.95.2/../../../..
`echo /usr/central | sed -e 's|^/usr/common||' -e 's|/[^/]*|/..|g'`
/include/g++-3"


which actually evaluates to /include/g++-3.

   The problem seems to arise from the gcc Makefile wishing to calculate
gcc_gxx_include_dir on its own (which is what produces the long command
line above) but gets it completely wrong.  It assumes it is under
libdir, which is architecture dependent for a start, but it is actually
under prefix, which isn't.


   I suspect that the failure to find _G_config.h (which is in
$(tooldir)/include/) is related, since the gcc Makefile tries to work
out gcc_tooldir in the same way as it tries to get gcc_gxx_include_dir,
and so fails.



   Gordon Lack
   Application Environmentalist           12 June 2000
>From rittle@latour.rsch.comm.mot.com Mon Jun 12 12:19:00 2000
From: Loren James Rittle <rittle@latour.rsch.comm.mot.com>
To: r53653@email.sps.mot.com
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: asynchronous-exceptions handling
Date: Mon, 12 Jun 2000 12:19:00 -0000
Message-id: <200006121919.OAA76234@latour.rsch.comm.mot.com>
X-SW-Source: 2000-06/msg00313.html
Content-length: 1713

> // The -fasynchronous-exceptions flags is not working !
> // here is a sample of an exception thrown from a signal
> // handler. This exception terminates the program although
> // it is a wrapped with "catch" statement.
> // Note: this bug doesn't occur on gcc-2.7.x!!!
> // compile with g++ -v -g  -fasynchronous-exceptions a.cc
> // on sun ultra1 running solaris 5.7

[Please note that you failed to tell us exactly which version of gcc
 you are now using.  That information is usually very helpful in a bug
 report; especially if you want someone outside your own company to
 take time to look at it. ;-]

There is no current documentation on this feature, but I think it is
true that -fasynchronous-exceptions only works on hosts that (a) use
setjump/longjump-based exceptions (you can enable them on a host using
the new style but you need to recompile all gcc support libraries) and
(b) allow a longjump out of an exception handler.  Needless to say,
this is not widely portable even across platforms that use gcc.

I suspect that gcc 2.7.x on Solaris uses setjump/longjump-based
exceptions but that more recent versions of gcc use the new form of
exception handling that is available for use with the ELF file format.

The simple example you posted works for me on i686-unknown-freebsd3.4
and sparc-sun-solaris2.6 under gcc 2.95.X with the following command
line options:

-fasynchronous-exceptions -fsjlj-exceptions

Without the -fsjlj-exceptions option, it fails on both platforms.

Note that had this example thrown an exception from the standard
library code, I would have to recompile the entire library with the
-fsjlj-exceptions option or else it would mysteriously fail as well.

Regards,
Loren
>From rth@cygnus.com Mon Jun 12 13:48:00 2000
From: Richard Henderson <rth@cygnus.com>
To: Jeffrey A Law <law@cygnus.com>
Cc: rearnsha@arm.com, gcc-bugs@gcc.gnu.org
Subject: Re: More degenerate flow graphs breaking if_convert.
Date: Mon, 12 Jun 2000 13:48:00 -0000
Message-id: <20000612134514.A20581@cygnus.com>
References: <200006101218.NAA05435@cam-mail2.cambridge.arm.com> <920.960828546@upchuck>
X-SW-Source: 2000-06/msg00314.html
Content-length: 686

On Mon, Jun 12, 2000 at 10:49:06AM -0600, Jeffrey A Law wrote:
> I wonder if using a more modern dead code elimination algorithm would solve
> this problem such as the one outlined in Morgan's book.  Presumably what is
> causing the problem is the cascading effect of dead code elimination and
> jump optimizations -- which I believe is handled by Morgan's dead code
> elimination algorithm.

As far as I can tell, Morgan's algorithm relies on having the
program in SSA form.  Or at least a complete use-def graph.

I'm not sure that we're ready for such a radical change.  I
think we'd be better off in the short term iterating between
calculate_global_regs_live and cleanup_cfg.


r~
>From sheyn@cs.bu.edu Mon Jun 12 14:04:00 2000
From: Igor Sheyn <sheyn@cs.bu.edu>
To: gcc-bugs@gcc.gnu.org
Subject: g++ 2.96 problem
Date: Mon, 12 Jun 2000 14:04:00 -0000
Message-id: <20000612170355.A22620@csa.bu.edu>
X-SW-Source: 2000-06/msg00315.html
Content-length: 770

Hi,

% cat xyu.ii
# 1 "xyu.cc"                                                                                                                
int ff(int compl){return(0);}
% g++ -v xyu.ii
Reading specs from /home/igor/local/gcc-2.96/lib/gcc-lib/sparc-sun-solaris2.7/2.96/specs
gcc version 2.96 20000605 (experimental)
 /home/igor/local/gcc-2.96/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cc1plus xyu.ii -quiet -version -fpreprocessed -o
+/var/tmp/cc2ubAER.s
GNU C++ version 2.96 20000605 (experimental) (sparc-sun-solaris2.7) compiled by GNU C version 2.96 20000605 (experimental).
xyu.cc:1: parse error before `)'

If I change variable compl to anything else, it works.  So the
question is, is compl a reserved word for C++?  It wasn't the
case in g++ 2.95.x

Thanks

Igor
>From chip@valinux.com Mon Jun 12 14:37:00 2000
From: Chip Salzenberg <chip@valinux.com>
To: gcc-bugs@gcc.gnu.org
Subject: [ICE] C++ new-abi ICE: libstdc++-v3 template instantiation
Date: Mon, 12 Jun 2000 14:37:00 -0000
Message-id: <20000612144031.G593@perlsupport.com>
X-SW-Source: 2000-06/msg00316.html
Content-type: multipart/mixed; boundary="----------=_1583533108-4114-461"

This is a multi-part message in MIME format...

------------=_1583533108-4114-461
Content-length: 5726

The current C++ w/new-abi and the attached preprocessor source dies
with an ICE.  Configuration:

  configure --with-gcc-version-trigger=/u/build/gcc/egcs-new/SRC/gcc/version.c --host=i686-pc-linux --prefix=/usr/local/egcs --enable-threads=posix --enable-shared --enable-version-specific-runtime-libs --enable-languages=objc,c++ --enable-new-gxx-abi --enable-namespaces --enable-libstdcxx-v3 --enable-long-long --norecursion 

Command line:

  cc1plus -dumpbase misc-inst.cc -g -g -O2 -Wall -Wno-format -W -Wwrite-strings -Winline -version -fnew-abi -fvtable-thunks -fno-implicit-templates -fdiagnostics-show-location=once -fimplicit-templates -o misc-inst.o misc-inst.i

std::basic_ostream<_CharT, _Traits>::tellp ()
[with _CharT = char, _Traits = std::char_traits<char>]
In file included from ../../../SRC/libstdc++-v3/bits/ostream.tcc:364:
../../../SRC/libstdc++-v3/bits/basic_ios.h: At top level:
../../../SRC/libstdc++-v3/bits/basic_ios.h: In instantiation of `std::basic_ostream<_CharT, _Traits>::tellp () [with _CharT = char, _Traits = std::char_traits<char>]':
../../../SRC/libstdc++-v3/src/misc-inst.cc:116:   instantiated from here
../../../SRC/libstdc++-v3/bits/basic_ios.h:125: Internal compiler error 19990803.
../../../SRC/libstdc++-v3/bits/basic_ios.h:125: Please submit a full bug report.
../../../SRC/libstdc++-v3/bits/basic_ios.h:125: See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.

Breakpoint 1, 0x40037d35 in exit () from /lib/libc.so.6
(gdb) where
#0  0x40037d35 in exit () from /lib/libc.so.6
#1  0x804aee3 in fatal () at ../SRC/gcc/diagnostic.c:1425
#2  0x822a9c3 in my_friendly_abort () at ../../SRC/gcc/cp/typeck2.c:335
#3  0x8277d92 in walk_tree (tp=0x4162f7f8, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1390
#4  0x8277bc5 in walk_tree (tp=0x4162f7b0, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1347
#5  0x82779ba in walk_tree (tp=0x4162f790, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#6  0x82779ba in walk_tree (tp=0x4162f770, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#7  0x82779ba in walk_tree (tp=0x4162f754, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#8  0x82779ba in walk_tree (tp=0x4162f730, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#9  0x82779ba in walk_tree (tp=0x4162f620, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#10 0x8277a86 in walk_tree (tp=0x4162f5a0, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1283
#11 0x8277a86 in walk_tree (tp=0x4162f520, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1283
#12 0x8277a86 in walk_tree (tp=0x4162f4c0, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1283
#13 0x8277a86 in walk_tree (tp=0x4162f4b0, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1283
#14 0x82779ba in walk_tree (tp=0xbf7feaf8, func=0x827c9d0 <copy_body_r>, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/tree.c:1263
#15 0x827cbfb in copy_body (id=0xbf7fed54) at ../../SRC/gcc/cp/optimize.c:360
#16 0x827d1ab in expand_call_inline (tp=0x4162a0f0, walk_subtrees=0xbf7feb5c, 
    data=0xbf7fed54) at ../../SRC/gcc/cp/optimize.c:727
#17 0x8277901 in walk_tree (tp=0x4162a0f0, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1228
#18 0x82779ba in walk_tree (tp=0x41d066bc, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1263
#19 0x8277a17 in walk_tree (tp=0x41629780, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1278
#20 0x8277a86 in walk_tree (tp=0x41628a40, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#21 0x8277a86 in walk_tree (tp=0x41627220, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#22 0x8277a86 in walk_tree (tp=0x416271c0, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#23 0x8277a86 in walk_tree (tp=0x416223a0, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#24 0x8277a86 in walk_tree (tp=0x41622300, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#25 0x8277a86 in walk_tree (tp=0x41622250, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1283
#26 0x82779ba in walk_tree (tp=0x41df3754, 
    func=0x827cf80 <expand_call_inline>, data=0xbf7fed54)
    at ../../SRC/gcc/cp/tree.c:1263
#27 0x827d2d8 in expand_calls_inline (tp=0x41df3754, id=0xbf7fed54)
    at ../../SRC/gcc/cp/optimize.c:794
#28 0x827d42a in optimize_function (fn=0x40c15980)
    at ../../SRC/gcc/cp/optimize.c:837
#29 0x8276267 in expand_body (fn=0x40c15980)
    at ../../SRC/gcc/cp/semantics.c:2795
#30 0x8229d85 in instantiate_decl (d=0x40c15980, defer_ok=0)
    at ../../SRC/gcc/cp/pt.c:9710
#31 0x8229e96 in instantiate_pending_templates () at ../../SRC/gcc/cp/pt.c:9779
#32 0x82381cc in finish_file () at ../../SRC/gcc/cp/decl2.c:3568
#33 0x824c03b in yyparse () at parse.y:434
#34 0x804bf4c in compile_file (name=0x40109790 "") at ../SRC/gcc/toplev.c:2289
#35 0x804f36d in main (argc=20, argv=0xbf7ffa84) at ../SRC/gcc/toplev.c:4726

-- 
Chip Salzenberg              - a.k.a. -              <chip@valinux.com>
"I wanted to play hopscotch with the impenetrable mystery of existence,
    but he stepped in a wormhole and had to go in early."  // MST3K

------------=_1583533108-4114-461
Content-Type: application/x-gzip; charset=binary; name="misc-inst.i.gz"
Content-Disposition: inline; filename="misc-inst.i.gz"
Content-Transfer-Encoding: base64
Content-Length: 101334

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
+GGLJe0Dzom2ft73BUwq01XnGeWVoU10Iwn/lhZf7xAtQafV7EZtnmdWXd3w
LbvPDlnurckmTZu2LEUOEyMyZH0FPkkZgUuwd/etfdFW1AhRVjFwGukMmIJw
gy/UCTnhCPZfCu2c6dkYe5vD93Wz78OSUMlpi2piKyeNegdDXiSSbhKWAlkv
Dw6YFaHV1gqnjI8Z2pgwXqjJMSO59rRj3e93kdr1xbbqLIb3Qlp3tAQ8y7j/
jruFahM9W2k9mz14z3YZUpesSh2zvTLssy/OsI5hffYAw/rsizDsg/bsQRn2
2QMx7MUXMYuDXb/Y/5g20OvsEX3AbuVa4rtMwcuH4dPLx8enl/sf0MsvwKcP
2K2H5NOLB5Knj9FivXgANXnxRdTkg/asUdMmIlUfSP1fPkZ2vXyAQb38Iuz6
oD1zsuuehKvoV4Mdk5k182INeV/r9JANGW2Ouz4a9aiWGJtiNDexuTzUh++y
HSlOYuMBK6ZHYYqUGQ31Z5HUn4uLdqQ43faqLVOa7pVBdr1T18WG8GbOCOV0
BHgTJ8WsnO/Dqfwl+0f6w+6F+xadnda42C/pkj1SbTS7XqzKzc1c3f7Wf51d
s5Xe5IxWJMmKM1vUKrZaCN6Wl9bwclSushvllVSD1l1Y9oW6ZMeU/+zLWyEJ
IP3mzB96iIXDCFe0+tJH6wLP7wn/RO4kE6XpTXWyAHkikOkdHfR7G5dsd8jx
e1oAP/bppuK9KMmV3g89FpAvVPQPffJ8BeDQuxcEFPLls664ZIf/W3X4v/uX
ejvk5wUtQb4dsjsAVBPLF/QXbGj5gv1k7cGbOH0UBhredp8yBEgNUpYgcCf6
bH/61Gl9RvDutDuGH7sh5RN/oFen3HE0xSc+HojctFYH4YtG8b0A6P76K7hm
sP2srb5cqBodo1cXoFMd1qt6/XpWcyDQZ9UvgvMdJzS7ObAOJpe7I4KfGdFq
I3HREDk4HjtQo7FxuVDDkoyKDhnNRx+KoS2d7gzp9Elc5Ulb12G0aXGJyT28
HDfhNlVTM/VbOWp0jI0Qds36zrfUymZfbl9ebcvZ5OX1ePyyuB6vj6vilj6U
1Xi2nRQvQaPolFblSgqlQlh/WttACICdMMCVe6/yqp+CRterl+Ssz4zWIQQn
dY7Jv+Xrt6+Pl+R3tb172X/x7nUqJjvCNNDzNYpLvPUWOdWMFjlEoCxlJ5KU
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
yEdVgjExplfxMXjZzKRcY8OoABXpZj8vqnHc/1msJvyG+c+QZEcUt+Ut/jxA
8lLX6pq+LsHre99dlQfEwiYZ2Ya3tI336C2/8I61yScL/j0crVajTz/q5X+S
jKeVn2zn808DNT7s45ECxpdj9JZNBBuhEfrsVmpR7VBS7BrTklVvWzIBaRcN
M4g81RzmfvfFdeVGXGxqXYCt/w0W6t9VYqH92bhRR1vvD7QFOyv4HW+Qr7jh
o7EwBpeQ0pHkQCnKoj6JGcI2LCfqeLH1fSkrzweeY5j+uVXfyFBAcOoT/8NK
KLBmXQX33nXf9BTscmCcqLEp/AhwljJBLG7rC1Seqr0R+rOjTxTweUFtXAVb
SQxW4r0AIT9JJxSuKuZSAKF1sZk2iM+v+0GoC3GYj9Yf9PvO/Aia+B2+R78x
CAMH6m3eHHUQ0mYGrk44+qDm6bYye0ABMa+RhYQBBuh8Psu4SeDkN2UwJIMB
X4a0vjHU2ndJS9CQopp8SZmQPKUPuYkgtW2cfWRWT1J1DXf8qkjqG29A9Yu+
oH0iMBL6xGWfukJ8/aka48qbmyGNqGjzfLDkNYaLNWSh6Ux46TU1av03bEkK
aBdlFxv86KQe0CcCW2ReGk2f7+iNytbtcbI14o9lb4g2E8rszrh2kGu/IVV5
LNiovCOJkKGu7BCD7eAP4uX6R1LoJ2ahAX1JwVvTj3x7IU0Fz0Q84rguHweu
SwtXfl+g0JJt5yJB+2reKSc/yjU9W7fIgRMvPJfE6eXvuf2itim0+tKB3Fav
h/Tfjrz+jz2/oLJPGe+m61nSRlgccGtEa7NaZLTKZW4T7Qq3ZHZXDX9mTk/T
27Q6WrtV6TKt1VHobM3taWKrzq7Wa5d7dGv2dF27n+vavcxvk7ma87sIPdSO
1rwyAfcxsUW7i5E2PS1Kv3V2J02Pd85IZrRqdbR+u9zdH2jT11WxTwB9DVn9
TW7Z7q62R2G0yrGRN/q6WhebcPndFjW7wE9lb00EUHKhQ/bxsnmNVApjkTPL
6N5dNg60Vj0kfIhMinE2GrgORMLc28mhw01xl938DfENZjXvaXwxzh8CXKdO
3339p9vl2UjQWhANbUcsU7/Izd98HSOrZuPCbwAGweenmcHnqZcmsMUhFl+N
XdfgDEN3XJH8p5vR6ocuUi9+WI0wVpfaZdBy6SruuydbHQrpdRsTrRyTfl8I
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
k2VRfBATJUUk4zeTGCUkXe05TqqvF/MiDiIFmeV2czUaf2jDoY1P321lCwfi
qhFIf6rGxle5/BC2azGbXaeJlzWm73VbAEgsLpYreIy5iXJ+Tr5MylVHGsLl
R7xMtJZrEWn9vs0Eq2mSSbx0OzRY+J4MUjNLVmvpQvpLjFH/+tRcwh2QP44l
W/NrNA/KKLbc0r+en8PlDTJXO6nLaNqoXEd7VjaMlu0w/ocUwS5zouA5uFh/
KJe30uWiWETwEi2JlypQOy8+SJEmOZQzFgVLS8Btmxr8E+lGy7TQ473Gspm9
B/pfYsXYNYABkT7J7RuFeeva5ToMiZbpvy8rdHn5/2/v25/buJGEfyb/CnhT
5ZAy7Vh2kr01ZaV8jreS78ur7OztXuVcLIocSnOmZrh8WHY5zt9+aDQejdcM
hhxackwllsgZoNEAGo1GvxC4XRUKq43kgyLdMsrXP/tiK+q7XC1tKJuMZOXs
IxKRoVxmYGdaLvhzM55HQgLflgZ2QbxNtHfeSUrEVLx45Gg+I9M/0HIEKVxG
CqerSnfTylVjAbVLq3a1NkuW7dVtf7Z665GzWaGCC8TY0nuq5d463VaplVvv
5Oltb3sANn21Stry+lqX7/x8xh7+NUm1v7JU+5+x46Rapal13OXNM+u/ig/O
A/xx7QlIlTsuqvJgUfgkLQrp3MeuXVZbFMp6iwI/0hGLQlllUeBFW7Ao1NkD
ykR7gGcNqOOHpafrZ1KdzztG1Pnb6/GDFGYOimWFvvzkpOcUIOr30tXmNwVc
q9NvBtDT7DNbtV/dc+YDFCrUoBqirqatLXZUzXWV1cmrSR1MwW/pn7odozWY
Xa5n8/H5ChTBlyKCVJCpeMYp7zZRMMDvWZ7Np0MOYAbCG9SgJcrJmv3+O/Nf
XGRv+t0OU3IftkGRjGY36cKpnbFe1e0A0DmYxk7Gj6GpzWDsm6jq2d4aTGNg
eJt3UqLRBAHQR/05J1UkHL3OKfWGdqcJbcZTtuEKgcBQ1/5UB0K6CjnGoLpa
GLgDlRoNlfIsgorNiJ66NTXEFRWVwnzlWq/qqkatV2nbBt+s4/rnYI2rJZdl
JMapmvQIqNl8s7ro+biGFNaLXi040DEvgsrqiuI7KavLNGV1WaWsLh1ldRlR
VjvnIbbDgShFX226KfZ14IlE/cnCAM3JVBReWQKI7caixNWQjjcKFUbHjN8f
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
17Ny+UrSUw/FnAUXxxTH1IpxU4C/LdbmPTT8db12XNcXPt2JvD8Ru0rc/pbk
lVGJWZSfwpSOyvVFtpRzuRLSXoi1WmtLDz9sUvl4LowyXi30AgS3knBowwMT
mSAwZPKreuhH9ynPRFex0ZHKBhUojlEZzILmhA4ibsfbRGvslPXXD7yHOLe9
pvgNJpIyf7dLk8XYVomyGNsqVRZjWyXLcmL0t88CzFhaHmA5l4HIeoAg30Zu
tjYQVMyFjk6tHyshy+FoOT9S8Atf81dOs8lrc1ugzMlOapwy6sciStelMKbF
Hj3iW+5mvpZDyL+Ebm6UN++pODAd8hlNcawH5ggzHMP3IbkpBu+J4WtsPVJR
otl0aMe4qx7KFMnwdbJZDkNFGClzlp0PWUddIyj3WtrlI4EQ/zZkLtqER1Ey
BVT5qVrldQ4uaYu8ArcV2e9NwK8fdcwes79sildFeVX8BeIl24nbjFzQqBFm
JE0BJmfREXxqvEhqApLJAKdWTTIt48+wumc9mtvAxC6b6GXctnCc6OU2orlv
1Ke7pzramTNqbEUmDLCo0suaEIj9XlXHYdfDxKGjkdVN8gerObEis738oG5c
KA2UlDW3SjoayeNrI9M4hS65i8BKect2/Ns0/W7beLjtmlStyRgEetNSAmBM
dnpL3tqql8dtkWkD7qC6j58L8Vmliibpp+9Xr+JOJA1wqEsfZSZgiFhvv2GS
2VfEnoulZeaM5NJdqFy6Kt+svFNMJkg/YSbrupXZdqEz21qSRsU3zUV1NHxt
YnkaJg64PSZA5OTep/PJy6gMuvak212k2eOHNDNvYGmRjLymYZhDxOgOwtc5
q5NI2cne6xEyzWSDYee4eUCSgLlIYsM/kUm3+DvvF9zovClWF/ls3SNx6jFB
FZPZyG/DaDGTwkYXbeFq9Hy23wTAW19tss3RZptzTd2hBjqQfoKJHT4gL1jV
0aMmQa+bnzewTdnT2atJUUtx6TXIpzuzcnalSFPNUufG8NJXtRYqhb2+s4OM
wR+RQWgxMVdQGLTScrHqvFwWgHhWrriY7GfiMkmAwtm4Gsq/kRlTlw3oZt3Z
cDOvgciB4yl2Kp183b0CE4RJcQcmq7oAhAjcDkK3NEbyPJPYXMfN4e5lddzq
atVZUhreen56YKi7M9QyzlDrcyza89mrSRgb56gpiXijfFWlLEnOa/u7+bZe
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
eJe//AICCQA=

------------=_1583533108-4114-461--
>From law@cygnus.com Mon Jun 12 14:45:00 2000
From: Jeffrey A Law <law@cygnus.com>
To: Richard Henderson <rth@cygnus.com>
Cc: rearnsha@arm.com, gcc-bugs@gcc.gnu.org
Subject: Re: More degenerate flow graphs breaking if_convert. 
Date: Mon, 12 Jun 2000 14:45:00 -0000
Message-id: <2046.960845692@upchuck>
References: <20000612134514.A20581@cygnus.com>
X-SW-Source: 2000-06/msg00317.html
Content-length: 620

  In message < 20000612134514.A20581@cygnus.com >you write:
  > As far as I can tell, Morgan's algorithm relies on having the
  > program in SSA form.  Or at least a complete use-def graph.
Yea, I hadn't thought of that.  Sigh.

  > I'm not sure that we're ready for such a radical change.  I
  > think we'd be better off in the short term iterating between
  > calculate_global_regs_live and cleanup_cfg.
Ouch.  I'd think that could get potentially expensive.  Though until
we're ready to go with SSA until late in the compiler, it may be our
only reasonable choice.

It may also require we beef up cleanup_cfg.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <200005312037.e4VKbc926040@plasma.inpe.br>
@ 2000-06-03 14:33 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 2000-06-03 14:33 UTC (permalink / raw)
  To: system PRIVILEGED account; +Cc: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

On May 31, 2000, system PRIVILEGED account <root@plasma.inpe.br> wrote:

> sql_acl.cc:1367: Internal compiler error in `scan_region', at except.c:2566

Thanks.  I believe this problem is alreadu fixed in the CVS tree.
Next time, please follow the instructions in the URL you chose to omit
from your bug report (i.e., include the preprocessed sources)

-- 
Alexandre Oliva    Enjoy Guaraná, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
       [not found] <200005261513.RAA10974@mail.cs.tu-berlin.de>
@ 2000-05-27 13:52 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-05-27 13:52 UTC (permalink / raw)
  To: Martin.Frick; +Cc: gcc-bugs

> Please have a look at my Makefile included in the tar copy for details.
> The compiler output was the follwing:
> 
> g++-2.95 -Wall  -g -I/software/packages/blitz-19990624/i486-pc-linux-gnu-2.0/
> -pg  -c -o quantum.o quantum.cc
> quantum.cc: In function `int main(char, char **)':
> quantum.cc:13: Internal compiler error.
> quantum.cc:13: Please submit a full bug report.
> quantum.cc:13: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
> instructions.

Thanks for your bug report. Unfortunately, I can't reproduce it; make says

g++ -Wall  -g -I/software/packages/blitz-19990624/i486-pc-linux-gnu-2.0/ -pg  -c -o quantum.o quantum.cc 
In file included from quantum.cc:7:
global.hh:32: random/uniform.h: Datei oder Verzeichnis nicht gefunden

Please see

http://www.gnu.org/software/gcc/bugs.html

and the section "Reporting Bugs" in the gcc manual.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Sat May 27 13:57:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: jbelo@isel.pt
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Bug report
Date: Sat, 27 May 2000 13:57:00 -0000
Message-id: <200005272051.WAA02230@loewis.home.cs.tu-berlin.de>
References: <NDBBKFGCDKEECMHLHDNOGEOGCDAA.jbelo@isel.pt>
X-SW-Source: 2000-05/msg00889.html
Content-length: 621

> the code:
> 
> 	template<class T>
> 	void g(T t)
> 	{
> 		dd++;
> 	}
> 
> compiles ok with gcc, but is ill-formed (Line "dd++;"), according to the C++
> definition (ISO/IEC 14882:1998(E), page 260).

Thanks for your bug report. This is a known problem; g++ does not
properly distinguish between dependant and non-dependant
names. Instead, lookup of object names is delayed until instantiation
time.

> Isn't the code:
> 
> 	struct X
> 	{
> 		void h();
> 	};
> 
> 	template<class T>
> 	struct Y : public T
> 	{
> 		void f() { h(); }
> 	};
> 
> ill-formed too?

Sure. It is accepted for the same reason.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Sat May 27 14:03:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: jss@ast.cam.ac.uk
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Strange input makes gcc to have an internal error
Date: Sat, 27 May 2000 14:03:00 -0000
Message-id: <200005272101.XAA02290@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.21.0005271636320.12603-101000@xpc6.ast.cam.ac.uk>
X-SW-Source: 2000-05/msg00890.html
Content-length: 69

Thanks for your bug report. I've put it into GNATS.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Sat May 27 14:03:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: iggy@homepage.ru
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: [Fwd: Weird template bug.]
Date: Sat, 27 May 2000 14:03:00 -0000
Message-id: <200005272055.WAA02256@loewis.home.cs.tu-berlin.de>
References: <392EE41C.1B7E89F8@homepage.ru>
X-SW-Source: 2000-05/msg00891.html
Content-length: 193

> Can anybody please tell me if it's a gcc bug, or my fault?

I don't know; I cannot reproduce the problem with gcc version 2.96
20000511 (experimental) on i586-pc-linux-gnu.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2000-05-26 12:11 David J Schinsing
  0 siblings, 0 replies; 387+ messages in thread
From: David J Schinsing @ 2000-05-26 12:11 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1575 bytes --]

RedHat 6.1 on a pretty normal 586 cross-compiling for powerpc.  Compiler
built this way:

   [root@ptpc111 gnu]# cat do_binutils
   mkdir -p build-binutils
   cd build-binutils
   rm -rf *
   ../binutils-2.9.5.0.42/configure --target=powerpc-eabi -v
   make all install
   cd ..
   [root@ptpc111 gnu]# cat do_gcc
   mkdir -p build-gcc
   cd build-gcc
   rm -rf *
   ../gcc-2.95.2/configure --target=powerpc-eabi --with-newlib -v
   make all install
   cd ..
   [root@ptpc111 gnu]# cat do_newlib
   mkdir -p build-newlib
   cd build-newlib
   rm -rf *
   ../newlib-1.8.2/configure --target=powerpc-eabi -v
   make all install
   [root@ptpc111 gnu]#

Here's a little bug related to the -mpowerpc64 switch:

   [dxs@ptpc111 gcc_bug]$ make thing.o
   powerpc-eabi-gcc -mpowerpc64 -g -Wall -msoft-float   -c thing.c -o thing.o
   thing.c: In function `main':
   thing.c:8: Internal compiler error in `expand_call', at calls.c:2457
   Please submit a full bug report.
   See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
   make: *** [thing.o] Error 1
   [dxs@ptpc111 gcc_bug]$

4 files are included with this message -
I've really stripped this down to it's bare minimum - look at thing.c.
I'm trying to be brief - I expect you get hundreds of these.

I'll give you anything else you may need - as quickly as possible during working hours 9-5 EDT --

Thanks for all your hard work.  I love GCC

David
(See attached file: ficl.h)(See attached file: makefile)(See attached file: sysdep.h)(See attached file: thing.c)
ficl.h
makefile
sysdep.h
thing.c


[-- Attachment #2: ficl.h --]
[-- Type: text/plain, Size: 31751 bytes --]

/*******************************************************************
** f i c l . h
** Forth Inspired Command Language
** Author: John Sadler (john_sadler@alum.mit.edu)
** Created: 19 July 1997
** 
*******************************************************************/
/*
** N O T I C E -- DISCLAIMER OF WARRANTY
** 
** Ficl is freeware. Use it in any way that you like, with
** the understanding that the code is supported on a "best effort"
** basis only.
** 
** Any third party may reproduce, distribute, or modify the ficl
** software code or any derivative  works thereof without any 
** compensation or license, provided that the author information
** and this disclaimer text are retained in the source code files.
** The ficl software code is provided on an "as is"  basis without
** warranty of any kind, including, without limitation, the implied
** warranties of merchantability and fitness for a particular purpose
** and their equivalents under the laws of any jurisdiction.  
** 
** I am interested in hearing from anyone who uses ficl. If you have
** a problem, a success story, a defect, an enhancement request, or
** if you would like to contribute to the ficl release (yay!), please
** send me email at the address above. 
*/

#if !defined (__FICL_H__)
#define __FICL_H__
/*
** Ficl (Forth-inspired command language) is an ANS Forth
** interpreter written in C. Unlike traditional Forths, this
** interpreter is designed to be embedded into other systems
** as a command/macro/development prototype language. 
**
** Where Forths usually view themselves as the center of the system
** and expect the rest of the system to be coded in Forth, Ficl
** acts as a component of the system. It is easy to export 
** code written in C or ASM to Ficl in the style of TCL, or to invoke
** Ficl code from a compiled module. This allows you to do incremental
** development in a way that combines the best features of threaded 
** languages (rapid development, quick code/test/debug cycle,
** reasonably fast) with the best features of C (everyone knows it,
** easier to support large blocks of code, efficient, type checking).
**
** Ficl provides facilities for interoperating
** with programs written in C: C functions can be exported to Ficl,
** and Ficl commands can be executed via a C calling interface. The
** interpreter is re-entrant, so it can be used in multiple instances
** in a multitasking system. Unlike Forth, Ficl's outer interpreter
** expects a text block as input, and returns to the caller after each
** text block, so the "data pump" is somewhere in external code. This
** is more like TCL than Forth, which usually expcets to be at the center
** of the system, requesting input at its convenience. Each Ficl virtual 
** machine can be bound to a different I/O channel, and is independent
** of all others in in the same address space except that all virtual
** machines share a common dictionary (a sort or open symbol table that
** defines all of the elements of the language).
**
** Code is written in ANSI C for portability. 
**
** Summary of Ficl features and constraints:
** - Standard: Implements the ANSI Forth CORE word set and part 
**   of the CORE EXT word-set, SEARCH and SEARCH EXT, TOOLS and
**   TOOLS EXT, LOCAL and LOCAL ext and various extras.
** - Extensible: you can export code written in Forth, C, 
**   or asm in a straightforward way. Ficl provides open
**   facilities for extending the language in an application
**   specific way. You can even add new control structures!
** - Ficl and C can interact in two ways: Ficl can encapsulate
**   C code, or C code can invoke Ficl code.
** - Thread-safe, re-entrant: The shared system dictionary 
**   uses a locking mechanism that you can either supply
**   or stub out to provide exclusive access. Each Ficl
**   virtual machine has an otherwise complete state, and
**   each can be bound to a separate I/O channel (or none at all).
** - Simple encapsulation into existing systems: a basic implementation
**   requires three function calls (see the example program in testmain.c).
** - ROMable: Ficl is designed to work in RAM-based and ROM code / RAM data
**   environments. It does require somewhat more memory than a pure
**   ROM implementation because it builds its system dictionary in 
**   RAM at startup time.
** - Written an ANSI C to be as simple as I can make it to understand,
**   support, debug, and port. Compiles without complaint at /Az /W4 
**   (require ANSI C, max warnings) under Microsoft VC++ 5.
** - Does full 32 bit math (but you need to implement
**   two mixed precision math primitives (see sysdep.c))
** - Indirect threaded interpreter is not the fastest kind of
**   Forth there is (see pForth 68K for a really fast subroutine
**   threaded interpreter), but it's the cleanest match to a
**   pure C implementation.
**
** P O R T I N G   F i c l
**
** To install Ficl on your target system, you need an ANSI C compiler
** and its runtime library. Inspect the system dependent macros and
** functions in sysdep.h and sysdep.c and edit them to suit your
** system. For example, INT16 is a short on some compilers and an
** int on others. Check the default CELL alignment controlled by
** FICL_ALIGN. If necessary, add new definitions of ficlMalloc, ficlFree,
** ficlLockDictionary, and ficlTextOut to work with your operating system.
** Finally, use testmain.c as a guide to installing the Ficl system and 
** one or more virtual machines into your code. You do not need to include
** testmain.c in your build.
**
** T o   D o   L i s t
**
** 1. Unimplemented system dependent CORE word: key
** 2. Kludged CORE word: ACCEPT 
** 3. Dictionary locking is full of holes - only one vm at a time
**    can alter the dict. 
** 4. Ficl uses the pad in CORE words - this violates the standard,
**    but it's cleaner for a multithreaded system. I'll have to make a
**    second pad for reference by the word PAD to fix this.
**
** F o r   M o r e   I n f o r m a t i o n
**
** Web home of ficl
**   http://www.taygeta.com/forth/compilers
** Check this website for Forth literature (including the ANSI standard)
**   http://www.taygeta.com/forthlit.html
** and here for software and more links
**   http://www.taygeta.com/forth.html
**
** Obvious Performance enhancement opportunities
** Compile speed
** - work on interpret speed
** - turn off locals (FICL_WANT_LOCALS)
** Interpret speed 
** - Change inner interpreter (and everything else)
**   so that a definition is a list of pointers to functions
**   and inline data rather than pointers to words. This gets
**   rid of vm->runningWord and a level of indirection in the
**   inner loop. I'll look at it for ficl 3.0
** - Make the main hash table a bigger prime (HASHSIZE)
** - FORGET about twiddling the hash function - my experience is
**   that that is a waste of time.
** - eliminate the need to pass the pVM parameter on the stack
**   by dedicating a register to it. Most words need access to the
**   vm, but the parameter passing overhead can be reduced. One way
**   requires that the host OS have a task switch callout. Create
**   a global variable for the running VM and refer to it in words
**   that need VM access. Alternative: use thread local storage. 
**   For single threaded implementations, you can just use a global.
**   The first two solutions create portability problems, so I
**   haven't considered doing them. Another possibility is to
**   declare the pVm parameter to be "register", and hope the compiler
**   pays attention.
**
*/

/*
** Revision History:
** 
** 15 Apr 1999 (sadler) Merged FreeBSD changes for exception wordset and
** counted strings in ficlExec. 
** 12 Jan 1999 (sobral) Corrected EVALUATE behavior. Now TIB has an
** "end" field, and all words respect this. ficlExec is passed a "size"
** of TIB, as well as vmPushTib. This size is used to calculate the "end"
** of the string, ie, base+size. If the size is not known, pass -1.
**
** 10 Jan 1999 (sobral) EXCEPTION word set has been added, and existing
** words has been modified to conform to EXCEPTION EXT word set. 
**
** 27 Aug 1998 (sadler) testing and corrections for LOCALS, LOCALS EXT,
**  SEARCH / SEARCH EXT, TOOLS / TOOLS EXT. 
**  Added .X to display in hex, PARSE and PARSE-WORD to supplement WORD,
**  EMPTY to clear stack.
**
** 29 jun 1998 (sadler) added variable sized hash table support
**  and ANS Forth optional SEARCH & SEARCH EXT word set.
** 26 May 1998 (sadler) 
**  FICL_PROMPT macro
** 14 April 1998 (sadler) V1.04
**  Ficlwin: Windows version, Skip Carter's Linux port
** 5 March 1998 (sadler) V1.03
**  Bug fixes -- passes John Ryan's ANS test suite "core.fr"
**
** 24 February 1998 (sadler) V1.02
** -Fixed bugs in <# # #>
** -Changed FICL_WORD so that storage for the name characters
**  can be allocated from the dictionary as needed rather than 
**  reserving 32 bytes in each word whether needed or not - 
**  this saved 50% of the dictionary storage requirement.
** -Added words in testmain for Win32 functions system,chdir,cwd,
**  also added a word that loads and evaluates a file.
**
** December 1997 (sadler)
** -Added VM_RESTART exception handling in ficlExec -- this lets words
**  that require additional text to succeed (like :, create, variable...)
**  recover gracefully from an empty input buffer rather than emitting
**  an error message. Definitions can span multiple input blocks with
**  no restrictions.
** -Changed #include order so that <assert.h> is included in sysdep.h,
**  and sysdep is included in all other files. This lets you define
**  NDEBUG in sysdep.h to disable assertions if you want to.
** -Make PC specific system dependent code conditional on _M_IX86
**  defined so that ports can coexist in sysdep.h/sysdep.c
*/

#ifdef __cplusplus
extern "C" {
#endif

#include "sysdep.h"
#include <limits.h> /* UCHAR_MAX */

/*
** Forward declarations... read on.
*/
struct ficl_word;
struct vm;
struct ficl_dict;

/* 
** the Good Stuff starts here...
*/
#define FICL_VER    "2.03"
#if !defined (FICL_PROMPT)
#define FICL_PROMPT "ok> "
#endif

/*
** ANS Forth requires false to be zero, and true to be the ones
** complement of false... that unifies logical and bitwise operations
** nicely.
*/
#define FICL_TRUE  (0xffffffffL)
#define FICL_FALSE (0)
#define FICL_BOOL(x) ((x) ? FICL_TRUE : FICL_FALSE)


/*
** A CELL is the main storage type. It must be large enough
** to contain a pointer or a scalar. In order to accommodate 
** 32 bit and 64 bit processors, use abstract types for i and u.
*/
typedef union _cell
{
	FICL_INT i;
    FICL_UNS u;
	void *p;
} CELL;

/*
** LVALUEtoCELL does a little pointer trickery to cast any 32 bit
** lvalue (informal definition: an expression whose result has an
** address) to CELL. Remember that constants and casts are NOT
** themselves lvalues!
*/
#define LVALUEtoCELL(v) (*(CELL *)&v)

/*
** PTRtoCELL is a cast through void * intended to satisfy the
** most outrageously pedantic compiler... (I won't mention 
** its name)
*/
#define PTRtoCELL (CELL *)(void *)
#define PTRtoSTRING (FICL_STRING *)(void *)

/*
** Strings in FICL are stored in Pascal style - with a count
** preceding the text. We'll also NULL-terminate them so that 
** they work with the usual C lib string functions. (Belt &
** suspenders? You decide.)
** STRINGINFO hides the implementation with a couple of
** macros for use in internal routines.
*/

typedef unsigned char FICL_COUNT;
#define FICL_STRING_MAX UCHAR_MAX
typedef struct _ficl_string
{
    FICL_COUNT count;
    char text[1];
} FICL_STRING;

typedef struct 
{
    UNS32 count;
    char *cp;
} STRINGINFO;

#define SI_COUNT(si) (si.count)
#define SI_PTR(si)   (si.cp)
#define SI_SETLEN(si, len) (si.count = (UNS32)(len))
#define SI_SETPTR(si, ptr) (si.cp = (char *)(ptr))
/* 
** Init a STRINGINFO from a pointer to NULL-terminated string
*/
#define SI_PSZ(si, psz) \
            {si.cp = psz; si.count = (FICL_COUNT)strlen(psz);}
/* 
** Init a STRINGINFO from a pointer to FICL_STRING
*/
#define SI_PFS(si, pfs) \
            {si.cp = pfs->text; si.count = pfs->count;}

/*
** Ficl uses a this little structure to hold the address of 
** the block of text it's working on and an index to the next
** unconsumed character in the string. Traditionally, this is
** done by a Text Input Buffer, so I've called this struct TIB.
**
** Since this structure also holds the size of the input buffer,
** and since evaluate requires that, let's put the size here.
** The size is stored as an end-pointer because that is what the
** null-terminated string aware functions find most easy to deal
** with.
** Notice, though, that nobody really uses this except evaluate,
** so it might just be moved to FICL_VM instead. (sobral)
*/
typedef struct
{
    INT32 index;
    char *end;
    char *cp;
} TIB;


/*
** Stacks get heavy use in Ficl and Forth...
** Each virtual machine implements two of them:
** one holds parameters (data), and the other holds return
** addresses and control flow information for the virtual
** machine. (Note: C's automatic stack is implicitly used,
** but not modeled because it doesn't need to be...)
** Here's an abstract type for a stack
*/
typedef struct _ficlStack
{
    FICL_UNS nCells;    /* size of the stack */
    CELL *pFrame;       /* link reg for stack frame */
    CELL *sp;           /* stack pointer */
    CELL base[1];       /* Bottom of the stack */
} FICL_STACK;

/*
** Stack methods... many map closely to required Forth words.
*/
FICL_STACK *stackCreate(unsigned nCells);
void        stackDelete(FICL_STACK *pStack);
int         stackDepth (FICL_STACK *pStack);
void        stackDrop  (FICL_STACK *pStack, int n);
CELL        stackFetch (FICL_STACK *pStack, int n);
CELL        stackGetTop(FICL_STACK *pStack);
void        stackLink  (FICL_STACK *pStack, int nCells);
void        stackPick  (FICL_STACK *pStack, int n);
CELL        stackPop   (FICL_STACK *pStack);
void       *stackPopPtr   (FICL_STACK *pStack);
FICL_UNS    stackPopUNS(FICL_STACK *pStack);
FICL_INT    stackPopINT(FICL_STACK *pStack);
void        stackPush  (FICL_STACK *pStack, CELL c);
void        stackPushPtr  (FICL_STACK *pStack, void *ptr);
void        stackPushUNS(FICL_STACK *pStack, FICL_UNS u);
void        stackPushINT(FICL_STACK *pStack, FICL_INT i);
void        stackReset (FICL_STACK *pStack);
void        stackRoll  (FICL_STACK *pStack, int n);
void        stackSetTop(FICL_STACK *pStack, CELL c);
void        stackStore (FICL_STACK *pStack, int n, CELL c);
void        stackUnlink(FICL_STACK *pStack);

/* 
** The virtual machine (VM) contains the state for one interpreter.
** Defined operations include:
** Create & initialize
** Delete
** Execute a block of text
** Parse a word out of the input stream
** Call return, and branch 
** Text output
** Throw an exception
*/

typedef struct ficl_word ** IPTYPE; /* the VM's instruction pointer */

/*
** Each VM has a placeholder for an output function -
** this makes it possible to have each VM do I/O
** through a different device. If you specify no
** OUTFUNC, it defaults to ficlTextOut.
*/
typedef void (*OUTFUNC)(struct vm *pVM, char *text, int fNewline);

/*
** Each VM operates in one of two non-error states: interpreting
** or compiling. When interpreting, words are simply executed.
** When compiling, most words in the input stream have their
** addresses inserted into the word under construction. Some words
** (known as IMMEDIATE) are executed in the compile state, too.
*/
/* values of STATE */
#define INTERPRET 0
#define COMPILE   1

/*
** The pad is a small scratch area for text manipulation. ANS Forth
** requires it to hold at least 84 characters.
*/
#if !defined nPAD
#define nPAD 256
#endif

/* 
** ANS Forth requires that a word's name contain {1..31} characters.
*/
#if !defined nFICLNAME
#define nFICLNAME		31
#endif

/*
** OK - now we can really define the VM...
*/
typedef struct vm
{
    struct vm      *link;       /* Ficl keeps a VM list for simple teardown */
    jmp_buf        *pState;     /* crude exception mechanism...     */
    OUTFUNC         textOut;    /* Output callback - see sysdep.c   */
    void *          pExtend;    /* vm extension pointer             */
    short           fRestart;   /* Set TRUE to restart runningWord  */
    IPTYPE          ip;         /* instruction pointer              */
    struct ficl_word 
                   *runningWord;/* address of currently running word (often just *(ip-1) ) */
    UNS32           state;      /* compiling or interpreting        */
    UNS32           base;       /* number conversion base           */
    FICL_STACK     *pStack;     /* param stack                      */
    FICL_STACK     *rStack;     /* return stack                     */
    CELL            sourceID;   /* -1 if string, 0 if normal input  */
    TIB             tib;        /* address of incoming text string  */
#if FICL_WANT_USER
    CELL            user[FICL_USER_CELLS];
#endif
    char            pad[nPAD];  /* the scratch area (see above)     */
} FICL_VM;

/*
** A FICL_CODE points to a function that gets called to help execute
** a word in the dictionary. It always gets passed a pointer to the
** running virtual machine, and from there it can get the address
** of the parameter area of the word it's supposed to operate on.
** For precompiled words, the code is all there is. For user defined
** words, the code assumes that the word's parameter area is a list
** of pointers to the code fields of other words to execute, and
** may also contain inline data. The first parameter is always
** a pointer to a code field.
*/
typedef void (*FICL_CODE)(FICL_VM *pVm);

#if 0
#define VM_ASSERT(pVM) assert((*(pVM->ip - 1)) == pVM->runningWord)
#else
#define VM_ASSERT(pVM) 
#endif

/* 
** Ficl models memory as a contiguous space divided into
** words in a linked list called the dictionary.
** A FICL_WORD starts each entry in the list.
** Version 1.02: space for the name characters is allotted from
** the dictionary ahead of the word struct - this saves about half 
** the storage on average with very little runtime cost.
*/
typedef struct ficl_word
{
    struct ficl_word *link;     /* Previous word in the dictionary      */
    UNS16 hash;
    UNS8 flags;                 /* Immediate, Smudge, Compile-only      */
    FICL_COUNT nName;           /* Number of chars in word name         */
    char *name;                 /* First nFICLNAME chars of word name   */
    FICL_CODE code;             /* Native code to execute the word      */
    CELL param[1];              /* First data cell of the word          */
} FICL_WORD;

/*
** Worst-case size of a word header: nFICLNAME chars in name
*/
#define CELLS_PER_WORD  \
    ( (sizeof (FICL_WORD) + nFICLNAME + sizeof (CELL)) \
                          / (sizeof (CELL)) )

int wordIsImmediate(FICL_WORD *pFW);
int wordIsCompileOnly(FICL_WORD *pFW);

/* flag values for word header */
#define FW_IMMEDIATE    1   /* execute me even if compiling */
#define FW_COMPILE      2   /* error if executed when not compiling */
#define FW_SMUDGE       4   /* definition in progress - hide me */
#define FW_CLASS        8   /* Word defines a class */

#define FW_COMPIMMED    (FW_IMMEDIATE | FW_COMPILE)
#define FW_DEFAULT      0


/*
** Exit codes for vmThrow
*/
#define VM_INNEREXIT -256   /* tell ficlExecXT to exit inner loop */
#define VM_OUTOFTEXT -257   /* hungry - normal exit */
#define VM_RESTART   -258   /* word needs more text to succeed - re-run it */
#define VM_USEREXIT  -259   /* user wants to quit */
#define VM_ERREXIT   -260   /* interp found an error */
#define VM_ABORT       -1   /* like errexit -- abort */
#define VM_ABORTQ      -2   /* like errexit -- abort" */
#define VM_QUIT       -56   /* like errexit, but leave pStack & base alone */


void        vmBranchRelative(FICL_VM *pVM, int offset);
FICL_VM *   vmCreate (FICL_VM *pVM, unsigned nPStack, unsigned nRStack);
void        vmDelete (FICL_VM *pVM);
void        vmExecute(FICL_VM *pVM, FICL_WORD *pWord);
char *      vmGetString(FICL_VM *pVM, FICL_STRING *spDest, char delimiter);
STRINGINFO  vmGetWord(FICL_VM *pVM);
STRINGINFO  vmGetWord0(FICL_VM *pVM);
int         vmGetWordToPad(FICL_VM *pVM);
STRINGINFO  vmParseString(FICL_VM *pVM, char delimiter);
void        vmPopIP  (FICL_VM *pVM);
void        vmPushIP (FICL_VM *pVM, IPTYPE newIP);
void        vmQuit   (FICL_VM *pVM);
void        vmReset  (FICL_VM *pVM);
void        vmSetTextOut(FICL_VM *pVM, OUTFUNC textOut);
void        vmTextOut(FICL_VM *pVM, char *text, int fNewline);
void        vmThrow  (FICL_VM *pVM, int except);
void        vmThrowErr(FICL_VM *pVM, char *fmt, ...);

#define vmGetRunningWord(pVM) ((pVM)->runningWord)


/*
** The inner interpreter - coded as a macro (see note for 
** INLINE_INNER_LOOP in sysdep.h for complaints about VC++ 5
*/
#define M_INNER_LOOP(pVM) \
    for (;;) \
    {  \
        FICL_WORD *tempFW = *(pVM)->ip++; \
        (pVM)->runningWord = tempFW; \
        tempFW->code(pVM); \
    }


#if INLINE_INNER_LOOP != 0
#define     vmInnerLoop(pVM) M_INNER_LOOP(pVM)
#else
void        vmInnerLoop(FICL_VM *pVM);
#endif

/*
** vmCheckStack needs a vm pointer because it might have to say
** something if it finds a problem. Parms popCells and pushCells
** correspond to the number of parameters on the left and right of 
** a word's stack effect comment.
*/
void        vmCheckStack(FICL_VM *pVM, int popCells, int pushCells);

/*
** TIB access routines...
** ANS forth seems to require the input buffer to be represented 
** as a pointer to the start of the buffer, and an index to the
** next character to read.
** PushTib points the VM to a new input string and optionally
**  returns a copy of the current state
** PopTib restores the TIB state given a saved TIB from PushTib
** GetInBuf returns a pointer to the next unused char of the TIB
*/
void        vmPushTib(FICL_VM *pVM, char *text, INT32 nChars, TIB *pSaveTib);
void        vmPopTib(FICL_VM *pVM, TIB *pTib);
#define     vmGetInBuf(pVM) ((pVM)->tib.cp + (pVM)->tib.index)
#define     vmGetInBufLen(pVM) ((pVM)->tib.end - (pVM)->tib.cp)
#define     vmGetInBufEnd(pVM) ((pVM)->tib.end)
#define     vmSetTibIndex(pVM, i) (pVM)->tib.index = i
#define     vmUpdateTib(pVM, str) (pVM)->tib.index = (str) - (pVM)->tib.cp

/*
** Generally useful string manipulators omitted by ANSI C...
** ltoa complements strtol
*/
#if defined(_WIN32) && !FICL_MAIN
/* #SHEESH
** Why do Microsoft Meatballs insist on contaminating
** my namespace with their string functions???
*/
#pragma warning(disable: 4273)
#endif

int        isPowerOfTwo(FICL_UNS u);

char       *ltoa( FICL_INT value, char *string, int radix );
char       *ultoa(FICL_UNS value, char *string, int radix );
char        digit_to_char(int value);
char       *strrev( char *string );
char       *skipSpace(char *cp, char *end);
char       *caseFold(char *cp);
int         strincmp(char *cp1, char *cp2, FICL_COUNT count);

#if defined(_WIN32) && !FICL_MAIN
#pragma warning(default: 4273)
#endif

/*
** Ficl hash table - variable size.
** assert(size > 0)
** If size is 1, the table degenerates into a linked list.
** A WORDLIST (see the search order word set in DPANS) is
** just a pointer to a FICL_HASH in this implementation.
*/
#if !defined HASHSIZE /* Default size of hash table. For most uniform */
#define HASHSIZE 127  /*   performance, use a prime number!   */
#endif

typedef struct ficl_hash 
{
    struct ficl_hash *link;  /* eventual inheritance support */
    unsigned   size;
    FICL_WORD *table[1];
} FICL_HASH;

void        hashForget(FICL_HASH *pHash, void *where);
UNS16       hashHashCode(STRINGINFO si);
void        hashInsertWord(FICL_HASH *pHash, FICL_WORD *pFW);
FICL_WORD  *hashLookup(struct ficl_hash *pHash, 
                       STRINGINFO si, 
                       UNS16 hashCode);
void        hashReset(FICL_HASH *pHash);

/*
** A Dictionary is a linked list of FICL_WORDs. It is also Ficl's
** memory model. Description of fields:
**
** here -- points to the next free byte in the dictionary. This
**      pointer is forced to be CELL-aligned before a definition is added.
**      Do not assume any specific alignment otherwise - Use dictAlign().
**
** smudge -- pointer to word currently being defined (or last defined word)
**      If the definition completes successfully, the word will be
**      linked into the hash table. If unsuccessful, dictUnsmudge
**      uses this pointer to restore the previous state of the dictionary.
**      Smudge prevents unintentional recursion as a side-effect: the
**      dictionary search algo examines only completed definitions, so a 
**      word cannot invoke itself by name. See the ficl word "recurse".
**      NOTE: smudge always points to the last word defined. IMMEDIATE
**      makes use of this fact. Smudge is initially NULL.
**
** pForthWords -- pointer to the default wordlist (FICL_HASH).
**      This is the initial compilation list, and contains all
**      ficl's precompiled words.
**
** pCompile -- compilation wordlist - initially equal to pForthWords
** pSearch  -- array of pointers to wordlists. Managed as a stack.
**      Highest index is the first list in the search order.
** nLists   -- number of lists in pSearch. nLists-1 is the highest 
**      filled slot in pSearch, and points to the first wordlist
**      in the search order
** size -- number of cells in the dictionary (total)
** dict -- start of data area. Must be at the end of the struct.
*/
typedef struct ficl_dict
{
    CELL *here;
    FICL_WORD *smudge;
    FICL_HASH *pForthWords;
    FICL_HASH *pCompile;
    FICL_HASH *pSearch[FICL_DEFAULT_VOCS];
    int        nLists;
    unsigned   size;    /* Number of cells in dict (total)*/
    CELL       dict[1]; /* Base of dictionary memory      */
} FICL_DICT;

void       *alignPtr(void *ptr);
void        dictAbortDefinition(FICL_DICT *pDict);
void        dictAlign(FICL_DICT *pDict);
int         dictAllot(FICL_DICT *pDict, int n);
int         dictAllotCells(FICL_DICT *pDict, int nCells);
void        dictAppendCell(FICL_DICT *pDict, CELL c);
void        dictAppendChar(FICL_DICT *pDict, char c);
FICL_WORD  *dictAppendWord(FICL_DICT *pDict, 
                           char *name, 
                           FICL_CODE pCode, 
                           UNS8 flags);
FICL_WORD  *dictAppendWord2(FICL_DICT *pDict, 
                           STRINGINFO si, 
                           FICL_CODE pCode, 
                           UNS8 flags);
void        dictAppendUNS(FICL_DICT *pDict, FICL_UNS u);
int         dictCellsAvail(FICL_DICT *pDict);
int         dictCellsUsed (FICL_DICT *pDict);
void        dictCheck(FICL_DICT *pDict, FICL_VM *pVM, int nCells);
FICL_DICT  *dictCreate(unsigned nCELLS);
FICL_DICT  *dictCreateHashed(unsigned nCells, unsigned nHash);
void        dictDelete(FICL_DICT *pDict);
void        dictEmpty(FICL_DICT *pDict, unsigned nHash);
void        dictHashSummary(FICL_VM *pVM);
int         dictIncludes(FICL_DICT *pDict, void *p);
FICL_WORD  *dictLookup(FICL_DICT *pDict, STRINGINFO si);
#if FICL_WANT_LOCALS
FICL_WORD  *dictLookupLoc(FICL_DICT *pDict, STRINGINFO si);
#endif
void        dictResetSearchOrder(FICL_DICT *pDict);
void        dictSetFlags(FICL_DICT *pDict, UNS8 set, UNS8 clr);
void        dictSetImmediate(FICL_DICT *pDict);
void        dictUnsmudge(FICL_DICT *pDict);
CELL       *dictWhere(FICL_DICT *pDict);


/*
** External interface to FICL...
*/
/* 
** f i c l I n i t S y s t e m
** Binds a global dictionary to the interpreter system and initializes
** the dict to contain the ANSI CORE wordset. 
** You specify the address and size of the allocated area.
** After that, ficl manages it.
** First step is to set up the static pointers to the area.
** Then write the "precompiled" portion of the dictionary in.
** The dictionary needs to be at least large enough to hold the
** precompiled part. Try 1K cells minimum. Use "words" to find
** out how much of the dictionary is used at any time.
*/
void       ficlInitSystem(int nDictCells);

/*
** f i c l T e r m S y s t e m
** Deletes the system dictionary and all virtual machines that
** were created with ficlNewVM (see below). Call this function to
** reclaim all memory used by the dictionary and VMs.
*/
void       ficlTermSystem(void);

/*
** f i c l E x e c
** Evaluates a block of input text in the context of the
** specified interpreter. Emits any requested output to the
** interpreter's output function. If the input string is NULL
** terminated, you can pass -1 as nChars rather than count it.
** Execution returns when the text block has been executed,
** or an error occurs.
** Returns one of the VM_XXXX codes defined in ficl.h:
** VM_OUTOFTEXT is the normal exit condition
** VM_ERREXIT means that the interp encountered a syntax error
**      and the vm has been reset to recover (some or all
**      of the text block got ignored
** VM_USEREXIT means that the user executed the "bye" command
**      to shut down the interpreter. This would be a good
**      time to delete the vm, etc -- or you can ignore this
**      signal.
** VM_ABORT and VM_ABORTQ are generated by 'abort' and 'abort"'
**      commands.
** Preconditions: successful execution of ficlInitSystem,
**      Successful creation and init of the VM by ficlNewVM (or equiv)
*/
int        ficlExec (FICL_VM *pVM, char *pText);
int        ficlExecC(FICL_VM *pVM, char *pText, INT32 nChars);
int        ficlExecXT(FICL_VM *pVM, FICL_WORD *pWord);

/*
** Create a new VM from the heap, and link it into the system VM list.
** Initializes the VM and binds default sized stacks to it. Returns the
** address of the VM, or NULL if an error occurs.
** Precondition: successful execution of ficlInitSystem
*/
FICL_VM   *ficlNewVM(void);

/*
** Set the stack sizes (return and parameter) to be used for all
** subsequently created VMs. Returns actual stack size to be used.
*/
int ficlSetStackSize(int nStackCells);

/*
** Returns the address of the most recently defined word in the system
** dictionary with the given name, or NULL if no match.
** Precondition: successful execution of ficlInitSystem
*/
FICL_WORD *ficlLookup(char *name);

/*
** f i c l G e t D i c t
** Utility function - returns the address of the system dictionary.
** Precondition: successful execution of ficlInitSystem
*/
FICL_DICT *ficlGetDict(void);
FICL_DICT *ficlGetEnv(void);
void       ficlSetEnv(char *name, UNS32 value);
void       ficlSetEnvD(char *name, UNS32 hi, UNS32 lo);
#if FICL_WANT_LOCALS
FICL_DICT *ficlGetLoc(void);
#endif
/* 
** f i c l B u i l d
** Builds a word into the system default dictionary in a thread-safe way.
** Preconditions: system must be initialized, and there must
** be enough space for the new word's header! Operation is
** controlled by ficlLockDictionary, so any initialization
** required by your version of the function (if you "overrode"
** it) must be complete at this point.
** Parameters:
** name  -- the name of the word to be built
** code  -- code to execute when the word is invoked - must take a single param
**          pointer to a FICL_VM
** flags -- 0 or more of FW_IMMEDIATE, FW_COMPILE, use bitwise OR! 
**          Most words can use FW_DEFAULT.
** nAllot - number of extra cells to allocate in the parameter area (usually zero)
*/
int        ficlBuild(char *name, FICL_CODE code, char flags);

/* 
** f i c l C o m p i l e C o r e
** Builds the ANS CORE wordset into the dictionary - called by
** ficlInitSystem - no need to waste dict space by doing it again.
*/
void       ficlCompileCore(FICL_DICT *dp);
void       ficlCompileSoftCore(FICL_VM *pVM);

/*
** from words.c...
*/
void       constantParen(FICL_VM *pVM);
void       twoConstParen(FICL_VM *pVM);

#ifdef __cplusplus
}
#endif

#endif /* __FICL_H__ */

[-- Attachment #3: makefile --]
[-- Type: text/plain, Size: 206 bytes --]


export CC = powerpc-eabi-gcc -mpowerpc64
#export CC = powerpc-eabi-gcc -mno-eabi -mpowerpc64 -Wa,-mppc64
#export CC = powerpc-eabi-gcc -mno-eabi
export CFLAGS = -g -Wall -msoft-float
LD = powerpc-eabi-ld


[-- Attachment #4: sysdep.h --]
[-- Type: text/x-c, Size: 7799 bytes --]

/*******************************************************************
                    s y s d e p . h
** Forth Inspired Command Language
** Author: John Sadler (john_sadler@alum.mit.edu)
** Created: 16 Oct 1997
** Ficl system dependent types and prototypes...
**
** Note: Ficl also depends on the use of "assert" when
** FICL_ROBUST is enabled. This may require some consideration
** in firmware systems since assert often
** assumes stderr/stdout.  
** 
*******************************************************************/
/*
** N O T I C E -- DISCLAIMER OF WARRANTY
** 
** Ficl is freeware. Use it in any way that you like, with
** the understanding that the code is not supported.
** 
** Any third party may reproduce, distribute, or modify the ficl
** software code or any derivative  works thereof without any 
** compensation or license, provided that the author information
** and this disclaimer text are retained in the source code files.
** The ficl software code is provided on an "as is"  basis without
** warranty of any kind, including, without limitation, the implied
** warranties of merchantability and fitness for a particular purpose
** and their equivalents under the laws of any jurisdiction.  
** 
** I am interested in hearing from anyone who uses ficl. If you have
** a problem, a success story, a defect, an enhancement request, or
** if you would like to contribute to the ficl release (yay!), please
** send me email at the address above. 
*/

#if !defined (__SYSDEP_H__)
#define __SYSDEP_H__ 

#include <stddef.h> /* size_t, NULL */
#include <setjmp.h>
#include <assert.h>

#if !defined IGNORE		/* Macro to silence unused param warnings */
#define IGNORE(x) &x
#endif

/*
** TRUE and FALSE for C boolean operations, and
** portable 32 bit types for CELLs
** 
*/
#if !defined TRUE
#define TRUE 1
#endif
#if !defined FALSE
#define FALSE 0
#endif


/*
** System dependent data type declarations...
*/
#if !defined INT32
#define INT32 long
#endif

#if !defined UNS32
#define UNS32 unsigned long
#endif

#if !defined UNS16
#define UNS16 unsigned short
#endif

#if !defined UNS8
#define UNS8 unsigned char
#endif

#if !defined NULL
#define NULL ((void *)0)
#endif

/*
** FICL_UNS and FICL_INT must have the same size as a void* on
** the target system. A CELL is a union of void*, FICL_UNS, and
** FICL_INT. 
*/
#if !defined FICL_INT
#define FICL_INT INT32
#endif

#if !defined FICL_UNS
#define FICL_UNS UNS32
#endif

/*
** Ficl presently supports values of 32 and 64 for BITS_PER_CELL
*/
#if !defined BITS_PER_CELL
#define BITS_PER_CELL 32
#endif

#if ((BITS_PER_CELL != 32) && (BITS_PER_CELL != 64))
    Error!
#endif

typedef struct
{
    FICL_UNS hi;
    FICL_UNS lo;
} DPUNS;

typedef struct
{
    FICL_UNS quot;
    FICL_UNS rem;
} UNSQR;

typedef struct
{
    FICL_INT hi;
    FICL_INT lo;
} DPINT;

typedef struct
{
    FICL_INT quot;
    FICL_INT rem;
} INTQR;


/*
** Build controls
** FICL_MULTITHREAD enables dictionary mutual exclusion
** wia the ficlLockDictionary system dependent function.
*/
#if !defined FICL_MULTITHREAD
#define FICL_MULTITHREAD 0
#endif

/*
** PORTABLE_LONGMULDIV causes ficlLongMul and ficlLongDiv to be
** defined in C in sysdep.c. Use this if you cannot easily 
** generate an inline asm definition
*/ 
#if !defined (PORTABLE_LONGMULDIV)
#define PORTABLE_LONGMULDIV 1
#endif


/*
** INLINE_INNER_LOOP causes the inner interpreter to be inline code
** instead of a function call. This is mainly because MS VC++ 5
** chokes with an internal compiler error on the function version.
** in release mode. Sheesh.
*/
#if !defined INLINE_INNER_LOOP
#if defined _DEBUG
#define INLINE_INNER_LOOP 0
#else
#define INLINE_INNER_LOOP 1
#endif
#endif

/*
** FICL_ROBUST enables bounds checking of stacks and the dictionary.
** This will detect stack over and underflows and dictionary overflows.
** Any exceptional condition will result in an assertion failure.
** (As generated by the ANSI assert macro)
** FICL_ROBUST == 1 --> stack checking in the outer interpreter
** FICL_ROBUST == 2 also enables checking in many primitives
*/

#if !defined FICL_ROBUST
#define FICL_ROBUST 2
#endif

/*
** FICL_DEFAULT_STACK Specifies the default size (in CELLs) of
** a new virtual machine's stacks, unless overridden at 
** create time.
*/
#if !defined FICL_DEFAULT_STACK
#define FICL_DEFAULT_STACK 128
#endif

/*
** FICL_DEFAULT_DICT specifies the number of CELLs to allocate
** for the system dictionary by default. The value
** can be overridden at startup time as well.
** FICL_DEFAULT_ENV specifies the number of cells to allot
** for the environment-query dictionary.
*/
#if !defined FICL_DEFAULT_DICT
#define FICL_DEFAULT_DICT 12288
#endif

#if !defined FICL_DEFAULT_ENV
#define FICL_DEFAULT_ENV 260
#endif

/*
** FICL_DEFAULT_VOCS specifies the maximum number of wordlists in 
** the dictionary search order. See Forth DPANS sec 16.3.3
** (file://dpans16.htm#16.3.3)
*/
#if !defined FICL_DEFAULT_VOCS
#define FICL_DEFAULT_VOCS 16
#endif

/*
** User variables: per-instance variables bound to the VM.
** Kinda like thread-local storage. Could be implemented in a 
** VM private dictionary, but I've chosen the lower overhead
** approach of an array of CELLs instead.
*/
#if !defined FICL_WANT_USER
#define FICL_WANT_USER 1
#endif

#if !defined FICL_USER_CELLS
#define FICL_USER_CELLS 16
#endif

/* 
** FICL_WANT_LOCALS controls the creation of the LOCALS wordset and
** a private dictionary for local variable compilation.
*/
#if !defined FICL_WANT_LOCALS
#define FICL_WANT_LOCALS 1
#endif

/* Max number of local variables per definition */
#if !defined FICL_MAX_LOCALS
#define FICL_MAX_LOCALS 16
#endif

/*
** FICL_ALIGN is the power of two to which the dictionary
** pointer address must be aligned. This value is usually
** either 1 or 2, depending on the memory architecture
** of the target system; 2 is safe on any 16 or 32 bit
** machine. 3 would be appropriate for a 64 bit machine.
*/
#if !defined FICL_ALIGN
#define FICL_ALIGN 2
#define FICL_ALIGN_ADD ((1 << FICL_ALIGN) - 1)
#endif

/*
** System dependent routines --
** edit the implementations in sysdep.c to be compatible
** with your runtime environment...
** ficlTextOut sends a NULL terminated string to the 
**   default output device - used for system error messages
** ficlMalloc and ficlFree have the same semantics as malloc and free
**   in standard C
** ficlLongMul multiplies two UNS32s and returns a 64 bit unsigned 
**   product
** ficlLongDiv divides an UNS64 by an UNS32 and returns UNS32 quotient
**   and remainder
*/
struct vm;
void  ficlTextOut(struct vm *pVM, char *msg, int fNewline);
void *ficlMalloc (size_t size);
void  ficlFree   (void *p);
void *ficlRealloc(void *p, size_t size);
/*
** Stub function for dictionary access control - does nothing
** by default, user can redefine to guarantee exclusive dict
** access to a single thread for updates. All dict update code
** must be bracketed as follows:
** ficlLockDictionary(TRUE);
** <code that updates dictionary>
** ficlLockDictionary(FALSE);
**
** Returns zero if successful, nonzero if unable to acquire lock
** before timeout (optional - could also block forever)
**
** NOTE: this function must be implemented with lock counting
** semantics: nested calls must behave properly.
*/
#if FICL_MULTITHREAD
int ficlLockDictionary(short fLock);
#else
#define ficlLockDictionary(x) 0 /* ignore */
#endif

/*
** 64 bit integer math support routines: multiply two UNS32s
** to get a 64 bit product, & divide the product by an UNS32
** to get an UNS32 quotient and remainder. Much easier in asm
** on a 32 bit CPU than in C, which usually doesn't support 
** the double length result (but it should).
*/
DPUNS ficlLongMul(FICL_UNS x, FICL_UNS y);
UNSQR ficlLongDiv(DPUNS    q, FICL_UNS y);

#endif /*__SYSDEP_H__*/

[-- Attachment #5: thing.c --]
[-- Type: text/x-c, Size: 111 bytes --]

#include "ficl.h"

int main(int argc, char **argv) 
{

   FICL_VM *pVM;

   pVM = ficlNewVM();

   return 0;
}

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2000-05-26  7:50 Martin Frick
  0 siblings, 0 replies; 387+ messages in thread
From: Martin Frick @ 2000-05-26  7:50 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2496 bytes --]

Hi folks,

here is a tar copy of my program. The error occured while compilition of
quantum.cc with the gcc version 2.95 19990728. 
Please have a look at my Makefile included in the tar copy for details.
The compiler output was the follwing:

g++-2.95 -Wall  -g -I/software/packages/blitz-19990624/i486-pc-linux-gnu-2.0/
-pg  -c -o quantum.o quantum.cc
quantum.cc: In function `int main(char, char **)':
quantum.cc:13: Internal compiler error.
quantum.cc:13: Please submit a full bug report.
quantum.cc:13: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
instructions.
make: *** [quantum.o] Error 1  

regards
Martin

----------------------------------------------------------------------

Martin Frick

Fakultät fuer Physik
LS Nielaba
Universität Konstanz
Raum P745
Telefon: +49-(0)7531-88-4460
E-Mail : frick@hamilton.physik.uni-konstanz.de


Martin Frick                    Telefon: +49-(0)7531-696076
Bücklestraße 68a                E-Mail : Martin.Frick@uni-konstanz.de
                                         Martin.Frick@gmx.de
78467 Konstanz                  ICQ    : 62516929


Martin Frick                    Telefon: +49-(0)7584-691
Gartenstraße 12 

88371 Ebersbach 

----------------------------------------------------------------------
>From keliher@cs.queensu.ca Fri May 26 08:42:00 2000
From: <keliher@cs.queensu.ca>
To: gcc-bugs@gcc.gnu.org
Subject: Compiler error
Date: Fri, 26 May 2000 08:42:00 -0000
Message-id: <Pine.SOL.3.95.1000526114048.11991A-100000@teaspoon>
X-SW-Source: 2000-05/msg00841.html
Content-length: 886

Bug report
----------

I received the following error message:

	% g++ -o junk -c junk.cpp
	% junk.cpp:14: Internal compiler error.
	% junk.cpp:14: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
	% junk.cpp:14: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

The GCC version is:

	% gcc -v
	% Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
	% gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

The system type is:

	Red Hat Linux release 6.0
	Kernel 2.2.5-15 on an i686

Preprocessed source code consisted of these 14 lines:
It is the last union (an anonymous union) preceded by typedef
that causes the problem.

	typedef class
			{
				long bow;
			} alias;

	typedef union
			{
				long shot;
			} alias2;

	typedef union
			{
				long time;
			};


-----------------------
Liam Keliher
keliher@cs.queensu.ca


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-05-24  7:42 Igor Markov
  0 siblings, 0 replies; 387+ messages in thread
From: Igor Markov @ 2000-05-24  7:42 UTC (permalink / raw)
  To: gcc-bugs

   here are the details required by    
         http://www.gnu.org/software/gcc/faq.html#bugreport

g++ -g -DABKDEBUG -fPIC -Wall -pedantic -pipe  -I.
-I/home/userg/code/OUR/packages -D__ABKPACKAGE__=\"`pwd | sed 's/.*\///g'`\"
-D__ABKSYSTEM__=\""`uname -n` running `uname -sr | sed 's/ /-/g'`"\"
-D__ABKUSER__=\"`whoami`\" -D__ABKLIBBASE__=\"/home/userg/code/lib/g++/O5\" -c
seed.cxx 
seed.cxx: In method `SeedHandler::SeedHandler(const char *, unsigned int =
0ffffffff)':
seed.cxx:195: Internal compiler error.
seed.cxx:195: Please submit a full bug report.
seed.cxx:195: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make: *** [seed.o] Error 1

> g++ -v
Reading specs from /usr/lib/gcc-lib/i386-pc-linux/2.95.2/specs
gcc version 2.95.2 19991024/Linux (release)
>  rpm -q gcc-c++ gcc
gcc-c++-2.95.2-0.1
gcc-2.95.2-0.1
> uname -a
Linux xenon 2.2.12-20smp #1 SMP Mon Sep 27 10:34:45 EDT 1999 i686 unknown

http://vlsicad.cs.ucla.edu/~imarkov/gcc-bugs/

  ---------
 
   thanks for help,
							Igor

   P.S. Please cc: imarkov@cs.ucla.edu when replying --- I am not
        on the gcc-bugs list. Thanks again.
-- 
  Igor Markov  office: (310) 206-0179   
  http://vlsicad.cs.ucla.edu/~imarkov
>From imarkov@cs.ucla.edu Wed May 24 07:45:00 2000
From: Igor Markov <imarkov@cs.ucla.edu>
To: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error
Date: Wed, 24 May 2000 07:45:00 -0000
Message-id: <392BED4B.BA75B4B4@cs.ucla.edu>
References: <392BEC7A.9FD42435@cs.ucla.edu>
X-SW-Source: 2000-05/msg00768.html
Content-length: 414

  Follow-up: I have no problems with g++ on Solaris. 
             The same file seed.cxx compiles (and the
             whole package where it comes from passes regression tests).
             
 g++ -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)

								Igor
-- 
  Igor Markov  office: (310) 206-0179   
  http://vlsicad.cs.ucla.edu/~imarkov
>From imarkov@cs.ucla.edu Wed May 24 07:52:00 2000
From: Igor Markov <imarkov@cs.ucla.edu>
To: gcc-bugs@gcc.gnu.org
Cc: oliver@cs.ucla.edu, caldwell@cs.ucla.edu, abk@cs.ucla.edu
Subject: Re: Internal compiler error
Date: Wed, 24 May 2000 07:52:00 -0000
Message-id: <392BEEF8.6A3C66AC@cs.ucla.edu>
References: <392BEC7A.9FD42435@cs.ucla.edu>
X-SW-Source: 2000-05/msg00769.html
Content-length: 278

   ok, I resolved the problem by rewriting 
     _counter=++((*iC).second);  // line 195
   as
     iC->second++; _counter=iC->second;

   Hope this info is useful to gcc developers.

						Igor
-- 
  Igor Markov  office: (310) 206-0179   
  http://vlsicad.cs.ucla.edu/~imarkov
>From arthur_katayen@transcanada.com Wed May 24 08:11:00 2000
From: "Arthur Katayen" <arthur_katayen@transcanada.com>
To: gcc-bugs@gcc.gnu.org
Subject: Linking problems.
Date: Wed, 24 May 2000 08:11:00 -0000
Message-id: <392BEF6B.48304962@transcanada.com>
X-SW-Source: 2000-05/msg00770.html
Content-length: 588

Hello there,

I have a problem with the new GCC compiler.  I am not sure to who or
where to turn to.
We developed an application in C++ on an AIX 4.3 using gcc version
egcs-2.91.66 it worked great.
However, after moving the code to SunOS 5.7 with gcc version 2.95.2, we
had linking problems when trying to run it.

This is the error message when trying to run this application.:
"ld.so.1: cir2nrg: fatal: libstdc++.so.2.10.0: open failed: No such file
or directory
Killed"

Thanks,

Arthur Katayen.
--
Arthur Katayen, B.Sc.
phone:  (403) 267-8690
email:  arthur_katayen@transcanada.com



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-05-16  7:37 Paul Metcalfe
  0 siblings, 0 replies; 387+ messages in thread
From: Paul Metcalfe @ 2000-05-16  7:37 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 219098 bytes --]

Background
---------
I wanted to compile the beta release of KDE 2.0. I have downloaded numerous 
large source directories of the code.

Problem/Bug
---------
I call configure with --prefix=/opt/kde2 to install the binaries in that 
directory. I call the make command which uses the make files gernerated by 
the configure command.
The compiler crashes after a while with the error message below. I then 
restart the compiler and it occurs again, and again. The compilation requires 
me to sit and keep starting it every 2-3 minutes.
The typical command from to the compiler is as below

Typical Error message
----------------
enginepie.cc:714: Internal compiler error.
enginepie.cc:714: Please submit a full bug report to 
`egcs-bugs@egcs.cygnus.com'.
enginepie.cc:714: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for 
details.

Typical Compiler Command from Makefile
-----------------------------
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../lib/kofficeui -I../lib/kofficeui 
-I../lib/kofficecore -I../lib/kofficecore -I../lib/koml -I../lib/koml 
-I../lib/store -I.. -Wpointer-arith -Wmissing-prototypes -Wwrite-strings 
-Wno-long-long -fno-builtin -c enginepie.cc  -fPIC -DPIC -o enginepie.lo

Bash Profile
---------
QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
if [ $MANPATH ]
then
        MANPATH=$QTDIR/man:$MANPATH
else
        MANPATH=$QTDIR/man:
fi
if [ $LD_LIBRARY_PATH ]
then
        LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
else               
        LD_LIBRARY_PATH=$QTDIR/lib
fi
LIBRARY_PATH=$LD_LIBRARY_PATH
if [ $CPLUS_INCLUDE_PATH ]
then
        CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH
else
        CPLUS_INCLUDE_PATH=$QTDIR/include
fi
 
export QTDIR PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH
export CPLUS_INCLUDE_PATH    

EGCS Version
----------
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

Installed from
---------
egcs-1.1.2-30.i386.rpm & egcs-c++-1.1.2-30.i386.rpm

System Details
----------
AMD K6-2 500
RedHat 6.1


I hope this makes sense. I would supply the source of one of the modules used 
for kde 2.0 beta but these are avaiable from ftp.kde.org.


Hope you have the required information here. If you need any more details 
please contact me.


Paul Metcalfe
>From ghazi@caip.rutgers.edu Tue May 16 07:49:00 2000
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: bkorb@sco.COM
Cc: egcs-bugs@egcs.cygnus.com, zack@wolery.cumb.org
Subject: Re: fixincl recently broken, char_macro_def/char_macro_use don't work
Date: Tue, 16 May 2000 07:49:00 -0000
Message-id: <200005161449.KAA10860@caip.rutgers.edu>
X-SW-Source: 2000-05/msg00535.html
Content-length: 1102

 > From: Bruce Korb <bkorb@sco.COM>
 > 
 > Hi Kaveh,
 > 
 > My guess is that it broke close to the 12-th of May:
 > 
 >   http://gcc.gnu.org/ml/gcc-patches/2000-05/msg00712.html
 > 
 > I have been aware of the problem since yesterday:
 > 
 >   http://gcc.gnu.org/ml/gcc-patches/2000-05/msg00815.html
 > 
 > > It looks like you rewrote some of this code recently.  I wasn't able
 > > to figure out why it broke, but here is the termios.h file from my
 > > box.  Please see if you can determine why its not working.
 > 
 > I'll take this home and puzzle over it.
 > It probably won't be any more illuminating than the failing
 > tests for these fixes below.  Thanks for the report.
 >  - Bruce

Okay, thanks for agreeing to take a look.  If you can't figure it out,
I think it would be reasonable to revert this stuff back to a working
state until we understand what's wrong.  At the moment, probably any
platform needing the char macro fixes retains its traditional style
definitions.

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From pfrauenf@math.ethz.ch Tue May 16 08:01:00 2000
From: Philipp Frauenfelder <pfrauenf@math.ethz.ch>
To: gcc-bugs@gcc.gnu.org
Subject: Internal compiler error using hash_map<unsigned int, double[]>
Date: Tue, 16 May 2000 08:01:00 -0000
Message-id: <20000516170111.A22589@herodot.math.ethz.ch>
X-SW-Source: 2000-05/msg00536.html
Content-type: multipart/mixed; boundary="----------=_1583533105-4114-404"

This is a multi-part message in MIME format...

------------=_1583533105-4114-404
Content-length: 3351

Hi,

today I got an internal compiler error using

  static hash_map<uint, real[]> xGL_H;

where uint is unsigned int and real is double in a class
declaration.

Here is the command and its output:

pfrauenf@sophokles:~/concepts-cvs/SunOS-g++> g++ -v --save-temps -Wall -DDEBUG -g -DRTTI -I/usr/local/app/tecplot/7.0/include -c ../hp/hpHP2d002.cc -o hpHP2d002.o 
Reading specs from /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/cpp -lang-c++ -v -I/usr/local/app/tecplot/7.0/include -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -g -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) -DDEBUG -DRTTI ../hp/hpHP2d002.cc hpHP2d002.ii
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/app/tecplot/7.0/include
 /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3
 /usr/local/app/gcc/2.95.2/include
 /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../sparc-sun-solaris2.5.1/include
 /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/cc1plus hpHP2d002.ii -quiet -dumpbase hpHP2d002.cc -g -Wall -version -o hpHP2d002.s
GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.5.1) compiled by GNU C version 2.95.2 19991024 (release).
In file included from ../hp/hpHP2d002.cc:4:
/usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3/stl_hashtable.h: In instantiation of `hashtable<pair<const unsigned int,double[]>,unsigned int,hash<unsigned int>,_Select1st<pair<const unsigned int,double[]> >,equal_to<unsigned int>,allocator<double[]> >':
/usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3/stl_hash_map.h:58:   instantiated from `hash_map<unsigned int,double[],hash<unsigned int>,equal_to<unsigned int>,allocator<double[]> >'
../hp/hpHP2d002.h:226:   instantiated from here
/usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3/stl_hashtable.h:212: Internal compiler error.
/usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3/stl_hashtable.h:212: Please submit a full bug report.
/usr/local/app/gcc/2.95.2/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.2/../../../../include/g++-3/stl_hashtable.h:212: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

The file hpHP2d002.ii is in the attachment. If it helps,
I can try to get a really small example, but I'm on
vacation wendsday and thursday --- you would have to wait
until friday.

Regards,
-- 
Philipp      | work                  | home
Frauenfelder | pfrauenf@math.ethz.ch | pfrauenf@debian.org
[PGP]        | +41 1 632 60 38       | +41 1 862 73 14
Proudly running Debian GNU/Linux. See http://www.debian.org/

------------=_1583533105-4114-404
Content-Type: application/x-gzip; charset=binary; name="hpHP2d002.ii.gz"
Content-Disposition: inline; filename="hpHP2d002.ii.gz"
Content-Transfer-Encoding: base64
Content-Length: 70549

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
0ogtr7a72kTfz67kaFDc+pGVcT7J/UGOnN7Y/gGZ6yVXYeP+GgZ9vKV97HFN
WkRiryImpsyVMCWkD9H9+sHXz58cdJ50OsZvSTgu+XIAc/KYu1wNDtj6KQdP
usZPKd/MtdVP6M24M+PdTllLvdNIPOEi+mI8rafJnkp5WlU4UwhTdoy5CpT8
PJAfET3BZ/ZL5VrxoxuqTu1JLsPpAmWnH8RUefgMN7d9iojpDVnNto8qUaNE
DgPdmUFybTG7SC0/RfiY8ltw7xhQH1eDlSk5gn2YPfTcpG4ka6k3qVMlwDjG
k7pAnI3e6vnRAz1Rft94ABOkn9czOT3Cr4tsIie/YpTjsV87n3LwoBimAH7X
JcamSKKMCAsKr7Qrrj8GC0Kt7Sle9r3wDtDqJnthrQf9/hBKvHzVIyAqUi4G
q9l5wmEDL0q+zhOv7SFeCTNOwOhK0OcdhW4Y/uUQIng0FVLggdvuRzhs4XVJ
adrExWA6Qoc3mOou8QWdTBun13OZpepI/WkqNzIxaz5fZGbGHM2nafHw5SJT
b6N5pgc2OJstVkELVL9kV7meOjR3WwoiqAIhPI4qTl1kq2z6pkAwpM1cZZNo
QuGRf7bMpN24rDB1tn9REZHadKGwDT8vTftvgdBj3NnS5wnqJ/zbxCmQ984K
3hiKwS/yThWEP/imLfR7L75wtpq9HTa1GpfP4lWZcDbHw70drmaTMzvZ1HUQ
AvT0cHK2BCKW1anQBWUZqGEZzGcJGn++6NuFEajY068C2dUvM/3Sj1ZHFuin
UjDs5LEk7KIc25ilCF9N0q+mpTSEb5ZZVoHopcbrSxV07HxdoJ+qbLZ6nV1z
M35fS5dvB2essWwzJg9bO3j+NGXvgbTRet5l9ESBZsM3q6bqYB1PgCK7+k8I
fV4L+mdETpaBq5Q536DMBV+GD3hISzp8O2qm9MgCjWcX+ZSx4vLVbL5qkhoU
6wuDH7LQcn0G5ezAF5YNR1/1QBYZLC48XPJRPh214W+2WOBf+f+4AfPBclkg
FgDxtonOTJJVUXdziOTMb7W65gat8fOng0BXbFhrMJaKlhylVfnJa1hPafLE
wVg8H6wum76WhGCStOlgksXRLfliOZ6F47Si7w3vBCiM89WSxygupHlYzVfM
m/UUktvYV77+KiVehdHm0BLiP3ZQE8HIZoY2O7YJN8AFsLpzxqsZREoJbLpe
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
tUVZrlBfbtphU+WU+f8HkGzCjIGIBQA=

------------=_1583533105-4114-404--
>From bkorb@sco.COM Tue May 16 08:17:00 2000
From: Bruce Korb <bkorb@sco.COM>
To: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
Cc: egcs-bugs@egcs.cygnus.com, zack@wolery.cumb.org
Subject: Re: fixincl recently broken, char_macro_def/char_macro_use don't work
Date: Tue, 16 May 2000 08:17:00 -0000
Message-id: <392165C3.97F9983F@sco.com>
References: <200005161449.KAA10860@caip.rutgers.edu>
X-SW-Source: 2000-05/msg00537.html
Content-length: 1319

"Kaveh R. Ghazi" wrote:
>  > > It looks like you rewrote some of this code recently.  I wasn't able
>  > > to figure out why it broke, but here is the termios.h file from my
>  > > box.  Please see if you can determine why its not working.
>  >
>  > I'll take this home and puzzle over it.
>  > It probably won't be any more illuminating than the failing
>  > tests for these fixes below.  Thanks for the report.
>  >  - Bruce
> 
> Okay, thanks for agreeing to take a look.  If you can't figure it out,
> I think it would be reasonable to revert this stuff back to a working
> state until we understand what's wrong.  At the moment, probably any
> platform needing the char macro fixes retains its traditional style
> definitions.

Too late.  I fixed it last night and just checked it in.
The problem was that the "IO" and "CTRL" strings get
passed in as p_fixd->patch_args[1] and the code was indexing
with zero  :-(.  Also, after focusing on the code for too
long, my itchy fingers rewrote it to use a regex to parse
the #define-s.  This also fixed a little problem in that
this:

  #ifndef IO_QUOTES_DEF_CHECK
  #define BSD43__IOWR(n, x) (('n'<<8)+x)
  #endif  /* IO_QUOTES_DEF_CHECK */

was not patched into:

  #ifndef IO_QUOTES_DEF_CHECK
  #define BSD43__IOWR(n, x) ((n<<8)+x)
  #endif  /* IO_QUOTES_DEF_CHECK */
>From vonbrand@inf.utfsm.cl Tue May 16 08:28:00 2000
From: Horst von Brand <vonbrand@inf.utfsm.cl>
To: gcc-bugs@gcc.gnu.org
Subject: gcc-3.0 release criteria
Date: Tue, 16 May 2000 08:28:00 -0000
Message-id: <200005161524.e4GFOGA01286@pincoya.inf.utfsm.cl>
X-SW-Source: 2000-05/msg00538.html
Content-length: 1471

Under the release criteria linux-2.2.14 is mentioned. Current version is
2.2.15, and by the time of release either 2.2.16 or even 2.2.17 will be
current 2.2 version, and most probably 2.4.x will be the latest stable
version by then. I think it is unwise to stick to an old version here.

BTW, the kernel has shown bugs in the compiler, and the compiler has shown
bugs in the kernel, with various workarounds through special compiler flags
and patches to both sides. Will patches to the kernel be allowed for
meeting the criterium?

Some repeatable way to check that it does indeed qualify as a release
candidate are needed, but the kernel is infinitely configurable (and its
working does depend a lot on the hardware it runs on) and it has no
regression test suite I know of. This can turn out to be quite hard to
check farther than "compiles, doesn't crash on sight here" (for various
values of "here").

[I guess the same goes for many other projects, but the kernel is special
in that it is _only_ compiled with gcc, and it tends to stress extensions
and low-level facilities much more than any other package in sight. It is
very important as a test object, but a somewhat elusive one]
-- 
Dr. Horst H. von Brand                       mailto:vonbrand@inf.utfsm.cl
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
>From jason@idiom.com Tue May 16 09:12:00 2000
From: Jason Venner <jason@idiom.com>
To: bug-gcc@gnu.org
Subject: gcj problems RedHat 6.1 i386, gcc version 2.96 20000415 (ag-tools experimental)
Date: Tue, 16 May 2000 09:12:00 -0000
Message-id: <200005161611.JAA18199@idiom.com>
X-SW-Source: 2000-05/msg00539.html
Content-type: multipart/mixed; boundary="----------=_1583533105-4114-405"

This is a multi-part message in MIME format...

------------=_1583533105-4114-405
Content-length: 698

I have a port of an older version of the jdk1.2 collections package
that works with 1.1. The one that is included here has been further
cut down to remoe the object{Input|Output}Stream references
gcj gets a signal 11 compiling 
The hardware in question is very stable and does not exhibit any known
memory problems, even when running large memory intensive applications
(like perlcc, which can use 3x the system ram)

Also, when I switch to using a Hashtable this runs about 50% slower
with gcj than with the ibm jdk1.3, also if I compile -O I get an
instant Aborted message when I run the resulting binary.
The code runs about 3% slower if I use the 1.3 Hashtables, instead of
the 1.3 HashMap's



------------=_1583533105-4114-405
Content-Type: application/x-bzip2; charset=binary; name="collection.tar.bz2"
Content-Disposition: inline; filename="collection.tar.bz2"
Content-Transfer-Encoding: base64
Content-Length: 134200

QlpoOTFBWSZTWddggT4C4SF/////////////////////////////////////
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
FOU7YJpUXEkMa4w59GCA8KF2WQzPCjdos8GRWErySGTp0ErGTMeW8nqB89LL
WYop7bPkSzoM5ziRnDH1XOrMRMnmW+oQEzPhQXGHiaxUn1bcSyyXHyjKHwzB
gYkyoaTBJhjhljedyQjzskxUoL3ZIUhxHmxxs0EknezMQjVWM4jIPwl8fxcs
nw4m8pM9jR96QR/Hkxoz3k3jujj9UovjnPf4xNDRjgkgTx4eEeUHtiHUPeO6
dEnQPK8O7kbdzptIilfKRkTxgjDphoEkkUXTJ2dFDu77nT+mVKJSoM/fPmvS
JyZZnjz8I4j0rPbxPPb+D9zwdr/sBk4zvjGP7C6vUlWKhI17W6diWOaVqEsH
sSEkITg7iHant5HiS1Yp80E3WsVnzo/UmPdks4qMT4Wj5NWdLNLWnvoNPeUp
9GrkdSYiiqUHe8GmpdWgzMx1Y42iIOdOnxQSxxziWcTppOqQuko5DpIupPnN
B1VDKTcufj3d5Z1m1Peep57qrTvWby17c8usVq8UR+DhuQ2nxNagikdRpUia
Kk3NpT581B0bmnUXE11irf7C8x1rlMSldqU+nXp1HP+f72lbfLLIWX3O8uUH
voQSR/FKFn2b6B4uKe5r00kz4/ilGgzsy/Yk9CanTn+4hmrU5ilFk04Z0FWf
8byj8Gzl8m0QZTe9qSu+N9KzP9Z0Hme8mPU9xQf530ZfPd4cVAklf+B9TVPA
8iVvI+n9CuWvhwN7P/MfDrQ/Jf7pb7h5dW9hw0p935lZV/anu/r+0+v+NZoK
gQXzJwH4tH5+eMfjOxMW/tfAGajDD7fH9WdYhhhhhhj+bQ/G9YvGbmZuXB+P
Sh95UxrU6Srj/ZhPSr/S/IpUPyCMw/GkidIfR+Vna0UMP2vxF+Lu87Gv5VOt
L9Glb+Rub/2fxd79b5t/7elmfh5eNq6m73eluM7P+tnb3a/F2/4mvsb3f/b2
/A3e1vfsbre/T3m/+l+Xvt/9vW1tnX2dfY4aQIBfSEwhhhhJN+uyS/FGOLVR
UkBDJMwSJ/jSJ1IcV9FN4Xdbrwuv63tPS6H5r+p8n3YI9mhmGSCikyQeIPHJ
IwdTpHFWFLBQbBqMG0NlITCyMxOxmKxNojGqex94vdo92j+T7f7M9+e996e+
PfHP5lFxTa/9N+FFQEVKiFUF9NIJEkSFUVWql3yXzK7MVit8z1/iev8r4Fcs
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
lY8P4bLwmAzBeWwukIlnu+QA9hmIifkCmYD8JCj8jsoMlB6/8SVHQAj8xFxl
+IKRqc53bhWZEzeWkfMAhY0UiD1UHqi+//keGweB/YyXroI//Ij5grOQEzGR
+SwthKL1BeNE1VlqC/y/yYI/pJf3/QS+mjUCJvpI9dUWm/xF9fVR+Gvwymf4
m2ot8hfNWuUvrE5p3+IfCX+EzGd/L/l+P/5q+pqH45/yM42389j+9//X+r/h
i/j/M+7N+P9sf/Wvqn7xO/nP1D80/IP5z1z9j+yd+V85fsL6a/RXzP4zPmh9
uHzQ/JXxF8Nf3+e8fyQ/FD5AfJX8tfIPuS/C+R/7/3/M/xfH/4/g7/GPjHyv
j9vz/uvx/k/h/O/D/K+J+D+F+R873P58D+ERJIPvRiD7kaFX9Wf5//B2/pSM
BI8HJTRxbGCRKoal6DZR4icMoTPcgXgkLpoBCJUiQ/z39dwOgOof87yQwkvk
eReSeH7CAG0bZShypEQhHwGCX3zH7bnfrbjyQZ5UzvM9w4h7LnL5zfI+V8p/
r/iOW8+P8fv+999/V8CTse/+A/4DL+dvbsHv/h/z+des+WR+7w1/IgreVr+V
AGe3hsUm/8Uf8H+Wwjym7LAu3/96CnkG51txuNXboxERj6b15KnUidSoljvA
cDBLDULCwIFQwjkLTFEMgSBMqQLShKBPSxgGoUYYFJAlyVDSGmDgdzT9rkVi
iYnIO+ezJJfnz/4P2v8P2v2SY4P3f0qs36n6P2qX3rX7Jb+9+1b+9+zQP2P9
R+v+qYqR+3du3blv70/733vu3fu5lH9VqNC7ZoYqP7Fkn/pfofc+3RmnVyve
nrK+8fsdi3a+7QFQK6oUChQoFA+994vlL71BK5NNNMpiaaqT55PMH7P7NJVc
y1WqFTMo28B97NLvc/6sX3cbofp9t+odf9Dtzrbu5lWMg8DvvvX7mlcuQyZm
p4E7Kx5DLozvvfsfqYfBxYvu8zD+v5P635n6H+n837H5du3bq59LN8Hn8bg5
vDztneZmTmZ230/J/G/4X8z/d+d/QJD9+MIBSH8BQKQoWxT8CQz6hLCjfnyf
7zKDp+2Zxf4UqDwIFg7GBGJGIQIhBdKuIV+TIGWCQiIJxjXADgMjExAySjIR
BKxQtBRwytI5grMgOBhYJBycSkC5kR0SjoIYhYgesl2J0QCRRIVSRvbCaUir
JIosKpVEVUWotsUhSlaxhLNqgsLJEgkShBAGYEcEgxKGfB/P/fBk85NPyu53
EIPmoYlSIwZTxIMEHEnGDEEYtQRLgwYZXhCsWGBYDhAZBwlTExKMEiEQwQAU
gQSxNIhBBJIETEqnZgMQkERAxREQMEKPIQxJ1UJliUsiiqpVUqyiYwZBErAR
BJBBDDCQkQkISLDRA0EEIQQSSQMRJEjEAwFApQytEhCwsolKKpVKUgssi1BV
klLITGMIoUTMtgwkGKiMA/4J5vUdBnFDBID1yHhETHBq6a4OlGpp4ZrUBP+7
SxIaqRSROJWR/kNZNM66nJ3cagyeMfFYyDcKaCk7hA94AoVthwRERVRFVVVI
aQMEREVVRFV+vx1ak/NFDft6N01344NpYGCCAWCEYIYlWgXeo9oW6egacnA6
Dk2U5VMMwZFkWssj/FqNlROSFhxrE0HGRilNwwikqKssFlOdDGt0YdYMZphh
SrQ6wJuYDCRFEgzQHM5Jgg5gwEQaqqRIhaCCGJyMRMHDhw4jBBQkIVCwEDDD
JDKlDMDSBpcysEOhiqUpSlSyilkloUKMZy4tCuCAiHQAZjSjZchiE2hMHDDh
gSOQlzgcRVRbKUYK9Kbk2wlKqlUsQMTQgwyLJKRCAQSETQwxAQRCkTEkBBEk
MMkpE6AOhobhCjQEQFAyECwEikpJEBEgFIklhSloqlJRSllVViWIcWWWIqIy
hkggiU4EuWhq2lOcEbUbkiWLUmXjWuPmajgk+NgYUoqFFrdiJhEWCSCJBKIQ
4cCYQkXt4v5g/TWOJ8DIfg/txdAnET4j9e6SkpYinylOZMzMwkK+y6Rz8g7u
DOYnpuv3buhwr3M6dGz1ZA7vsL9xdv3VUyghKv+xVb079vAfuHA5ffG/5n4G
3sf6/B7ifLKYTCGE0jwO+pcbI42TsfsxTVcf/5umbCUqSpKlwPCKfOzjd/4N
pHLNjYt7nuuzye8/f7Pg5879vM8G4WrNXxDtfzf5afO5vZ6vV6vZ7NjW1PH4
mpt7mptXreZlq7lF796ibBS4W6o65qmnzNLFdOFvp126bubONmf9SZWCbdau
63WVtv9dHHoWZ9nN97zfL2vL4H7v7vvve+Fy+V8Ax8Kw0OXntsaCxYgxZRh1
tbEsRvsbebzeew3uWcTqn7xnHnrOvZxnZ2d5/j6Gt5/n7HT6mrq6urq6u23U
/bao7b6utzNbb7rXW+Njm62ty9XQ/EqnJKdWtWHtVqVBjo9Wryq1Onpf/W/5
ta81Pfl6nTqdI5p3/AMJg3u7+HY3O61ttpno+L+/977/3/v4r9vq5mWeI3M8
Tl9oWeBwN9vfjWanPp7vXKObm/Yzc3sV9nn7XMy61zBVYv1elgr9LglTU59L
tOBUwcvBSpbRT2uhz+Zc7796hQu4LG46NbkYINQhgvHTyKvgZeDde2PU9HgS
W7RSyOl6XtcVGJ1fpbJyM6j1zH62X1rXodidzu4yJ9Zq1DlXOodCact1T1Kf
N3372vuoKGjd4dv04VGcGlc5MPc26HHM7V21n2UohB/PkgCkChn90E/qHx/c
En9585o1zPaIOWz92WHxf6f7H9/icT8XU0SqdmP+AS90beKlU0UVpww0ng4M
NIrDhi6MkUYqmJWDFYlVWimtOFVWklQqpLDRo+c1Gqu0qRpVVoqUYYMakimF
YVMkHcrMZnRjOz+ejcmg/XWJwLKqydCZgwxiq6swqlpNWHcw8Fg4HQ5SFscA
g4QcNRA2XGoTGwfUOYE6DE/XL24p+kMpl7EaXMEGMEMR6GPEx0vkeNJJCY2p
UtiltyOYVuRTlNMZtgw/9ZkyWNlm2SSWtKP4d5TTqYxhjEcRQjH+3V2U4hW1
kmmaS6lVLAiCaB4Rh9mDw4O7oZfDmi4mywRHBmE0G7shqHQLuaXFjclTCwvF
tOJWllS0mpNbNjc2VMSmIikiCXi5cBERGPzJ8Jjjboa00sssc3OltN6MhZSL
I/qV8dSYbSnDnFkv7OZBxi93B6NOgXmTbDoZndmWxwcOpWlVF2mimkOG5MRx
jFUbYqUcK1TVsWbaTLYaiurE40xJtZMhw1JIw2UbNGFKnKpMSk1kVbNqGdY4
q622rExI85znRTEpOJKjSppopwYrTxdGm1bbbacRxZFpOzDLECUxKRIRIQw0
9BCOGSHA5JawPtkc/e3J0FFphO7TIg7yEOwMRjgc53txgnIYFAyJHS6awYY+
KifE5T7diWo8ecwJ4zJDjxHlfLeYoAIkN4xYSCHshxJiEiQJIIn8MPBrMDcI
NEMQsMpisYxjTTEKx9KtFNsxLhWc4DOZyRkw2DYziIOEYIqiacrgrBKDGEA3
asjbta+pOE0sY4DCHNKbrEZQb3iaktkkqRbamaGMFPckNFCdEHTzO4Zzubw6
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
jSnKUqqeL5Go04Y6tGKlTo6typmtqpVKxNmmodWMUqlXs4cuYqcJ8lTk8VeD
wKnr7n6Tg91SyPsJxFxHvepgPUFwwHAgIkLlkizC5k8RCCEgihH0EZITcD7P
Idp5hyOE9IKGJyWOQKclDDe9KqG5tIaDE58eXmU8e3KPpk2R1VSqeCpiUDLM
rLtiCWVFEqvAQgIK9EkfDsWG/OyMHPXtqY0yRTJ5tZUakp5SPVmyjUyA3+Qa
+4lIsYM66PiRvrCSc6OfsCwNwJESIaCkpBoqJCgitdJ78ZNw2g6J70+d+z5Q
/2yfE1t09z1h05Y+h5OPpPY0mKaVPY4fJiq3w7HRVX3D+iroOEfbNK0LB0TK
MD0fLNIoTGfUIYsllVyzLyxkRqPXhMmtznL4YbWedWB9Q2YPMU1kaIgyRkxU
MVDIupY4sULRRx8qIvDql8SUYYTBo9aVZ7QsUFNEYa1uw3YFsd61UumRaeOp
w0yWt0xRC+z7zo1QtDNZgO6DtycoG0UZXeDude+MLHa++6OpO2Vwse4ddsmr
47Tmdbr0Fj4nSCj3O6leY6mPM5nq7tueDLxrOVnKtqU09+vr77OKbWOlON4b
rdZNUnCxllQGfgKi8CN8QHrCDAaMoBoPfmZFO+JKDycENiLqVLXXuuiikfDH
rqxMYMY3pVqczLhIJBgoaYMLGJkzEV4Fz6A6a9E4SMY0LnozI8Tge92GX50P
a6QOk6jpBQxX820jyIgnz5pT+6D1nmXTz8fQ6/V2xypyR4bZOk+VSLpwp1xl
ymWWCnTJWJySiwOU933fhO/weyu5dfNMbPL5FhZTYnNa+S7LUumJiyLUPEx8
aTq7Y8ejoopqoyOMQ76R7TS7klJEhQNUPl4JOngA3C6GIHxIjCFajwGBGOXZ
mD7XqH2FGp5RwwuaEHpIesGjgPkMyvr0H3EJWXERkkGl6HO/uQe4eokjVLAZ
g+J6dp71Pp0/O0DRvg+xHiGjHu5nk8uFakkWJYVSkhkBSgUIJBCwwiMsqPV1
bnjSGp2fqSHV0JVSL6E2mna8w9TjtVfH5cNbPLlrZt20nu674Uq1ZXI9qK5k
bSfA0GWBiK+6kSHqQxMNJaEZOgGqQdg2aAkSxN/e+bLkSl4IqPXKkVH0xI3S
xAFh7RStFv0mWhcsC3LCmpnJ6FK3OrNQx+5x6bOnGXrna2VSqPiyYnsD3QQg
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
IOVA/IRv18e3ZdhJkpHAuEEwljhKT4SmPGxUK0QW6s+MhAJAqFsRPhK2YmNV
NKYxgp6ep2XfGO/2bfJH33ynq15Y0nc1J9EVULK8pqlVYsHWGCZBCSwntAdj
1A8d/Lv2XKyu5NOizG9fK49b9Z1OidFPaX8c7xpRw9z8jTRR+I4xPxApOwKk
0Uj63n7uho0fT9vu202YU6B4KI7gwXseUnz6ozn5E/O7x0ZVcWpPvgSDDEB5
nWanVKqyOsxiVasdS8qN7YFXTs03TcMZGZRkWWLKytk8kwNicu0yOiL5K0GK
B3LU6aRDaILN9EN0jQWQMvqbY2GsDgQbZlBYoKLmQ0yIK4ogZqIDOoPwfAeL
gxEHGkcKkxk2QZXNhRSoskDKjBdotIhwNycXajW+7uTCQSQkSQESQcsyE3Qi
ExfKECLR0ahKR+CCBTBhrk+SPAdeGmYhdi46qZDtY+TQWd9/UHI9DggNDGTk
56lLjnAyDJdI1VFlWMh5pCoTEzI+BSEuLOV3Zt7DnJwb7DMkhlLJs5WCTZGT
cVNlBRzRibjWihHV9Gje+pN2WaGjd8cLg5NchuvyEHY4POo8nR2J4/KYoesr
yuwznwYw/ND6wOinvHQl1gxA/BdEmSjJIDLbaVt0erZy4Y208KrTJZa8qk+8
6ZOVRYXfISAUPCUkwLoRoFa4bwGjrJxHPRrYORYIDksJIGM4IOBdBgk4GWaO
CREhooTJGZGM0KcbaAlUaSXYMHcZ1jKRsjAQ0oXf1Eu5k1F56FQbO5A0xGM4
hSg2DFC6MHbKLH1Rg77rOdYRiSEQMhawagM0TgWpKzBY8ORgmVIQteKbMU6Y
Krmwub1oq9nVjpJitXosbWbo2V1cqw6ppKlcOWmlOrqpTlDhW3go5bbkVXRc
1zmePZaeWgIDRVccfapN7I3HI0REJHdgckmM2UgstMlBbSFCkyQJQcjQeJyR
L2i16CwR2IMB3cVntRK7i5OIYHkJS14efJChroMB3SM82kHs7CtLBBqDR6EK
1AZZaj4T48dccYROlkOGu/c6CehiQeDIakgODRjuUrXfUCXYaZ5MdavIds+O
AfTrOAgs43yGCEqnjYmpYhcGCQIcSK4OGKyrTnudtyl0juTEaLsCB7SDTJU5
lY3NEBggYwh7RAuEceIRY0tCsfkfYyLjr5pHOwOeC9BJq4oiZtRhDsxZcbFA
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
nPNlldmSOa5czSltaHprDrPM+gl9oleEFINJLBuC9swSgTIDwsoikuJjfqtR
aWlq6FlEVdKJak9M1m6MmIVOrTuE7ow6J6MYilVJKoVRup70XjbjFnFRvU3u
OKj6QdmJIUSZ4+eVTnawySKQwcQ6ySV04EOtBgQpJogShmR48IqnEQCxCuMU
2EGxGuD0yxbBCpF0JkscSgoBjKAXBjJp6NMJoyMhcBh2CmhZhTJrhhYoqkll
6bcCfPyTmWja7SlMQKqJpA1gsQYBUKTW4gwsliffjG5FN0vCyGTss7SY0NRO
DTpy1A2JowclSQnwaNWMRAWiEF0RiwGJqBHOERTWAbYo9ResG9LooPEnZq1g
WjruPckV38eTBom1iW+ElY9GS6Y0jhppvjZo3eqxovk6Rm42Yiq5mpJW2+TM
BIwpLGCgaypAyUlCALDukXMEly0MSTogWGrNShzgiFqtYNBpiQZwoMAKIrva
jNIM6JJFtBohI3wWWMGQQQQUSSZMUsBo2SJKaWITExMTkovNDmkhrKYEJIzu
l0FehMGuVJ3sOaPHhMDMTJOa7U5JUyxtIVhrRqVGmd/DcNWMvEVZVsjcVXbc
qiOLFKZKmOna7bQpydEyrHgmZWRnBGM4IxaMbHL1XA4naMEBjDHjLEjo1x1z
E2tDxx++llsmkE7dRsE/LSsN7CDs/Ooo1h9zJSsLGhj0kXzcGNrE5cttzaKu
LoqpjjxabAIpAhXWGCpwEESdAa4qlgZDJWWahMXXY7ucYYmDIQpCQNcODhkr
ks549LYUYjmbwVLbBiW+ZhEkGkiEuZxyCLMJoZgiALfkERyNLIlguBTkyoDg
GiEVQwXDSBmFMkZMYoXWMFgzPZT0t6SJYejQjppLTEKUNEI4i0mkGgXYLOkU
cIMcb4CXlt8syQgqhNlbTqlG710lqUlyGHklb3Iwlnk8XMkwroVYXriYJbDj
JGBYUthbYlN1GSJYCoYuucmwYjomQwpMVTxNnTRieyct78lV0M6dDPGJ9uc7
V1XTLJ4lMik6ZfhFCXXZXZLrOPJTxDrrOHudsO2UseaU02nquFK6Ceq6Fk43
gemkN2Gk9USw2ThjGXJN+2O5oKSHC6QzJtAWvKu0ibG03dQSytCYdPFzptLy
kL6+B5lUtrh10nBGyht5GWyn2iRYpLkYY0xaG5fYgSDDLdrI8mqNLBAK1WEc
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
TcmbN7vCToMR9xX9/lH+R9WDLLLD2rC0b+64ZscRwasZo6tfX3xmQdBxs7B1
2jYacJx2IM916TVjIWK1CR7onbfZdDruODDOk7mE2mlikuUqL8q73tLRo5dC
TyLL6Nj4zZXyXZVbGbb2Pjelj1SL08GVjd1wq5uiHMfVtY8PdUCjjtjs/15M
mpNUNJ245neZuhHvfP32dUmirUJ8EENZZWVZolk1M7U395qkdXbNzX6D6dW3
lXOfkYeHM8llcBwnB0C17NyvmxpaFa+FuxG9MMUCikcHMhhKO9egiUeW7JZP
GGN+oE1Te1N5ldFuxrbbbceg+Pg3h7jL0L+iR70387Rj06MdSDI7fxu5qx5d
n7NOajuj/8tSw8Tgk3/93sNml1WvP3I+XoW8G/+/tPf6lufebY4//r9zhS/R
4+Vm0N/m3dGjy3WrnGTTpoZsut+j+T99ZwyqUo8zK8vJj8X9JLH0sadPmfLN
9mh4/R97yOlzc73uHZ6xuaS21a69hxqdzq7br63BOqdFjgbfiaUOxY1GanZ3
+N0czubHsgr742dmzZpUCscHBe05eFPA23+o+yMzdAP/H82Am5PPNpt8U/DX
IgcdfmlmrV6Tm8kOj0dHQx4y0yWjFu+ljczwYwOuBeR9ZjPTIqgwJPZMyXcA
wEEGi1d3fxzMZloAp09YaPoNh2g2fZMWvSGVQfUZddQ4gz1rgzuzgRBvhFrI
O6uFjoaaxoXrjayRuoy6cpK3oeTq3McXgtuBGVNOgp+bdVIVDXdoaRoattQH
qdBvRj2NCcxpY0Go2MwTSSHZv2cfObgvKEN4QeRTCmpV2kpMIQKbqsW7jjB1
MRqw4kA5RxaGUMHfDcCuMMYiLLFNyCZShQmclKWIWgFrchOMhiUOpDqQDw48
5See4VHWoRn34smi8ETJAREucgjxrawIwg2ZUGnRqJKcEA9QmmKg8ut4He5y
jtWdLu+8Od+btg2I726QPIkZKG7ni4WFDpxGRmWAbxaw4HGSySmQtA6lUMRw
JKB8DDywK/FOl9N4EJ4Lq8HSsPKDyCyXTFEMOvTwuf/nI+Wjv9cVo/eZMqPu
78HNf2r49DfYlzr+f9v78TorzygSzZE+MiicYZ44HOpWpc597iOpS6G4jfJH
QKdiWszKGCCT9RBAMiZE/iVsc0fXyfXX9HEe3zg/G/txB0XqDz1BPeWd/sq/
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

------------=_1583533105-4114-405--
>From aoliva@cygnus.com Tue May 16 09:15:00 2000
From: Alexandre Oliva <aoliva@cygnus.com>
To: Paul Metcalfe <pmetcalfe@FreeNet.co.uk>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error
Date: Tue, 16 May 2000 09:15:00 -0000
Message-id: <or8zxa79qq.fsf@zecarneiro.lsd.ic.unicamp.br>
References: <00051615392400.00708@localhost.localdomain>
X-SW-Source: 2000-05/msg00540.html
Content-length: 870

On May 16, 2000, Paul Metcalfe <pmetcalfe@FreeNet.co.uk> wrote:

> The compiler crashes after a while with the error message below. I
> then restart the compiler and it occurs again, and again. The
> compilation requires me to sit and keep starting it every 2-3
> minutes.  The typical command from to the compiler is as below

Unless it always occurs while compiling the same file, it's very
likely that you've got some hardware problem.  There's no source of
randomness that could cause the compiler to succeed sometimes and fail
other times, given exactly the same input.

-- 
Alexandre Oliva    Enjoy Guaraná, see http://www.ic.unicamp.br/~oliva/
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-05-15 14:34 Sidsel Jensen
  0 siblings, 0 replies; 387+ messages in thread
From: Sidsel Jensen @ 2000-05-15 14:34 UTC (permalink / raw)
  To: gcc-bugs

The GCC version:

Using builtin specs.
gcc version 2.95.2 19991024 (release)


The system type 

AlphaServer 800


All options passed to the compiler:

Installed /usr/ports/databases/mysql322-server from FreeBSD 4.0-Release
ports tree.

ERROR:

"DHAVE_CONFIG_H -I./../include                   -I./../regex 
-I. -I../include -I
.. -I.    -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-DDBUG_OFF  -O -pipe  -
fno-implicit-templates -DMYSQLD_NET_RETRY_COUNT=1000000 -c sql_acl.cc
sql_acl.cc: In function `int replace_column_table(THD *, GRANT_TABLE *,
TABLE *, const LEX_USER &,
List<LEX_COLUMN> &, const char *, const char *, unsigned int, bool)':
sql_acl.cc:1367: Internal compiler error.
sql_acl.cc:1367: Please submit a full bug report.
sql_acl.cc:1367: See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.
*** Error code 1"

If there is any questions, I will gladly try to answer them.

Sincerly
Sidsel Jensen 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There ain't that thing you can't do with a wire
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-04-17  2:25 Jacques Basson
  0 siblings, 0 replies; 387+ messages in thread
From: Jacques Basson @ 2000-04-17  2:25 UTC (permalink / raw)
  To: bug-gcc

~ > g++ -v --save-temps temp.cpp
Reading specs from /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c++ -v
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun
-Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__
-D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4)
-D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc)
temp.cpp temp.ii
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:

/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3
 /usr/local/include

/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-sun-solaris2.7/include
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1plus temp.ii -quiet
-dumpbase temp.cc -version -o temp.s
GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled
by GNU C version 2.95.2 19991024 (release).
temp.cpp: In function `int main()':
temp.cpp:19: Internal compiler error in `find_function_data', at
function.c:542
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error...
@ 2000-04-07 14:21 Micha&lstrok
  0 siblings, 0 replies; 387+ messages in thread
From: Micha&lstrok @ 2000-04-07 14:21 UTC (permalink / raw)
  To: gcc-bugs

GCC varsion: 2.95.2-8
System: Debian Potato
Try to compile samba 2.1 prealpha - rpcclient/rpcclient.c
Output:

Compiling rpcclient/rpcclient.c
rpcclient/rpcclient.c: In function `main':
rpcclient/rpcclient.c:770: Internal compiler error in
`build_insn_chain', at global.c:1756
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
make: *** [rpcclient/rpcclient.o] Error 1

-- 
Micha&lstrok; B&aogon;kowski
http://jota.tuniv.szczecin.pl/~michalek
michalek@jota.ps.pl
>From aoliva@cygnus.com Fri Apr 07 14:34:00 2000
From: Alexandre Oliva <aoliva@cygnus.com>
To: Micha&lstrok; B&aogon;kowski <michalek@jota.ps.pl>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error...
Date: Fri, 07 Apr 2000 14:34:00 -0000
Message-id: <orya6pzjbt.fsf@zecarneiro.lsd.ic.unicamp.br>
References: <38EE519A.FE40A270@jota.ps.pl>
X-SW-Source: 2000-04/msg00200.html
Content-length: 167

On Apr  7, 2000, Micha&lstrok; B&aogon;kowski <michalek@jota.ps.pl> wrote:

> See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

Please do.

-- 
>From zack@wolery.cumb.org Fri Apr 07 14:43:00 2000
From: Zack Weinberg <zack@wolery.cumb.org>
To: Donald Holloway <hollowd1@bobo.ca.boeing.com>
Cc: bug-gcc@gnu.org
Subject: Re: EOF
Date: Fri, 07 Apr 2000 14:43:00 -0000
Message-id: <20000407141258.H7499@wolery.cumb.org>
References: <200004072050.NAA14137@rigel>
X-SW-Source: 2000-04/msg00201.html
Content-length: 656

On Fri, Apr 07, 2000 at 01:50:12PM -0700, Donald Holloway wrote:
> Dear Guru,
> 
> The following statement isn't working with GNU C:
> 
> while ((c = getchar()) != EOF)
>           .
>           .
>           .
> 
> It appears the compiler doesn't recongize the EOF 
> as a key work.  What is the substitute "end of
> file" word or variable that I can use instead of EOF?

You don't provide a complete example so it is not possible to be
certain what your problem is.  However, the odds are that you have
forgotten to include <stdio.h>.  EOF is not a keyword, but a macro
defined in that header.

Also, make sure 'c' is declared as an int, not a char.

zw
>From ghudson@mit.edu Fri Apr 07 15:12:00 2000
From: Greg Hudson <ghudson@mit.edu>
To: gcc-bugs@gcc.gnu.org
Subject: Highly annoying packaging change from 2.8 -> 2.9
Date: Fri, 07 Apr 2000 15:12:00 -0000
Message-id: <200004072212.SAA24944@small-gods.mit.edu>
X-SW-Source: 2000-04/msg00202.html
Content-length: 745

I'd just like to alert you guys to an unpleasant problem which
occurred in the change from gcc 2.8 to gcc 2.9.  I'm not sure if
there's much you can do about it at this point, except try not to
repeat the problem in the future.

In gcc 2.8.1, there is a file at the top level named INSTALL.  In
2.9.2, there is a directory at the top level named INSTALL containing
a single file "README".  For those of us who import gcc sources into a
CVS repository, this is totally unworkable; CVS does not allow a
directory and a file to exist in the same place at the hierarchy.  So
anyone who imported gcc 2.8.1 cannot import gcc 2.9.2 and have a clean
copy.

Compounding matters, I don't think there was any good reason for
INSTALL to become a directory.
>From scott@igc.apc.org Fri Apr 07 15:17:00 2000
From: Scott Weikart <scott@igc.apc.org>
To: gcc-bugs@gcc.gnu.org
Subject: gcc i386-pc-solaris2.6/2.95.2 Internal compiler error, binutils-2.9.1
Date: Fri, 07 Apr 2000 15:17:00 -0000
Message-id: <200004072216.PAA00125@igce.igc.apc.org>
X-SW-Source: 2000-04/msg00203.html
Content-length: 28241

I was building binutils-2.9.1.tar.gz .

My Solaris 2.6 has the latest cluster and point patches.

+ pwd
/tmp/src/binutils/bfd
+ gcc -v --save-temps -mcpu=pentiumpro -march=pentium -g -ggdb -O3 -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -I. -I. -I./../include -c tekhex.c
Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/cpp -lang-c -v -I. -I. -I. -I. -I. -I./../include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dunix -D__svr4__ -D__SVR4 -Dsun -D__unix__ -D__svr4__ -D__SVR4 -D__sun__ -D__unix -D__sun -Asystem(svr4) -D__OPTIMIZE__ -g -ggdb -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ -DHAVE_CONFIG_H -D_GNU_SOURCE tekhex.c tekhex.i
GNU CPP version 2.95.2 19991024 (release) (i386 System V Release 4)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../include
 /usr/local/include
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/../../../../i386-pc-solaris2.6/include
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/cc1 tekhex.i -quiet -dumpbase tekhex.c -mcpu=pentiumpro -march=pentium -g -ggdb -O3 -version -o tekhex.s
GNU C version 2.95.2 19991024 (release) (i386-pc-solaris2.6) compiled by GNU C version 2.95.2 19991024 (release).
tekhex.c: In function `tekhex_get_symtab_upper_bound':
tekhex.c:1065: Internal compiler error in `gen_tagged_type_instantiation_die', at dwarf2out.c:9308
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

-scott
=============================================================================
begin 644 tekhex.i.bz2
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
*[DBG"A(4=#VL@+N)
 
end
>From scott@igc.apc.org Fri Apr 07 15:19:00 2000
From: Scott Weikart <scott@igc.apc.org>
To: gcc-bugs@gcc.gnu.org
Subject: gcc i386-pc-solaris2.6/2.95.2 Internal compiler error, binutils-2.9.1
Date: Fri, 07 Apr 2000 15:19:00 -0000
Message-id: <200004072218.PAA00224@igce.igc.apc.org>
X-SW-Source: 2000-04/msg00205.html
Content-length: 28368

This replaces my previous bug report.  I have one new piece of information:
if I remove -ggdb, the compilation is successful.

I was building binutils-2.9.1.tar.gz .

My Solaris 2.6 has the latest cluster and point patches.

+ pwd
/tmp/src/binutils/bfd
+ gcc -v --save-temps -mcpu=pentiumpro -march=pentium -g -ggdb -O3 -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -I. -I. -I./../include -c tekhex.c
Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/cpp -lang-c -v -I. -I. -I. -I. -I. -I./../include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dunix -D__svr4__ -D__SVR4 -Dsun -D__unix__ -D__svr4__ -D__SVR4 -D__sun__ -D__unix -D__sun -Asystem(svr4) -D__OPTIMIZE__ -g -ggdb -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ -DHAVE_CONFIG_H -D_GNU_SOURCE tekhex.c tekhex.i
GNU CPP version 2.95.2 19991024 (release) (i386 System V Release 4)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../include
 /usr/local/include
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/../../../../i386-pc-solaris2.6/include
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/i386-pc-solaris2.6/2.95.2/cc1 tekhex.i -quiet -dumpbase tekhex.c -mcpu=pentiumpro -march=pentium -g -ggdb -O3 -version -o tekhex.s
GNU C version 2.95.2 19991024 (release) (i386-pc-solaris2.6) compiled by GNU C version 2.95.2 19991024 (release).
tekhex.c: In function `tekhex_get_symtab_upper_bound':
tekhex.c:1065: Internal compiler error in `gen_tagged_type_instantiation_die', at dwarf2out.c:9308
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

-scott
=============================================================================
begin 644 tekhex.i.bz2
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
*[DBG"A(4=#VL@+N)
 
end
>From stuart@bmsi.com Fri Apr 07 15:19:00 2000
From: "Stuart D. Gathman" <stuart@bmsi.com>
To: gcc-bugs@gcc.gnu.org
Subject: gcc2.95 shared library scheme for AIX doesn't work on AIX 4.1
Date: Fri, 07 Apr 2000 15:19:00 -0000
Message-id: <38EE5F01.62F228B1@bmsi.com>
X-SW-Source: 2000-04/msg00204.html
Content-length: 1732

The shared library implementation for AIX in GCC 2.95.2 uses an import file
for libgcc.a which begins with

#! .

On AIX 4.2 and later, this tells the loader to link these symbols against the
main program.  AIX 4.1 does not support this.

Recommendation:  If you are going to require AIX 4.2, then a much cleaner
method is supported.  The AIX linker supports a "-binitfini" option beginning
with 4.2.  This option specifies an initilization and a cleanup function for
the library.  With this feature, collect2 needs only to scan the current
module being linked and pass __do_global_ctors and __do_global_dtors to the
linker with -binitfini.  I would make this change if I had an AIX 4.2 of 4.3
development machine . . .

To support AIX 4.1, I am reimplementing the scheme I have been using with
gcc2.7.2.  This involves splitting libgcc.a into shared and static modules.
Most routines in libgcc.a can be shared between all library modules.  For
instance, the __main.o object must be statically linked with the main
program.   I suspect that in gcc2.95, some modules must be shared - perhaps
the typeinfo or expection support.  I will have to research this.  AIX
supports mixing shared and static objects in the same archive.  If anyone is
interested, I will share the results.

An alternative would be to reverse engineer the undocumented scheme used by
xlC in AIX 4.1.

--
   Stuart D. Gathman <stuart@bmsi.com>
Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
 "Microsoft is the QWERTY of Operating Systems" - SDG
"Confutatis maledictis, flammis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.
 (HINT: Find a translation of the "Dies Irae".)



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-04-06  9:55 Dean Bennett
  0 siblings, 0 replies; 387+ messages in thread
From: Dean Bennett @ 2000-04-06  9:55 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1859 bytes --]

Trying to build MySQL-3.22.32.

Digital Unix 4.0d
Digital ALPHAstation 255/300
GCC 2.95.2

c++ -DMYSQL_SERVER  
-DDEFAULT_MYSQL_HOME="\"/usr/local\""                  
-DDATADIR="\"/usr/local/var\""
-DSHAREDIR="\"/usr/local/share/mysql\""             -DHAVE_CONFIG_H
-I./../include    -I./../regex -I. -I../include -I..
 -I.    -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-O3 -DDBUG_OFF   -fno-implicit-templates -c sql_acl.cc
In file included from ../include/global.h:132,
                 from mysql_priv.h:15,
                 from sql_acl.cc:25:
/usr/include/alloca.h:71: warning: declaration of `void * alloca(int)'
/usr/include/alloca.h:71: warning: conflicts with built-in declaration
`void * alloca(long unsigned int)'
sql_acl.cc: In function `int replace_column_table(THD *, GRANT_TABLE *,
TABLE *, const LEX_USER &, List<LEX_COLUMN> &, const char *, const char
*, unsigned int, bool)':
sql_acl.cc:1367: Internal compiler error in `scan_region', at
except.c:2566
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.



 
                                    \|/
                                   (@ @)
-------------------------------o0O--(_)--O0o--------------------------------
                               ```       '''
  "Always code as if the guy who ends up maintaining your code will be
   a violent psychopath who knows where you live."       - John F. Woods
----------------------------------------------------------------------------
Dean Bennett                                           Sage Systems
Division
Technical Specialist                                        Neles
Automation
Customer Service                                    Calgary, Alberta,
Canada
----------------------------------------------------------------------------
sql_acl.ii.gz


[-- Attachment #2: sql_acl.ii.gz --]
[-- Type: application/x-gzip, Size: 58657 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2000-04-01 12:49 Klaas Freitag
  0 siblings, 0 replies; 387+ messages in thread
From: Klaas Freitag @ 2000-04-01 12:49 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 2320 bytes --]

Hi,

Although I think this bug is the same as mentioned on the 'Freq.
reported
bugs-page' concerning 'Using declarations in classes do not work', I
send
this bug, JFYI.

All I did was adding the line 
	typedef enum { ID_SANE_DEBUG, ID_QT_IMGIO } VirtScanMode;
to a simple C++ class definition:

It looked like:
class blabla( .. )
{
    .. much bla bla ...
    void slVirtScanModeSelect( int id );
	
private:
\x03   typedef enum { ID_SANE_DEBUG, ID_QT_IMGIO } VirtScanMode;  /** bang
here */
	
    void scannerParams( QVBoxLayout *top );
    void virtualScannerParams( QVBoxLayout *top );
    ... more blabla
}

Attached you find the ii-file and the compiler output.

Have fun,

Klaas
scanparams.ii.bz2
kf@helios:~/work/ksanetest/ksanetest > g++  -v --save-temps -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/lib/qt/include  -I/usr/X11R6/include    -O0 -g3 -Wall    -c scanparams.cpp
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/lib/gcc-lib/i486-suse-linux/2.95.2/cpp -lang-c++ -v -I. -I. -I.. -I/usr/lib/qt/include -I/usr/X11R6/include -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -g3 -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ -DHAVE_CONFIG_H scanparams.cpp scanparams.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 .
 ..
 /usr/lib/qt/include
 /usr/X11R6/include
 /usr/include/g++
 /usr/local/include
 /usr/lib/gcc-lib/i486-suse-linux/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i486-suse-linux/2.95.2/../../../../i486-suse-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i486-suse-linux/2.95.2/cc1plus scanparams.ii -quiet -dumpbase scanparams.cc -g3 -O0 -Wall -version -o scanparams.s
GNU C++ version 2.95.2 19991024 (release) (i486-suse-linux) compiled by GNU C version 2.95.2 19
991024 (release).
scanparams.cpp:42: Internal compiler error.
scanparams.cpp:42: Please submit a full bug report.
scanparams.cpp:42: See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.



[-- Attachment #2: scanparams.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 65456 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-03-27 21:31 Eric Ford
  0 siblings, 0 replies; 387+ messages in thread
From: Eric Ford @ 2000-03-27 21:31 UTC (permalink / raw)
  To: gcc-bugs

I imagine this is bogus code (You can probably tell that I'm just trying to 
figure out how to do use namespaces.), but gcc should probably die
more elegantly.

Thanks,


Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ compilererror.C compilererror.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/../../../../i386-redhat-linux/includeEnd of omitted list.
 /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/cc1plus compilererror.ii -quiet -dumpbase compilererror.cc -version -o compilererror.s
GNU C++ version 2.95.2 19991024 (release) (i386-redhat-linux) compiled by GNU C version 2.95.2 19991024 (release).
compilererror.C: In function `int main()':
compilererror.C:15: Internal compiler error.
compilererror.C:15: Please submit a full bug report.
compilererror.C:15: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.



# 1 "compilererror.C"
namespace NS {
  class Cl
  {
    int x;
  public:
    int GetX() { return x; }
  };

  Cl Y;
  
}

int main()
{
  NS::Y.NS::GetX();
}


--
Eric Ford                                         eford@princeton.edu
http://www.princeton.edu/~eford/                  eford@mad.scientist.edu
>From martin@loewis.home.cs.tu-berlin.de Tue Mar 28 01:01:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: mikes@nilenet.com
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: internal compiler error
Date: Tue, 28 Mar 2000 01:01:00 -0000
Message-id: <200003280851.KAA00538@loewis.home.cs.tu-berlin.de>
References: <38E03B61.1AB72203@nilenet.com>
X-SW-Source: 2000-03/msg01120.html
Content-length: 195

> tester.cpp:2: Internal compiler error.

Thanks for your bug report. I've put it into GNATS. Please note that
the code is incorrect; correcting it makes the compiler accept it.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Mar 28 01:05:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: andrewm@uow.edu.au
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: dead code elim && div-by-0 warnings
Date: Tue, 28 Mar 2000 01:05:00 -0000
Message-id: <200003280858.KAA00657@loewis.home.cs.tu-berlin.de>
References: <38E00A33.50564DDA@uow.edu.au>
X-SW-Source: 2000-03/msg01121.html
Content-length: 92

> Couple of things..

Thanks for your bug reports. I've put it into GNATS.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Mar 28 01:06:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: pdixon@cs.und.edu
Cc: bug-gcc@gnu.org
Subject: Re: compiler error
Date: Tue, 28 Mar 2000 01:06:00 -0000
Message-id: <200003280854.KAA00581@loewis.home.cs.tu-berlin.de>
References: <Pine.LNX.4.10.10003272246430.2806-100000@penguin-18.cs.und.nodak.edu>
X-SW-Source: 2000-03/msg01122.html
Content-length: 322

> editor.c:31: Internal compiler error.

Thanks for your bug report. Unfortunately, I cannot reproduce it with
egcs 2.91.66, on i586-pc-linux-gnu. Could you please try this on a
different machine? It may be a hardware error (although you didn't say
what system you are using; it may be platform specific)

Regards,
Martin
>From icollinson@imerge.co.uk Tue Mar 28 01:15:00 2000
From: Ian Collinson <icollinson@imerge.co.uk>
To: egcs-bugs@egcs.cygnus.com
Subject: g++ bug?
Date: Tue, 28 Mar 2000 01:15:00 -0000
Message-id: <TFSIEKVW@imerge.co.uk>
X-SW-Source: 2000-03/msg01124.html
Content-length: 2041

imerge-dev3: bug: cat foo.cxx
std::list<int> x;

imerge-dev3: bug: g++ foo.cxx foo.cxx:1: Internal compiler error 980711.
foo.cxx:1: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
foo.cxx:1: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

imerge-dev3: bug: g++ -v --save-temps foo.cxx
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__
-D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ foo.cxx foo.ii
GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++-2
/usr/i386-redhat-linux/include
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus foo.ii -quiet -dumpbase
foo.cc -version -o foo.s
GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
foo.cxx:1: Internal compiler error 980711.
foo.cxx:1: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
foo.cxx:1: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

imerge-dev3: bug: more foo.ii # 1 "foo.cxx"
std::list<int> x;

imerge-dev3: bug: more foo.s .file   "foo.cxx"
.version        "01.01"
gcc2_compiled.:




------------------------------------------------------------
Imerge Limited               Tel: +44 1223 875265
Harston Mill                 Fax: +44 1223 875264
Harston
Cambridge CB2 5NH
United Kingdom               http://www.imerge.co.uk
------------------------------------------------------------



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <Pine.LNX.4.21.0003190339440.28201-100000@cedarperk.cs.utexas.edu>
@ 2000-03-19  2:27 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-03-19  2:27 UTC (permalink / raw)
  To: akkartik; +Cc: bug-gcc, akkartik

> x.cc:12: Internal compiler error.

Thanks for your bug report. The mainline compiler (2.96 20000309
(experimental)) compiles this without problems, so the bug appears to
be fixed.

Regards,
Martin
>From c.buchetmann@t-online.de Sun Mar 19 03:46:00 2000
From: c.buchetmann@t-online.de (root)
To: gcc-bugs@gcc.gnu.org
Subject: qmenubar.cpp
Date: Sun, 19 Mar 2000 03:46:00 -0000
Message-id: <38D4BB01.E648A5E9@t-online.de>
X-SW-Source: 2000-03/msg00807.html
Content-type: multipart/mixed; boundary="----------=_1583533099-4114-219"

This is a multi-part message in MIME format...

------------=_1583533099-4114-219
Content-length: 2245

Command:
#:g++ -c -I/usr/local/qt/include -I/usr/X11R6/include -pipe -O2 -fPIC
-I/usr/local/qt/src/3rdparty/zlib -I/usr/local/qt/src/3rdparty/libpng
-o widgets/qmenubar.o widgets/qmenubar.cpp

Output:
g++: Warning: -pipe ignored since -save-temps specified
Reading specs from /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/cpp -lang-c++ -v
-I/usr/local/qt/include -I/usr/X11R6/include
-I/usr/local/qt/src/3rdparty/zlib -I/usr/local/qt/src/3rdparty/libpng
-D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__
-Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__
-D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di586 -Dpentium
-D__i586 -D__i586__ -D__pentium -D__pentium__ -D__PIC__ -D__pic__
widgets/qmenubar.cpp qmenubar.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/qt/include
 /usr/X11R6/include
 /usr/local/qt/src/3rdparty/zlib
 /usr/local/qt/src/3rdparty/libpng
 /usr/local/qt/include
 /usr/include/g++-3
 /usr/local/qt/lib
 /usr/lib
 /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/../../../../include/g++-3
 /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:

 /usr/local/include
 /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/../../../../i586-redhat-linux/includeEnd
of omitted list.
 /usr/lib/gcc-lib/i586-redhat-linux/2.95.2/cc1plus qmenubar.ii -quiet
-dumpbase qmenubar.cc -O2 -version -fPIC -o qmenubar.s
GNU C++ version 2.95.2 19991024 (release) (i586-redhat-linux) compiled
by GNU C version 2.95.2 19991024 (release).
widgets/qmenubar.cpp: In method `int QMenuBar::calculateRects(int =
-1)':
widgets/qmenubar.cpp:586: Internal compiler error.
widgets/qmenubar.cpp:586: Please submit a full bug report.
widgets/qmenubar.cpp:586: See
<URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.

Comment:
I want to make qt-2.0.2.  I try  "-O0" on qmenubar.cpp and everything is
doing fine.  All other files doesn't make any problems.

------------=_1583533099-4114-219
Content-Type: application/x-gzip; charset=binary; name="qmenubar.ii.gz"
Content-Disposition: inline; filename="qmenubar.ii.gz"
Content-Transfer-Encoding: base64
Content-Length: 66434

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
tGguZ8m4w7IYKIF4pJJP6em8KnyWInVezk1rXlbhBJ25m4dgTG3B2WWbgV7X
yGlR5FBhGnHya7Zo126IeOqj9g3I2WLMtKH8kpwuUVrfgOSab01KuH+lRe5b
XQ22i2sOncGOfNwUAnXvG45trawVmXLmvrOV7b/25gydlK6ikz0CxW0o8Nqd
no7HpekCmQMceJdiEb3eHidwG3R3Q8PhBg28Mv0Ki8gzW76OWMS+WpFgm9VS
dPckUEbhjJTOje70tB7izm85ceDq2N9b8tgBmPtLWP4iFNwKO6pmTf0X8eBh
Gzy7n6aOUDZ+U+vZrvoegabgwxRVieOKQujKsZ/sOdejRDmsKOcJcsmj6cCF
AyOht2a9cghE/tFOXZzCb+0oiJ84HbFLh8DEsuPNMaQlX1f7pth6K9LF0CMN
0AAGiyKXQSuLVSjKz584XYGrLYdjS3i2hHLgLsSu3Qxp1RSIbrvvpwz8Kkss
BIQ8r9K6UW5BGWmK9XWBZJUUnKKkGEBN9rpduO3UQwKbwnxs94JW1RWdteSH
C8yp88zhpA/zeLziX1dSTAaRosUuqaX20iDmsoC5fjBGLfRsGXhEBah7IvpW
kfjtAK5FlIupJxO/ZypkvUmqjs8A+In45dlNlWLCnlVU7IKR9ad5/LjrZmh+
LQmxTpWM4j95EuD7mJoD5fP7Pj1/fj3fYy7CB8eoWJnvlKGAPsOOg5ICRj+h
jvW01clxP1yTq+qmS1wvyRnJlNcVpbAeSB4a05V7daQNjGquaXJNLaYvz5iy
RdSvl3O2J1pgOEwJ5kioPXw6zH1RO9OS1xDPQZdcyel5dRFB8V1qmf8l5sf8
d1i28sUBTofG0VbsC/DC2XPF0iHvGM1BKICSbhm51acbSOqaUsTLk5WMtuv+
lrofNyz36RpO4OQZ+odio96WhOr2MD4YiRqk9+mnGNOb226RTcj1fK9MJco6
NF2TY6xifomEfI8NxvCKmIZJz6fW9KtJOtbeFdh7BSdpoIrs/MIFi0FNM887
V8Pvb12P1b8GNv7noqyy8Y0icZWNqgu1AIaBsv9v4t9U9XFY7eOV4V4tty2o
1RHzWMuv0qIbr/FiPud5biZMk/OPF1mVHs+TYerqDwuVTecTyWgMMBzmsmnT
oqr3gTbu8EuRADwGnMgq+UM8Cjgv0paQRUpLgFjXqEGYT0AQUYwWFTb4wUiN
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
1GuQjYj9O0EZPEOBqN9ISv0Gacj/6sr3hRzio/yqhthLSUWVa36mIySlduPF
G1OD0mxexRQ+q2nkfr5tSJzXamD1cvrAoxg3USz8M49qTKtEGLedO3yP/qz4
u22uf9xTk5obecsdt1Ea1DZL8GlHJIaOvWMJNm6UxJChJy3BncLCrRPBlf1v
CSptBERQofcsE1gCTxfHxCUzluLqvl1DQWc7dOJ1rxe8Ho/LmDHDMM6MyW7V
g+rpmOwldEoc7FEapAeW4F9oJRAlYVREWyqkSrS99jlCiSDCpqozyqyyFevn
7SyzKMpajWl2Xm+aiY2zIphK9PMaG2IUvUr4jqwOZRqxyyqY3ImaFCrT2Pf6
O9pnRCuocPbXo6QZX4ltBifWk34sa5SV8OTgSLt6xWDohfbaktQ3W9/USCDu
o8eQvWmXiv8s3ij2DzWvgvyX+mpyQ7g2sxsC9nnl4GR6xWlvBSKx+bARfZWJ
sh0hfwb1WPoqNlYs2owaWiM5O+e1nTYWbodWi5Qf02Be1w6904iAzm8gkSg/
uToeKN8JSQhLVuqw0aHoRC2Ap7Y1k22AldteHWij5jUDreWCOIRvWhLPe2Yu
UTfuwOPj7bhhnKNbZ5kWWTJ5s4B7sGZfwN/MSIvTWR6q9cjC2ixXMrhh2Xq0
BCdH+uLopGa9rZfWJHzVE91E07vcZNVj8GUN1Liqdt9sIR72n9W2At3+tGLh
3lTQumS3dyzZCVjBOwciOK3gVLNmLw0fICb6qNMkz7cUMC++nYBZaivB7CVQ
ovKrTuZs4a5ytMbMKtzbOsO/fT95mpSX3CX7Iq/+Zhy25ce/y4860nrbjPZ9
bkuFPtlMb+rLwaPOAgzTDn9B8uAH32Zk0xkhZpuDSD4zk1A2SFaxmHIGBOTm
F6GuaAuo8fE8Z2Ez9ImeuUxrfJwtBGkJOm0kF7p57p8x2kq8k3mO30fkUJNB
6hYj1zw/+IkCbjx9hemq6fyVCiPxrNj51NUa7DW2y7ixeMRiPqIXwrjA7Yjq
aDXH0jvw5MxsdCpHLDpPuUem9JA1QdIr2qGg5jZGqspX/oPoPqhd/1AHoImp
yGEPU9cUnhZFfkXJffFh7nweFHlZ6o+PSVbp30dnUoupD6RyLBvl17TQ+fD5
Mnc+nx1myTlPeMESDI2nk4mGeTZJZpcGYT7Jql+dr5f6C2WRzc5fyj7L6cEd
UPrej4AIamQFMLgvvmb+cVRE+7mH6wecAO5/iwkAbrutHlXCxrzcMxMC3JY7
TMdeAnZjNTFgir6e4SwXKeRCZL6gtY40Ko4xitBncXT89vTRowc/nsKdzFdy
QM+24Qknlvp0dqMQzBafyR5opAFHGoSAOxpwhwPuhID3NeB9Dng/BHwQJj0M
k34Ikx6FST/qQh/wQn8MAeGWNwI+dIS0FYHcjqRFBAM3vZHiDw7FiGTg4jdC
PnIgI6KB2+AI+aMDaSX217dHj96bL9myp/8z6eNfaHz1zbP/mjufJxenJy+d
lP914X2ennwkim8URUrSQB9m2TAfperzy57tnHig9BIU7GfxMp18SuUcI5mD
6FalVIr5osggks3byeg5Bn++kG1Hjj3YVRHd8pLMymNp8Y87+4yY5ZRyiLZO
hdtTH4uswtv2ujydeZgOc6lSMryXbnngFfiIHuEdHF24HQveaLJFaI2mLnMf
ptPsWT6B6+4PbVtjCsQheIAaeHgpmXv0gxYPjmrP0sMk141JrI+TaTZRvp4Y
EQaUO0UbQDMM0q9SxZre6yA/+SqBZYeJq7u3ail+AQ7dvtE8Q/U3WgBeEzZL
0T90tS0kyipm81lMAlZRc4jTyCGpnLdfUJ5fuR67CWgq51IYT/Kkspkv4DNe
xjtDQNuV0VyiQHSFwwB46hADgdFK59UqO0pe59aSv0r5Bq6LTZ3ZIYzL7TPZ
U81BgIsCndj1aqQFOnaBeClHlBciLSAGFBhkcbwPJjtEhYCOl+nbRU3Fjk12
iDqWIhu9yypY5kf7jM13kI3qIm8J+FVXuM5m6k4RUUOko4ZInIAC6poB5dns
3jh7kRevwFKx8YuwnkVyBdEw4kW8V5nurXXES6+TYYVhjLuhi21sK0iPyzbb
QLWwwQ6PD+mto8KoSV71ePhuJzYn1x2FgnM3bHTuZervK3qh39OZnObkDyqr
prV4fVT0ca7zPNfhQwZRo/g8JsrFWVll1aIKq0uq8U2t3ytEmT7W6Fk+811m
g9imESoUKrqBio/FQ8CXDC3wXG7hFowWeoputUu8hoOsZHiRHkOCZGBY1sb/
HZEDaqfTifUQ3Z56CuJDTcPAY1DvU3i14UVkpopA5b5iySgc2TB7x+Yqw497
NkUdx6wmvKC6XFBNjkS09IAwzcGUJCeYUdcZlTRfOudcLyjASBCOg2UD+Vhe
LNbHyqtG18hophJbPvqmhhYnbDUwtx5PH6veoD5py8Fx6gQyu7s0u6pNcLM5
redp8UQZbcGNUIXuTsLpDLaFtZO2ntBV6k9kc+5q61Q/JXKrlTiX6W0EueQd
kBVX4RTopmy/GFfdC86XD+TMNwxW1Kq/+luwLKvGhq0FUWlsf5NDOp3LgMbN
XoeS1QlJOUxrlEVdzkXEHMQMqSphKovlQLizeTKM506z2at0XD1LEwyxHcYX
lADvocwGiOT6I126De2NbIYa7RcYVG624toWTTAB9YIXXgNDd379eYtWPxMM
/gWb2HVoSLQ+G6/IGXdte+ansg1Pwpx5UVzPMziQl4y852Fj2/AWQ4/wGAML
rxNe9fktLozVEsT5NVdspFluGDOHAFUiJ/l8XvLnCui+mcxJIC4avlJAwZBQ
+c/2/UtgMOl1SrMKMmzclotVmbCNahYtsCccDgezMIlnA6Lf18MJ3FcmJghY
zIwr0jKt6kGZFpG2pdgo5+kwPJ1Q16gwjOsx7kiGU7/JT71MVYRRrXBEMp/b
E1hbf/grq4u30Ub/XJTS1sLtedeKd3Y+cSPfOH5Q5fDfxpxbCur8h3qGeydQ
mCaDqDfm4IW9AjtW0XC2rrftNSJOwbTqcgoDl4IOw8nXs0SE9pAI8Xe48r4d
wTl2Cw5wBsZZoG3EcWNfmbDLD7/VnJxJk27VCVlYazA286IR2jDtBvmQ4E24
5r0RB0tHW66ZcS0dbqbLXyZKc2zfCXth3ZYSzmfRnRJCi+3UEE5kP4YyanZQ
KLNmj4Qy63ZBlJG5dLNDwTXuZ1BJwT4Ey4vuNfhqCzxzZ86JaqgxnX7wJ6rL
/9vUk6ZgG0KRqKdw/z9ewXk4zz1mA6T7X6kVg0UbdK8WCzc1KNj6DRXsD99C
weI4XHm5Q67C9vnERXnhJR0Pi3wyeZYUJuUkOfM+LX4+X8xfp7PFnn2jcbY4
qtLpHn8tAFj1XwlQh+lKw3du8XohKQj9tl/kycKOs5cWvpfT8XbO/JcbO3YD
qKMfTvPe5emY8JJNT6HQ7sDPH47o/hSOeFdn0eU5DWF3JW8mZp/L7aAH+XSa
z47pJlY8kr3Btrsy5nqKLimU77l5Jw+sYba9a9gvIzj7+1G0O0vQ7hDamief
RdbIHEKLyINE8xyO57p6YMcfOVrM3kXAGoixx1w2lhD0QBuIKpe0dR+KImBl
cgSpdZqZkeb9ptWYWsPYxRDfDhr54bfIW0vd0vN2ddcF3aOyC6a4fEYQRlzy
+TU8aqcO7oP/1ZyrRSVf8PFyNsQ8nZHnsXpVsqZyx+k8UY+ehzVUq8gb9fd6
oL7toX9D3crF7BJX6vpVSKHlYtaDFDkfkqbZ6BVL3apvjVv1GM6m2UZwuHAB
1WWHcTaZLOdGtksOz2atyFNMdo7oKK7bqpLzybeuCk2R36QaQRdwa1LHGQbq
iGkKusCxbLNmSc0geF3r2klacoDVkEs/pZP/ktIyLJ5Iev/5HNZx9y6ZpZOv
GsPLh0tktKzMJth9q/PqXT02rAYsSW3qgLdmDH0qPZ4gQCSmg6+PgOeElXBG
+dXM0SG3b349W7XpksIdxuiuk15Lsx5eAz6ajcCAyAvuAULI0Qo/DxBt7eVM
d8veo6sFV8OMqEzndqpsHi5eicmVNI5hptcgwWxFwd1CXnFJYUcFAFgBpN9E
XrcVk+HCGDUiXsCLfLgoXXNhw4vBSvWKDlfXmjo7t09fY0XtO+3U57m5XsOP
XM2c5bfQyp3OikoZEKg1RlmFZ6LRTKepvIJqhnY4NQ9tpZbOzy1osDZbSmip
lFeb8d2GjM8IZiehy7cVZPeoZvzZknlTv7d4r5IzmluWUwpJyTUd4RxfZGMl
rnVVtfWbelWcMY+cIpnqgxmuSupEIPvSWVL45zS0c0Lviqzz/zaOfokVG5aG
GPza0D08ndBj2UsIuu29IlFWaXLaxS2ig3wmrfuJXJw/HY3Us1xb19uiL44X
Z/iNCQOZIAHe0XtTW9f3aX0mYUzSIwlCL4MJwiHH6xLOhyhCsMKZZCPYTqXo
wuBjS5wQkS1zQ9cRQKn3s/zGMRtdkfah/zbJ1GArMZSOdGvKECXWAJ8/UnFX
hwpdfdL9PS3aCAOu7E3l0BPo7ae0qKueW7ReTee8M9aMCEJ8lc7O/cEQFwyC
u7rFHPMu0eb1VpbJfQu7YBXusKjeWmXDy6dn+aeUfT9LJ/lVoy4kNkM1aK8g
Nc46q7PRwIWsZQ73bkM+lkqsExPYOgRl/OXg7dv3h2JowBjLjdqC81QnH9Gm
NTVYwIlYzg0u35PrbLqYEj+HRXJ+mEnjZjZMIyrZ6bBwZUmyG1Hf8Qor+P+I
Pts8P8MD568xsO1KNlC9WYo9UeoUbZVmZW3T086k2dDvss39jeiKGhhIr6si
MXCwG0hCZw+2gyXV1+05n0rOzRnBhphmjjuZUtHrYjwVdb1iDqXJ2WMKRLSd
/NHx11mJlGbmpXKV8zm/PbfualmT8ZYbTYKC39Kw8Hkww8icWdJWspibB66F
MmRt05sF6nIzjxwB4KDq0Tc5qJLrMehcw5uWp1X23EhivkNMcAXg5yVohnwW
L9VVl4d98RIfYABDYGfcF7+qL0p9/Jgg6brK6+RGDpIr2vh4fj1XoIM+5Bxf
FNkMPvGSYhiuXVLBXYTPAq8F8F3F19kM1JVMUiWYDNJjlEEF6Kx3RTpOiwIJ
KazfLRceZclrgq5ZAExJvyv+NWQExCQxwtpQwjoRAL2mJU2qQ4xtQE83Mteo
l3mR/Ut2erzTZG+7iV/TAm5ZTVCCJvVZXl0YQvD8JUP/3eKYaPe2pbvwIDhc
3zWhiX0A2wgX+n4rfuGT59jXL8ZX/FITUuBI+P5ieKStQXpdYmBddR/jhseL
WkrDEKG+2IOXGrAXulGM5GBXrWJFNLkJKVu21203ck7tDSEt3hgZy3kDGeiG
K3EDCDEiK3CiSazZboxdMtXd1xy0A8DntY6WuIWV7UYPYxjS63p4/2T73K7Y
6t01UzMhmOowBNZjAUUfJbJQLBjVXmHavjESrAd3VR/4A3sSPGsxcvwXJIVf
03YUukji8WPqQ5IUxUuBOox0KtDWW/OaQZzWXpgpEpvnjJdwJitrCpH6GZ7Z
2CDN2jNlyH+7gsB+Fz6U0/QXSemVGY2PI0uLkfGPxdmwhzkqE71dRO/CT/FZ
q4fTD0dvTrYfChveRMf8thR2d1fXIlIAujwJBlWX+Vra8AlAP4nu9uPHqho9
1VuQN5xEf2w7iRonjVfJTb5gd8M/Pgczy7hY4EYQvxr+i3IDYFMnnWwL3+mi
b77ZC0z/vTwxHJdCEpPxBAAnLXjNAF1/bZXwORNI+0jPJI7pcUqg8IcmoeeZ
j0fwwvBVNjvynighttUjJPHXUvhGKbUpJqyX3BnC8b/Ffzb2skLa8InRQ6xZ
eZLPX8EJXcQtT+a+zkdJTRZasPGsw7S8rHKW6eQ+n6kYWTFUlXmSd7UnRngP
kIOdvPpopaA6snC9XrTa0+W69xmlOJzmR4d3MYa9vp/THK6Q3LhidnbEzw1I
4Ksprj13TEoNroCpqDAYzcW7HAYO7cSKOsDQxTsApXvZyxZ15TqR24zYBQ9V
8QJHTieSM7zIJiM5Et6nvuP3L/SuNweBb98lkridkgmqXF8j1dFL/BCAmFcE
tId8LcBL7XMXAlAJDRQIIEbBDNnXrB5mfw3mrPWoh5GPgWu6bHalvRJmF25A
G4BngmhZAsdQq8Yrs36MlMBFaViqA3vJboI3MczJyfLrwBxyiju/Wx/NhkU6
TWd1jXDswLQTkofDV7v26i9yADFnay7dYzAjnV1TbggHhQBRVR78tNV27pYv
o+vCxerggLEmuYoC8Ma4COYdpaKmyfwkp1dwwpBR7lC2GC+KfFqHU4Nykr/D
KXe1QupwXCVEk0pno1LTnp6qrWblNcfFsI0PDD7qepmPO2t9oSIBkOfZm5yF
0ab1hNqI4XG8VZIO560+Kaq3g2QjfKsECvRtc11wCuetqbNo3zpJhT23GDzo
t0pSsb/1p4327SB6wXjNot0VVefM+fSGERuWGDTChfWl7oViU65prASKLhqb
qTWsjd0dga1nR4UtdYn5/GgfRMbQO+fliWWlLHtyIrKfK4bmI1pvE+GwM9fB
cT0DwmdnWZhdo0NrAdU6CW+OuFejOx33hkas/IYgMAhSA+MXaspUu7FYsrlS
66gQe9MHgdz77FYFvCvyeXKOu/VKB7zJD5Sx0xcQNU1/qF2EY2mzAe0+/tLi
2TfpZsR4lJELlrZcXhw44LNXU4rqEK0LehfC15aleypFV8N/60MVs7GpjOa4
jy74YmYR/Fg/nWEyD2vkjiv8t5ENfShDA7J4IHJ+WekikcuiRZmeFHL0OreV
o/Wi8zLtKKJCG0Zr5QOTGe2PAQhYQYeUGI+idsmDMlWicH2iTbQNH/xoyGD9
B4ZiwCiilsRdmbmRCdxZN+zmw0XZDYVg0sNNecyibR3YGHyTYwJuX4u1zkly
Zr6vYeP6QAJe2iTYtSY3ZZsGMbo+XqTpxCb9QLt/zm21rKSIyR+zGYbVb+rx
LqRzAbDEUsxKmVNhVQOdaj6WqQoL6Ein53VtJVROi4f5BFpSfG8LOtDXeyR9
+7Ouv1ChRX590w2BTYKuEsK5A0swO7lzXiRn2KPcfmGTa/UIwhWp7EBlWkPh
r+nNWZ4Uo24Mx8/UW0umBlMg+rMkgwGma4AuFRUGF+7OyH7wAeOahj1hycD3
0PzRZiul46ZG0hqOBaM0+M5IIG686ejLkxIVcwV7XsgDaDjsZsj75EMZpeBs
2qyMRGo4ilavty7soHYyLrKRjcJFJcJsk41hZ+izADxccMuV3Yg9bxEQ50A1
ELDQboRQUeNj2epWkqMehpO89HkvkswfQpP8yvZ8h+gUfVp4c7qip3x/BRch
VKRl88rXQCzdE4DhYnb62vT5Wlynkwl/XtJ4KEqSpLJb82KY/hVcR7054Nes
zM4m8RviOrNxo5SDORulqHJxW6/ziQDCXT1NgfWzqJ1j427QDfDYLEQwbOtv
Caiam0p+BByBxXZxD5YyHinCby4hOgmGlDhmscLU0QpMPRP8FZ5qyPRTOH3h
zwQqrWf3iCO7TahKaFfCO03Q5wZ9r7M7LscwQo+qfffQWvfuYZGi0q0hLMY+
aTFvII6kob6KX0Vs3J/3CbBn72QSB6gG3XFPSa2nDQUejJp6iJg5TO6OVOpI
FTu6aQPTDyYshoI+suZFaludGlvXw/EaNYLl7K95xo/Zk4pYPzQqk+EwnVeH
cgVWLjMxLaC+MRG9KYPAiyrHhQUAOroo0Tlxi4xpNiH5r/Lpx4ukKk8uMsYe
9L3YSRtUm7qbX29bvjRlqo8QiU/2BvSJnUXCQxIU9v6uHgUeXGCGQQD4LhzQ
eWEgFMRrjFEjNq50sBp2aBQJBCjSTzTYn8PfuCks0Dx8J6en8rmCRit0Kcp7
Mj9XQzrMpcBTXN6shvhazsStMa5gXaShP5qPGmhp+jrVlwb1EnCv6ksQcAwd
zTQ0raSWwb9dVK0RUvDUe96iqSXXVopNgGhwasB35qO2gXjbfGpsGjKDNPR7
+1UDj4aJBj8wH6LmQrxUeefPuTgOnYSaQgCLd7BD/t2A84rL89BJqMXK5xZB
/a6rDMx0GvhY/64hDFa8hn2pf9fJFFWiEar9UozYCFtckV5vbyuUv1ngDj4L
E5RAtojZFIqrKLeu4BVwcJHMzo2PQPzETDmJalAe7diB83biNXy4bd6ASVtO
HmrTPpRQG5k+SrBv7Y73WeUheLE81Skw7hiryNedWptSG2IwieD+EsU7NzFp
aX+H3xtTjtdytirym7eTkQMR78YE23UwI4Sd/OPFGYGUHukFHpvJ6U1NqbUW
BIYL5dOuc7SJe3D+rEwANPtSGTQhN5fhTtqRUoJZPTp+0+qFEwjRsyk92IMa
2HAo4gzxRlp2ct76hFv9qiVmcPhlNqDJJ6uzgR7w5DxojhmUe1ZnY6x/duvq
IKe3g3w6hykS9m6ZMRZ6FEjDFmnjemrpNgmEwsCdi54NNmN2kFDadvPtkDoR
bR7E3vNR5w/HN87WrMAMWlJ17dpq4jYqtDm6Q3HTS2VJxetuiVI6KNxYOg2/
k1co+1hWJGMk7YloBmHIKtUixfM0E02Y9bl4wUvik8154AakJqBMhRI79vYq
+v5/HP2MqHpN98IuLcpg2Sgae6qy7LGSzlGg/uccZcJhPJ33LoPEWYF8wmtn
CkLuuIg0J3iYwURRWy5wp5HDc+Zm3OfTeXUTuvZlI65byYvzFO9dR9JVhDeb
PldnaenpWL1usSsGcQA14/kA2FindKeCuN4V91WbKj+J8Twv+dYPNOhQbwah
2OXMdH46zCcaTz2eCbOs6R5IaabR1PjubOgtkogmDCO26wHz2qyqAgA1h0Uh
VN+F6PAduTaDv40Q1aQBRi/xaIVHEG5YLRbAKZYNbhVLQGLxyr8+CvrzEx2r
LpKp/YVZJMSOu91gxo3SBDZopk4Io15y0EgYPMre3Q2W62PzoKe9FsHHiKQ4
tiEDG4i6dkADWR2LkJPVdGHOMWQdt1wWsQ+HdC0z3G/WR2WMfgT/8VMN2mui
pzxtlxJDuEZKyjF3KSWEa6Rk/HiX0lKQjdS8MyxL7Q7rL/TnVL9R6xB0LDVD
+Nzz0rV0Sb8xAtAVDd51iAAaEh7wq8WJFII4Ny6O2vgzaOjbG0N0kPCIwuCU
zPHQq9I9yqvl8opfsfBxVWYt8oXj9Opj61yHcWwQQ6BgJwkWHYG6W/2tvsNG
3yVbz5br9etTd5yKl1Yx6iBcRyxWY5ea400cEOPezMs5izke1xGLcYZ2i+1D
TW7KpX4QgoOUpmHKeKOEBdR6KdsCGMjqBTT5+JoiXKDVC6nx5TX0Tf5S0q4Z
a8qocVS0bassr5CS2cyw6sS483k05u6LILStYdC4/x1TQ7MqwNFPSTiongMd
G9o8HD0V0gtIYqxshx73tfOIYVaEkjuj1PlhedOUM684CCFtPl3FPHCYncF8
aHqO8X0HXtTDXEcImjD3vWHyCNx4WhTVNNnG/UYa59xnk3x4qfAaRkvE20Os
FzhQdFZBr+AWMC/CHz1k5E8zvTSUYLxF1uhEEp0xtvrw/+7k4U1Kfb3LtZSy
43KycinaVWV5Ma6M+rXFthBYi2LVkawkrA5OW9RmOb1YQ6ucldvZ7aXKnYTZ
GOQVoQ+8G7q3cY1YPuQVaEM9Y14n+LSzoBzvUeeGZo+4nJSqpSnLTh+i7dRU
419S6KnJ5hf34Kkbkj+a7bcYe3Vn2H5cXV0xC8+lJGvnFmK2m9gkFh75Mp1n
EHrqmqrG6Mbo6kW8NYH1gS03nnCBz5AXju0V7IfzxSDbzmlqK3/RK0k4y9zf
98W4nkC4oR4hsb4v/nBoQChLtR526uLsuwd1oS2oxroEa23Liomjv7Q2S4nY
+qwJ/L/IlWb4py8+n7yizSX1frp5dEN5fbOX10yWdubmefrCBuTxdFOqsPuf
e4wkjGnYbIHhzF95u8gL3LfLZkPcdB9eWCxsSswEP7/hrtiOYaqLYXgpjHDt
Xh38mKGvnh7tljpsQSJ1PaJmR6NI2en0LB2NUnjpbTuSfTXF7gW7iiZTb4Ju
XGdDxbEOBONeQ9dtcUo37tXFRrgjyERnMvFOItz42wubQ1rB8+yaN4jWA8rw
gaMJvWVJnr0bcLlAJZnOAfe7aPOR2NYnrEZY14ezEZ5z6IpBIl1Wh7Y4P53m
o9TtTDeTdIPOTdnDOFviO+rO5fe/4U1dvLrvPV4D6ezevbqD1sG32bHl/hte
s0eh3OKWPQXsESqqqOOGi8e2dF2absc7r9r6J4UWTqijTY/Ix/D6NG2cy4RK
8kqBN703adAPCF/Du0jmafn2UgPYxgOerTddk/vkMl9IBKIgRFAaXkuizoYn
0dR75f+e5dcqbOLW1tZ2XydjsGYgoXIGJkcqEcpUOTsm5yVFcTQ4903Or17O
A5ODUh45BB9aJkzYaJ33g8l7TdUyJMdmODrvxeOVRVn5dxNpTVsOtrcMIfEe
vJRHJmvAso4pIKzO2mFZrxVplTWGcJJWWyBzqr/BT6+/Kae6FzZftZLaZifa
Bh8PNpsIAICuq9NZI+/FxTq8CXsf6e/TpDjPZs34rwkmgsxC6i8hwSEdQjSw
UBbuqKodunWH977TC/qyL3Wvsj7l7V2lMGiy0mLBG1GRQLukNJYCoxDIP8W9
gOI6+dSz4wdoXMpSDCFy4k/l8yi4e07bmcNEUqFqpoQEtHE6E1yK8JRpmBIC
jVWKNUk2xGgvPNVSTaE9elANsofg6DvykJsFdE60cG2Ambu7fE4J9s+ons5+
F2HRaHdpkJ4IVjuY3hNdRQ3CX2ldEScMSsCnzO6buaRHEHDUo01aJHw+mEh6
esutkdkU5VNojLz43V8G1hWCus2rXptiQEJhKbzpmHL0RaO6Wg2iq9WCnfgl
yEqfBmiNWNzqCLqZxQzsToxZCbEvle2JkRdNLmRAuCqMtLj0VTBYgTVFboQl
TEkBqpaGbWyiQ4/1tH+rzPwzVrVaMuzGwlfZmFaV92IkWgy4Ba8ucoPTe1+o
aA6v81nu2BZv5aJymv2LYtJ+FocUCRxTIdyD+vE6nebFDX7s60Twx6PrVQro
WVoSog1xqEME7DmfnucW3VZI5/gIBjxc5PC07/AkfFLOVlT/m5BSzyqNs0kK
Kw3XXh9DjStjpTNJw3pqH4T9NYQ1WaiHzP2UFuAip3YS4nQJ/Xo+/fs/6kp+
dlOlT+F5X7GOYehqwDz/oj9Y8zmLWBF9MNT3TmqGPpom52mH+SPSQ9flm8WE
heOys63a5ev4aw2oz+YTE4gxC5/39mEvzAPT9j3lkC5mdhX1vsL03qZ2Qkkx
VHMSXIee0fPk84YamZCJasUJKCpM/yEh8ts88C6D72AGafrFL9hCu7rIXOc2
F0svU1Ww3HxcKkdL+asNlrub6iM51xmhKfvsblsU0hnYfuwFFWVgY+pc2eGL
isagBNjXynQyfh3gK9gO+W+9TBdFVsKOApIjL8FJNj9Bts2jJry3qvYy3R+u
Wyu3TticUeKFJT9KV/+4Mm90X/DH5xQVVArXL6SKsJJ/nUh9cu1HGTK+Xyq7
KhYp/Qwxw7trVCaNTVI/1UmOn5FLSwoAvCEJxBnbQL5BObakUKcHeV3Zbo7I
APEFqtIgbIPWuw4LkzwZra76VXTQZfVbmbj7KnvdBGBog+DIf5VILYjW2WKs
XlaY2IAtZvCQoHhlVqjNV5fIMm9VRX8ua1+9WHE2piWphISdkzW1ly6AjX29
AYu6vUyLLJm8WUwx8oEzm3GLpJOzj4geA0XG4buuPeO6ezpZI2boGPqhFyoU
cBgBDcqJrK/TKhnaaUhN30p9sh08aSPv7LSwknfWgq2NGnvR6XnYB9SNlPJv
Z6Toe2aZ7t5xcRprTSsR2uhXHtdgHlmLW67AIE75Z9guoxcdOpIPuVbv0NJd
LtM76J68mMGmcQfPHlQS8eIkwZQDUxalyX8dSi1OZ7mEcaY1y2VHHVNsXKN2
27MJAHc+lJAdp72wV5EIvpCE/O2OGska65kk2o92N+w4UNvAP38Jzigt0rG3
FpBDY65v/WTns7xIVWR6/ZpWOLX5/fytra3yEFa7KLIBnk3Mhhitm5R9Q/+h
2+LGC4kDUVbs/sH7pKzS4u3cvYnwNSXjZLchymLYUGyTsvTctbET1XppEzeN
Ttyh3zM1FvglkH2uF+9IxbXExT4+qOBviWgKUevxKmo+KvKEIUFkIp3Aww/y
VKgtpt5TQbHc4K3g0vUsTlMCNz1jgqAx7Dt4aGzf+IxR0NoCqah/fFPF0uKT
TRM90jPcjVeRcMaUSY3NTjHCSt/U1TWYFWI0zlSvtVWlPROpKUAny8k4TaZ2
Ifn4cdfNsD3IWYZGkZ88CZDdeIQwaw3qQ5izLSIVw1xPIhAy7Dit3pGudYKT
q6zYbg32TtqomYKK64vjaTKZwHNghTSDnYcrTHQ+2HjpC+1G3hcUa8tuvajy
guU5hX2XGtYUZxbsPor6Di8Y/mFA+SoURlV9gXWXAWv2IAirT/XdV/Wtu+gY
3WhZQkOXNFe4DNQL2+rABcsgaXb8nM6gY0EYqhgVKyDPZrICjuyPcNl7k7fb
y+i0wJzX36/ZGeVH9vaVIxNNHz5gSFh/lObnbc5nyaT95iZ73QYQwcJSzCvn
J+Ur4BygE2xXgzSfoHs7BDZLt1inYzdotMMV5TuPUwjRFK5ejjyDrMEgx3ve
hNiY8QM8XYciHaYZvrfAqU/BeaXgaxH4O8rK25BhwtCUshJ9XzEmfb04qFUt
qC+YM8iwr2kACYOLedRiEIhFsLheCltfAoUtL4mpP0+p1O53cmr/LvIchkYf
LaZTE4Tov4c/iYhcbdODwhg2OJ7spqtOCDUKBzXq4n6TumCqAd7hUqrBjGWd
rsaua0xqfeK+J2VwunqLmSfY9XM2Mhujtp9mo3RmQlQZBanCnOJkFGDQRH2K
SyCz60sRUCsMfhoUAslR+Csb8MfHwaxKZrmIdv97Q08ePiale2haN0s09QJF
gAbpp9Bczo7yZXoTAYZQSpNTmcf2vbEnAGNq8AWMUbrDmFrhH8Nta3xCOhR3
eVrqXA/LexLDwVEBODwMfBewBmNIeR7GobQKbqLwI8hxFBJG+YzFdq0w4IFU
HKYjSMsBfjux0WDbBEvTTwzK3xC8nf59NmVKXFM2R7bRo2rLdzsVY8JVj2q4
wMhgvnze4DBjwHcd7djuHmR5vTpwZbT9OgDwejD11MDjEQiQ7mGsY31sl+WO
qV6n9UrFDRbeA5UfqJurH7kW0VzVr2pyqUWFl+uoRzTFQqVtn0FUra0TmOK2
SaHqdsFJeVc383SUjsUvcPP7sQF50rHgkLPnAspkWj9ZBBf+iG2PeboegybU
6fpnSbHnJTMjM5gDePAQu6rgOVb0w3zB/Qb5NCF7dlE5kuXjyGz+tjCeNgQZ
TwYHltjYDynmDXxmI3WqjB+zUXqN32y7McqSGozrOB35PP0X5FcvwWhw/xdh
qlGI/2kcr63SGxWxfYfU/rfsP00lrMBnoMAd6fy5NbhV2c2V83rHn1KJb1SG
T+Y/tiW+SelrzMgiBqzFGO+U6tgfrqIRr2rQ9WiNqtOfQvwnifp23M1GPWdx
2nGg2Djlxw94XcddZuBA5+X5B3AqwKiCkQaJ0QjBHo5gCxFLkW8k6fWiCboa
lBlZMgSk7KLYtSMJzrvExtaFVPiVjyC8eZVEhc65vDGCy3GVCgzWBsftV22x
zA4YdtWvKT9OKeQqTqxB0cIuh2jEiuuF5XjLK+/Scg5hgZIJjO83M+/bEUDn
5WzfOQvg9bpsKWEPkL/6Hd8MJvdrVwW48xaN/ujoUusgb/jXOdkjjyMGGoxr
7Z8Cu29OpzIOBStYF46Tgd3VC+h2VqTprRzEBkT79XQoVy8NkH1rl4uNDaGD
phmt4x3No7gFbuoBFY8+LCTExjSTP0uWhQsIofdxaWUAmRTgS+gnNyGjgyfk
bqZaZoRZZwk+ExdmYKDfZ9XhzMtKoA+cDrNiuJgkRSZXdSbfjaYuYOV6oG4R
+FcWQki82boc7GimQhg5M2z0cIMQDtNJDYLXrhsC2jUCS/17Q1uvW+GpArMY
ns5ufLW34avNDdc80MPCVV/syNvz8YPpuqUMcBKeTPh+S1zvm+OrJvXvCk2f
eIiN2nW743xkhoi7bqek+Lrdgtszmu0G33bHA9xIxrqkoCu9df/WRfw3vmhp
pNTysqV1bzaIzuRPu66eRwI8X8uM3acVpdNQYnN5wyQWvF0FUyFMs26v5vuf
yRl/A9mZYuNPybGLzfqBFru3hqnqdZaOveaHIz+9Toddu3gQlLCaEOJDF8+l
rUDsQUX0VqhlIJjM/a5r+v7uroYlm9/uiWsqvBpYC+90FuXfqY3sb2c/HktW
n2BpOwJUkBvr9cK+IlkLY6i8T0cqYqcDKaLkaoAZ2bN8UZ3kx+qRnsj8LWUj
0fi7qI4pF0CYWUZaIFlo9gl8HYLaWbsSSTuCukuVnPVdAsrTFQWfDNUcEY/t
6/gYdJquGjKw2jDvrgt8u4uTLV80MKBtXjIwwEsfIgDIFk8KAFiVTW2k+hPz
4UKJTl1s9GjI5HJx9nRpT5dAL1t1drmYXk4NwZz4zExko0RTQE9VpVMcVqCj
Ye1rQjs3WXU6P2rL6cwlFpwGq7fbDJh/GdZRDMfZuXKyVNEAzEs5TCdMMgNX
Zz69yArc+p+SMu66BEapNK+QvzLIcZNxaqqKG2WJN3XYs5tUQ7mLONyjeZeX
wdziax+CRcj4hg5NtfylI5b8Hu5bAF6RX0Ww1K5O+KYfgNDiV4HoqTlYQYF7
Hlv7IDj8EhvwmAx2YatJ0aYg6dtEqRXtooR2nbU/l3AWLLRqxhW5l04LSQyZ
+j6FOCFyTBwn45QvaQBwmly/e/3R3jxGyaTS2P+UjqLhde35fTwPz3usSuGM
dG1n3xB2CUsnpfkBQfZi9jaz5Ezn0MOG3SuzaZFbaC5CPI4JjM2zpIhY3Kpq
/8/ebrC37ehfydr21cFSc3kVGxY1Ez5O9CKbVPhyp65F33mZxmqXZe+qgbtl
x+xdg8+lpF9AJY9m6tkJnDn3t/WFWgvcKa2XhGMoeYqZbY1b5KuL1C5Tm5+c
+hMM02h8iaXxHXAqa3p25P88W6rVq0ltw2oAXONjSV9rlvyfaNTVWGZ/snFl
jBjTP/ytsvquI9F0bwmQarrReZ6PpDHkNKSctmZSYCqOea3JVbeeNurSew3D
g1RK6umkwscq1PUcu2BnunCYTGArtMKgM8rgkibDKd6OiJzP1xtxao7G+9EA
9t5ZpHrKXU6Jc7SbaBY3dmaDMWWixcFxG6yAS8ZXAT31WMqQu49MjS72doGv
SD7JpErId55uZYX2DnNkie8R4mzI9vzAgnB3CDElvkFogI2tMvghYqsM53Mb
+6LGLRvltKpXNglbX1lQc6q1iKgprD3k+Gv/dzWB/OWDfpq01vyR9g/heCdq
0QfQ9eBwH7du9ImyQ5Od+Xtn1vub2+EmvG96mezIcTn4l3qgmA5nDn/VeRIo
srn2551K/h9xRqcEPk8y2pBRRqoq0k7i3/hIn9M9wtuVjLq/56zuX8asTACx
cSgobNVwUWGbe0fTmqI3MGWvOMnpt+omHiDSxfyTvI5uO2s3asW2Xx/ErKVq
ctVguDgKVNS4gCqNoWpFStU2pfoOJwgGaKeHR7ecHuZktq8Sk6iRXDpbgZQ9
1Epnu070oppbqO4ZT2rur+NvIf+DJq5wUpXUVASUIcU8wp0StGRg8WYQ0V7e
P84nFAcrSkj+5uFwXCai2w8aAaF0WWSbR24iqYuZOsAa14IqHphfT2W5sBBa
ATkTSIuTUyEJ+SOHEWHV0sRcnyY99ODRcbWzkZAnonnkeWMNe6cOFtWv5exO
l1Gf9yJ3hwCfbpiHgSftXTyTRJfa3epQ9+kH7WDCBqSzupgBEDTAoOm4uh3l
m6Bi/nX0u2SCJIy0zaV9HPG3vAZre277O7Cm8+KO2cM2ioQuwDaqCVgaJBCx
Y8VgaOwYXFKgmB9WzPj9mPKe+FcHLYbs0Z+/BIk03eC1VEnSpdXVGTE8vtxR
UUiSKI2kmYD7YAIeVo32nd39gN0ZJpSmhTEcBThmQqrdobZonfj+qMP5mh1O
XZa33pOil/YA1sNcnOHINKr0uPzs5FXT+Z6mutHldDd66zLz3mhBr8ml3Q24
YNILLwtWRTIrJxgnHuoevnuv14Fn8OKMtBDes6XGnksLJaRUX6YcYRS9jRv/
si+uY12UiD0l8Jbou5CwPsF0ztui0O7Cee5YYgyhbNn4bXDhYwxHQdfst1we
3Lt3zycxXzgkmI/cSpy0ILOEKUeK0+QyfVqoaC51D8HiWYpyTE4GfkMAieeT
STYv0yYyMbQVSzaxnJSgVNit9cgAF78tktGz9F9ZWkT68IYKFBtI0l5RUNJU
OzW8u/IFNCzpZs8W43FKWy2+kaxgsYeW80k6C0hsyPSvm5aY+ll1dvJQFQtu
+A8Dg/ezlw05tYNhIbO+/xbKmo5H+qj1bNg0GV5NsROsMhOaaVB1oE4ndlle
ZRr7VH+LUb6ANfN0W3ZM83tgfw9Y+mCg40/qJFC8+udNsHt36zJwZLAiImVQ
SkfSDHeQTmWqNkYN3CAKN/DhBlF6g4DeIEpv4NMbXZvdKgY3uvbBbqJg3qVU
4/DvapgNrRs32C1T355FXCVG22g35hcSMb+j817HCcShd3TD5wE4mA5M3gmo
0VANSJoRHHq1UfwQY8noOIVCrDNzoK5j+iilHHoWvLTgZRz8Ara7DMyFBf8U
A5eKk3OTCJ9ruZiA0IZqm2WDttzDbbHI+qgmsGPdEqkGnDOrsTaiWMF2BsM8
my4mcRzWt09x3ONYc5MHmDzwknG8Q9dX84glbPiMhaqMMn7LWcirSespyCsc
poX6KEHBIslsuMPF84N8lA6dAEH6UHW3NrSzBrGbEOrbDDAebky0grIycT1h
/uCF2Q54luITCU3lLYOrK1Ht0c1GbvU02gj/xjclcfIvjEukiziXmH0vrUjn
k2SIb2m6+xVZqV2kQvU0nixKd8MA40V6R8Gy66RaZjpwP3tx0nlo0lGa+l3I
jrCPRzqXvpwzdXo8MnpjLe4ZzEnQtgrsZkUJ1O2AuQD+jkgM23vrXqU+K6Qg
pXIpUJ4xDhCi68H7BSkg/BPlxKXi7U85MlV5NW+YelQ9oJq6PvsZTl07liQe
wi6hSAe1hKoJ6YCDnUL9iItMg3UNgt/oNKGj1N8WGQvfH5GaAqhd0waA4Tmw
EvKacG3GX7P06m8UyVidQGjXHhyAF0lpIdwZDW0POrQFY4pZQY5zkDn5Dh9P
qQFbvgyksj9JxuZyIYalx0v+VYMsK9sCNpfuMpwXk1Gz8BiIIz1/5rsCOL1m
0JURYWn1saNp5yqfnsnll926cpUjJxHRk142Q25p8FFByy095Uu21MQj5ups
O2ukKgE7e24dNz6379aqw4VgT3JBl9nQEcKBFd0eh13gUJsHeu8msiJAMnLW
rK2WCKrFoXXNRCObAf12tatDW15Bq//NUcYkm8/xcLJmXBmA2Kh6L62dXM6T
EBqefsdV6wHmx5518oaeBWy3RWVxsHCfL305h9UZPPr0pkedjmcwoXoPocpI
a6yLxA0agJf/t5x2YWELlCffp/Qkb+BLAzQwBXtCjTQ0wJKKwcmgoqI29m7U
3+uB+h7UILmU/d2nAGml5rYIfkdyYeQMh26LKxNvi6giFvt21Dn9aKa6CusO
7GqFvgfDamk9yJ0um1VN+C4X9SgrbjC7OM1iabcJrf5M0lmcQFiRRpx3WWNd
WhJYsdCDi7wYfV2xisSKBcPwPU7Pp2lcpdn+Fyo00CqBPiMFObmZBGqB0yN7
tq2O1DTP81nNHIjzGFjLctIi88wWs0opv9ijiSWTrXV2Y+1+HdnT1GR0qF8+
QZSGp9K8jVLax1HKi6gkvBjCvsr1C3I6RBmqjJb0Ajz1iEm0tvpJE8XDrevq
PpTis+aVsqyirYgFWCcZvHYabVp3fMbk34lUvbkEb/jGiS6ZXVcgGOkNw2pR
MDHRN3N1oe2hbDJZPs00bGlYAnEGYzhpkZTpSrM7wwhmmoiNeGKiFQU92obZ
hnTQpNxR3KNQ08VWorFsKsBHEVTXd+h75PuqzhtnhXkhhnx2NzLY8pwlk1if
5PXgc8k3LxbL5RY7ra4cV4eVhMF0Xg1nDh+28rGCl0jgVmWtKfXf6VTJ2XGV
z8v4AupE53KzK6NgL/BvQ6Jrt584OnOo2VC7+Ajy8umbw1fP5UpvNnJCLgTb
zOAkliUTdus0OGKnSx2R2y3oYMb7lXpxFvdyg2TmbshSaVMzTDdbEl760exT
mKU1N7NhNwp9yFjcRPyyQwyOG/0TpyL5CYpeEeE2JWuD6UiNtCarCd2x9vXL
6w6J1usionSdF3juEF+xzNOZWbJgMfjCw2dxpA4h9reut+R4eX4N5xbwIZec
R+VxlRSVHFcf5pB0H17pPEiGFwj9iM7vf71+Ib+24Vl5/DWQv2B74K0cbtf3
5QdcEVbmo0x5tEUPg1Ip21vqcUuMuAN9Eyls9SlB9kokor+xPyIRhfb+52dY
KyIlwdTxB1FR30ezMVEBzqq8eAbnRURFkhH23we4LIjj6AD9XZCmRPo1n8hR
N0kPDzAVKG/pe5joYok6iR0sVWlZjZUvyFkYTKSL8OtnvTv7W76fK0PrfCZl
J37fF2e1cKr13W1FvFARI7W+L7qQ2Ov+ceaGNRxn16ez9PzURvqwjmvqr+pw
G+z5vuD0S+ly8jQ9Oz8d5uoyFb6hBSnw4BtPKvI5/5wvnE3BsyJnZ1adIZxF
aQBwuJ1rzyEyWTpDPHMwMwrsSXWGxfnMqm9Q+yUo9qhGR+dRFxiT0ENJTZZU
Q3qhS8roSsrnSsrmShdLWZ9k1ieZ9UlmfdJZ+sT+Stp/lUtQZ1GOk5Qp6OXe
KgB4D3NcpxCqYNRxRaEMalBiPiyEMqgrJebOolBqShld12BARhThpg7hxkfo
ZFFJZc2iyqKyypqFlUWllTWLK4vKK2sWWBaTWNYosiwms8wRGuv213pUkkK7
zmafrH7R40UOvvfp2LsxrzNxIKrsMHdenkpbZngZEr2a+jmdS7laeXcMib4r
4V/EzqDhxT/rFrFDlTvMyvkkwcjqG6P5DWP949Go07kYsZSfDzqd82GQcEoa
hoegB5ENF8W7iocJcK+asHP5vZpsOIZ38lAqv1Wn9P7jacUXBYzeuhhP+032
gXYOha9qHNzxKqvCmM1s3SD/uJhKbSLshtCKsa8ztZq0vqjuekP7RWCoJuV/
wk1XG5kj5kOS8luuJiXic86BmfeoeYWMT1gaenfX9fhwHw2jaS14cUyj+m4c
LjKZAtrK6jkvonFfDUvP8dqIkeR4XfRpD6hCV/JIkpNHLT3MDoixzibWXXpx
Wmp+Diiga4clgP4gUXycz8MX8Wg7whJQ/hxREsoC+LJmXF5dYsoiZsTirhgu
WW3LMElXu7vKfSJGi/tguKS6hNUzxpBL0/hUWKrWHSNKT2P00JYKhU8bIZ70
XL8Mr7JF3tDjY34TsV4vlwa9ZjKhB0GMzseldPwT0xgVWpTEurc+urQkw8NV
r4+hRWkJgXwttr+v4HFjzE8Xf8Mh4OwsBASUlWoeMFRkaGPBEQ3fYnDJXIyI
gOvUrjGbfW4cf3YHLuLSXltA1HWm4KQ1REFUC6AKf8xLmkXNS5phYTXeMk5x
FuYbFNjuXN0WbuGRte51/6Z/1b9oLqf22Ny2EANp3TjxU29LU+e3Jhg/ArcE
dX5rgnVn3/Pt4O7FwBEFIc23VUHb1MLzgfoetCo5sjtZOKUQwNf2oiVn026R
LuCfXXS/bnvpaziS8mfbVM0tUHNSrkzZ6/ezkRpx8pfbNBazFUtEisgsYSp+
ru4KxcB8ixYKD9iLyJkzKx0RWlVbUtAn1s3aJzhuX8ICInxTFmJH70uYUCjf
WBKxk9x5+AjE1NuitUemjpiIGteI8o9c6ZWK61KxXTK+yxU6T/RAdu6fyBpu
m5hVpP48XuvPVIsG+dIy1Klf6U6MDt12GgpqpSpatpunVmP+G/C31aegW7Vc
1Rz/Fv75Ly4UnNfRV1CcCrmBjZYnykHxEhD2XPt49hEs3lqWWKOjV63kSsXX
nVHPg0Pq0p5kOv0Bkd1xJkHbqKfImbJSktXYiTa0ZF/IHqpGOGslM9iDQuJI
GChmLvdUFluv1h8Ke1XgIz5ej4B5veR1yli9HngirevB/tHr7reKoQNiXVSZ
ibIGtB60gt7hHAh1MWKN9hMPJdzxRTJKyRK2ATZV/PR651P/ljn2+J9l55d6
61ydQ5WL2SWevsORprN/CC37UcX4U6SnFA5Hp6rj+RZ8Lrf5/5N4fc8uhXGZ
Nm/MRnh0WLQ+datw6JMnnb4BCm6lCnjj7b8g0++SGYbIW1Hsq1YhVoevZbNG
uP+BrMlV2rNFVYFz5zfot8HYcvn8Sp7ad8Vvxsft+tZqzfd13MSF8qdw8G4i
y11Nx3m77k364CuZqDFlv65gNXvi/EmkfzsyoWad4mHr/ucPR3Q79Lxc1ksy
48vG401i3Ed3SbCh3/PzzBr7MJ80P8wbl0xO7vsoX8ljwxC7HeeKPPHu0t+w
20Cx9n9aFLAnHFQM009u5qmAZ6i9ymJINPMwwBWdUi4Zx8vrTF2kJuJ/qyi6
c4pOleXt4xs20iuHWTbKhlU7ak2kztuTgX/qIPvnw2xoXv7es6lHFb0QbgCf
yYXYs8XwMq2iMWak0CdyjEm57O5CR+4IKVx6r7vjRQzUzg4RnFLhhHkCQpc6
ZGRfGxlSnLsNWfIbWN04Jc9kiuNAhaUhHEcXGzPwvgJoWcAMMLxISAw4ymff
I4ch4IDh7kiuQYBwd2bjv4UyGJmXNdxaYQXwhFy1CA1PVY6NDGGR/DbiCEEQ
1ct+u8qsdXYdEYz6M1ktCP97CY/yUrVc2nIYphgQNowgKfFIxDzICKGh9od8
XuenMF5WqDKD1zWmBeW3qK5wakt03ZqKxoo6/HgVPZpVK1TTQHfFJIeQut+w
dkhQrFIvwvBr9K4qVqiRge7S3sg3bTCiuEqVFA+6SjYyC+pPViPLYqAjw+Dc
TDstpkf4IqrSUAhboiN5xwP9BK6NdSpUyj6/PC1VMGVvHsd43wGK2YjJrNt8
DV2crbp+v43RbEEMTzipt96axrwqurZtmogQFR6zR/535IXxMaXxxKsigxv/
HqB2IvdnB3TTlt0K7ZrPgkT/V+ANVRH+kqMV/8o+Lv+CZzKVin1JOQHj3pem
c6lfcxhq63NoYmRrLNXW1B9tXGLK7TlFoFkd8cViuNaVkELBx7uUnDWiUsf3
HOxNEU6ndRdqoLGs5zSgLu0wHm6YXyWXTdJYghiv/hIkp75LYN0KurfQTNh+
k0LP09jQz9ah9CIpL2T3O45XlF+v0aBPw6p5QT/gLkxZMT857xmTZcMz1lz2
yluMSGzsxqjw4cwtET63bHyCoFxGOX8yMTDx0yhwmyTlDwsbOR8NWOpQkiy9
10YgYO6lTTPmN7xjokzzkrUaoMHG++XpMJ9O1UOH3kzofZpe4xiNG4pMTXfW
M0N8kOi1nm9nCUM20tnrRpxDzNo+whIzg6AVCWtsMBJsbLQhYq9lqTjfSh33
1Ws5/JEE1zvYW1RFLAadqZZSEXQvyL2DVaPtG6F0ah107YQQIP7hFWMml1Aj
5fi6ZAPEOQR1ZFt8Ti9VW6VkpylNFAmxgtdQEFKZdKSJ3MAy0HMcekczitXE
gfToMpRkN3KAamqhJdftdWu1s4a5e7cFzD5d+gnNCxK94nGE3aReZRHUcFG8
sVd4MnN9RqYfwdV86p/6JC/gyW3s3V1ssaiPJZUjftK/Np+YLQBpIG85B4ZK
xUSIB01dV0q36yizjZ7K6mG5ZNnv6pJ2d2eLieMNzLVSnA3djZZxwXRfDRNO
3XEij5d4VOumzcsz6rFNaaTu4sVR715WnFGljcXpXbU2+1w65KXsXnOI4/WY
9B5Mlk+EfVwKULzVFVYjusZHMxesGDBo9rd/0HayHA3H6azM8M4knhvq4GRz
eK6tVFc5cdVItjIQ6Btj3SHQ11h2/8YWrpWmSXlMFVof0SMARH2kUf9gqLRR
pc0z4ZPWhKyCri2qt8b3vLo+xHqP2NjdtbRGPb7oBFW3mLEwdoycxlUQLhot
VkUDGkFoLAoDn5XPp/MqtjPkFSb25czsPQVA71kF+zr0CfWVKlL09MsgmiBb
yV72u6DjeqP+tnO5EgYCBgH9JrQHXp1pKeKRxjufXtWdJdOloUKlg7Uf0mBt
T2CmwdnywycFb3QFpJReiFCUOgFpbvTw/snmk2jtt/pbXjG6y/39H39aYawF
1WhymscbYbqp2RpoRjK0LYB5Mw8lXMlwJJ4b30gSo3SS6qdt9e42kMjGoguZ
p/QgooIzwsD9brQmW6pOY7t5KlSn16pSY9w1aZpd3+DsaoO0F1Nz1mAkA+Rz
g9YhALPdL7HhnSFH7UQVSAOe0SBsDGn7VJlENYPHzpvWoFV0dJ9WBBkbS2mh
IeXwQ8YavBZ4azp8XCla0T3ORosnPmzBuG0rJ8cgjlIDM3hVamg6x6mRwSz+
2VuF3H73n729L/YZ8PqLqd6x3/KHjXSM0rzti2pNxGTNVjvba9YO0n5sY1Yp
MG5UMTsGrSS1kQna1xhEGs24JdP3MmNIo/U6UVvIoxJYQn4pvh3k5P9fYAWF
RpA+92ljocBeSgvb5/Yk60weoujYKZ6xg3Sipk4EF0e4Z+LECJCBownc1tig
KjbbNd++jP9TrZn2xkwrbbWqJeOh1eoJsdvGhvGpmanr/0oTRvNxCxOGGTDi
lnTo9DhivCyzXo5mATf/fWyXtqaI2nvRr42YPP3GN9+ptrn+E9//jZ/3tkJh
7wSL2CPfAl755gcKf3Dknn/4peoRLsY9quFLQXLIJKPwjG6cTVJgwbzbFUDQ
oyh5cSO5dDZK61FKOecML06lLs+mcDZVroC6GI+zax/eDXB2nHxKMULDZ/H8
U1rcyDkSTnwAYT5PR+asnBxjE7uNEqm2JQZRG2S5lqJzMCnc58xVJL9wa6kf
/QrORBE/tsfjt6M9nYaMKpFlrtDwNC5+W6Tpv5x3ZsRixlK9w4FgvNc9Sc17
uaqnTWJHSDwxPD/yUay6qr8WE11qGZe3tCxlxutklpyn1l3xmN7PDZQa8xuz
VPfW0muIcAPss2Sx8Zv8wtj+vpOkB/j/lKHdL7JioSuB60lxPjSXtuTHJ+t8
4wCrwE6y+82Zl4LShX84sI5fAvyAMtyHbtQRIJXYdZ9GsqKRnWS9Q0n45PYe
zzdnf/Z9bUJRoUCNikL3YqWj3kCkpwmmlH1xsCirfEpfOt6gom6RhvpXLESo
UAwY8K4jtt1dSyfC1PE8HbpMQSBlxtX+dl/IsXNDHwOPR3M0ONTElrKIQI6L
lZb2waIoc+jNUg0WRTZKKaFO6EDxrQtp3LmJkr4NoVan7oPIATn1iMzboHAO
jo5BCH6RlD9P8rNk8jpflKlUIMNLPIGsZzYGzl3NA4G8S+Tqp0qJwJw+7NM5
6Iu+wY2FWKHvPDT1bWRDUV2fTiZEr1R3Rtg0siGMdrG++oxLjBxF5Y35U2Et
GYw8L/Y1rPmcRR9KM48rImFkZWMqJ1P69twAtIYxXRlfKjXA4cNzAcI8n2Tw
cpgD6XBKGei/s5GYCnudyYGq8vmr9FPaDIqlb4zS8lKCN4EkGLrsXT5fzLUM
lgFLjZJM4sAQ5uYsT4oRzkzqt31K1godqI0hfIgRPPfo8ACp2I/6wa6YvtZc
btBFjafBpXOynC6yySiqDGIE9LjRkcZjJNy5RqTXVg/avi7n06G0RaRFObPt
VZdNFyeT6yqbuu/Qcdi3sxTBNTHGAdyaOZ3kttUtcnqdVU6WRYNU7FVuSwTD
FkgQi9IuGcqpZT9QC1ZRlulsRGzaxY9cQ6SyMYu++AWzxEb6KbWuu0GB87ys
vpYG8PFO0klHWsYRUlAnJHOKq+nWtLza22mPrPol5QbWjH7wXMzyKhvfMBRb
2waJm5DO3si0IBCTWkIc5lezGO9KncMLlX+rn9JuZsO/1WOfpencWSEZlX+Y
jpPFhN4s7bL3S63LoU0ipBHHCKNxC+rGkoXJxFlss9XERjiMqG2WIjiuZewl
OWelVQ5zcPNz0tCbNqaosHuoJwPRYHyZnV9MIOZA4xuQCptnrsObLDESsQ7Z
QdnjZHAsjQBZp/LpVQJPUXC/RNZXRGcUA6+jTSbTCzklX5xIveVE1bcGo4A4
qg5cLa8Y2lbOJsPLI1BonyDOeg3NUQS2t6fWZNGhdb29jSPpRTbBUKR/Y+OK
IxgbVyJI+inYEWWJwXC0jdNXyBtqephLo0SO69N8NrmxSlY4/yS1d0zl6/LN
KwKGcftwnMhKtZp9T7bqyJsx1VKuJKAjL9uxS8ANONM359w18roop1FbBjZP
jukxwxoU5nwodr3RJptbBfs7gID4o3BmSs7yRXWS/7KgZw3Ukjkg9NvCe/bA
aDQyFqGIMtzJsMpPTZ9wkU/Jnvd/rlHM2wzkLq3WqHHI07lU59MRPstUN2Of
agAKsAur0nllw60IZ/Vr5+VkPj8FWGflCktXSv+051UQJHQ6y6/8+R3Th8az
01nmAkGgV9LGiDu+LBvDcq592r1lCqHLZUpohAtN3IZ2DxZ9SBw/6guv1LKp
ZlLLylOAKhaz2VIgNQHWAAGEsZPi/EDO6QSMpRoTEhYUp2RH1kCg6dsMQkbv
KT1TW8NsfpbenCpFfVoqTV2zTEcBn45B9Z6CbRkHm8Ia9ZRUqpSU1KkM+BdY
gDxmM+UTqTPtiUGpdZGjIDa0Ujqd6o04gnI01mk2YjucsqV0ulqbjzx737oY
6U74xPRC+HKlwMGhVz5xumXZsCSb24VR6Y21bIarpprXmI1iQiC2AkSKgR6R
JsSsHaS0C9MTbazbtXY1ufLNQnVpx7NCu6EZ6V4o+Mh6pZvz/KQhD2ji/BVs
DztbedpFjG2R2g1iJzXcIQ6QaIuYh+l19r9o6y/ms2zVKvPxJk0ckPjUSOKT
56kO24YeG2oD0UXnGpcRUErR48LfFgs50frTj6PskKnbuArJaXUrnniu+Lpv
uoSdHZSIrByFuJRaZF/AJedqz6X0YtsHXpVdXbuUYt0ewZxvEvgxyCySG+FN
AS9pu4i28QLZM00l7uy77RYjWGdRumSjqjhyN8Pt8b4Z6tLkOv8LnvAMfmh7
xLPTVKeVNhzWrLsNHOZsPtErbouhtxXEF+13B0fnLWKBaO6HsJfQ4IpnkkLU
s0wWAehlG3zHJzA7+/58ONyEv9mDRw83ZZtdJJX8ni2uvx/c+/HBvYEppqxG
coltgtAZqpLcj19Hb0eTEpzqw6/kcsclWCMQjOgDddj5NsUpiTx69A1EoplE
Bgc/fAMGJZlHO9+qntDHf/gW1azxPKWQiQ1dfaCYgQRJEI6os/OZXFbiBH16
ujiFH3thfnmRFxUC4K8IBChpyM9msVz0JYJs+CENi9NTOPudoao6FXFw/I8m
+9siGZ1KynFEH15D/0Xcf9QoECkOTcOVhKTz6DRWEy0pH8ARFHEh/7v9MEqE
Qy0CMEei8r87gygRi04ANbKpEan878P79RKtbwqDaDjS8hYb8lcyGhVerm49
+XOUfjqt8GyfZ2vKo9q882ie6lXZLK9FBI+T2ky6jVztCZ7N6pqPxwGuqcok
zCWsueI1yCjB69PPYsUVk2xaXx7kouDjdbGF2n5UFYthJa2Dz2az7PT0UzL5
++AfsCj4Ir/GpcbDJYXH8Eg1psMw2fKnp0Pd0pGawLq2Jqu8Optcqlr8/2IA
cmUHK+O9qJ5icOORXPWWl3t8IhR1dddzl/xnMPFXeQoK4e/bW4P7Qnwvuo9g
11k2Uz4WXQPZ64l/0Cn/F0IvU1yPudK6TG/q2Ha0wnyouoieFyJCkDIawnHJ
XqwnUKYahNERMS5jBNg41ADNRMbZpJkIATQRkWMzkk1jh0ZYkK260GkpzdXE
6WGe6qtOFxYmICD/O68KI2Y1P/5QZ0XS1Kg8kr47+E58ZvZVzIiU9nCWLA0+
J/jPGks0Tok5Z4VFDrixZnm8v9VcPfwHfiq4aDg9Ol7M5ykEC+x24aBfPBaP
8K7xtnj8WGBSD349gqsibuqTJzK1J/r4lpskNMmvNKHtkNB2lNB2jFAymV8k
RGgQEhpECQ1ihEbZeVYRoZ2Q0E6U0E6M0DWjdD+kdD9K6X6MUjlPhikRehAS
ehAl9CBGaF5AH0dCD0NCD6OEHsYInRfJ/III/RAS+iFK6IcYobNJMrskQo9C
Qo+ihB7FCEl9UkyI0I8hoR+jhH6MymgxGyoZbUf69na8c29He3cyAd8uohXr
3jX9m3dwSerLnjdmlbaRcx5udUSmC5hnYQifnu1JAh68MQ4tWJXjQNwT7YBx
+O8JR0lZvvB0LSup8kLABbSeENVFkV8JvFewF0DC2G0DSa3cBpIGXxtIUkFt
IKnXt4GkgdYKErtbG0jSAm0gSTu3gbxuEpNuWYai+gnBQx9xcPYCaMVJHTR1
HIYh+wIcCzTRdwtYAh4UIE4NU0vFc2pq2yAe758ZPXYHfE2TsUwaOjifqh0v
mSOe7IvN7cEjsb6On4/F4MFDqTG8Yfp3+f0PqTHkH9ytixdK1fwWhSIlv1Dc
fHlYZzfsuGIBC2qnCfYLbefsDBr28uLGkljlE74dxw307IJNxmdJ8aJIpmmn
sy8GoDRrwV6+TorzbLYU7lcDt10PB9ft2pQLcLbgB82AtuT7ex3RtCuH//3l
tRS0ZHh3V//iJ16RizF4L6aHq6Jd8Quy3zU3aOjqBjwFTw55ap85KxVt9fwD
HS8lCzmEh8MU43+rA3K40gI++zapAE+a4wzvgGztKR+MaZnKItE5yADSaYGc
Tyo6PmBU4S4jsQhxiNekWDr0uflE+So5/idwtxOPswDQCANO9PaF6+0J7gUd
JA+5d/ZNKXSPRiY2lwBAKvCF6yMLhoPnKKuX4+dwa8dxgofUC1ZVgNgXyv2C
XAqw2mC0DcRdSd2+BXU36DkyabDhDAvFp0gnZarpuANHk7E93y2GxNGmLJti
RocjJrqZo99cokMMujRrXo25sAevV1k1vCCJoAQgIJAjmN01fW0Ai9J3B/Bj
d/dNTjxBKyswz2mcAhCp7LMiTS73VCmvoQ4tysBHBsTv5vt9kpUU61xjmSc7
up7Q/XKVb96uk0qyU6SeuQ/mCnVWT88/mOd0pGKgJ42MbsDudnCRzM7NzYp1
kbMzNSNp1THvnS8yqmjv/0le+c//nOZTOZxvjP+1KtcRbm7OHgMF/YfR0OYp
KLqUbRQp0wFKk/Zgy6yj4P7+D5Vs32v22pkYpcvg6N6HBSE3Zh7xUGCiPpCa
ChxqqRKjLntodTF/CpypOJi66mfJ6FgOWj0d2Fffiffy16zMznjnmQwX4OoJ
L0EgkU6R4rPmXaNEvzSziN5yPn+MyJc42tGs1G4gdN4r04wniL47Bl+bT0j1
I8A+Knj7ar2cP2f4hgWC9sV3g+++w0lK8jR6n9JNTjQzvxP6CuZ32999Vy7O
nmowla21XozkhXY8XUb0pQVkZL9EJXCYTm4lATX3qqyRXL5pjhtrj5KzL+0s
E0MN+QZJ1BTQViRjGLN+P4qOgT132Mh/dEJuSKXcIjDn4zn+DU/HP9vxQSAw
x5PE5TCR5jsCbj4Bw5qCDRAFqddwgqSR9At9aNqwPeEm9VJyHML3QsDgSTef
UNQT/SybzIMrVFqZwVyMfhPwQiBO9y/ygpTmFb7P11GrDTQJnbkcK6MmDDCe
HIvl999ln71jVMFJfvLqowSjZJKAtK2UX8oJVZoyu/WiQF1EYPJfLRiEV5Rm
RdkK8r3UbjDt9MDqc+vKvIaxrkv4ohYyV5PGuHlkvntU6d7mE8chRwr4F8mF
9iG7pDa1KT1hWhRYGONLHIKqhSmXsoUvMVKDZEjinT6dVLLiYTpcKSUeiVRg
cEukBOMdTGFZuaVg1USgGlcSJ9NDXSGjp3QEgUGRMJHNSa9TohIprRs6HWuG
Ym7E6t/eU3mqwrJnqRGD0W/GzSa5LIGEowpCIt1AGDDci3wSFdTxRTauYExC
cd1lYlJzXGeZjIipNWRPNSb4ycDQJ38Z109rf19VCRc8gRy/8IHIuqjpcHX9
DQgrceLo6OqxaHQRxDkBrlqR0tWP9ygQoWg7AA1wt+sMAMTtRTu5DnfQAgF6
f89KM9LvaNDrsRVpTopgumUakylzJj7opDqRvEXj/RRNSKMsaHUaVReRJasp
Hd1UaTCx/+G6tansztKVre6tkZ7Hx1U7Fdy6D6hBB9B3VukFt+4GX9+ES4e9
GancZY/6GtnNdq0QLNu44UR7rHbJJkTC8vSqo44Ot49CShdObiMtXKjUc4UC
ldP+c3rzC4RJtVRTq1o6ATnUoBvTDLZKpATVqmVknjcASjJXaqJpBqYCIwnN
JwX/lNQwMDFKr9+OCd3sXsHUGti8+0gNf9vdH2UO617hCQSLx3L50FOmq7fY
oQGo8i6yEfmr05pHJ+tlC+OTTViflbw6Pjb4tMsavzOsa3qwPoawUiALbJm0
y+cbl2yrPsvkD+bj+QzugGFLAmM8ESZ86gumTKdjOrL7Ytd62rCO9a7DtJRz
8w0z0N2tRjtsPItc2rO4y6B9Vv3Gl1a5zQfzWdNXDsfzHPbmpsn8RZFPybXb
tLNMPcl1Wgo9qMQW5731Di5UevdsRBmg2FOr+NCOxrFDDx/An6eybTUO3wpA
CNjnx1k5jalQrBZtAzG121kGa9Qu7S+6He48z0dnN2m3bg1AA9nKM01RMFRg
H6rRh+8zepu0hx8lXnozUkupodZTc0HYmWsii3rZxFrFuw0s29bqftuyqoRU
b8p45Ewd7Y5Hs6Er1J2eZ9WheSg1StkdrVw7auPxMZgSrl6sL14j6b2nqF6D
N1DkgKy6CrrHFJ3tpAQvrdg7RoUx1WoZooLwGU9RqC5KT3mGzNjRU9w7y2WD
T1+lY9qfptzuFoS6NL0eHRC0+pLL05e4jWP2m/XmgBqOZuDJFEakBCKux7qJ
0CCVr0NLqewS7ghIpmT5TwAf+31YjqwFWl1YBej/gAk7f2ITVmcHb9++P+zN
L5zVsODlhFODJ1eAC7dd7mij/7NZJARAajM+SJcqim/3YD6xriaJCW7Ji3hP
kYDOfplGZxXUJdJuktJSdWYC1yVayepJH66CHYHm624QJ2bsn8uctHDNA3U6
dJFNUrA4p9l+Vt0zkQ6V6rp7NzNLZDa/64MclkSzsrPvWGM0XcD1lmU7oexs
yiyLsK3pUMPN2XxiDzn0AY7eDwy2SFFkhKmZUWKCfe5ur3YTmOqnha4p8Fq3
0XLuZFArJTjk0nvfTugZ2KlQPHi7xQ1b6uH2cWzz2KkXZ2AsOKt66w4vshmG
PXI6PMgptoxl2YbNgWUZg3jMAvcguwoKu6F72Kn64x1d/x4zwdQ8Z4Cc/X4A
CPf8de+msWsDl9rFDNGgor1CpCFosmfpFen1vxtqOsbpP+DMudP9rTodXqTD
y9M56G655unas93e/v5WP37Q33/w6Ac5IkGXGHntC7PvyMyGtoelQIeGCjsO
huC6E2ScmYM6J368CpEP60481dG8Bb5pAP7VB85cxvjB9ub2kkNdkDVwBgUO
XD2XyY6GG9l+C8EaA461vRUUU+lZT2//QgSyi/0tRzHiK9N6raI725VeFqlc
o6hUR7oI8u3s6mwI3AGoCt//vZeVbxaTiWVZFzSeqq1oC9tTS/hNyJxmM5h5
n6UJvUTk5b2Hgv1M59TZNKjhvfnE3KsDrTaPdUO6FeDtm6lxZSoeYLGVFLW/
PdsEW74OqXMl7u5HztHlmrAmg4aWLe1aVvOKdVvqxptMjz2hTT49kJ6Y/V4+
tORnq5HT6dwAYxfxPH9MBNxKZMT1fQme8PEPTe2ogxos1ihaNXP1+PfsH/fk
/EeG7HUfYlldKZ8DWVdZiSv5Q8ng7l0YOvBfq7oCnU+nIKaKT9TuqT4XcRvd
9gn0+fmUPkNlY1plU1xr3c2mEp2GyqErNjczsF5NkWpP31SP6HYVfb5jybYD
wlLUkN/EI7KPZvxrYTLZSzPV2i96qiGDx1Sl77SdpGOtgGAVaa41a4Q9fhzs
zt/eGZUzfbu3Y5lB7k3fgk9P2k9JxX7u6qJMjHjfYmDWAuOTFkqWT7tawlkC
NqiMdRE3afQNYZpnfzL9FVDBeQ9LkOuoLQpRz0TkSohtJXjXqcFkb2RB7d4p
W8Qs+81E5s53beYqx7yBzhnsjeiuuGxG4x0lUJs/geW6qzWyXA1EupesRcdu
HTl+db7pn1aWuDA/ZYXTmZGg48MGObwzGFIWmZO3jMdu91vCP4mjmWMy7Io3
6ae0YEXFVgCjIrnS59mwS5KgESc27Ik/xbz6ucgXc6FCt/z84YjK4BYU8wOy
4TpEqgNdSBZV/5ZWhsgex3qBTL97V52N1jex7ERmNzZqRPz+e2C/qH6DAw/n
Y93JVG9JldXC9jf43iZODJ1z2IhQoT1792YYvtXAgaoMYEZZaal1gineOwU3
klQ+Ri+YdgV3XVLecPyXTSakMIp+yNC9s2KBkS9tw+3uar8vOtOhgQYsmP0Z
c8z6yzNAF2fRyjbS1oexFPR7MbtMYd/rTuRUVD1Y2+Xrb7V5b9bebG1nKAPf
RBjPd2lDG/l9K6enbNaVKWfsk20qbfe3LZ3fDmW3P75IRimJcW4eVxfFvQnu
5fRpY4d+mLV4YYxDi3HeV5Xti230iF0/Ew7HWhYk405hjQpd2N2BKU7+1JRN
uZsDXvLmgMi3qf5mtPpfgqNv9BOIdgsRiAyd6UBmsvdFuog6U7Hy8TygMQOS
11fsXsg+cqt54kOhMHRXJyunf8fSVDEAz0CxyB58fo82pk9Qz+jDPD1WpVjo
ZAkEskrnQdmIp5PsfHaAsUN/P77Ir94V6Ti7/v0Q9iom2fz3Y7l2maTgnsiQ
ZJdL+46Soy/ShLA3A70Q2Ufn5i++VcpnpH1/5pAjsc6vmLrcu3QmVdi9id2X
ggyQxCuMs7ZlN62AE92Lt3myxrLkRklxuYzaIE5tYD2sv9RMdLgVjwce+kQg
fr5D+t6eRYAFi2tM6i7oeeBl0zJTdSd3l54fAPj+j9ETHXtcFD/W0eeZzYdy
nIUv+jQ5tmPqGU+0veuWe4dpA70NUHvm2XDiEDtgoNyGY9uaambqSIEdyYbH
q8LZ/fZOrFhO5Iw1chAawQ9OWdUwM8umFhVwybbowuoc7j+rE3NvhNv0Yr3m
veN3O7f90V/H8TDzcOyx1QrdRo0OryndwWLY1aXTuJPWWTgaRHAkZ90M5H+Z
d0FAVXvNUQezYzIclOzY5XYuCpB25yIpvdBjaNI2uwX8V/YHiI2N19r9pnlg
sP0Wf967Y/s6rUiXdu9gpcLPbH+S/9utacyohrWObbKz48ErN5G9b9dG9jYR
M97L4j6H5KRmVFEnXGiZrGVuLmxT1B+1eosAuVArMLPKV8D/MHaTn04ntPfJ
9vEztWXlp2u74O4jtty5U9gNBd2ANAha92vmkNrWhZOmXtIRridmcMDvdT//
FPh25oKrob6JEaCVVoO681VsU/cJDmJj5kB8wnVVgqcR5DRptYH2mfY0QcQL
NeLX3LQXwfwbdE3Q9WaVcdtOs9rpSd8m4jU0Xisx5XipPCy1NGLeL03+Jp4j
nhLDVo1/id0AHF0TGM2O+t6Y8aHuCb3BKAcVeFyCibK71kE03P1X16tcKLRU
NFgt1If5rpsAYfd39R58zQxgVGhjOxvbMZh+Wxq2nfgF1tCPr3l6jrj51fkL
4l5nVE7Py2Eyh+tzSzWac9fN9hnZDKQSlOea0jB6A1gJTp0zDplY9aYf5YBx
OZS/9U7xbHOTzWig9cRdWRYXMu5UDFGFZ+wo2x7PZbojY/5QbAp9pFSzp4hT
r/MH6YigGXEHouZYTmbpy4L6QCTzFKgZ8VaB9r0mozkr6CjUf6L9JOiNnTZd
0XTm+m4WU73B7YwmFW82m7wlEtWR+frB3SaznztJZ+cwve/vq2XvLwdwLX1I
N5UI6O9b/7iHYQsw9Hyn0W+oE539VPeTclbKqmP9h2LuQ8C+ciFC7aeDaYP0
NVdOE5b3PP+Ljh4a5T16RPLf1v/N2ZalmQceJXY2Ef+e3d02tVVdn3YUqTfj
nqDuecE+nz5LHF3jUeUXO13x/li3XAXpmBP+mpX0rbXhqlrOM8WW2qbLVw+F
vRfXFe4tOXsOgqbrGE4P8NjzPb3Hxw7DxoXjyLBmrV2Zg3GH5V+6QBfz7ero
y8tqb9iLGoBlGP8g166LuU21c5Cq9692neYr0FAUYRle4XTNBnfLOOK+qDQx
uw71WBtXwqp/cB2ySvIJKN5MCDixczJ2dQa6D5llOp7oOQ5S2vpWU6JaJcz+
0dd12AuUkWQh22Q8wEjE8nnqrth0EuR0IOu/7dQnd6a+lZnM5ECfZfDoh0rI
/wG3FWJ836JMe0/MLTXnoqnhi0NEnPRj3chXKuz5vX7kyJs2r9TrfOZYuGYq
BISai4FWczZZezDqPqCPhtFLbCbGMQkX2br6y4d1ghOQnRVcN/E2gmzDxRch
7kK+YbfCvWLXpjoOBqnclWpXI27lNri04rqnhH3Ed5ltDHvghZP5j3IZdub6
jE32NRM9Tbg01/+C1UPv3KIaLvDBdFG61l7Gr9zesZW0hhqvOLpmIlV+Ww+g
oj6ZFrXRLXN7+/42KVa3QOwrR+ezvEg/XiRVeSJLZN0Dgc29fIPlxT+wIQqU
zQg38r1bYvZGfjPRkb35E6V4yPONFdphFaK3o435HbcbIn7i5uqXsgDN+ndj
iR0U88/vBIl1zvmOoc4d9PWSJuaTz7HU055ej7HmS/yKh2aQFLLCZicldmCL
4JLVEJ+0tf0l6sNi7++EigHV1duFeYYQlZVvmNUo0eUr2i9r/3/DHamVzKMD
AA==

------------=_1583533099-4114-219--
>From rene@cs.ust.hk Sun Mar 19 04:03:00 2000
From: Rene van Oostrum <rene@cs.ust.hk>
To: gcc-bugs@gcc.gnu.org
Subject: Internal compiler error 373
Date: Sun, 19 Mar 2000 04:03:00 -0000
Message-id: <14548.49694.205069.283459@pig.cs.ust.hk>
X-SW-Source: 2000-03/msg00808.html
Content-length: 1776

[rene@pig] g++ -v --save-temps bomb.cpp
Reading specs from /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) bomb.cpp bomb.ii
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../sparc-sun-solaris2.6/include
 /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/GNU/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cc1plus bomb.ii -quiet -dumpbase bomb.cc -version -o bomb.s
GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.6) compiled by GNU C version 2.95.2 19991024 (release).
bomb.cpp: In function `void explode()':
bomb.cpp:12: Internal compiler error 373.
bomb.cpp:12: Please submit a full bug report.
bomb.cpp:12: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

[rene@pig] cat bomb.ii
# 1 "bomb.cpp"
template<class T>
void detonate(T TNT) {
  TNT();
}

namespace bomb {
  template <class T> 
  void kaboom(T) { return; }
}

void explode() {
  detonate(bomb::kaboom<short>);
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2000-03-09 12:20 claviola
@ 2000-03-10  0:38 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-03-10  0:38 UTC (permalink / raw)
  To: claviola; +Cc: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3315 bytes --]

> io/obs/obsinput.cpp: In method `bool ObsInput::CanHandle(const char *, char *)':io/obs/obsinput.cpp:123: Internal compiler error.
> io/obs/obsinput.cpp:123: Please submit a full bug report.
> io/obs/obsinput.cpp:123: See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
> make[1]: *** [io/obs/obsinput.o] Error 1

> I am not sure whatever should I mail you, but I run gcc 2.95.2, at
> an i386-linux machine. If you want further explanation, just mail me
> back.

Please start by reading above URL; it tells you what to send.

Martin
>From peter.kelb@mchp.siemens.de Fri Mar 10 01:39:00 2000
From: Peter Kelb <peter.kelb@mchp.siemens.de>
To: gcc-bugs@gcc.gnu.org
Subject: strange warning 'control reaches end of non-void function'
Date: Fri, 10 Mar 2000 01:39:00 -0000
Message-id: <38C8C41C.6FF85F60@mchp.siemens.de>
X-SW-Source: 2000-03/msg00416.html
Content-length: 1013

Hi,
I get a strange warning in the following case:
gcc version: 2.95.1
system type: PC pentium III, Linux Suse 6.2
gcc call: g++ -O -Wall t1.C
Can you help. Regards, Peter Kelb
-- 
Dr. Peter Kelb                  phone:   (+49) 89 636 45890
Siemens AG, ZT SE 4             fax:     (+49) 89 636 42284
Otto-Hahn-Ring 6                e-mail:  Peter.Kelb@mchp.siemens.de
D-81739 Muenchen, Germany

-------------------------------------------------------------------

"As an adolescent I aspired to lasting fame, I craved factual
certainty, and I thirsted for a meaningful vision of human life
-- so I became a scientist.  This is like becoming an archbishop
so you can meet girls."
                        -- Matt Cartmill
 
#include <vector>
#include <iostream>

struct A {

	A() {cout << "juhu\n";}
	int m_i;
};

A* create() {
	vector<A> arNewArgs;
	return new A();
}

int
main() {
	A* pA = 0;
	pA = create();
	cout << pA << "\n";
}
>From martin@loewis.home.cs.tu-berlin.de Fri Mar 10 02:43:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: peter.kelb@mchp.siemens.de
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: strange warning 'control reaches end of non-void function'
Date: Fri, 10 Mar 2000 02:43:00 -0000
Message-id: <200003101040.LAA00658@loewis.home.cs.tu-berlin.de>
References: <38C8C41C.6FF85F60@mchp.siemens.de>
X-SW-Source: 2000-03/msg00417.html
Content-length: 786

> I get a strange warning in the following case:

Thanks for your bug report. This is a known problem, and already
recorded in

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=58&database=gcc
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=22&database=gcc

whose priority I just increased.

> Can you help.

If you want to avoid the warning, you have to rephrase it as

A* create() {
	vector<A> arNewArgs;
	A* a = new A();
	return a;
}

If you are worried about the compiler generating bad code: it is
not. The warning comes from the implicit delete that occurs when the
constructor of A throws an exception.

If that is not the kind of help you were looking for, and if you were
not expecting an immediate bugfix, either, please let us know what
help you need.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-03-09 12:20 claviola
  2000-03-10  0:38 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: claviola @ 2000-03-09 12:20 UTC (permalink / raw)
  To: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 43663 bytes --]

Well, I was compiling the latest version of FreeAmp (found on www.freeamp.org), when I came across the following problem:

io/obs/obsinput.cpp: In method `bool ObsInput::CanHandle(const char *, char *)':io/obs/obsinput.cpp:123: Internal compiler error.
io/obs/obsinput.cpp:123: Please submit a full bug report.
io/obs/obsinput.cpp:123: See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
make[1]: *** [io/obs/obsinput.o] Error 1

I am not sure whatever should I mail you, but I run gcc 2.95.2, at an i386-linux machine. If you want further explanation, just mail me back.

--
Carlos Laviola
>From toon@moene.indiv.nluug.nl Thu Mar 09 13:28:00 2000
From: Toon Moene <toon@moene.indiv.nluug.nl>
To: Horatiu Palivan <Horatiu.Palivan@unibas.ch>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: g77 optimization -O3 bug.
Date: Thu, 09 Mar 2000 13:28:00 -0000
Message-id: <38C8172D.79914D47@moene.indiv.nluug.nl>
References: <38C76301.8453D978@ubaclu.unibas.ch>
X-SW-Source: 2000-03/msg00398.html
Content-length: 1262

Horatiu Palivan wrote:

> I believe I found a "little" bug (it took me 2 weeks to localize it in a
> huge programm) for the optimization -O3 option of the g77 compiler.
> Maybe you will tell that it is not a bug (because without optimization,
> or with the option -fno-automatic it work well), but I can tell you that
> IT IS a bug. The code compiled with 4 others compilers (at maximum
> optimization) worked well (included the old good f2c !!!). The code was
> run on Linux (PPC version), I will send you the routine with problems,
> in an attached file.

I get the output you call "CORRECT" (BTW, I do not see anything wrong
with the code, so the fact that compiling with -fno-automatic gets it
"right" is just fortuitous) using gcc/g77-2.95.2 on Intel (I do not have
a PPC machine):

> * CORRECT OUTPUT:
> *K=  4    2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
> *K=  6    1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
> *K=  8    3  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

It might be wise to upgrade ...

Hope this helps,

-- 
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://gcc.gnu.org/onlinedocs/g77_news.html
>From m.j.s.vandoesburg@planet.nl Thu Mar 09 13:30:00 2000
From: Mark van Doesburg <m.j.s.vandoesburg@planet.nl>
To: gcc-bugs@gcc.gnu.org
Subject: 2.95.2 internal compiler error
Date: Thu, 09 Mar 2000 13:30:00 -0000
Message-id: <200003091537.QAA24506@flipje.test>
X-SW-Source: 2000-03/msg00399.html
Content-length: 15614

I'm getting an internal compiler error with the attached program.

Faillure when: gcc ReadyBuffer.ii
Okay when: gcc -O ReadyBuffer.ii

greetings,

Mark.


System: 
-------
i686, linux-2.2.14, glibc-2.1.2

Compiler:
---------
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)


Error:
------
ReadyBuffer.cpp: In method `int ReadyBuffer::CountRays(coord<fract,3>, coord<fract,3>, coord<fract,3>, coord<fract,3>)':
ReadyBuffer.cpp:130: Internal compiler error in `instantiate_virtual_regs_1', at function.c:3863
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

begin 644 ReadyBuffer.ii.bz2
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
)DBG"A("#;I.H
`
end
>From David.Billinghurst@riotinto.com.au Thu Mar 09 13:37:00 2000
From: "Billinghurst, David (CRTS)" <David.Billinghurst@riotinto.com.au>
To: egcs-bugs@egcs.cygnus.com
Subject: RE: Testcase for Irix6 chill bootstrap failures -gdwarf-2 related
Date: Thu, 09 Mar 2000 13:37:00 -0000
Message-id: <A9E96A79C068D211A6A90000C07BDF0D4D4BFC@crtsmail.crts.techaust.riotinto.com.au>
X-SW-Source: 2000-03/msg00400.html
Content-length: 1263

Can confirm this test case for irix6.5 with 20000306

OK for
gcc -c ch.c
gcc -c -O1 ch.c
gcc -c -O2 ch.c
gcc -c -O3 ch.c
gcc -c -g -O0 ch.c

fails with "gcc: Internal compiler error: program cc1 got fatal signal 11"
gcc -c -g -O1 ch.c
gcc -c -g -O2 ch.c
gcc -c -g -O3 ch.c


> -----Original Message-----
> From:	Kaveh R. Ghazi [SMTP:ghazi@caip.rutgers.edu]
> Sent:	Friday, 10 March 2000 5:27
> To:	egcs-bugs@egcs.cygnus.com
> Cc:	jason@cygnus.com
> Subject:	Testcase for Irix6 chill bootstrap failures -gdwarf-2
> related
> 
> Regarding the mips bootstrap failures in the chill directory, I've
> reduced the following testcase from gcc/ch/hash.c which is a gperf
> generated file.
> 
> Compiling it on mips-sgi-irix6.2 with "-g -O2" or on i686-pc-linux-gnu
> with "-g -O2 -gdwarf-2" causes a SEGV.  It also happens at -O1, and I
> think the __inline keyword is necessary.
> 
> (This should probably be in the testsuite.)
> 
> 		--Kaveh
> 
> 
> __inline
> struct resword *
> in_word_set (str, len)
>      register const char *str;
>      register unsigned int len;
> {
>   enum
>     {
>       TOTAL_KEYWORDS = 300,
>       MIN_WORD_LENGTH = 2,
>       MAX_WORD_LENGTH = 30,
>       MIN_HASH_VALUE = 7,
>       MAX_HASH_VALUE = 2821
>     };
>  
>   return 0;
> }
>From lu@arlut.utexas.edu Thu Mar 09 14:31:00 2000
From: Phil Lu <lu@arlut.utexas.edu>
To: bug-gcc@gnu.org
Subject: sprintf core dumps compiling with gcc 2.95 for ultrasparc
Date: Thu, 09 Mar 2000 14:31:00 -0000
Message-id: <38C8263E.F0B4233E@arlut.utexas.edu>
X-SW-Source: 2000-03/msg00401.html
Content-type: multipart/mixed; boundary="----------=_1583533098-4114-182"

This is a multi-part message in MIME format...

------------=_1583533098-4114-182
Content-length: 1193

//sprintf core dumps compiling with gcc 2.95 for ultrasparc with:

//	g++ -v --save-temps -mcpu=v9 -Wa,-xarch=v8plusa main.cc

//This little snippet core dumps for gcc 2.95 but not for 2.8.1

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
	// ---- Test sprintf bug compiled for ultrasparc
		printf("Checking to see if compiler has core dump problem ...\n");
		printf("  It happens with gcc 2.95+ 'g++ -v --save-temps -mcpu=v9 \
 -Wa,-xarch=v8plusa'.\n");

		float v=0;
		char buf[1024];

		//#define MAKE_COMPILER_BUG_GO_AWAY
	  	#if defined(MAKE_COMPILER_BUG_GO_AWAY)
			sprintf(buf, "%%07.3f", v);
	  	#endif
		
		sprintf(buf, "%d%d%d%d%d%d%f", 1,1,1,1,1,1,v);

		printf("**** GOOD ... Did not core dump due to sprintf()!\n");
	// ---- End of bug testing

    return 0;
}

Thanks,
Phil.
-------  Phil Lu  ------- =|||---------|||= ----- Sys Admin/Developer
On Site: Applied Research Laboratories          * Work:  512.835.3480
         The University of Texas at Austin        FAX:   512.835.3259
Mail To: PO Box 8029,      Austin, TX 78713        
Ship To: 10000 Burnet Rd., Austin, TX 78758       lu@arlut.utexas.edu
bug-sprintf-2.95.tgz
bug-sprintf-2.8.1.tgz


------------=_1583533098-4114-182
Content-Type: application/x-gzip; charset=binary; name="bug-sprintf-2.8.1.tgz"
Content-Disposition: inline; filename="bug-sprintf-2.8.1.tgz"
Content-Transfer-Encoding: base64
Content-Length: 17666

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
+hTjXtf8uDdsXBa6KMZXjkfXE99QW9cqPpVf73bwV97B0UWf54ovbfOp1zei
bxX0X7hFEb8tEBwCnMP3gIS3A6Y70X0S3qe4Wkn0ITne/YDJdi/axiOcDhzs
5Qo44EqKay11n3fAvQzc+3Tv6YB7C+Jgxyb7/Ah3zrjvrceRq8XdqwNuo3FP
6oDbbtzB2nBOT/WXI4+y/BPZc/n3BeX/yu8Lrl+aEwSUe9r4PcEl9Gsx6KV/
19rga2zwjYZ9XMI+Ww37uIR9Rgz7uIR9xuA/Pp5b+O+wASsCftiwn0vY7zGT
PJL/LNZ+xMT/P+Q9W4wkyVE9PebgjI1lGfvOnA1957N3Z6enp15dVV3jlXbc
O7seax7L9OzdnngU1dU1M3XX09VXj9lZbJ8XY4mXDV+GD8DCFh+cQScexh/W
ydL5D07Ah7HAH0jHB8KAEA/zcZaQISIjMitrZvbj+AKx0s5ERGZlRkRGRmRk
ZtX8KuCf0vDPs74fZXm+COVbWvmXz/D/VfYlsv8/k/23qP+/OVP/70TsoH9o
T/8k4kiN/5v0Jdzff4oYA48TPwtvkr6HyhfeIX0T40/Iuc+4Lf0E49eBv1s1
f+Db2VdxeSj9EePPSt/FeCF9EuMfa8q38HPA72/V+l/4bGvhna/X+lv4XYmT
vha+0hyfBfBd79L0vfB19O31+C+8JuMt2cfCP5/p/z+a51/txeb5V/stzfOv
9tub51/tS83zr/bV5vlXe9g8/2p/pHn+1d5tnn+1n2qef7V/snn+1Z40z7/a
zzbPv9qfbp5/tT/bPP9q/0bz/Kv9UvP8q/2l5vlX++Xm+Vf7leb5V/ubzfOv
9mvN86/23zfPvxYXmudfi9/XPP9afFvz/GvxPc3zr8XHm+dfi5eb51+Lq43z
L7roEudl2itaJ9G0SoqVO1EvRlJRVgcHAM57VisMh/u7e+HW5mg/DAG73sAm
WXg4zcbRNJyUWV6EUXXagkWnFcrPXfWg0saHwxt769sb4Yc2bm7uwHMHWR4n
YZmF4pAKz5ZCWEAe32vhiRmD2fjZJC57XosOt4gov852rosz7eMjwH9va2to
iJ9m62CCJ2RFkpfcdNGaJHEG1GKajE3Ll2jFKF4hrcokjA8ifHAGhDKP4jKM
U3kueKbbOKtmZQgdFS15IpeWrWgyYVo6E5CuYdnExs71M/qMH6TPpvI0jfHY
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
sLCwsLCwsLCwsLCwsLCYiH8AVKlw6ADIAAA=

------------=_1583533098-4114-182--
>From jwarlander@hotmail.com Thu Mar 09 15:39:00 2000
From: "Johan Wärlander" <jwarlander@hotmail.com>
To: gcc-bugs@gcc.gnu.org
Subject: GCC 2.95.2 / C++
Date: Thu, 09 Mar 2000 15:39:00 -0000
Message-id: <20000309233908.1962.qmail@hotmail.com>
X-SW-Source: 2000-03/msg00402.html
Content-length: 3835

I encountered a bug when I changed the definition of iStart from int to 
unsigned int, in the piece of code below:

//------------------------------------------------------------------

bool Descriptor::read ()
{
    ///////////////////////////////////////////////////////////
    // The changed variable that apparently introduced bug:
    //

    unsigned int iStart;


    /* Hold horses if pending command already. */
    if ('\0' != incomm[0])
      return true;

    /* Check for overflow. */
    iStart = strlen (inbuf);
    if (iStart >= sizeof (inbuf) - 10)
    {
        log_printf ("%s input overflow!", host);
        this->write ("\n\r*** DON'T SPAM!!! ***\n\r", 0);
        return false;
    }

    /* Snarf input. */

    for ( ; ; )
    {
        int nRead;

        nRead = ::read (descriptor, inbuf + iStart,
                      sizeof (inbuf) - 10 - iStart);

        if (0 < nRead)
        {
            iStart += nRead;

            /////////////////////////////////////////////////////////
            // BUG appears to have occured at the following line:
            //

            if ('\n' == inbuf[iStart - 1] || '\r' == inbuf[iStart - 1])
              break;
        }
        else if (0 == nRead)
        {
            log_string ("EOF encountered on read.");
            return false;
        }
        else if (EWOULDBLOCK == errno)
        {
          break;  // If there is nothing to read, dont try
        }
        else
        {
            perror ("Read_from_descriptor");
            return false;
        }
    }

    inbuf[iStart] = '\0';

    return true;
}


//------------------------------------------------------------------


[fain@khaanikel src_marroc]$ g++ -v --save-temps -c -g -Wall -I. 
-I/usr/include/pgsql -o obj/Descriptor.o Descriptor.cc
Reading specs from 
/home/fain/apps/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000228 (experimental)
/home/fain/apps/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ -v 
-I.
-I/usr/include/pgsql -iprefix 
/home/fain/apps/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/ -D__GNUC__=2 
-D__GNUG__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__cplusplus 
-D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix
-D__linux -Asystem(posix) -D__EXCEPTIONS -g -Wall -Acpu(i386) 
-Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ 
Descriptor.cc Descriptor.ii
GNU CPP version 2.96 20000228 (experimental) (cpplib)
(i386 Linux/ELF)
ignoring duplicate directory `/home/fain/apps/include/g++-3'
ignoring duplicate directory `/home/fain/apps/i686-pc-linux-gnu/include'
ignoring duplicate directory 
`/home/fain/apps/lib/gcc-lib/i686-pc-linux-gnu/2.96/include'
#include "..." search starts here:
#include <...> search starts here:
.
/usr/include/pgsql
/home/fain/apps/include/g++-3
/home/fain/apps/i686-pc-linux-gnu/include
/home/fain/apps/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
/home/fain/apps/include
/usr/include
End of search list.
/home/fain/apps/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus 
Descriptor.ii -quiet -dumpbase Descriptor.cc -g -Wall -version -o 
Descriptor.s
GNU C++ version 2.96 20000228 (experimental) (i686-pc-linux-gnu) compiled by 
GNU C version pgcc-2.91.66 19990314 (egcs-1.1.2 release).
Descriptor.cc: In method `bool Descriptor::read ()':
Descriptor.cc:87: Internal compiler error in `size_binop', at
Descriptor.cc:87: fold-const.c:1873
Descriptor.cc:87: Please submit a full bug report.
Descriptor.cc:87: See <URL: http://www.gnu.org/software/gcc/bugs.html >
Descriptor.cc:87: for instructions.


//-------------------------------------------------------------------

I hope this helps, meanwhile I'll just revert to int.

Regards,
Johan Wärlander

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-03-05 17:41 Mark Robinson
  0 siblings, 0 replies; 387+ messages in thread
From: Mark Robinson @ 2000-03-05 17:41 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 127 bytes --]

GCC Version: 2.95.2 19991024 (release)
System : i586-mandrake-linux
Options: -O3 -g1 -c file.cpp

I have attached the output.


[-- Attachment #2: gcc-error.tar.bz2 --]
[-- Type: application/x-bzip2, Size: 73493 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
       [not found] <Pine.LNX.3.96.1000303133335.428W-100000@weber.lcs.mit.edu>
@ 2000-03-03 12:44 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-03-03 12:44 UTC (permalink / raw)
  To: ztang; +Cc: gcc-bugs

> The .ii file is attached.
> 
> Hope that helps.

Thanks for your bug report. Maybe I'm missing something, but ... where
exactly is the .ii file?

Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
       [not found] <200002282302.AAA01090@loewis.home.cs.tu-berlin.de>
@ 2000-02-28 15:14 ` Cheong Siew Ann
  0 siblings, 0 replies; 387+ messages in thread
From: Cheong Siew Ann @ 2000-02-28 15:14 UTC (permalink / raw)
  To: Martin v. Loewis; +Cc: egcs-bugs

Hi,

I am sorry!  This is my first time reporting a bug...

MarketCrashModels.h is included, and the egcs compiler version is

	egcs-2.90.29 980515 (egcs-1.0.3 release)

Thank you very much for the link.


Best Regards,

Siew-Ann Cheong

On Tue, 29 Feb 2000, Martin v. Loewis wrote:

> > I was using insert_iterators to copy the contents between two vectors, but
> > faced this strange internal compiler error.
> 
> Thanks for your bug report. Please have a look at
> 
> http://www.gnu.org/software/gcc/bugs.html
> 
> Your bug report did not include full source; in particular,
> MarketCrashModels.h was missing - preprocessour output would have
> avoided that problem. Also, you didn't mention what compiler version
> you were using. Without this information, we can't don anything about
> your report.
> 
> Regards,
> Martin
> 
> 
> 
>From monty@monty.pp.sci.fi Mon Feb 28 15:18:00 2000
From: Michael Widenius <monty@monty.pp.sci.fi>
To: "Ross Smith" <ross.s@ihug.co.nz>
Cc: <monty@mysql.com>, <egcs-bugs@egcs.cygnus.com>
Subject: Re: egcs 1.1.2 problem;  shift on integers gives unexpected sign extension.
Date: Mon, 28 Feb 2000 15:18:00 -0000
Message-id: <14523.670.639820.777285@monty.pp.sci.fi>
References: <14522.53953.934609.29926@monty.pp.sci.fi> <009d01bf823b$e88dc630$a8a11dcb@ihug.co.nz>
X-SW-Source: 2000-02/msg00872.html
Content-length: 2568

Hi!
>>>>> "Ross" == Ross Smith <ross.s@ihug.co.nz> writes:

Ross> From: "Michael Widenius" <monty@monty.pp.sci.fi>
>> 
>> ** shift on integers gives unexpected sign extension.
>> ** This 'may' be right, but it's not predictable and SHOULD at least
Ross> give
>> ** a warning on 64 bit architectures!

Ross> I disagree. The behaviour is entirely predictable if you remember the
Ross> rules for arithmetic in C.

>> unsigned long a=0;
>> int b=31;
>> 
>> a= 1 << b;
>> printf("1 << 31 = %ld = 0x %lx\n",a,a);
>> a= 1U << b;
>> printf("1U << 31 = %ld = 0x %lx\n",a,a);

>> 1 << 31 = -2147483648 = 0x ffffffff80000000
>> 1U << 31 = 2147483648 = 0x 80000000

Ross> (I'm assuming 32 bit ints and 64 bit longs.)

Ross> In the expression "a = 1 << b", 1 and b are both plain ints. Shifting 1
Ross> left 31 bits yields 0x80000000, which is -2^32 when read as a signed
Ross> twos complement 32 bit int. Converting it to an unsigned long follows
Ross> the standard wraparound rule, so you get 2^64-2^32 = 0xFFFFFFFF80000000.

Ross> The sign extension has nothing to do with the fact that the expression
Ross> involves a shift; it's the natural result of assigning a 32 bit signed
Ross> value to a 64 bit unsigned one.

Ross> (Personally, I long ago adopted the rule of always using an explicit
Ross> cast when converting between signed and unsigned. It doesn't change the
Ross> result, but it gives me a visual warning that I should think carefully
Ross> about what's happening.)

Note that the I am just asking for adding an warning for this!  I am
not saying that gcc does anything wrong!

Note that not even 'gcc -Wall int-bug.c' gives any warnings for the
above code!

The above is a pitfall that will make 32 bit program that works fail
on 64 bit architectures.  Having a warning for this would making it
much easier to port code!  Do you really disagree that it's bad to
have warnings for potentially wrong code?  Can you see ANY
circumstances when the above behaveour is the one that the programmer
intended.  As you said, it's easy to fix with a cast, but if you are
porting some others code you may never find the place where this
happens.  The value that is shifted may be a struct element or a
typedef that may be unsigned on some system but signed on the 64 bit
Alpha.

The one reason programs are more unstable on Alpha than on other
systems is that some code that works perfectly on Intel will not work
on Alpha.  Having more and better warnings will just ensure that it
will be easier to get things to work on Alpha and this will benefit
everyone.

Regards,
Monty
>From flopinf@yahoo.com Mon Feb 28 15:59:00 2000
From: Felixl Lopin <flopinf@yahoo.com>
To: egcs-bugs@egcs.cygnus.com
Subject: Re: compiler bug
Date: Mon, 28 Feb 2000 15:59:00 -0000
Message-id: <20000229000420.24640.qmail@web1611.mail.yahoo.com>
X-SW-Source: 2000-02/msg00873.html
Content-length: 1241

 I received this bug while trying to make
 speech_tools
 on my Redhat5.2 linux with the standard make
 i'm not sure how bug reports work but this is what
 showed up on the screen:
 
> making dependencies -- EST_kalman.cc
> g++ -c -fno-implicit-templates -fguiding-decls -O3
> -fPIC -fno-shared-data -Wall
> -I../../include EST_kalman.cc
> look at library estools EST_kalman.o
> Update library estools EST_kalman.o
> a - EST_kalman.o
> look at library estbase
> look at library eststring
> Making in directory stats/wagon ...
> g++ -c -fno-implicit-templates -fguiding-decls -O3
> -fPIC -fno-shared-data -Wall
> -I../../include -DINSTANTIATE_TEMPLATES wagon.cc
> wagon.cc: In function `float
> score_question_set(class
> WQuestion &, class EST_TVector<WVector *> &, int)':
> wagon.cc:749: Internal compiler error.
> wagon.cc:749: Please submit a full bug report to
> `egcs-bugs@cygnus.com'.
> make[3]: *** [wagon.o] Error 1
> make[2]: *** [wagon] Error 2
> make[1]: *** [stats] Error 2
> make: *** [make_library] Error 2
 
 PS:
 please tell me how it can be fixed so i can install
my program: Thank You.

__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
>From ross.s@ihug.co.nz Mon Feb 28 16:40:00 2000
From: "Ross Smith" <ross.s@ihug.co.nz>
To: <monty@mysql.com>
Cc: <egcs-bugs@egcs.cygnus.com>
Subject: Re: egcs 1.1.2 problem;  shift on integers gives unexpected sign extension.
Date: Mon, 28 Feb 2000 16:40:00 -0000
Message-id: <005f01bf824d$981997d0$a8a11dcb@ihug.co.nz>
References: <14522.53953.934609.29926@monty.pp.sci.fi> <009d01bf823b$e88dc630$a8a11dcb@ihug.co.nz> <14523.670.639820.777285@monty.pp.sci.fi>
X-SW-Source: 2000-02/msg00874.html
Content-length: 2040

From: "Michael Widenius" <monty@monty.pp.sci.fi>
>
> Note that the I am just asking for adding an warning for this!  I am
> not saying that gcc does anything wrong!
>
> Note that not even 'gcc -Wall int-bug.c' gives any warnings for the
> above code!
>
> The above is a pitfall that will make 32 bit program that works fail
> on 64 bit architectures.  Having a warning for this would making it
> much easier to port code!  Do you really disagree that it's bad to
> have warnings for potentially wrong code?  Can you see ANY
> circumstances when the above behaveour is the one that the programmer
> intended.  As you said, it's easy to fix with a cast, but if you are
> porting some others code you may never find the place where this
> happens.  The value that is shifted may be a struct element or a
> typedef that may be unsigned on some system but signed on the 64 bit
> Alpha.
>
> The one reason programs are more unstable on Alpha than on other
> systems is that some code that works perfectly on Intel will not work
> on Alpha.  Having more and better warnings will just ensure that it
> will be easier to get things to work on Alpha and this will benefit
> everyone.

OK, I can see how this sort of thing could cause unexpected problems.
But I still say you're on the wrong track in thinking it has anything to
do with shifts. It's caused by the interaction of signed/unsigned
conversion and 32/64 bit conversion. The fact that the 32-bit value was
produced by a shift operation is a red herring.

Personally I'd be in favour of a warning for *any* potentially
value-losing conversion (signed/unsigned in either direction, or from a
longer int to a shorter), but I suspect that would raise too many
complaints from old school hackers.

--
Ross Smith <ross.s@ihug.co.nz> The Internet Group, Auckland, New Zealand
========================================================================
   "So that's 2 T-1s and a newsfeed ... would you like clues with that?"
                                                       -- Peter Da Silva



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 2000-02-23 13:41 Matt Danish
  0 siblings, 0 replies; 387+ messages in thread
From: Matt Danish @ 2000-02-23 13:41 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 11527 bytes --]

 egcs-2.90.29 980515 (egcs-1.0.3 release)
 
 cmd_list is an array of structures that contain a
 member called 'func' which is a pointer to a member
 function of class CmdClass.
 
 This line causes the compiler to report an bug:
      

this->*cmd_list[i].func(id,cmd,buf,cmd_list[i].subcmd);
 
 However, I discovered that it may be fixed this way:
   

(this->*cmd_list[i].func)(id,cmd,buf,cmd_list[i].subcmd);
 by adding parentheses around this->*cmd_list[i].func
 
 I do not know whether this is a bug or not, but the
 compiler shouldn't be reporting it as one, since it
 is
 just a matter of operator precedence.  If this has
 been fixed in recent versions, sorry for wasting
 your
 time.
 
 Matt Danish
 mrdlinux@yahoo.com
 
 

__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
>From ghazi@caip.rutgers.edu Wed Feb 23 14:04:00 2000
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: gcc-bugs@gcc.gnu.org, grahams@rcp.co.uk
Subject: Re: Possible bug with builtin memset ?
Date: Wed, 23 Feb 2000 14:04:00 -0000
Message-id: <200002232204.RAA18027@caip.rutgers.edu>
X-SW-Source: 2000-02/msg00684.html
Content-length: 497

 > From: grahams <grahams@rcp.co.uk>
 > 
 > Kaveh
 > Yes the builtin memset on the x86 has bug.  The bug is a cuased by
 > a typo in the "clrstrsi" expander in the x86 backend.  I've just
 > sent a patch gcc-patches@gnu.gnu.gcc to fix it.  see "(Patch) x86
 > memset bug. Fix typo in x86 "clrstrsi" expander"
 > Graham

Wow, thanks!  Your patch does indeed solve my problem. :-)

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From chip@valinux.com Wed Feb 23 14:05:00 2000
From: Chip Salzenberg <chip@valinux.com>
To: Jason Merrill <jason@cygnus.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Access control + static ctor = bad error message
Date: Wed, 23 Feb 2000 14:05:00 -0000
Message-id: <20000223140519.F920@perlsupport.com>
References: <20000223000957.D8754@perlsupport.com> <u91z63pswg.fsf@yorick.cygnus.com>
X-SW-Source: 2000-02/msg00686.html
Content-length: 905

According to Jason Merrill:
> Fixed.

Thanks!  Looks like it works just fine now.

But I have a related nit to report: When I break visibility rules in a
static initializer, the resulting error message reveals a lot more of
g++'s internals that we probably would like.  Given this priv.cc:

  class B { B(int) {} }; // intentionally private
  B b(1);

Here are the messages:

  priv.cc: In function `void __static_initialization_and_destruction_0
  priv.cc: (int, int)':
  priv.cc:1: `B::B (int)' is private
  priv.cc:2: within this context

I should think that "In function `void __static_init...'" should be
prettyprinted as "In static initialization".  If that's OK, I'll make
a patch.
-- 
Chip Salzenberg              - a.k.a. -              <chip@valinux.com>
"I wanted to play hopscotch with the impenetrable mystery of existence,
    but he stepped in a wormhole and had to go in early."  // MST3K
>From rdb@localhost Wed Feb 23 14:05:00 2000
From: Rodney Brown <rdb@localhost>
To: gcc-bugs@gcc.gnu.org
Subject: 20000221 alpha-dec-osf4.0e --enable-checking ICE summary
Date: Wed, 23 Feb 2000 14:05:00 -0000
Message-id: <200002232101.IAA00510@ppp128.dyn136.pacific.net.au>
X-SW-Source: 2000-02/msg00685.html
Content-length: 2418

alpha-dec-osf4.0e --enable-checking

Internal compiler error 19990331.
	gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C:15

Internal compiler error 2000.
	gcc/testsuite/g++.old-deja/g++.pt/memtemp86.C:15

Internal compiler error 97.
	gcc/testsuite/g++.old-deja/g++.oliva/typeof1.C:17

Internal compiler error in `build_insn_chain', at global.c:1848
	gcc/testsuite/gcc.c-torture/compile/20000105-1.c:25

Internal compiler error in `decl_namespace', at ../egcs-20000221/gcc/cp/decl2.c:4449
    Tree check: expected class 'd', have 't' (record_type)
	gcc/testsuite/g++.old-deja/g++.pt/memtemp89.C:14

Internal compiler error in `note_name_declared_in_class', at ../egcs-20000221/gcc/cp/class.c:6434
    Tree check: expected class 'd', have 'x' (overload)
	gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C:13

Internal compiler error in `pushdecl', at c-decl.c:2415
    Tree check: expected class 't', have 'x' (error_mark)
	gcc/testsuite/gcc.c-torture/noncompile/920616-2.c:1
	gcc/testsuite/gcc.c-torture/noncompile/921116-1.c:1

Internal compiler error in `record_constant_1', at varasm.c:2870
    RTL check: expected elt 0 type 's' or 'S', have 'u' (rtx label_ref)
	gcc/testsuite/gcc.c-torture/compile/labels-2.c:4
	gcc/testsuite/gcc.c-torture/execute/920501-5.c:4

Internal compiler error in `reg_overlap_mentioned_p', at rtlanal.c:936
    RTL check: expected code `reg', have `and'
	gcc/f/expr.c:3384
	gcc/f/sta.c:1701
	gcc/f/target.c:695
	gcc/testsuite/gcc.c-torture/execute/931004-10.c:30
	libchill/format.c:1170
    RTL check: expected code `reg', have `subreg'
	gcc/testsuite/g++.old-deja/g++.brendan/crash68.C:28
	gcc/testsuite/gcc.c-torture/execute/931004-12.c:33
	gcc/testsuite/gcc.c-torture/execute/strct-stdarg-1.c:39
    RTL check: expected code `reg', have `zero_extend'
	gcc/testsuite/gcc.c-torture/execute/931004-10.c:30

Internal compiler error in `tsubst_decl', at ../egcs-20000221/gcc/cp/pt.c:5859
    Tree check: expected class 't', have 'd' (template_decl)
	gcc/testsuite/g++.old-deja/g++.oliva/template7.C:9

Internal compiler error in `verify_local_live_at_start', at flow.c:2612
	gcc/testsuite/gcc.c-torture/execute/990811-1.c:31

Internal compiler error.
	gcc/testsuite/g++.old-deja/g++.oliva/template5.C:14
	gcc/testsuite/g++.old-deja/g++.other/ptrmem6.C:15
	gcc/testsuite/g++.old-deja/g++.pt/crash44.C:8
	gcc/testsuite/g++.old-deja/g++.pt/decl2.C:8
	gcc/testsuite/g++.old-deja/g++.pt/static10.C:15
>From toon@moene.indiv.nluug.nl Wed Feb 23 14:59:00 2000
From: Toon Moene <toon@moene.indiv.nluug.nl>
To: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>
Cc: "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>
Subject: Re: g77 snapshot LAPACK testsuite failure - irix 6.5
Date: Wed, 23 Feb 2000 14:59:00 -0000
Message-id: <38B46630.DE868D95@moene.indiv.nluug.nl>
References: <A9E96A79C068D211A6A90000C07BDF0D4D4BC3@crtsmail.crts.techaust.riotinto.com.au>
X-SW-Source: 2000-02/msg00687.html
Content-length: 2127

Billinghurst, David (RTD) wrote:

> >  Here is a simple test case.

[ Note: column 1 is supposed to be here: ]
          V
>         #################### labug4.f #########################
>                 program labug4
> 
>         *  This program gives the wrong answer on mips-sgi-irix6.5
>         *  when compiled with g77 from egcs-20000221
>         *  Get w(37) = 37.0 when it should be 41.0
>         *
>         *  Works with
>         *    - g77 from gcc-2.95.2
>         *    - Irix MipsPro Fortran 77 7.2.1
>         *
>         *  Derived from LAPACK 3.0 test suite failure.
>         *
>         *  David Billinghurst, (David.Billinghurst@riotinto.com.au)
>         *  23 February 2000
>         *
>               implicit none
>               integer n, i
>               parameter( n = 20 )
>               real w(4*n)
> 
>               do i = 1, 4*N
>                  w(i) = i
>               end do
>               CALL SLASQx( N, W )
>               if ( abs((w(37)-41.0)) .gt. 1.0e-6 ) then
>                  write(6,*) 'W(37) = ', W(37), ' but should be 41.0'
>                  call abort()
>               end if
>               end
> 
>               SUBROUTINE SLASQx( N, Z )
>               INTEGER            N
>               REAL               Z( 4*N )
>               INTEGER            I0, I4, IPN4, K
>               REAL               TEMP
>               I0 = 1
>               IPN4 = 4*( 1+N )
>               DO 40 I4 = 4*I0, 2*( I0+N-1 ), 4
>                  TEMP = Z( I4-3 )
>                  Z( I4-3 ) = Z( IPN4-I4-3 )
>                  Z( IPN4-I4-3 ) = TEMP
>                  TEMP = Z( I4-1 )
>                  Z( I4-1 ) = Z( IPN4-I4-5 )
>                  Z( IPN4-I4-5 ) = TEMP
>            40 CONTINUE
>               RETURN
>               END

Fails identically on i686-pc-linux-gnu and succeeds on same platform
using gcc/g77-2.95.2.

Thanks for the simple test program !

-- 
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://gcc.gnu.org/onlinedocs/g77_news.html
>From vonbrand@sleipnir.valparaiso.cl Wed Feb 23 15:17:00 2000
From: Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
To: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
Cc: neuffer@alpha.mz.rhein-main.de, gcc-bugs@gcc.gnu.org, rth@twiddle.net
Subject: Re: internal gcc error during compile of 2.3.47pre6 linux kernel 
Date: Wed, 23 Feb 2000 15:17:00 -0000
Message-id: <200002231859.e1NIxaj11174@sleipnir.valparaiso.cl>
References: <200002231033.LAA08444@loewis.home.cs.tu-berlin.de>
X-SW-Source: 2000-02/msg00688.html
Content-length: 860

"Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> said:
> Michael Neuffer on Sat, 19 Feb 2000 09:17:04 +0100 said:
> > init_task.c:24: Internal compiler error in `add_pending_init', at
> > c-typeck.c:5867

> Thanks for your bug report. Apparently, the bug is caused by
> spinlock_t being declared as
> 
>   typedef struct { } spinlock_t;
> 
> As a result, inside task_struct, because of
> 
>         spinlock_t sigmask_lock;
>         struct signal_struct *sig;
> 
> sigmask_lock and sig have the same offsets in the task_struct.
> Adding an arbitrary field to spinlock_t works around this bug.

egcs-20000221 has this fixed. I used it to compile this 2.3.47 kernel (with
the workaround removed).
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616
>From jason@cygnus.com Wed Feb 23 15:20:00 2000
From: Jason Merrill <jason@cygnus.com>
To: Chip Salzenberg <chip@valinux.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Access control + static ctor = bad error message
Date: Wed, 23 Feb 2000 15:20:00 -0000
Message-id: <u9u2izo69p.fsf@yorick.cygnus.com>
References: <20000223000957.D8754@perlsupport.com> <u91z63pswg.fsf@yorick.cygnus.com> <20000223140519.F920@perlsupport.com>
X-SW-Source: 2000-02/msg00689.html
Content-length: 405

>>>>> Chip Salzenberg <chip@valinux.com> writes:

 >   priv.cc: In function `void __static_initialization_and_destruction_0
 >   priv.cc: (int, int)':
 >   priv.cc:1: `B::B (int)' is private
 >   priv.cc:2: within this context

 > I should think that "In function `void __static_init...'" should be
 > prettyprinted as "In static initialization".  If that's OK, I'll make
 > a patch.

Sounds good.

Jason
>From martin@loewis.home.cs.tu-berlin.de Wed Feb 23 15:23:00 2000
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: mrdlinux@yahoo.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal Compiler Error
Date: Wed, 23 Feb 2000 15:23:00 -0000
Message-id: <200002232316.AAA01207@loewis.home.cs.tu-berlin.de>
References: <20000223214057.15366.qmail@web1003.mail.yahoo.com>
X-SW-Source: 2000-02/msg00690.html
Content-length: 341

>  If this has been fixed in recent versions, sorry for wasting your
>  time.

Thanks for your bug report. It is hard to tell whether this has been
fixed, without the full source code. Please have a look at

http://gcc.gnu.org/cgi-bin/fom.cgi?file=11

and re-report if you want us to check. Most likely, it has been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  2000-02-19 15:01 Internal compiler error Hartwig Felger
@ 2000-02-22 12:21 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 2000-02-22 12:21 UTC (permalink / raw)
  To: Hartwig Felger; +Cc: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 452 bytes --]

On Feb 19, 2000, Hartwig Felger <hgfelger@hgfelger.de> wrote:

> See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
> instructions.

Please do

-- 
Alexandre Oliva     http://www.ic.unicamp.br/~oliva/     Enjoy Guaraná
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{lsd.ic.unicamp.br, gnu.org}   Write to mailing lists, not to me


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-02-19 15:01 Hartwig Felger
  2000-02-22 12:21 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Hartwig Felger @ 2000-02-19 15:01 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2792 bytes --]

> gcc --version      2.95.2
Linux dog 2.3.47 #32 Fri Feb 18 00:16:13 MET 2000 i686 unknown, i.e.pre-2.3.47-3
As I compiled the kernel pre-2.3.47-6:
gcc -D__KERNEL__ -I/root/linux/include -Wall -Wstrict-prototypes -O2
-fomit-frame-pointer -fno-strict-aliasing -pipe  -mpreferred-stack-boundary=2
-DCPU=686 -march=i686   -c -o init_task.o init_task.c
init_task.c:24: Internal compiler error in `add_pending_init', at c-typeck.c:5867
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make[1]: *** [init_task.o] Error 1
make[1]: Leaving directory `/root/1/linux/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] Error 2
-- 
1024D/339FD693 Hartwig Felger 
Key fingerprint = FB2F 3EE9 345A D55B 6FF2  0EC1 F5B0 684F 339F D693
>From aubs24@freewwweb.com Sat Feb 19 15:17:00 2000
From: AUBC Used Book Search <aubs24@freewwweb.com>
To: <egc@texhoma.net>
Subject: Looking for a used book?..............
Date: Sat, 19 Feb 2000 15:17:00 -0000
Message-id: <18161.236575.76528495> <egcs-bugs@egcs.cygnus.com>
X-SW-Source: 2000-02/msg00530.html
Content-length: 1641

Introducing AUBC Used Book Search - the easy way to get your hands on that 
elusive book!!
> > by author, or title; used, or out of print books. 
As we get many email response for booksearches from people who do not truely 
want to buy books we have found it neccesary to ask for genuine enquiries to be 
mailed to us in the post. This only takes a couple of days but will ensure our 
swiftest reply and best efficiency to meet your needs without being snowed under 
by deadend requests. (All interaction therafter can be done by email - as soon as 
we recieve your mailed request we will acknowledge this by email confimation to 
your email address.) We hope this will ensure a better service for you 
INITIATE A BOOK SEARCH REQUEST:
MAIL: AUBC 336 Jim Mann Rd, Franklin, NC 28734, USA 
Please include ALL the following information in your request:
Your name: 
Your email address:
Author First Name
Author Surname:
Title:
Physical address 
OPTIONAL
Hard of soft cover:
Other special requirements:
Budget (if you have one):

As soon as a copy of the book has been found a price will be returned to you by 
email for your final sale decision. Looking forward to hearing from you.


Thank you
AUBC



Please note we do NOT deal in any pornographic or "adult only" materials
and have no connection with any such operators.

WE STRONGLY BELIEVE THAT PRESERVING THE 
CONFIDENTIALITY OF YOUR INFORMATION IS ONE OF OUR 
MOST IMPORTAINT RESPONSIBILITIES. BECAUSE OF THIS BELIEF 
WE FEEL IT ALSO IMPORTAINT TO ASSURE YOU THAT NO 
INFORMATION ABOUT YOU WILL BE SOLD OR REMARKETED TO 
OUTSIDE SOURCES.

Thank you
Larry L. Heave (Marketing Director)




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-02-07  2:11 Andre Poenitz
  0 siblings, 0 replies; 387+ messages in thread
From: Andre Poenitz @ 2000-02-07  2:11 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 467 bytes --]

gcc -v:

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)


uname -a:

Linux datamill 2.2.10 #1 Tue Jul 20 16:32:24 MEST 1999 i586 unknown


gcc graph.C:

In file included from graph.C:8:
graph.h:743: Internal compiler error.
graph.h:743: Please submit a full bug report.
graph.h:743: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport >
for instructions


attached: graph.ii.gz


Have fun ;-)
Andre'

[-- Attachment #2: graph.ii.gz --]
[-- Type: application/x-gzip, Size: 46087 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <3893E092.B6BDDFD8@nilenet.com>
@ 2000-01-30  2:30 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 2000-01-30  2:30 UTC (permalink / raw)
  To: mikes; +Cc: gcc-bugs

> Please send me feedback on how to get operator<< to work for struct
> Pair.

Thanks for your bug report. Although this is certainly a bug in the
compiler, I believe this is also a bug in your code.

> template<class key,class value>
> template<class key2,class value2>
> ostream& operator<<(ostream& ls, const Pair<key2,value2>& rs)
> {
>   ls << rs.k << '\t' << rs.v;
>   return ls;
> }

The template arguments key and value are not needed, are they? If you
remove the first line, g++ compiles your code just fine.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-01-11 14:06 Lars Hecking
  0 siblings, 0 replies; 387+ messages in thread
From: Lars Hecking @ 2000-01-11 14:06 UTC (permalink / raw)
  To: bug-gcc

[-- Attachment #1: Type: text/plain, Size: 3540 bytes --]

 I get an internal compiler error with gcc-2.95.2 on Dec Unix 4.0f
 when trying to compile the current ncurses snapshot 5.0-20000108.

$ sizer -v
Digital UNIX V4.0F  (Rev. 1229); Wed Dec  1 15:56:50 GMT 1999 


 Original error message:

[...]
cd ../objects; gcc -DHAVE_CONFIG_H -I../tack -I.  -DNDEBUG -I. -I../include -I/usr/local/ncurses/include -O2  -c ../tack/pad.c
In file included from /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/stdarg.h:36,
                 from ../include/curses.h:72,
                 from ../tack/tack.h:49,
                 from ../tack/pad.c:22:
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va-alpha.h:36: warning: redefinition of `va_list'
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va_list.h:7: warning: `va_list' previously declared here
../tack/pad.c: In function `pad_home1':
../tack/pad.c:333: Internal compiler error in `int_mode_for_mode', at stor-layout.c:202
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.


 Running gcc manually:

$ (32) gcc -v --save-temps -DHAVE_CONFIG_H -I../tack -I. -DNDEBUG -I. -I../include -I/usr/local/ncurses/include -g -c ../tack/pad.c
Reading specs from /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/cpp -lang-c -v -I../tack -I. -I. -I../include -I/usr/local/ncurses/include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -g -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C -Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ -D__alpha_ev5__ -Acpu(ev5) -DHAVE_CONFIG_H -DNDEBUG ../tack/pad.c pad.i
GNU CPP version 2.95.2 19991024 (release)
#include "..." search starts here:
#include <...> search starts here:
 ../tack
 .
 ../include
 /usr/local/ncurses/include
 /usr/local/include
 /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/../../../../alphaev5-dec-osf4.0f/include
 /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/../../../../include/g++-3
End of omitted list.
 /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/cc1 pad.i -quiet -dumpbase pad.c -g -version -o pad.s
GNU C version 2.95.2 19991024 (release) (alphaev5-dec-osf4.0f) compiled by GNU C version 2.95.2 19991024 (release).
In file included from /usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/stdarg.h:36,
                 from ../include/curses.h:72,
                 from ../tack/tack.h:49,
                 from ../tack/pad.c:22:
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va-alpha.h:36: warning: redefinition of `va_list'
/usr/local/gnu/lib/gcc-lib/alphaev5-dec-osf4.0f/2.95.2/include/va_list.h:7: warning: `va_list' previously declared here
../tack/pad.c: In function `pad_home1':
../tack/pad.c:333: Internal compiler error in `int_mode_for_mode', at stor-layout.c:202
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

 The resulting .i file is attached in bzip2 format.

 Thanks.

ps. I think I have been getting the warnings about redefinition of va_list
    with all egcs and postegcs gcc releases on Dec Unix.


[-- Attachment #2: pad.i.bz2 --]
[-- Type: application/x-bzip2, Size: 17896 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 2000-01-11 10:59 Mike Stump
  0 siblings, 0 replies; 387+ messages in thread
From: Mike Stump @ 2000-01-11 10:59 UTC (permalink / raw)
  To: egcs-bugs, wayne.letcher

Thanks for reporting this.  The bug has been fixed.  You can compile
with -fno-exceptions as a work-around if you don't need to use
exception handling.  If you do use exception handling, please contact
windriver for a solution.
>From abe@purdue.edu Tue Jan 11 12:06:00 2000
From: "Vic Abell" <abe@purdue.edu>
To: "Nicolas Williams" <Nicolas.Williams@wdr.com>, "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
Cc: <gcc-bugs@gcc.gnu.org>, <law@cygnus.com>
Subject: RE: Solaris 8 64-bit C compilation fails to add .register declaration
Date: Tue, 11 Jan 2000 12:06:00 -0000
Message-id: <000101bf5c6f$3df365f0$aa87d280@vic2.cc.purdue.edu>
References: <20000111113835.X888@wdr.com>
X-SW-Source: 2000-01/msg00277.html
Content-length: 1650

Nicolas,

You write:
>
> On Tue, Jan 11, 2000 at 02:07:53AM +0100, Martin v. Loewis wrote:
> > > I believe this non-emission constitutes a bug.
> > 
> > Thanks for your bug report. This is a bug, indeed. It is not the only
> > one.
> > 
> > > I found instructions for building a 64-bit-capable GCC for Solaris 8
> > > on UltraSPARCs
> > 
> > Don't follow such instructions. They mislead you by giving the
> > impression that gcc supports sparcv9 (aka sparc64). It does not. Don't
> > use gcc on that architecture, at least not in 64-bit mode. It is not
> > supported, and has numerous bugs.
> > 
> > Regards,
> > Martin
> > 
> > P.S. If I only could get the FAQ-o-matic to work for me again, so I
> > could add this to the FAQ...
> 
> Thanks for your quick reply.
> 
> Note also that the LSOF FAQ for LSOF 4.47_W provides some instructions
> for building GCC for building 64-bit UltraSPARC binaries.
> 
> Between the changlogs for GCC 2.95.2, the LSOF FAQ and the instructions
> I found on Usenet I came to believe that this was doable.
> 
> I guess the GCC and LSOF FAQs need updating then.
> 
> Thanks,
> 
> Nico
> 
> PS: Note I'm CC'ing this mail to LSOF's maintainer, Vic Abell <abe@purdue.edu>.

As of the lsof 4.47 release, I had built 64 bit gcc's for gcc
versions 2.95, 2.95.1, 2.95.2, and 2.96.  I then used each one to
build an lsof binary; all lsof binaries worked.  That's the most
I can say for the effort; that's the most the lsof FAQ says; and
I defer to experts who caution against using such a gcc for
anything else.

The lsof FAQ does recommend consulting gcc experts.  :-)

I'll add additional warnings to the FAQ.

Thanks,

Vic



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 2000-01-11  9:02 Letcher, Wayne
  0 siblings, 0 replies; 387+ messages in thread
From: Letcher, Wayne @ 2000-01-11  9:02 UTC (permalink / raw)
  To: 'egcs-bugs@egcs.cygnus.com'

[-- Attachment #1: Type: text/plain, Size: 1483 bytes --]

Hi.  I work for Computing Devices Canada, in Ottawa Canada.  I came across
an internal compiler error that I was instructed to send to you.

Our application is being developed on Solaris2.5.6, and our C++ code is
being compiled against the header files included with the Tornado2
appilcation, supplied by VxWorks.  Tornado2 uses the following compiler:

cygnus-2.7.2-960126 ecgs-971225 tornado 2.0

The actual text error can be found in the attached file "error.out".

Our code is ultimately going to be executed under the VxWorks operating
system, on a Power PC 6750


The file that produces the compile error is CInterface.cpp (we did not try
and 'build' this file, but rather compiled it, by itself).
All other files (so far) have compiled successfully, using similar functions
and system calls.
Our trouble shooting produce inconsistent results, and could not pin-point a
coding error.

Attached are the files are the files that you might need to troubleshoot the
problem.  The files that get inlcuded in the CInterface.cpp class have
already been compiled, successfully, prior to our new problem.

Feel free to contact me for any questions you might have.  Thanks.

 <<CClientSocket.cpp>>  <<CClientSocket.h>>  <<CInterface.cpp>>  
<<CInterface.h>>  <<CMsgLog.cpp>>  <<CMsgLog.h>>  <<CServerSocket.cpp>>  
<<CServerSocket.h>>  <<CSocket.cpp>>  <<CSocket.h>>  <<error.out>>  
<<LOCATORconstants.h>>  <<LOCATORmessages.h>> 


Wayne Letcher
wayne.letcher@cdott.com
(613) 596-7495


[-- Attachment #2: CClientSocket.cpp --]
[-- Type: text/x-c, Size: 11257 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CClientSocket.cpp
Project:		LOCATOR
Purpose:		C++ implementation for the LOCATOR CClientSocket class.
				This class provides the functionality for client sockets, which
				are the sockets used to reveice/send messages over an interface.
Release:		V1.0
Author:		Denis Dumas
Date:			03-Aug-1999
Modified:
*****************************************************************************/
#include "vxWorks.h"
#include "sockLib.h"
#include "inetLib.h"
#include "rtx/netdb.h"
#include "string.h"
#include "errno.h"

#include "LOCATORconstants.h"
#include "CClientSocket.h"
#include "CMsgLog.h"

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::CClientSocket()
  Purpose:			Default constructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CClientSocket::CClientSocket()
{
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::~CClientSocket()
  Purpose:			Default destructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CClientSocket::~CClientSocket()
{
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::Init()
  Purpose:			Initializes the client socket.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::Init()
{
	// Always call the CSocket::Init method.
	if ( CSocket::Init() != SUCCESS ) return ERROR_GENERAL;

	// Set the options for this client socket.
	if ( SetOpts() != SUCCESS ) return ERROR_GENERAL;

	// All ok at this point.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::Init ( int )
  Purpose:			Initializes the client socket.
  Parameters In:	A valid socket file descriptor.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::Init ( const int pSocketDescriptor )
{
	// Always call the CSocket::Init method.
	if ( CSocket::Init ( pSocketDescriptor ) != SUCCESS ) return ERROR_GENERAL;

	// Set the options for this client socket.
	if ( SetOpts() != SUCCESS ) return ERROR_GENERAL;

	// All ok at this point.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::Connect()
  Purpose:			Attempts to connect to the interface terminal.
  Parameters In:	pTerminalName - IP address string of terminal process in
							dotted-decimal notation, or "localhost" to point to the
							loopback interface.
						pTerminalPort - port number for connection.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion,
						ERROR_CONNECTION_REFUSED if connection refused,
						ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::Connect ( const char * const pTerminalName,
									  const unsigned short pTerminalPort )
{
	const char * const lMethod = "CClientSocket::Connect()";
	struct sockaddr_in lSockaddr;
	struct hostent *lHostStruct;
	int lNumberOfPeriods, lStatus;
	char *lNextChar;
	bool lIsIPaddress;

	// At this point the socket should be initialized.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "socket not initialized yet" );
		gMsg.Log ( "port number", pTerminalPort );
		gMsg.Log ( "terminal name", pTerminalName );
		return ERROR_GENERAL;
	}

	// See if this is a "dotted-decimal" IP address by counting the
	// number of periods in the string. There should be 3 periods.
	lNumberOfPeriods = 0;
	lNextChar = (char *) pTerminalName;
	while ( ( lNextChar = strchr ( lNextChar, '.' ) ) != NULL )
	{
		lNumberOfPeriods++;
		lNextChar++;
	}
	lIsIPaddress = ( lNumberOfPeriods == 3 ? true : false );

	// Initialize the socket address structure.
	memset ( &lSockaddr, 0, sizeof ( lSockaddr ) );
	lSockaddr.sin_family = AF_INET;
	lSockaddr.sin_port = htons ( (unsigned short) pTerminalPort );

	// Get the host name...
	if ( lIsIPaddress )
		lSockaddr.sin_addr.s_addr = inet_addr ( pTerminalName );
	else
	{
		lHostStruct = gethostbyname ( /*(char *) pTerminalName*/ );
		if ( lHostStruct == NULL )
		{
			gMsg.Log ( lMethod, "gethostbyname error" );
			gMsg.Log ( "errno error", strerror ( errno ) );
			gMsg.Log ( "terminal name", pTerminalName );
			gMsg.Log ( "port number", pTerminalPort );
			return ERROR_GENERAL;
		}
		memcpy ( &lSockaddr.sin_addr, lHostStruct->h_addr,
					lHostStruct->h_length );
	}

	// Now try to connect to the host server.
	lStatus = connect ( cSocketDescriptor, (struct sockaddr *) &lSockaddr,
							  sizeof ( lSockaddr ) );
	if ( lStatus < 0 )
	{
		gMsg.Log ( lMethod, "connect error" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		gMsg.Log ( "terminal name", pTerminalName );
		gMsg.Log ( "port number", pTerminalPort );
		if ( errno == ECONNREFUSED ) return ERROR_CONNECTION_REFUSED;
		return ERROR_GENERAL;
	}

	// The connection was established...
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::SetOpts()
  Purpose:			Sets options for this client socket.
  Parameters In:	none.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::SetOpts()
{
	const char * const lMethod = "CClientSocket::SetOpts()";
	int lStatus;
	const int lBufSize = SOBUFSIZE;

	// Set the receive and send buffer sizes. The system default size is
	// 4096 bytes, and the maximum size is 1Mbyte.
	lStatus = setsockopt ( cSocketDescriptor, SOL_SOCKET, SO_RCVBUF,
								  (char *) &lBufSize, sizeof ( int ) );
	if ( lStatus < 0 )
	{
		gMsg.Log ( lMethod, "setsockopt (SO_RCVBUF) error" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}
	lStatus = setsockopt ( cSocketDescriptor, SOL_SOCKET, SO_SNDBUF,
								  (char *) &lBufSize, sizeof ( int ) );
	if ( lStatus < 0 )
	{
		gMsg.Log ( lMethod, "setsockopt (SO_SNDBUF) error" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}

	// All is ok at this point.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::CheckClientSocket()
  Purpose:			Calls CheckSocket from the CSocket class to check the socket
						for data and errors, then peeks at the socket data if there
						is supposed to be some. This checks for a closed connection.
  Parameters In:	pHasData - pointer to boolean.
  Parameters Out:	pHasData - Set to true if there is data in the socket,
									  otherwise set to false.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::CheckClientSocket ( bool * const pHasData )
{
	const char * const lMethod = "CClientSocket::CheckClientSocket()";
	int lNbytes, lStatus;
	char lPeekChar[5];

	// First call the CSocket::CheckSocket to perform the basic checks.
	lStatus = CheckSocket ( pHasData );
	if ( lStatus != SUCCESS ) return lStatus;

	// Now if there is data in the socket peek at it. If this call returns
	// without an error and with 0 bytes read, the terminal has closed the
	// connection.
	if ( *pHasData )
	{
		lNbytes = recv ( cSocketDescriptor, lPeekChar, 1, MSG_PEEK );
		if ( lNbytes < 0 )
		{
			gMsg.Log ( lMethod, "error during recv (MSG_PEEK)" );
			gMsg.Log ( "errno error", strerror ( errno ) );
			return ERROR_GENERAL;
		}
		else if ( lNbytes == 0 )
		{
			gMsg.Log ( lMethod, "terminal closed connection" );
			return ERROR_CONNECTION_CLOSED;
		}
	}

	// All is ok.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::Write()
  Purpose:			Writes data to the socket.
  Parameters In:	pBuffer - pointer to the data buffer.
						pBufferSize - number of bytes to write from buffer.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::Write ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "CClientSocket::Write()";
	ssize_t lNbytes;

	// Send the data.
	lNbytes = send ( cSocketDescriptor, (char *) pBuffer, pBufferSize, 0 );
	if ( lNbytes < 0 )
	{
		gMsg.Log ( lMethod, "error during send" );
		gMsg.Log ( "buffer length", pBufferSize );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}

	// Correct number of bytes sent?
	if ( lNbytes != pBufferSize )
	{
		gMsg.Log ( lMethod, "incorrect number of bytes sent on socket" );
		gMsg.Log ( "buffer length", pBufferSize );
		gMsg.Log ( "bytes sent", lNbytes );
		return ERROR_GENERAL;
	}

	// Successful completion.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CClientSocket::Read()
  Purpose:			Reads data from the socket.
  Parameters In:	pBuffer - pointer to the data buffer.
						pBufferSize - number of bytes to read into pBuffer.
  Parameters Out:	pBuffer - updated with data read from socket.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CClientSocket::Read ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "CClientSocket::Read()";
	ssize_t lNbytes;

	// Receive the message. Block until all data is read.
	lNbytes = recv ( cSocketDescriptor,
						  (char *) pBuffer, pBufferSize, MSG_WAITALL );
	if ( lNbytes < 0 )
	{
		gMsg.Log ( lMethod, "error during recv" );
		gMsg.Log ( "buffer length", pBufferSize );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}

	// If the number of bytes is 0 then the connection has been closed.
	if ( lNbytes == 0 )
	{
		gMsg.Log ( lMethod, "connection closed (0 bytes read)" );
		return ERROR_CONNECTION_CLOSED;
	}

	// Correct number of bytes read?
	if ( lNbytes != pBufferSize )
	{
		gMsg.Log ( lMethod, "incorrect number of bytes read" );
		gMsg.Log ( "buffer length", pBufferSize );
		gMsg.Log ( "bytes read", lNbytes );
		return ERROR_GENERAL;
	}

	// Successful completion.
	return SUCCESS;
}

[-- Attachment #3: CClientSocket.h --]
[-- Type: text/x-c++, Size: 1226 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CClientSocket.h
Project:		LOCATOR
Purpose:		C++ definition for the LOCATOR CClientSocket class.
				This class provides the functionality for client sockets, which
				are the sockets used to reveice/send messages over an interface.
Release:		V1.0
Author:		Denis Dumas
Date:			03-Aug-1999
Modified:
*****************************************************************************/

#ifndef __CCLIENTSOCKET_H__
#define __CCLIENTSOCKET_H__

#include "CSocket.h"

class CClientSocket : public CSocket
{

public :

	CClientSocket();
	virtual ~CClientSocket();
	int CheckClientSocket ( bool * const pHasData );
	int Connect ( const char * const pTerminalName,
					  const unsigned short pTerminalPort );
	int Init();
	int Init ( const int pSocketDescriptor );
	int Read ( void * pBuffer, const int pBufferSize );
	int Write ( void * pBuffer, const int pBufferSize );

private :

	int SetOpts();

};

#endif

[-- Attachment #4: CInterface.cpp --]
[-- Type: text/x-c, Size: 30571 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CInterface.cpp
Project:		LOCATOR
Purpose:		C++ implementation for the LOCATOR CInterface class.
				Base class for the LOCATOR interface objects.
				This class provides the lowest-level management of the interfaces.
Release:		V1.0
Author:		Denis Dumas
Date:			05-Aug-1999
Modified:
*****************************************************************************/
#include "vxWorks.h"
#include "string.h"
#include "new.h"
#include "stdlib.h"
#include "stdio.h"

#include "CInterface.h"
#include "CMsgLog.h"

/*---------------------------------------------------------------------------
  Method Name:		CInterface::CInterface()
  Purpose:			Default constructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CInterface::CInterface()
{
	// Initialize variables.
	cIsInitialized = false;
	cServer = NULL;
	cClient = NULL;
	cInterfaceMode = 0;
	cServerPort = 0;
	cTerminalPort = 0;
	cTerminalName[0] = '\0';
	cDerivedClassName[0] = '\0';
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::~CInterface()
  Purpose:			Default destructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CInterface::~CInterface()
{
	// Delete the socket objects.
	if ( cServer != NULL ) delete cServer;
	if ( cClient != NULL ) delete cClient;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::Init()
  Purpose:			Initalizes the interface by
						1) attempting to connect the client socket to the other end
							of this interface (the terminal);
						2) creating the server socket.
  Parameters In:	pDerivedClassName - derived class name string pointer.
						pServerPort - the port number for this server socket.
						pTerminalPort - the port number for the terminal server
											 socket (i.e. the server socket at the other
											 end of this interface).
						pTerminalHost - the host name for the terminal server
						socket (IP address or "localhost").
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::Init ( const char * const pDerivedClassName,
							  const unsigned short pServerPort,
							  const char * const pTerminalName,
							  const unsigned short pTerminalPort )
{
	const char * const lMethod = "Init()";
	char *lPortOffsetString;
	int lStatus;
	unsigned int lPortOffset;

	// Save the parameters to internal variables so that the InitServer
	// and InitClient methods can access them.
	// First check out the derived class name string.
	if ( pDerivedClassName == NULL )
	{
		gMsg.Log ( lMethod, "NULL derived class name" );
		return ERROR_GENERAL;
	}
	else if ( strlen ( pDerivedClassName ) >= sizeof ( cDerivedClassName ) )
	{
		gMsg.Log ( lMethod, "internal string too small for class name" );
		gMsg.Log ( "derived class name", pDerivedClassName );
		return ERROR_GENERAL;
	}
	strncpy ( cDerivedClassName, pDerivedClassName,
				 sizeof ( cDerivedClassName ) );

	// Check out the terminal name string.
	if ( pTerminalName == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "NULL terminal name" );
		return ERROR_GENERAL;
	}
	else if ( strlen ( pTerminalName ) >= sizeof ( cTerminalName ) )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "internal string too small for terminal name" );
		gMsg.Log ( "terminal name", pTerminalName );
		return ERROR_GENERAL;
	}
	strncpy ( cTerminalName, pTerminalName, sizeof ( cTerminalName ) );

	// Search the environment list for the port offset variable.
	lPortOffsetString = getenv ( "LOCATOR_PORT_OFFSET" );
	if ( lPortOffsetString == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "Cannot find environment variable LOCATOR_PORT_OFFSET" );
		return ERROR_GENERAL;
	}
	lStatus = sscanf ( lPortOffsetString, "%u", &lPortOffset );
	if ( lStatus != 1 )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "Error reading environment variable LOCATOR_PORT_OFFSET");
		return ERROR_GENERAL;
	}	

	// Ports below 1024 are reserved for system services.
	cServerPort = pServerPort + lPortOffset;
	if ( cServerPort < 1024U )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "invalid server port" );
		gMsg.Log ( "server port number", cServerPort );
		return ERROR_GENERAL;
	}
	cTerminalPort = pTerminalPort + lPortOffset;
	if ( cTerminalPort < 1024U )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "invalid terminal port" );
		gMsg.Log ( "terminal port number", cTerminalPort );
		return ERROR_GENERAL;
	}

	// Initialize the server socket. This puts the interface in server mode.
	if ( InitServer() != SUCCESS ) return ERROR_GENERAL;

	// Initialize the client socket. This puts the interface in duplex mode,
	// if the terminal was ready to accept the connection request.
	if ( InitClient() != SUCCESS ) return ERROR_GENERAL;

	// At this point all is OK.
	cIsInitialized = true;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::InitServer()
  Purpose:			Initializes the server socket and puts the interface in
						server mode.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::InitServer()
{
	const char * const lMethod = "InitServer()";
	static int lNumberOfCalls = 0;

	// Keep track of the number of calls. If we are re-initalizing the
	// server socket over and over then we have a problem.
	if ( ++lNumberOfCalls > 10 )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "re-initializing socket too often, quitting" );
		return ERROR_GENERAL;
	}

	// Close down the server socket.
	CloseServer();

	// Create the server socket.
	if	( CreateServer ( cServerPort ) != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "failed during call to CreateServer" );
		return ERROR_GENERAL;
	}

	// Everything worked. Put the interface in server mode.
	gMsg.Log ( cDerivedClassName, lMethod,
				  "server socket listening for connection request" );
	cInterfaceMode = SERVER_MODE;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::InitClient()
  Purpose:			Attempts to connect with the terminal and puts the interface
						in full duplex mode if successful.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::InitClient()
{
	const char * const lMethod = "InitClient()";
	int lStatus;
	static int lNumberOfCalls = 0;

	// Keep track of the number of calls. If we are re-initalizing the
	// client socket over and over then we have a problem.
	if ( ++lNumberOfCalls > 10 )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "re-initializing socket too often, quitting" );
		return ERROR_GENERAL;
	}

	// Close down the client socket
	CloseClient();

   // Next, attempt to connect with the terminal server.
	lStatus = ConnectWithTerminal ( cTerminalName, cTerminalPort );

	// Now the processing depends on the return status of the last call.
	switch ( lStatus )
	{
		// If we connect to the terminal we are now in duplex mode.
		case SUCCESS :
			gMsg.Log ( cDerivedClassName, lMethod,
						  "connection established with terminal" );
			cInterfaceMode = FULL_DUPLEX_MODE;
			break;

	  	// If this fails we have a serious problem.
		case ERROR_GENERAL :
			gMsg.Log ( cDerivedClassName, lMethod,
						  "failed during call to ConnectWithTerminal" );
			return ERROR_GENERAL;

  		// In this case the terminal is simply not up and running yet.
		case ERROR_CONNECTION_REFUSED :
			gMsg.Log ( cDerivedClassName, lMethod,
						  "connection refused by terminal" );
			break;

	  	// Catch all...
		default :
			gMsg.Log ( cDerivedClassName, lMethod,
						  "don't understand return code" );
			gMsg.Log ( "return code", lStatus );
			return ERROR_GENERAL;
	}

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ConnectWithTerminal()
  Purpose:			Attempts to connect the client socket to the interface
						terminal socket.
  Parameters In:	pTerminalName - IP address string of the terminal process,
											 or the string "localhost".
						pTerminalPort - port number of the terminal server socket.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion,
						ERROR_CONNECTION_REFUSED if connection refused,
						ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ConnectWithTerminal ( const char * const pTerminalName,
												  const unsigned short pTerminalPort )
{
	const char * const lMethod = "ConnectWithTerminal()";
	CClientSocket *lNewClient;
	int lStatus;

	// The client object cannot exist yet.
	if ( cClient != NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "client socket already exists" );
		return ERROR_GENERAL;
	}

	// Create a new client object and initialize it.
	lNewClient = new(nothrow) CClientSocket();
	if ( lNewClient == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "error allocating space for client object" );
		return ERROR_GENERAL;
	}
	if ( lNewClient -> Init() != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "failed during call to Init()" );
		delete lNewClient;
		return ERROR_GENERAL;
	}

	// Try to connect with the terminal server.
	lStatus = lNewClient -> Connect ( pTerminalName, pTerminalPort );
	if ( lStatus != SUCCESS )
	{
		if ( lStatus == ERROR_GENERAL )
			gMsg.Log ( cDerivedClassName, lMethod, "error during Connect call" );
		delete lNewClient;
		return lStatus;
	}

	// We have connected.
	cClient = lNewClient;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::CreateServer()
  Purpose:			Creates the server socket object.
  Parameters In:	pServerPort - port number of the server socket.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::CreateServer ( const unsigned short pServerPort )
{
	const char * const lMethod = "CreateServer()";
	CServerSocket *lNewServer;

	// The server socket should not exist yet...
	if ( cServer != NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "client socket object already exists" );
		return ERROR_GENERAL;
	}

	// The client socket should also not exist yet...
	if ( cClient != NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "client socket object already exists" );
		return ERROR_GENERAL;
	}

	// Create the socket object and initialize it.
	lNewServer = new(nothrow) CServerSocket();
	if ( lNewServer == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "cannot create socket object" );
		return ERROR_GENERAL;
	}
	if ( lNewServer -> Init() != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "failed during call to Init()" );
		delete lNewServer;
		return ERROR_GENERAL;
	}

	// Bind this socket to the desired port.
   if ( lNewServer -> Bind ( pServerPort ) != SUCCESS )
   {
		gMsg.Log ( cDerivedClassName, lMethod, "cannot bind socket" );
      delete lNewServer;
      return ERROR_GENERAL;
   }

   // Now create the queue to accept connection requests.
   if ( lNewServer -> Listen() != SUCCESS )
   {
		gMsg.Log ( cDerivedClassName, lMethod, "cannot listen on socket" );
		delete lNewServer;
      return ERROR_GENERAL;
   }

	// All ok. We now have a server socket waiting for connection requests.
	cServer = lNewServer;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::Service()
  Purpose:			Services this interface. Checks for data if the client socket
						exists, otherwise checks for a connection request.
  Parameters In:	pBuffer - pointer to message buffer. A NULL pointer will
									 result in a call to the SelectBuffer method to
									 allow the drived class to select a buffer based on
									 the contents of the message header.
						pBufferSize - size of message buffer in bytes.
  Parameters Out:	pBuffer - updated with message data if not NULL and a
									 message was received over this interface.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::Service ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "Service()";

	// The processing depends on the mode of the interface.
	switch ( cInterfaceMode )
	{
		// In full duplex mode we service the client socket.
		case FULL_DUPLEX_MODE :
			return ServiceClient ( pBuffer, pBufferSize );

		// In this mode check for a connection request.
		case SERVER_MODE :
			return ServiceServer();

		// Anything else we don't understand...
		default :
			gMsg.Log ( cDerivedClassName, lMethod, "don't understand this mode" );
			gMsg.Log ( "interface mode", cInterfaceMode );
			return ERROR_GENERAL;
	}

	// Control never reaches here but the compiler isn't smart enough to tell!
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ServiceClient()
  Purpose:			Checks for incoming data via the client socket, and controls
						the reading and processing of the data.
  Parameters In:	pBuffer - pointer to message buffer. A NULL pointer will
									 result in a call to the SelectBuffer method to
									 allow the drived class to select a buffer based on
									 the contents of the message header.
						pBufferSize - size of message buffer in bytes.
  Parameters Out:	pBuffer - updated with message data if not NULL and a
									 message was received over this interface.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ServiceClient ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "ServiceClient()";
	bool lHasData;
	int lStatus, lBufferSize, lBufferAddress;
	char *lBuffer;

	// First check that the client object exists.
	if ( cClient == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "the client object does not exist" );
		return ERROR_GENERAL;
	}

	// Now check the socket for data.
	lStatus = cClient -> CheckClientSocket ( &lHasData );

	// If the connection closed down simply switch to server mode.
	// If the process at the terminal end has crashed it will get
	// re-started and will want to establish the connection again.
	if ( lStatus == ERROR_CONNECTION_CLOSED )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "connection closed, switching to server mode" );
		CloseClient();
		cInterfaceMode = SERVER_MODE;
		return SUCCESS;
	}

	// If any other error occured try to re-initialize the client.
	else if ( lStatus != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "error on client socket, re-initializing" );
		return InitClient();
	}

	// If there is data then read it and handle errors...
	if ( lHasData )
	{
		lBufferAddress = (int) pBuffer;
		lBufferSize = (int) pBufferSize;
		lStatus = ReceiveMessage ( &lBufferAddress, &lBufferSize );

		// If the connection closed down simply switch to server mode.
		// If the process at the terminal end has crashed it will get
		// re-started and will want to establish the connection again.
		if ( lStatus == ERROR_CONNECTION_CLOSED )
		{
			gMsg.Log ( cDerivedClassName, lMethod,
						  "connection closed, switching to server mode" );
			CloseClient();
			cInterfaceMode = SERVER_MODE;
			return SUCCESS;
		}

		// If any other error occured try to re-initialize the client.
		else if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod,
						  "error receiving message, re-initializing" );
			return InitClient();
		}

		// If pBuffer was NULL on entry, the derived class was called during
		// the ReceiveMessage operation to set the buffer address. This was
		// then returned in lBufferAddress so that we can pass it on to the
		// ProcessMessage method for processing...
		lBuffer = (char *) lBufferAddress;
		return ProcessMessage ( lBuffer, lBufferSize );
	}

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ServiceServer()
  Purpose:			Checks for a connection request, and puts the interface
						in full duplex mode when one comes in.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ServiceServer()
{
	const char * const lMethod = "ServiceServer()";
	bool lHasData;
	int lStatus;
	CClientSocket *lClient;

	// First check that the server object exists.
	if ( cServer == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "the server object does not exist" );
		return ERROR_GENERAL;
	}

	// Now check the socket for data.
	// If an error occured attempt to re-initialize the socket.
	lStatus = cServer -> CheckServerSocket ( &lHasData );
	if ( lStatus != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "error on server socket, re-initializing" );
		return InitServer();
	}

	// If there is data we have a connection request from a client. Accept it.
	if ( lHasData )
	{
		lClient = cServer -> Accept();
		if ( lClient == NULL )
		{
			gMsg.Log ( cDerivedClassName, lMethod,
						  "error on server socket, re-initializing" );
			return InitServer();
		}

		// Successful connection request. Convert to full duplex interface.
		gMsg.Log ( cDerivedClassName, lMethod, "successful connection request" );
		cClient = lClient;
		cInterfaceMode = FULL_DUPLEX_MODE;
	}

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ReceiveMessage()
  Purpose:			Controls the receiving of messages.
  Parameters In:	pBufferAddress - pointer to message buffer.
							A NULL pointer will result in a call to the SelectBuffer
							method to allow the drived class to select a buffer
							based on the contents of the message header.
						pBufferSize - pointer to size of message buffer in bytes.
  Parameters Out:	pBufferAddress - updated with message data if not NULL and a
							message was received over this interface.
							If NULL also returned with selected buffer address.
						pBufferSize - returned with selected buffer size if pBuffer
							was NULL on input.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ReceiveMessage ( int *pBufferAddress, int *pBufferSize )
{
	const char * const lMethod = "ReceiveMessage()";
	int lStatus;
	const int lHeaderSize = sizeof ( SLocatorMessageHeader );
	SLocatorMessageHeader lHeaderBuffer;
	char *lBuffer;

	// If the message buffer address is not NULL we want to
	// read the header and body into the same buffer.
	lBuffer = (char *) *pBufferAddress;
	if ( lBuffer != NULL )
	{
		lStatus = ReceiveMessageHeader ( lBuffer, *pBufferSize );
		if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod, "error receiving header (1)" );
			return lStatus;
		}
		lStatus = ReceiveMessageBody ( lBuffer, *pBufferSize );
		if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod, "error receiving body (1)" );
			return lStatus;
		}
	}

	// If the message buffer address is NULL we want to let the derived class
	// select the buffer based on the header info. To do this we need to do
	// some shuffling of the header...
	else
	{
		lStatus = ReceiveMessageHeader ( &lHeaderBuffer, lHeaderSize );
		if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod, "error receiving header (2)" );
			return lStatus;
		}

		// Now call the derived class' method to select the buffer.
		lStatus = SelectBuffer ( &lHeaderBuffer, pBufferAddress, pBufferSize );
		if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod,
						  "error selecting message buffer" );
			return lStatus;
		}

		// In the previous call the derived class returned the buffer address.
		// Now move the header to this buffer.
		if ( *pBufferSize < lHeaderSize )
		{
			gMsg.Log ( cDerivedClassName, lMethod,
						  "buffer too small for header" );
			gMsg.Log ( "buffer size", *pBufferSize );
			return ERROR_GENERAL;
		}
		lBuffer = (char *) *pBufferAddress;
		memcpy ( lBuffer, (char *) &lHeaderBuffer, lHeaderSize );

		// Now read in the message body.
		lStatus = ReceiveMessageBody ( lBuffer, *pBufferSize );
		if ( lStatus != SUCCESS )
		{
			gMsg.Log ( cDerivedClassName, lMethod, "error receiving body (2)" );
			return lStatus;
		}
	}

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ReceiveMessageHeader()
  Purpose:			Reads the message header.
  Parameters In:	pBuffer - pointer to the buffer.
						pBufferSize - size of the buffer in bytes.
  Parameters Out:	pBuffer - updated with the received message header.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ReceiveMessageHeader ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "ReceiveMessageHeader()";
	int lStatus;
	const int lHeaderSize = sizeof ( SLocatorMessageHeader );

	// Make sure the buffer size is adequate.
	if ( pBufferSize < lHeaderSize )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "buffer too small for header" );
		gMsg.Log ( "buffer size", pBufferSize );
		gMsg.Log ( "header size", lHeaderSize );
		return ERROR_GENERAL;
	}

	// Read in the header.
	lStatus = cClient -> Read ( pBuffer, lHeaderSize );
	if ( lStatus != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "error reading header" );
		return lStatus;
	}

	// All done.
	return SUCCESS;	
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::ReceiveMessageBody()
  Purpose:			Reads the message body. This method assumes that the header
						has already been read into the buffer.
  Parameters In:	pBuffer - pointer to the beginning of the buffer, which
									 starts with the header.
						pBufferSize - size of the buffer in bytes.
  Parameters Out:	pBuffer - updated with the received message body.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::ReceiveMessageBody ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "ReceiveMessageBody()";
	int lStatus, lMessageLength;
	char *lMessageBody;
	SLocatorMessageHeader *lHeader;
	const int lHeaderSize = sizeof ( SLocatorMessageHeader );

	// If there is no data in the message body we are done.
	lHeader = (SLocatorMessageHeader *) pBuffer;
	if ( lHeader->dataLength == 0 ) return SUCCESS;

	// Check that there is enough room in the buffer for this data.
	lMessageLength = lHeaderSize + lHeader->dataLength;
	if ( pBufferSize < lMessageLength )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
					  "buffer too small for full message" );
		gMsg.Log ( "buffer size", pBufferSize );
		gMsg.Log ( "message length", lMessageLength );
		return ERROR_GENERAL;
	}

	// Read in the data.
	lMessageBody = (char *) pBuffer;
	lMessageBody += lHeaderSize;
	lStatus = cClient -> Read ( lMessageBody, lHeader->dataLength );
	if ( lStatus != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "error reading message body" );
		return lStatus;
	}

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::SendMessage()
  Purpose:			Sends a message over the client socket.
  Parameters In:	pBuffer - pointer to the beginning of the buffer, which
									 starts with the header.
						pBufferSize - size of the buffer in bytes.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::SendMessage ( void * pBuffer, const int pBufferSize )
{
	const char * const lMethod = "SendMessage()";
	int lMessageSize, lStatus;
	const int lHeaderSize = sizeof ( SLocatorMessageHeader );
	SLocatorMessageHeader *lHeader;

	// There should be a client object here.
	if ( cClient == NULL )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "client object not initialized" );
		return ERROR_GENERAL;
	}

	// Check the length.
	lHeader = (SLocatorMessageHeader *) pBuffer;
	lMessageSize = lHeaderSize + lHeader->dataLength;
	if ( pBufferSize < lMessageSize )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "message larger than buffer??" );
		gMsg.Log ( "buffer size", pBufferSize );
		gMsg.Log ( "message length", lMessageSize );
		return ERROR_GENERAL;
	}

	// Now send the message.
	lStatus = cClient -> Write ( pBuffer, lMessageSize );
	if ( lStatus != SUCCESS )
	{
		gMsg.Log ( cDerivedClassName, lMethod, "error during call to Write" );
		return lStatus;
	}

	// All is ok at this point...
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::Setfds()
  Purpose:			Calls the Setfds for the client or server socket of this
						interface, based in the interface mode.
  Parameters In:	pReadSet - pointer to the read set to update.
  Parameters Out:	pReadSet - updated with the bit for this socket.
						pMaxfd - updated with fd for this socket if larger
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CInterface::Setfds ( fd_set * const pReadSet, int * pMaxfd )
{
	const char * const lMethod = "Setfds()";

	switch ( cInterfaceMode )
	{
		// Make sure the client object exists.
		case FULL_DUPLEX_MODE :
			if ( cClient == NULL )
			{
				gMsg.Log ( cDerivedClassName, lMethod,
							  "the client object does not exist" );
				return;
			}
			cClient -> Setfds ( pReadSet, pMaxfd );
			break;

		// Make sure the server object exists.
		case SERVER_MODE :
			if ( cServer == NULL )
			{
				gMsg.Log ( cDerivedClassName, lMethod,
							  "the server object does not exist" );
				return;
			}
			cServer -> Setfds ( pReadSet, pMaxfd );
			break;

		// Don't recognize mode...
		default :
			gMsg.Log ( cDerivedClassName, lMethod, "don't recognize mode" );
			gMsg.Log ( "interface mode", cInterfaceMode );
			break;
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::CloseServer()
  Purpose:			Closes the server socket.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CInterface::CloseServer()
{
	if ( cServer != NULL ) delete cServer;
	cServer = NULL;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::CloseClient()
  Purpose:			Closes the client socket.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CInterface::CloseClient()
{
	if ( cClient != NULL ) delete cClient;
	cClient = NULL;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::IsInFullDuplexMode()
  Purpose:			Checks to see if the interface is in duplex mode.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	true if in duplex mode, false otherwise
  Notes:				None.
  ---------------------------------------------------------------------------*/

bool CInterface::IsInFullDuplexMode()
{
	const char * const lMethod = "CInterface::IsInFullDuplexMode()";

	// Make sure the interface is initialized.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "interface class not initialized yet" );
		return false;
	}

	// Check the mode.
	if ( cInterfaceMode == FULL_DUPLEX_MODE )
		return true;
	else
		return false;
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::GetClientfd()
  Purpose:			Returns the client file descriptor for this interface.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	file descriptor if successful, otherwise -1
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CInterface::GetClientfd()
{
	const char * const lMethod = "GetClientfd()";

	// The client socket does not exist if we are not in full duplex mode.
	if ( cInterfaceMode != FULL_DUPLEX_MODE )
	{
		gMsg.Log ( cDerivedClassName, lMethod,
			"the interface must be in full duplex mode" );
		return -1;
	}
	return cClient -> Getfd();
}

/*---------------------------------------------------------------------------
  Method Name:		CInterface::Close()
  Purpose:			Indirectly closes Server and Client objects.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				Allows the explicit closing of the interface connection.
  ---------------------------------------------------------------------------*/

void CInterface::Close()
{	
	CloseClient();
	CloseServer();
}

[-- Attachment #5: CInterface.h --]
[-- Type: text/x-c++, Size: 2606 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CInterface.h
Project:		LOCATOR
Purpose:		C++ definition for the LOCATOR CInterface class.
				Base class for the LOCATOR interface objects.
				This class provides the lowest-level management of the interfaces.
Release:		V1.0
Author:		Denis Dumas
Date:			05-Aug-1999
Modified:
*****************************************************************************/

#ifndef __CINTERFACE_H__
#define __CINTERFACE_H__

#include "LOCATORconstants.h"
#include "LOCATORmessages.h"
#include "CServerSocket.h"
#include "CClientSocket.h"

class CInterface
{

public :

	int GetClientfd();
	bool IsInFullDuplexMode();
	int Init ( const char * const pClassName,
				  const unsigned short pServerPort,
				  const char * const pTerminalName,
				  const unsigned short pTerminalPort );
	int SendMessage ( void * pBuffer, const int pBufferSize );
	int Service ( void * pBuffer, const int pBufferSize );
	void Setfds ( fd_set * const pReadSet, int * pMaxfd );
	void Close(void);

protected :

	bool cIsInitialized;				// instance initialization flag
	CClientSocket *cClient;			// client socket object
	CServerSocket *cServer;			// server socket object

	CInterface();
	virtual ~CInterface();
	virtual int ProcessMessage ( void * pBuffer, const int pBufferSize ) = 0;
	virtual int SelectBuffer ( const SLocatorMessageHeader * const pHeader,
		int * pBufferAddress, int * pBufferSize ) { return ERROR_GENERAL; }

private :

	int cInterfaceMode;				// mode of interface (duplex or server)
	unsigned short cServerPort;	// server socket port number at this end
	unsigned short cTerminalPort;	// server socket port number at terminal
	char cDerivedClassName[80];	// derived class name string
	char cTerminalName[20];			// terminal host name ("localhost" or IP add)

	void CloseClient();
	void CloseServer();
	int ConnectWithTerminal ( const char * const pTerminalName,
									  const unsigned short pTerminalPort );
	int CreateServer ( const unsigned short pServerPort );
	int InitClient();
	int InitServer();
	int ReceiveMessage ( int *pBufferAddress, int *pBufferSize );
	int ReceiveMessageBody ( void * pBuffer, const int pBufferSize );
	int ReceiveMessageHeader ( void * pBuffer, const int pBufferSize );
	int ServiceClient ( void * pBuffer, const int pBufferSize );
	int ServiceServer();

};

#endif

[-- Attachment #6: CMsgLog.cpp --]
[-- Type: text/x-c, Size: 10999 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CMsgLog.cpp
Project:		LOCATOR
Purpose:		C++ implementation for the LOCATOR CMsgLog class.
				This class logs messages to a disk file via stderr.
Release:		V1.0
Author:		Denis Dumas
Date:			30-Jul-1999
Modified:
*****************************************************************************/
#include "vxWorks.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "string.h"

#include "LOCATORconstants.h"
#include "CMsgLog.h"

// This is not the best thing to do, but the <time.h> file is a mess...
//extern "C" char * ctime_r ( const time_t *, char *, int );

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::CMsgLog()
  Purpose:			Default constructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CMsgLog::CMsgLog()
{
	// Initialize variables.
	cIsInitialized = false;
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::~CMsgLog()
  Purpose:			Default destructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CMsgLog::~CMsgLog()
{
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Init()
  Purpose:			Initializes the CMsgLog object by redirecting stderr to a
						log file. The directory is defined in an environment var.
  Parameters In:	pDir - character string giving the name of the
								 environment var defining the log directory.
						pFileName - character string defining the log file name.
  Parameters Out:	None.
  Return Values:	SUCCESS if file creation succeeded, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CMsgLog::Init ( const char * const pDir, const char * const pFileName )
{
	char *lDisk;

	// Search the environment list for the log disk variable.
	lDisk = pDir;

	// Redirect the standard error stream to a log file.
	// If this fails print to stdout since stderr willl have been closed!
	sprintf ( cLogFileName,  "%s/%s", lDisk, pFileName );
	if ( freopen ( cLogFileName, "w", stderr ) == NULL )
	{
		printf ( "Process failed to redirect stderr.\n" );
		printf ( "Log file name '%s'.\n", cLogFileName );
		return ERROR_GENERAL;
	}

	// At this point everything worked.
	cIsInitialized = true;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr1 - character string 1, class name
						pStr2 - character string 2, method name
						pStr3 - character string 3, message
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr1, const char * const pStr2,
						  const char * const pStr3 )
{
	char lMethod[80];

	if ( GenTime() )
	{
		sprintf ( lMethod, "%s::%s", pStr1, pStr2 );
		FillFirstField ( lMethod );
		fprintf ( stderr, "%s %s\n", cFirstField, pStr3 );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr1 - character string 1
						pStr2 - character string 2
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr1, const char * const pStr2 )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr1 );
		fprintf ( stderr, "%s %s\n", cFirstField, pStr2 );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pUdata - unsigned long data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const unsigned long pUdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %lu\n", cFirstField, pUdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pUdata - unsigned int data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const unsigned int pUdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %u\n", cFirstField, pUdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pUdata - unsigned short data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const unsigned short pUdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %u\n", cFirstField, pUdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pIdata - short int data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const short pIdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %d\n", cFirstField, pIdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pIdata - int data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const int pIdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %d\n", cFirstField, pIdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pIdata - long int data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const long pIdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %ld\n", cFirstField, pIdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pFdata - float data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const float pFdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %.2f\n", cFirstField, pFdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::Log()
  Purpose:			Logs information to the process log file with a time stamp.
  Parameters In:	pStr   - character string describing next parameter
						pFdata - double data
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::Log ( const char * const pStr, const double pFdata )
{
	if ( GenTime() )
	{
		FillFirstField ( pStr );
		fprintf ( stderr, "%s %.2f\n", cFirstField, pFdata );
		fflush ( stderr );
	}
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::GenTime()
  Purpose:			Generates the time string and writes it to the log file.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	true if ok, false otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

bool CMsgLog::GenTime()
{
	time_t lClock;
	unsigned int lTimeStrLen = sizeof ( cTimeString );

	// Don't do anything if the log file not initialized.
	if ( !cIsInitialized )
	{
		printf ( "Log file '%s' not initialized.\n", cLogFileName );
		return false;
	}

	// Generate the time string for the current time and write it to stderr.
	time ( &lClock );
	ctime_r ( &lClock, cTimeString, &lTimeStrLen );
	cTimeString [ 24 ] = '\0';
	fprintf ( stderr, "%s  ", cTimeString );
	return true;
}

/*---------------------------------------------------------------------------
  Method Name:		CMsgLog::FillFirstField()
  Purpose:			Fills cFirstField with '.' and NULL terminates it.
  Parameters In:	pStr - the string to write into cFirstField.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

void CMsgLog::FillFirstField ( const char * const pStr )
{
	int lPos;

	// First write in the input string.
	sprintf ( cFirstField, "%s", pStr );

	// Then fill the remainder of the string with periods (overwrite the \0)
	lPos = strlen ( pStr );
	lPos = ( lPos < (int) sizeof ( cFirstField ) ? lPos : -1 );
	if ( lPos > 0 )
	{
		memset ( & cFirstField [ lPos ], '.', sizeof ( cFirstField ) - lPos );
		cFirstField [ sizeof ( cFirstField ) - 1 ] = '\0';
	}
}

[-- Attachment #7: CMsgLog.h --]
[-- Type: text/x-c++, Size: 1790 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CMsgLog.h
Project:		LOCATOR
Purpose:		C++ definition for the LOCATOR CMsgLog class.
				Define a global variable Msg in the main module, and an extern
				in all other modules which include this file.
Release:		V1.0
Author:		Denis Dumas
Date:			30-Jul-1999
Modified:
*****************************************************************************/

#ifndef __CMSGLOG_H__
#define __CMSGLOG_H__

class CMsgLog
{

public :

	CMsgLog();
	virtual ~CMsgLog();
	int Init ( const char * const pDir, const char * const pFileName );
	void Log ( const char * const pStr1, const char * const pStr2,
				  const char * const pStr3 );
	void Log ( const char * const pStr1, const char * const pStr2 );
	void Log ( const char * const pStr, const short pIdata );
	void Log ( const char * const pStr, const int pIdata );
	void Log ( const char * const pStr, const long pIdata );
	void Log ( const char * const pStr, const float pFdata );
	void Log ( const char * const pStr, const double pFdata );
	void Log ( const char * const pStr, const unsigned short pUdata );
	void Log ( const char * const pStr, const unsigned int pUdata );
	void Log ( const char * const pStr, const unsigned long pUdata );

private :

	char cTimeString[30], cLogFileName[100], cFirstField[60];
	bool cIsInitialized;

	bool GenTime();
	void FillFirstField ( const char * const pStr );

};

// Define the global message log object here.

#ifdef __MAIN__
CMsgLog gMsg;
#else
extern CMsgLog gMsg;
#endif

#endif

[-- Attachment #8: CServerSocket.cpp --]
[-- Type: text/x-c, Size: 6950 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CServerSocket.cpp
Project:		LOCATOR
Purpose:		C++ implementation for the LOCATOR CServerSocket class.
				This class provides the functionality for server sockets, which
				are the sockets a process listens on for connection requests.
Release:		V1.0
Author:		Denis Dumas
Date:			04-Aug-1999
Modified:
*****************************************************************************/
#include "vxWorks.h"
#include "sockLib.h"
#include "unistd.h"
#include "inetLib.h"
#include "rtx/netdb.h"
#include "string.h"
#include "errno.h"
#include "new.h"

#include "LOCATORconstants.h"
#include "CMsgLog.h"
#include "CServerSocket.h"

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::CServerSocket()
  Purpose:			Default constructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CServerSocket::CServerSocket()
{
}

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::~CServerSocket()
  Purpose:			Default destructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CServerSocket::~CServerSocket()
{
}

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::CheckServerSocket()
  Purpose:			Calls CheckSocket from the CSocket class to check the
						socket for data (connection request) and errors.
  Parameters In:	pHasData - pointer to boolean.
  Parameters Out:	pHasData - Set to true if there is data in the socket,
									  otherwise set to false.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CServerSocket::CheckServerSocket ( bool * const pHasData )
{
	int lStatus;

	// Simply call the CSocket::CheckSocket to perform the basic checks.
	lStatus = CheckSocket ( pHasData );
	return lStatus;
}

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::Bind()
  Purpose:			Binds a socket to a port as a server socket.
  Parameters In:	pPort - port number to bind the socket to.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CServerSocket::Bind ( const unsigned short pPort )
{
	const char * const lMethod = "CServerSocket::Bind()";
	int lOptVal, lStatus;
	struct sockaddr_in lSockaddr;

	// At this point the socket should be initialized.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "socket not initialized yet" );
		gMsg.Log ( "port number", pPort );
		return ERROR_GENERAL;
	}

	// Initialize the server socket address structure
	memset ( &lSockaddr, 0, sizeof ( lSockaddr ) );
	lSockaddr.sin_family = AF_INET;
	lSockaddr.sin_addr.s_addr = htonl ( INADDR_ANY );
	lSockaddr.sin_port = htons ( (unsigned short) pPort );

	// Allow the socket to be reused if not in use but still "alive".
	// This is used since sockets linger in the TIME_WAIT state after a
	// program terminates, so the bind fails if we try to restart too soon.
	lOptVal = 1;
	lStatus = setsockopt ( cSocketDescriptor, SOL_SOCKET, SO_REUSEADDR,
								  (char *) &lOptVal, sizeof ( int ) );
	if ( lStatus < 0 )
	{
		gMsg.Log ( lMethod, "failed in setsockopt" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		gMsg.Log ( "port number", pPort );
		return ERROR_GENERAL;
	}

	// Bind the socket to its port.
	lStatus = bind ( cSocketDescriptor, (struct sockaddr *) &lSockaddr,
						  sizeof ( lSockaddr ) );
	if ( lStatus < 0 )
	{
		gMsg.Log ( lMethod, "error during call to bind" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		gMsg.Log ( "serverport", pPort );
		return ERROR_GENERAL;
	}

	// At this point all is OK.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::Listen()
  Purpose:			Creates a queue to accept up to NQRMAX connection requests.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CServerSocket::Listen()
{
	const char * const lMethod = "CServerSocket::Listen()";

	// At this point the socket should be initialized.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "socket not initialized yet" );
		return ERROR_GENERAL;
	}

	// Set the pending requests limit to NQRMAX. Some UNIX systems set
	// this limit internally to 5, even if we specify a number larger than 5.
	if ( listen ( cSocketDescriptor, NQRMAX ) < 0 )
	{
		gMsg.Log ( lMethod, "error during call to listen" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}

	// At this point all is OK.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CServerSocket::Accept()
  Purpose:			Accepts a connection request on this socket.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	A pointer to the new CClientSocket object on successful
						completion, NULL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CClientSocket * CServerSocket::Accept()
{
	const char * const lMethod = "CServerSocket::Accept()";
	int lNewSocketDescriptor;
	CClientSocket *lNewClient;

	// At this point the socket should be initialized.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "socket not initialized yet" );
		return NULL;
	}

	// Attempt to accept the connection request.
	lNewSocketDescriptor = accept ( cSocketDescriptor, NULL, NULL );
	if ( lNewSocketDescriptor < 0 )
	{
		gMsg.Log ( lMethod, "error during call to accept" );
		gMsg.Log ( "errno", strerror ( errno ) );
		return NULL;
	}

	// Create a new CClientSocket object and initialize it.
	lNewClient = new(nothrow) CClientSocket();
	if ( lNewClient == NULL )
	{
		gMsg.Log ( lMethod, "could not create new client object" );
		close ( lNewSocketDescriptor );
		return NULL;
	}
	if ( lNewClient -> Init ( lNewSocketDescriptor ) == ERROR_GENERAL )
	{
		gMsg.Log ( lMethod, "failed to initialize new socket object" );
		close ( lNewSocketDescriptor );
		delete lNewClient;
		return NULL;
	}

	// All OK at this point.
	return lNewClient;
}

[-- Attachment #9: CServerSocket.h --]
[-- Type: text/x-c++, Size: 1049 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CServerSocket.h
Project:		LOCATOR
Purpose:		C++ definition for the LOCATOR CServerSocket class.
				This class provides the functionality for server sockets, which
				are the sockets a process listens on for connection requests.
Release:		V1.0
Author:		Denis Dumas
Date:			04-Aug-1999
Modified:
*****************************************************************************/

#ifndef __CSERVERSOCKET_H__
#define __CSERVERSOCKET_H__

#include "CSocket.h"
#include "CClientSocket.h"

class CServerSocket : public CSocket
{

public :

	CServerSocket();
	virtual ~CServerSocket();
	int CheckServerSocket ( bool * const pHasData );
	CClientSocket * Accept();
	int Bind ( const unsigned short pPort );
	int Listen();

};

#endif

[-- Attachment #10: CSocket.cpp --]
[-- Type: text/x-c, Size: 7339 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CSocket.cpp
Project:		LOCATOR
Purpose:		C++ implementation for the LOCATOR CSocket class.
				Base class for the LOCATOR socket objects.
				This class provides the lowest-level management of the sockets.
Release:		V1.0
Author:		Denis Dumas
Date:			30-Jul-1999
Modified:
*****************************************************************************/
#include "vxWorks.h"
#include "sockLib.h"
#include "unistd.h"
#include "errno.h"
#include "string.h"

#include "LOCATORconstants.h"
#include "CMsgLog.h"
#include "CSocket.h"

/*---------------------------------------------------------------------------
  Method Name:		CSocket::CSocket()
  Purpose:			Default constructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CSocket::CSocket()
{
	// Initialize variables.
	cIsInitialized = false;
	cSocketDescriptor = -1;
}

/*---------------------------------------------------------------------------
  Method Name:		CSocket::~CSocket()
  Purpose:			Default destructor.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	None.
  Notes:				None.
  ---------------------------------------------------------------------------*/

CSocket::~CSocket()
{
	// Always close the socket.
	close ( cSocketDescriptor );
}

/*---------------------------------------------------------------------------
  Method Name:		CSocket::Init()
  Purpose:			Creates/initializes the socket.
  Parameters In:	None.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CSocket::Init()
{
	const char * const lMethod = "CSocket::Init()";

	// Create a connection-oriented socket.
	cSocketDescriptor = socket ( AF_INET, SOCK_STREAM, 0 );
	if ( cSocketDescriptor < 0 )
	{
		gMsg.Log ( lMethod, "failed to create socket" );
		gMsg.Log ( "errno error", strerror ( errno ) );
		return ERROR_GENERAL;
	}

	// Everything is OK at this point.
	cIsInitialized = true;
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CSocket::Init()
  Purpose:			Initializes the socket.
  Parameters In:	Valid socket file descriptor.
  Parameters Out:	None.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CSocket::Init ( const int pSocketDescriptor )
{
	const char * const lMethod = "CSocket::Init ( int )";
	bool lHasData;

	// At the very minimum the file descriptor should be positive.
	if ( pSocketDescriptor < 0 )
	{
		gMsg.Log ( lMethod, "invalid file descriptor on input" );
		gMsg.Log ( "file descriptor", pSocketDescriptor );
		return ERROR_GENERAL;
	}

	// Assume that the file descriptor is valid.
	cSocketDescriptor = pSocketDescriptor;
	cIsInitialized = true;

	// CheckSocket will detect if this is a valid file descriptor.
	if ( CheckSocket ( &lHasData ) != SUCCESS )
	{
		cIsInitialized = false;
		gMsg.Log ( lMethod, "something wrong with file descriptor" );
		return ERROR_GENERAL;
	}

	// At this point all is ok.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CSocket::CheckSocket()
  Purpose:			Checks the socket for activity or errors.
  Parameters In:	pHasData - pointer to boolean.
  Parameters Out:	pHasData - Set to true if there is data in the socket,
									  otherwise set to false.
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CSocket::CheckSocket ( bool * const pHasData )
{
	const char * const lMethod = "CSocket::CheckSocket";
	const int lNcallsMax = 10;
	int lActivity, lNcalls;
	bool lInterrupted;
	fd_set lReadSet, lErrorSet;
	struct timeval lTimeout;

	// The socket must be initialized at this point.
	*pHasData = false;
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "attempt to use socket before initialization" );
		return ERROR_GENERAL;
	}

	// Initialize the read and error descriptor sets to the null set, and add
	// this socket's file descriptor to these descriptor sets.
	FD_ZERO ( &lReadSet );
	FD_SET  ( cSocketDescriptor, &lReadSet );
	FD_ZERO ( &lErrorSet );
	FD_SET  ( cSocketDescriptor, &lErrorSet );

	// This is a poll to see if this socket is ready to read from, so
	// the timeout period has to be set to 0 (can't just use a NULL pointer).
	lTimeout.tv_sec = 0;
	lTimeout.tv_usec = 0;

	// Ok. Now check to see if this socket has activity on it...
	// Specify a timeout of 0 to return immediately.
	// Repeat until call not interrupted, or limit reached.
	lNcalls = 0;
	do
	{
		lNcalls++;
		lInterrupted = false;
		lActivity = select ( cSocketDescriptor+1,
			&lReadSet, NULL, &lErrorSet, &lTimeout );

		// Check to see if an error in the call to select() occured.
		// The error EINTR means that the select call was interrupted.
		if ( lActivity < 0 )
		{
			gMsg.Log ( lMethod, "error during call to select" );
			gMsg.Log ( "errno error", strerror ( errno ) );
			if ( errno != EINTR )
				return ERROR_GENERAL;
			else
				lInterrupted = true;
		}
	}
	while ( lInterrupted && ( lNcalls <= lNcallsMax ) );

	// If the limit was reached something bizarre is going on...
	if ( lNcalls > lNcallsMax )
	{
		gMsg.Log ( lMethod, "select() interrupted maximum number of times" );
		return ERROR_GENERAL;
	}

	// Error condition on this socket?
	if ( FD_ISSET ( cSocketDescriptor, &lErrorSet ) != 0 )
	{
		gMsg.Log ( lMethod, "error condition detected on socket" );
		return ERROR_GENERAL;
	}

	// The final check is for input data.
	// If this test is non-zero there is some data waiting...
	if ( FD_ISSET ( cSocketDescriptor, &lReadSet ) != 0) *pHasData = true;

	// All done.
	return SUCCESS;
}

/*---------------------------------------------------------------------------
  Method Name:		CSocket::Setfds()
  Purpose:			Sets the fds mask with this socket's descriptor.
  Parameters In:	pReadSet - pointer to read file descriptor set.
  Parameters Out:	pReadSet - bit for this socket fds is set.
						pMaxfd - updated with this file descriptor if it is larger
  Return Values:	SUCCESS on successful completion, ERROR_GENERAL otherwise.
  Notes:				None.
  ---------------------------------------------------------------------------*/

int CSocket::Setfds ( fd_set * const pReadSet, int * pMaxfd )
{
	const char * const lMethod = "CSocket::Setfds";

	// The socket must be initialized at this point.
	if ( !cIsInitialized )
	{
		gMsg.Log ( lMethod, "attempt to use socket before initialization" );
		return ERROR_GENERAL;
	}

	// Set the bit for this socket and update pMaxfd, if necessary.
	FD_SET ( cSocketDescriptor, pReadSet );
	if ( ( cSocketDescriptor + 1 ) > *pMaxfd )
		*pMaxfd = cSocketDescriptor + 1;
	return SUCCESS;
}

[-- Attachment #11: CSocket.h --]
[-- Type: text/x-c++, Size: 1132 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	CSocket.h
Project:		LOCATOR
Purpose:		C++ definition for the LOCATOR CSocket class.
				Base class for the LOCATOR socket objects.
				This class provides the lowest-level management of the sockets.
Release:		V1.0
Author:		Denis Dumas
Date:			30-Jul-1999
Modified:
*****************************************************************************/

#ifndef __CSOCKET_H__
#define __CSOCKET_H__

#include "selectLib.h"

class CSocket
{

public :

	int Init();
	int CheckSocket ( bool * const pHasData );
	int Getfd() { return cSocketDescriptor; }
	int Setfds ( fd_set * const pReadSet, int * pMaxfd );

protected :

	bool cIsInitialized;			// instance initialization flag
	int cSocketDescriptor;		// socket file descriptor

	CSocket();
	virtual ~CSocket();
	int Init ( const int pSocketDescriptor );

};

#endif

[-- Attachment #12: error.out --]
[-- Type: text/plain, Size: 697 bytes --]

cd /home/caswaac/waynel/LOCATOR/Prototype/PPC604gnu
make -f ../Makefile BUILD_SPEC=PPC604gnu CInterface.o
ccppc -0O -g -mstrict-align -ansi -nostdinc -DRW_MULTI_THREAD -DREENTRANT
-fvolatile -fno-builtin -fno-for-scope -I. -I/asw503/develop/wind/target/h 
-DCPU=PPC604 -I/home/caswaac/waynel/LOCATOR/include
-I/home/caswaac/waynel/LOCATOR/util -c /home/caswaac/waynel/LOCATOR/util/CInterface.cpp
/home/caswaac/waynel/LOCATOR/util/CInterface.cpp: In method 'CreateServer':
/home/caswaac/waynel/LOCATOR/util/CInterface.cpp:394: Internal compiler error.
/home/caswaac/waynel/LOCATOR/util/CInterface.cpp:394: Please submit a full bug report to 'egcs-bugs@cygnus.com'
make: *** [CInterface.o] Error 1


[-- Attachment #13: LOCATORconstants.h --]
[-- Type: text/x-c, Size: 15460 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	LOCATORconstants.h
Project:		LOCATOR
Purpose:		Define global constants used in the LOCATOR system software.
Release:		V1.0
Author:		Denis Dumas
Date:			30-Jul-1999
Modified:
*****************************************************************************/

#ifndef __LOCATORCONSTANTS_H__
#define __LOCATORCONSTANTS_H__

/******************************/
/* General-purpose constants. */
/******************************/

#define	YES				1
#define	NO					2

/***********************************************************/
/* System configuration. Define the number of DPs and AMs. */
/***********************************************************/

#define	NUMBER_OF_AMS	2
#define	NUMBER_OF_DPS	3

/*******************************/
/* General execution constants */
/*******************************/

#define	SYSTEM_RUNNING		1
#define	SYSTEM_SHUTDOWN	2

/*****************/
/* Return codes. */
/*****************/

#define	SUCCESS							0
#define	ERROR_GENERAL					-1
#define	ERROR_CONNECTION_REFUSED	-2
#define	ERROR_CONNECTION_CLOSED		-3

/****************************/
/* Colour-related contants. */
/****************************/

#define	N_GENERAL_COLOURS		15		// These are the general OMI colours
#define	BLACK						0
#define	WHITE						1
#define	DARKGREEN				2
#define	MEDIUMGREEN				3
#define	BRIGHTGREEN				4
#define	BRIGHTYELLOW			5
#define	MEDIUMGRAY				6
#define	DARKBLUE					7
#define	MEDIUMBLUE				8
#define	BRIGHTBLUE				9
#define	DARKRED					10
#define	MEDIUMRED				11
#define	BRIGHTRED				12
#define	DARKGRAY					13
#define	BRIGHTGRAY				14

#define	N_BEARING_SLICES		16		// Slices in azimuth in the colour wheel
#define	N_POWER_LEVELS			4		// Power levels in the colour wheel

/*************************/
/* Pushbutton constants. */
/*************************/

#define	NULL_BUTTON			0
#define	DELETE_BUTTON		1
#define	OK_BUTTON			2
#define	CANCEL_BUTTON		3

/*************************/
/* Menu Type constants. */
/*************************/

#define	PULLDOWN_MENU			0
#define	POPUP_MENU				1
#define	BUTTONBAR_MENU			2

/*****************************/
/* Message router constants. */
/*****************************/

#define	MESSAGE_ROUTER_TIMEOUT		10000U
#define	MESSAGE_ROUTER_STALE_TIME	10

/*****************************/
/* Socket-related constants. */
/*****************************/

#define	SOBUFSIZE	102400		// maximum input/output buffer size
#define	NQRMAX		5				// maximum number of queued connect requests
#define  SELECT_TIMEOUT_SECONDS 2  //timeout for the select() operation

/*********************************************************/
/* Host names (these can be dotted-decimal IP addresses) */
/*********************************************************/

#define	AM1_HOST		"localhost"
#define	AM2_HOST		"localhost"
#define	AM3_HOST		"localhost"
#define	AM4_HOST		"localhost"
#define	DP_HOST		"localhost"
#define	SM_HOST		"localhost"
#define	SS_HOST		"localhost"

/********************************************************************/
/* Port numbers (remember that names are 'source_destination_PORT') */
/* Port numbers are defined for the destination host. Remember that */
/* the port numbers allocated are the ports defined below PLUS the  */
/* value of the environment variable LOCATOR_PORT_OFFSET.           */
/********************************************************************/

#define	AMSMS1_SMAMS1_PORT		0U				// AM-SM interface
#define		SMAMS1_AMSMS1_PORT	1U
#define	AMSMS2_SMAMS2_PORT		2U
#define		SMAMS2_AMSMS2_PORT	3U
#define	AMSMS3_SMAMS3_PORT		4U
#define		SMAMS3_AMSMS3_PORT	5U
#define	AMSMS4_SMAMS4_PORT		6U
#define		SMAMS4_AMSMS4_PORT	7U

#define	DPOMI1_SMDPS1_PORT		100U			// DP-SM interface
#define		SMDPS1_DPOMI1_PORT	101U
#define	DPOMI2_SMDPS2_PORT		102U
#define		SMDPS2_DPOMI2_PORT	103U
#define	DPOMI3_SMDPS3_PORT		104U
#define		SMDPS3_DPOMI3_PORT	105U

#define	SMSSS_SSSMS_PORT			200U			// SM-SS interface
#define		SSSMS_SMSSS_PORT		201U

#define	SSADPC_TAT_PORT			300U			// SS-TAT interface
#define		TAT_SSADPC_PORT		301U

#define	SMAMS1_SMSC_PORT			400U			// internal SM interfaces
#define		SMSC_SMAMS1_PORT		401U
#define	SMAMS2_SMSC_PORT			402U
#define		SMSC_SMAMS2_PORT		403U
#define	SMDPS1_SMSC_PORT			404U
#define		SMSC_SMDPS1_PORT		405U
#define	SMDPS2_SMSC_PORT			406U
#define		SMSC_SMDPS2_PORT		407U
#define	SMDPS3_SMSC_PORT			408U
#define		SMSC_SMDPS3_PORT		409U
#define	SMSC_SMSSS_PORT			410U
#define		SMSSS_SMSC_PORT		411U
#define	SMSUP_SMAMS1_PORT			412U
#define		SMAMS1_SMSUP_PORT		413U
#define	SMSUP_SMAMS2_PORT			414U
#define		SMAMS2_SMSUP_PORT		415U
#define	SMSUP_SMDPS1_PORT			416U
#define		SMDPS1_SMSUP_PORT		417U
#define	SMSUP_SMDPS2_PORT			418U
#define		SMDPS2_SMSUP_PORT		419U
#define	SMSUP_SMDPS3_PORT			420U
#define		SMDPS3_SMSUP_PORT		421U
#define	SMSUP_SMSC_PORT			422U
#define		SMSC_SMSUP_PORT		423U
#define	SMSUP_SMSSS_PORT			424U
#define		SMSSS_SMSUP_PORT		425U

#define	SSADPC_SSADPS1_PORT		500U			// internal SS interfaces
#define		SSADPS1_SSADPC_PORT	501U
#define	SSADPC_SSSMS_PORT			502U
#define		SSSMS_SSADPC_PORT		503U
#define	SSESS_SSSMS_PORT			504U
#define		SSSMS_SSESS_PORT		505U
#define	SSSUP_SSADPC_PORT			506U
#define		SSADPC_SSSUP_PORT		507U
#define	SSSUP_SSADPS1_PORT		508U
#define		SSADPS1_SSSUP_PORT	509U
#define	SSSUP_SSESS_PORT			510U
#define		SSESS_SSSUP_PORT		511U
#define	SSSUP_SSSMS_PORT			512U
#define		SSSMS_SSSUP_PORT		513U
#define	SSADPC_SSADPS2_PORT		514U		
#define		SSADPS2_SSADPC_PORT	515U
#define	SSSUP_SSADPS2_PORT		516U
#define		SSADPS2_SSSUP_PORT	517U

#define	AMSUP_AMIH_PORT1			600U			// internal AM interfaces
#define		AMIH_AMSUP_PORT1		601U
#define	AMSUP_AMSPS_PORT1			602U
#define		AMSPS_AMSUP_PORT1		603U
#define	AMSUP_AMDA_PORT1			604U
#define		AMDA_AMSUP_PORT1		605U
#define	AMSUP_AMAD_PORT1			606U
#define		AMAD_AMSUP_PORT1		607U
#define	AMSUP_AMSMS_PORT1			608U
#define		AMSMS_AMSUP_PORT1		609U
#define	AMIH_AMSPS_PORT1			610U
#define		AMSPS_AMIH_PORT1		611U
#define	AMSPS_AMDA_PORT1			612U
#define		AMDA_AMSPS_PORT1		613U
#define	AMDA_AMSMS_PORT1			614U
#define		AMSMS_AMDA_PORT1		615U
#define	AMDA_AMAD_PORT1			616U
#define		AMAD_AMDA_PORT1		617U
#define	AMSMS_AMAD_PORT1			618U
#define		AMAD_AMSMS_PORT1		619U

#define	AMSUP_AMIH_PORT2			700U			// internal AM interfaces
#define		AMIH_AMSUP_PORT2		701U
#define	AMSUP_AMSPS_PORT2			702U
#define		AMSPS_AMSUP_PORT2		703U
#define	AMSUP_AMDA_PORT2			704U
#define		AMDA_AMSUP_PORT2		705U
#define	AMSUP_AMAD_PORT2			706U
#define		AMAD_AMSUP_PORT2		707U
#define	AMSUP_AMSMS_PORT2			708U
#define		AMSMS_AMSUP_PORT2		709U
#define	AMIH_AMSPS_PORT2			710U
#define		AMSPS_AMIH_PORT2		711U
#define	AMSPS_AMDA_PORT2			712U
#define		AMDA_AMSPS_PORT2		713U
#define	AMDA_AMSMS_PORT2			714U
#define		AMSMS_AMDA_PORT2		715U
#define	AMDA_AMAD_PORT2			716U
#define		AMAD_AMDA_PORT2		717U
#define	AMSMS_AMAD_PORT2			718U
#define		AMAD_AMSMS_PORT2		719U

#define	AMSUP_AMIH_PORT3			800U			// internal AM interfaces
#define		AMIH_AMSUP_PORT3		801U
#define	AMSUP_AMSPS_PORT3			802U
#define		AMSPS_AMSUP_PORT3		803U
#define	AMSUP_AMDA_PORT3			804U
#define		AMDA_AMSUP_PORT3		805U
#define	AMSUP_AMAD_PORT3			806U
#define		AMAD_AMSUP_PORT3		807U
#define	AMSUP_AMSMS_PORT3			808U
#define		AMSMS_AMSUP_PORT3		809U
#define	AMIH_AMSPS_PORT3			810U
#define		AMSPS_AMIH_PORT3		811U
#define	AMSPS_AMDA_PORT3			812U
#define		AMDA_AMSPS_PORT3		813U
#define	AMDA_AMSMS_PORT3			814U
#define		AMSMS_AMDA_PORT3		815U
#define	AMDA_AMAD_PORT3			816U
#define		AMAD_AMDA_PORT3		817U
#define	AMSMS_AMAD_PORT3			818U
#define		AMAD_AMSMS_PORT3		819U

#define	AMSUP_AMIH_PORT4			900U			// internal AM interfaces
#define		AMIH_AMSUP_PORT4		901U
#define	AMSUP_AMSPS_PORT4			902U
#define		AMSPS_AMSUP_PORT4		903U
#define	AMSUP_AMDA_PORT4			904U
#define		AMDA_AMSUP_PORT4		905U
#define	AMSUP_AMAD_PORT4			906U
#define		AMAD_AMSUP_PORT4		907U
#define	AMSUP_AMSMS_PORT4			908U
#define		AMSMS_AMSUP_PORT4		909U
#define	AMIH_AMSPS_PORT4			910U
#define		AMSPS_AMIH_PORT4		911U
#define	AMSPS_AMDA_PORT4			912U
#define		AMDA_AMSPS_PORT4		913U
#define	AMDA_AMSMS_PORT4			914U
#define		AMSMS_AMDA_PORT4		915U
#define	AMDA_AMAD_PORT4			916U
#define		AMAD_AMDA_PORT4		917U
#define	AMSMS_AMAD_PORT4			918U
#define		AMAD_AMSMS_PORT4		919U


/********************************/
/* Interface-related constants. */
/********************************/

#define	FULL_DUPLEX_MODE	111
#define	SERVER_MODE			222

/***********************************************/
/* Shared memory and semaphore flags.          */
/* There are bit flags that are ORed together, */
/* so they must be unique bits.                */
/***********************************************/

#define	SHMEM_READ_ONLY	0x00000001
#define	SHMEM_READ_WRITE	0x00000002
#define	USE_SEMAPHORE		0x00000004
#define	NO_SEMAPHORE		0x00000008

/*******************************************************************/
/* Shared memory keys.                                             */
/* Remember that the keys actually used are the keys defined below */
/* PLUS the value of the environment variable LOCATOR_KEY_OFFSET.  */
/*******************************************************************/

enum ESharedMemoryKeys
{
	SMAMS_SMDPS1_SHMEM_KEY = 1000,
	SMAMS_SMDPS2_SHMEM_KEY,
	SMAMS_SMDPS3_SHMEM_KEY,

	AMSPS1_AMDA1_SHMEM_KEY1 = 2000,
	AMSPS1_AMDA1_SHMEM_KEY2,

	AMSPS2_AMDA2_SHMEM_KEY1,
	AMSPS2_AMDA2_SHMEM_KEY2,

	AMSPS3_AMDA3_SHMEM_KEY1,
	AMSPS3_AMDA3_SHMEM_KEY2,

	AMSPS4_AMDA4_SHMEM_KEY1,
	AMSPS4_AMDA4_SHMEM_KEY2,

	AMDA1_AMSMS1_SHMEM_KEY1 = 2010,
	AMDA1_AMSMS1_SHMEM_KEY2,
	
	AMDA2_AMSMS2_SHMEM_KEY1,
	AMDA2_AMSMS2_SHMEM_KEY2,

	AMDA3_AMSMS3_SHMEM_KEY1,
	AMDA3_AMSMS3_SHMEM_KEY2,

	AMDA4_AMSMS4_SHMEM_KEY1,
	AMDA4_AMSMS4_SHMEM_KEY2

};

#define  NUMBER_OF_AMSPS_AMDA_SHARED_MEMORY_AREAS	2
#define  NUMBER_OF_AMDA_AMSMS_SHARED_MEMORY_AREAS	2


#define	AMDA1_AMAD1_SHMEM_KEYS	100000		// Start for series
#define	AMDA2_AMAD2_SHMEM_KEYS	200000		// Start for series

/***************/
/* Process IDs */
/***************/

#define	AMAD_PROCESS_ID		11000			// AM process IDs
#define	AMIH_PROCESS_ID		11001
#define	AMDA_PROCESS_ID		11002
#define	AMSMS_PROCESS_ID		11003
#define	AMSPS_PROCESS_ID		11004
#define	AMSUP_PROCESS_ID		11005

#define	DPOMI1_PROCESS_ID		20000			// Using 3 DPOMI processes
#define	DPOMI2_PROCESS_ID		21000
#define	DPOMI3_PROCESS_ID		22000

#define	SMAMS1_PROCESS_ID		30000			// SM process IDs
#define	SMAMS2_PROCESS_ID		30001
#define	SMDPS1_PROCESS_ID		30002
#define	SMDPS2_PROCESS_ID		30003
#define	SMDPS3_PROCESS_ID		30004
#define	SMSC_PROCESS_ID		30005
#define	SMSSS_PROCESS_ID		30006
#define	SMSUP_PROCESS_ID		30007

#define	SSSMS_PROCESS_ID		40000			// SM Services processes
#define	SSESS_PROCESS_ID		40001
#define	SSSUP_PROCESS_ID		40002
#define	SSADPC_PROCESS_ID		40003
#define	SSADPS1_PROCESS_ID	40004
#define	SSADPS2_PROCESS_ID	40005

/***************************/
/* Tile-related constants. */
/***************************/

#define GRAM_TILE_TY			100
#define GRAM_TILE_XY			101
#define GRAM_TILE_Y			102
#define GRAM_TILE_TXY		103
#define GEOPLOT_TILE			104
#define MAIN_MENUBAR_TILE	105
#define VERNIER_TABLE_TILE	106


#define WINDOW_16_TILES			16
#define WINDOW_8_TILES			8
#define WINDOW_4_TILES			4
#define WINDOW_2_TILES			2
#define WINDOW_1_TILE			1
#define WINDOW_GEOPLOT_TILE	32
#define WINDOW_MENUBAR_TILE	0

/*************************/
/* Math scale constants. */
/*************************/

#define	X_AXIS				100
#define	Y_AXIS				101

#define	NO_SCALE				0
#define	HERTZ_SCALE			1
#define	MINUTE_SCALE		2
#define	ETI_DB_SCALE		3
#define	ALI_DB_SCALE		4
#define	BEARING_SCALE		5
#define  LATITUDE_SCALE		6
#define  LONGITUDE_SCALE	7

/*******************************/
/* Viewport-related BIT flags. */
/*******************************/

#define	ACTIVATE_HIDE_CURSOR					1U
#define	ACTIVATE_CROSS_HAIRS					2U

/*****************************/
/* Viewport field constants. */
/*****************************/

#define	X_TICKMARK_HEIGHT					6
#define	Y_TICKMARK_WIDTH					7
#define	IN_FOCUS_PIXEL_GAP				5

// Tile Viewports
#define	GRAM_VP_TYPE						201
#define	ANNOTATION_VP_TYPE				202
#define  GEOPLOT_VP_TYPE					203
#define	TABLE_VP_TYPE						204

/*****************************/
/* Column layout constants */
/*****************************/

#define	LAYOUT_NONE			0
#define	LAYOUT_1				1		// single column
#define	LAYOUT_2				2		// 1/3-2/3 style
#define	LAYOUT_3				3		// 2/3-1/3 style
#define	LAYOUT_4				4		// 1/3-1/3-1/3 style
#define	ALIGN_AS_IS			100
#define	ALIGN_LEFT			101
#define	ALIGN_RIGHT			102
#define	ALIGN_TOP			103
#define	ALIGN_BOTTOM		104
#define	ALIGN_CENTER		105
#define	STACK_TOP_DOWN		200
#define	STACK_BOTTOM_UP	201

/************************/
/* Page menu constants. */
/************************/

#define	SAVE				300
#define	LOAD				301
#define	DELETE			302
#define	UPDATE_MENU		303


/*************************************/
/* Gram Y annotation field constants */
/*************************************/

#define	BUOY_TYPE_FIELD			3
#define	RF_CHANNEL_FIELD			4
#define	INTEGRATION_TIME_FIELD	5
#define	DIR_INDICATOR1_FIELD		6
#define	DIR_INDICATOR2_FIELD	 	7
#define	BAND_IDENTIFIER_FIELD	8
#define	BFI_THRESHOLD_FIELD		9
#define	ETI_NUMBER_FIELD			10
#define	GRAM_NORM_FIELD			11
#define	RF_INCREMENT_FIELD		12
#define	RF_DECREMENT_FIELD		13
#define	HISTORY_ACTIVATE_FIELD	14
#define	POINTER_X_TRACKER_FIELD	1000	// these must be the largest field
#define	POINTER_Y_TRACKER_FIELD	1001	// numbers so they are drawn on top.


#define	DIFAR_BUOY_TYPE	"DF"
#define	BROADBAND_NORM		"BB"
#define	POM_DIR				"POM"
#define	FULL_BAND			"FB"

#define	RF_MIN				0
#define	RF_MAX				15

#define	N_BFI_THRESHOLDS	10
#define	BFI_THRESHOLDS		{ 0U, 6553U, 13107U, 19661U, 26214U, 32768U,\
									  39322U, 45875U, 52429U, 58982U }


#define	N_ANNOTATION_FIELDS	20
#define	LEFT_LABEL_FIELD		0
#define	BOTTOM_LABEL_FIELD	0
#define	RIGHT_LABEL_FIELD		1
#define	TOP_LABEL_FIELD		1
#define	FREQUENCY_FIELD		2

/*******************************************/
/* Define contants to index the 2525 font. */
/*******************************************/

#define	DIFAR_BUOY_SYMBOL		147

/************************************************/
/* Define bit flags to set transaction/tile IDs */
/* The upper 12 bits are used as the tile ID... */
/************************************************/

#define	MIN_TRANSACTION_ID	1U
#define	MAX_TRANSACTION_ID	0x000fffffU
#define	MIN_TILE_ID				(MAX_TRANSACTION_ID+1U)
#define	MAX_TILE_ID				(~MAX_TRANSACTION_ID)

/***********************/
/* Alignment constants */
/***********************/

#define	ALIGNMENT_NONE			7000
#define	ALIGNMENT_CENTER		7001
#define	ALIGNMENT_BEGINNING	7002
#define	ALIGNMENT_END			7003
#define	ALIGNMENT_TOP			7004
#define	ALIGNMENT_BOTTOM		7005

/******** Define Table IDs ******/
#define BUOY_TABLE_ID			1
#define VERNIER_TABLE_ID		2

/*********************************/
/* Viewport scrolling constants. */
/*********************************/

enum ViewportMode
{
	VIEWPORT_UNDEFINED_MODE,
	VIEWPORT_SCROLLING_MODE,
	VIEWPORT_HISTORY_MODE
};

/**********************************/
/* Frequency Resolutions          */
/**********************************/

enum EResolution
{
	RES1 = 0,
	RES2,
	RES3,
	RES4,
	RES5,
	RES6,
	RES7,
	RES8
};

#endif



[-- Attachment #14: LOCATORmessages.h --]
[-- Type: text/x-c, Size: 4118 bytes --]

/*****************************************************************************
*************************      AIRBORNE SYSTEMS      *************************
*************************  COMPUTING DEVICES CANADA  *************************
******************************************************************************
Filename:	LOCATORmessages.h
Project:		LOCATOR
Purpose:		Defines the message header for all LOCATOR TCP/IP messages, and
				for all XClientMessages passed internally in the DP.
Release:		V1.0
Author:		Denis Dumas
Date:			10-Sept-1999
Modified:
*****************************************************************************/

#ifndef __LOCATORMESSAGES_H__
#define __LOCATORMESSAGES_H__

/*****************************************/
/* Define constants to set buffer sizes. */
/*****************************************/

#define	MAX_NUMBER_OF_SWEEPS				1024
#define	GENERAL_MESSAGE_BUFFER_SIZE	5120
#define	DATA_MESSAGE_BUFFER_SIZE		1572864

/**********************************/
/* All TCP messages go in an enum */
/**********************************/

enum TCPmessageID
{
	/**************************************************************/
	/* TAT SM Messages                                            */
	/* These have to be set to specific values so put these first */
	/**************************************************************/

	TCP_DROP_BUOY = 200,
	TCP_UPDATE_BUOY = 5,
	TCP_STOP_PROCESSING = 1,
	TCP_START_PROCESSING = 2,
	TCP_INITIAL_DATA_MESSAGE = 4,

	/*******************/
	/* global Messages */
	/*******************/

	TCP_SHUTDOWN = 1000,

	/******************/
	/* DP AM Messages */
	/******************/

	TCP_REQUEST_ACOUSTIC_DATA = 2000,
	TCP_ACOUSTIC_DATA,
	TCP_REQUEST_TIMESTAMP,
	TCP_TIMESTAMP,

	/******************/
	/* DP SM Messages */
	/******************/

	TCP_TABLE_CHANGED,
	TCP_GET_TABLE,
	TCP_TABLE,
	TCP_TABLE_UPDATED,

	/************************/
	/* Internal AM Messages */
	/************************/

	TCP_ACOUSTIC_DATA_READY = 3000,
	TCP_ACOUSTIC_DATA_AMSPS_AMDA
};

/***************************************/
/* Define X Client messages in an enum */
/***************************************/

enum XClientMessageID
{
	XC_ENTER_MOVE_MODE,
	XC_EXIT_MOVE_MODE,
	XC_HIGHLIGHT_TILE,
	XC_UNHIGHLIGHT_TILE,
	XC_UNHIGHLIGHT_COLUMNS,
	XC_ANNOTATION_FIELD_COMMAND,
	XC_CURSOR,
	XC_DELETE_TRACKER_FIELD,
	XC_INCREMENT_RF,
	XC_DECREMENT_RF,
	XC_TABLE_CHANGED,
	XC_TABLE,
	XC_REQUEST_ACOUSTIC_DATA,
	XC_ACOUSTIC_DATA,
	XC_REQUEST_TIMESTAMP,
	XC_TIMESTAMP,
	XC_TCP_MESSAGE
};

/*****************************************************/
/* Define X Client message dispatch codes in an enum */
/*****************************************************/

enum XClientDispatchID
{
	XC_DISPATCH_ALL_TILES,
	XC_DISPATCH_TILE,
	XC_DISPATCH_MAIN_WINDOW,
	XC_DISPATCH_ALL_VIEWPORTS,
	XC_DISPATCH_VIEWPORT,
	XC_SEND_TILE,
	XC_SEND_MAIN_WINDOW,
	XC_SEND_VIEWPORT
};

/**************/
/* Data types */
/**************/

enum DataType
{
	DATA_TYPE_NONE,
	GRAM_DATA_TYPE
};

enum DataSubType
{
	DATA_SUBTYPE_NONE
};

/**************************************/
/* This is the TCP/IP message header. */
/**************************************/

typedef struct
{
	TCPmessageID	messageID;			// message ID
	int				sourceID;			// source process ID
	int				destinationID;		// destination process ID
	int				dataLength;			// message body length
}
SLocatorMessageHeader;

/************************************************/
/* This is needed by the DPOMI to tag messages. */
/************************************************/

typedef struct
{
	SLocatorMessageHeader header;
	int transactionID;
}
SLocatorExtendedMessageHeader;

/*********************************************/
/* This is the XEvent client message header. */
/*********************************************/

typedef struct
{
	long messageID;		// message ID
	long messagePtr;		// pointer to the message in memory
	long messageSize;		// size of the message in bytes
	long dispatchID;		// dispatch ID used in routing the message
	long sourceWidget;	// Widget ID of the Widget that sent the message
}
SLocatorClientMessageHeader;

#endif






^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 2000-01-08  9:21 Jukka Kangas
  0 siblings, 0 replies; 387+ messages in thread
From: Jukka Kangas @ 2000-01-08  9:21 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

I was trying to compile Lame 3.51 with gcc 2.95.2 and
I got this internal compiler error. It compiles with
egcs-2.91.66 ok.

Lame can be found at http://www.sulaco.org/mp3

GCC:
gcc version 2.95.2 19991024 (release)

System:
Linux asus.secret.fi 2.2.14 #1 SMP Wed Jan 5 18:24:00 EET 2000 i686
unknown

gcc --save-temps -DNDEBUG -D__NO_MATH_INLINES -O9 -fomit-frame-pointer
-march=pentiumpro -ffast-math -funroll-loops -fprofile-arcs
-fbranch-probabilities  -DHAVEGTK `gtk-config --cflags` -DBRHIST -c
ieeefloat.c -o ieeefloat.o
ieeefloat.c: In function `ConvertToIeeeSingle':
ieeefloat.c:946: Internal compiler error in `instrument_arcs', at
profile.c:300
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make: *** [ieeefloat.o] Error 1


--
Jukka

[-- Attachment #2: ieeefloat.i.gz --]
[-- Type: application/x-gzip, Size: 6530 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-12-31 20:54 internal " Trevor Spiteri
@ 1999-12-31 20:54 ` Nathan Sidwell
  0 siblings, 0 replies; 387+ messages in thread
From: Nathan Sidwell @ 1999-12-31 20:54 UTC (permalink / raw)
  To: Trevor Spiteri; +Cc: gcc-bugs

Trevor Spiteri wrote:
> gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

> g++: Internal compiler error: program cc1plus got fatal signal 11

g++ 2.95 give the following diagnostics, time to upgrade

error.cc:4: template-id `f<U>' in declaration of primary template
error.cc: In function `void v()':
error.cc:8: warning: unused variable `class c<void> C'

nathan
-- 
Dr Nathan Sidwell :: Computer Science Department :: Bristol University
Never hand someone a gun unless you are sure where they will point it
nathan@acm.org  http://www.cs.bris.ac.uk/~nathan/  nathan@cs.bris.ac.uk


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-12-31 20:54 Gary Beckmann
  1999-12-07 13:18 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Gary Beckmann @ 1999-12-31 20:54 UTC (permalink / raw)
  To: egcs-bugs

--JIxgvRY1ZW
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

> uname -a
Linux galileo 2.2.5-15smp #1 SMP Mon Apr 19 22:43:28 EDT 1999 i686 unknown
> g++ -v --save-temps broken.cxx
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ broken.cxx broken.ii
GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++-2
 /usr/local/include
 /usr/i386-redhat-linux/include
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus broken.ii -quiet -dumpbase broken.cc -version -o broken.s
GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
broken.cxx: In function `int main()':
broken.cxx:64: Internal compiler error.
broken.cxx:64: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
broken.cxx:64: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.


In the file broken.cxx (attached) I note a two spots where changes
will not cause the internal error.

----------------------------------------------------------------------
 Gary Beckmann                  |      e-mail: gbeckmann@radionics.com
 RADIONICS                      |          or:   gary.beckmann@acm.org
 22 Terry Ave.                  |   telephone:           (781)238-0600
 Burlington, MA 01803           |         fax:           (781)238-0606
 USA                            |
----------------------------------------------------------------------


--JIxgvRY1ZW
Content-Type: text/plain
Content-Description: Program source.
Content-Disposition: inline;
	filename="broken.cxx"
Content-Transfer-Encoding: 7bit

/*
  Submitter: Gary Beckmann <gary@radionics.com>

  Note: locations are marked with "@@" and the number.

  Problems: 
  1) Through a programming error, the specialization was stated
     explicitly.  Compiler announces internal error at site marked 
     @@2.
  2) If the member function equals is used instead of the friend 
     operator==, then no crash, no error.  Is it masked?
 */

template <class T> class type1
{
   public:
      type1<T> invert() const;
};

template <class T> class type2
{
   public:
      int equals(const type2<T> &vec) const;
      template <class S> friend int operator==(const type2<S> &lhs,
                                               const type2<S> &rhs);
};

template<class T> type1<T> type1<T>::invert() const
{
   type1<T> tmp;

// @@1
// The error in the code.  If this double specialization is used instead 
// of the T then the compiler crashes.
   type2<double> trans;
//   type2<T> trans;
   
   
   return type1<T>();
}


template<class T> int type2<T>::equals(const type2<T> & vec) const
{
   return 1;
}

template<class T> int operator==(const type2<T> &lhs, const type2<T> &rhs)
{
   return lhs.equals(rhs); 
}
      
int main()
{

   type2<double> a;
   type2<double> b;

// @@2
// hide the error.  If the equals member function is used instead of the 
// operator==, with the above listed error in the code, the compiler will
// not crash.
//   if (a.equals(b))
   if (a == b)
   {
   }

   
   return 0;
};

--JIxgvRY1ZW
Content-Type: text/plain
Content-Description: Compiler output.
Content-Disposition: inline;
	filename="broken.ii"
Content-Transfer-Encoding: 7bit

# 1 "broken.cxx"
 












template <class T> class type1
{
   public:
      type1<T> invert() const;
};

template <class T> class type2
{
   public:
      int equals(const type2<T> &vec) const;
      template <class S> friend int operator==(const type2<S> &lhs,
                                               const type2<S> &rhs);
};

template<class T> type1<T> type1<T>::invert() const
{
   type1<T> tmp;

 
 
 
   type2<double> trans;
 
   
   
   return type1<T>();
}


template<class T> int type2<T>::equals(const type2<T> & vec) const
{
   return 1;
}

template<class T> int operator==(const type2<T> &lhs, const type2<T> &rhs)
{
   return lhs.equals(rhs); 
}
      
int main()
{

   type2<double> a;
   type2<double> b;

 
 
 
 
 
   if (a == b)
   {
   }

   
   return 0;
};

--JIxgvRY1ZW
Content-Type: text/plain
Content-Description: Compiler output.
Content-Disposition: inline;
	filename="broken.s"
Content-Transfer-Encoding: 7bit

	.file	"broken.cxx"
	.version	"01.01"
gcc2_compiled.:

--JIxgvRY1ZW--


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-12-31 20:54 Trevor Spiteri
  1999-12-31 20:54 ` Nathan Sidwell
  0 siblings, 1 reply; 387+ messages in thread
From: Trevor Spiteri @ 1999-12-31 20:54 UTC (permalink / raw)
  To: gcc-bugs

The file error.ii follows:

# 1 "error.cc"
template <class T>
class c {
   template <class U>
   friend void f<U>();
};
void v()
{
   c<void> C;
}

On giving the command:

g++ -v -S error.ii

I get the following error:

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus error.ii -quiet -version -o error.s
GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
g++: Internal compiler error: program cc1plus got fatal signal 11


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-12-01  8:24 Internal " gustavo
@ 1999-12-31 20:54 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-12-31 20:54 UTC (permalink / raw)
  To: gustavo; +Cc: egcs-bugs

> bug.cc:53: Internal compiler error.
> bug.cc:53: Please submit a full bug report to
> `egcs-bugs@egcs.cygnus.com'.
> bug.cc:53: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
> details.

Thanks for your bug report. You did not mention your compiler
version; gcc-2.95.2 says

a.cc: In instantiation of `Thing<int,float>':
a.cc:18:   instantiated from here
a.cc:18: base type `int' fails to be a struct or class type

so the bug has been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-12-31 20:54 Gary Beckmann
@ 1999-12-07 13:18 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-12-07 13:18 UTC (permalink / raw)
  To: gary; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3977 bytes --]

> In the file broken.cxx (attached) I note a two spots where changes
> will not cause the internal error.

Thanks for your bug report. gcc-2.95.2 compiles this without problems;
the bug has been fixed.

Regards,
Martin
>From martin@loewis.home.cs.tu-berlin.de Tue Dec 07 13:48:00 1999
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: hirche@informatik.uni-essen.de
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: gcc-bug: gcc reports error in valid code (STL-related)
Date: Tue, 07 Dec 1999 13:48:00 -0000
Message-id: <199912072145.WAA01472@loewis.home.cs.tu-berlin.de>
References: <384D21C7.7D681FD7@informatik.uni-essen.de>
X-SW-Source: 1999-12/msg00182.html
Content-length: 2060

> Although STL-errors are a well-known thing, I believe this one is
> actually a compiler error.

Hi Axel,

Thanks for your bug report. This is neither-nor - it is a bug in your
code.

> To make sure the code is realy valid, I checked back with
> copm.lang.c++.moderated.

Can you please point me to the thread on Dejanews?

> template <class T> class A : protected list<T*>
> {
[...]
>     void f (double p)
>     {
>       iterator i = begin();  // o.k.
>       reverse_iterator j = rbegin();  // test.cpp:12: parse error before `='
>       list<T*>::reverse_iterator k = rbegin();  // o.k.
>     }
> };

The problem is that the base class of a template is not searched
during name lookup, if the base depends on a template parameter
(14.6.2/3). Therefore, both iterator and reverse_iterator do not refer
to list<T*>::iterator and list<T*>::reverse_iterator (respectively);
only the third line uses the correct type.

Instead, lookup of reverse_iterator finds the global

template <class _Iterator>
class reverse_iterator;

This is a parse error, because template parameters are expected in
this context.

Now, why does it accept iterator? This is an extension: If g++ does
not find a global name, instead of giving an error, it does consider
the base templates. With -pedantic, the first line also is in error
(since iterator is not found as a type).

Also, the third line is in error with -pedantic. Since
list<T*>::iterator is a dependent name, it is considered as an object
during syntax analysis, and not as a type-name. To make it a typename,
the correct usage would be:

  typename list<T*>::reverse_iterator k = rbegin();  // o.k.

Since these rules are rarely enforced by the compiler, and since no
compiler gets it right all the time (*), people often are unaware of
the rules.

Mit besten Grüßen,
Martin

(*) In gcc, the base is only not searched for type names. Member
fields of the base type are found during instantiation. The bug here
is that independent names should be looked up at point of declaration,
not at the point of instantiation.
>From martin@loewis.home.cs.tu-berlin.de Tue Dec 07 14:04:00 1999
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: ptracy@nwu.edu
Cc: gcc-bugs@gcc.gnu.org, bonachea@cs.berkeley.edu, smcpeak@cs.berkeley.edu
Subject: Re: hppa1.1-hp-hpux10.20, g++ 2.95.2 internal error
Date: Tue, 07 Dec 1999 14:04:00 -0000
Message-id: <199912072153.WAA01540@loewis.home.cs.tu-berlin.de>
References: <4.2.2.19991207094212.00aa9e60@grumpy.nsg.nwu.edu>
X-SW-Source: 1999-12/msg00183.html
Content-length: 718

> They claim it works with HP/UX 10/20 and gcc 2.8.1, which I don't have 
> installed.  I'm of course willing to try to fix the code if it's the 
> problem -- just let me know.  I'm not really fluent in c++ so I can't 
> easily tell if that's the case.

Thanks for your bug report. This indeed looks like a bug in 2.95; I
could reproduce it on i586-pc-linux-gnu. You can tell its a bug
because the compiler crashes - it shouldn't do that even for invalid
input.

The current development version (2.96 19991202 (experimental))
compiles it fine, so the bug has been fixed.

If you need to use this package now, I recommend to go back to an
older release. I found that egcs 1.1 also compiles this code.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-12-01  8:24 gustavo
  1999-12-31 20:54 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: gustavo @ 1999-12-01  8:24 UTC (permalink / raw)
  To: egcs-bugs

Hi:

When compiling a file I get:

g++ bug.cc 
bug.cc: In instantiation of
`Thing<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
>,float>':
bug.cc:53:   instantiated from
`Evaluator<Thing<basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
>,float> >'
bug.cc:53:   instantiated from here
bug.cc:53: Internal compiler error.
bug.cc:53: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
bug.cc:53: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.

The file is:

//-----------------------------------------------------------------------------
// bug.cc
//-----------------------------------------------------------------------------

template <class G, class P> class Thing: public G
{
public:
  template <class Evaluator> P fitness(const Evaluator& evaluator) const 
  {
    return P();
  }
};

//-----------------------------------------------------------------------------

main()
{
  Thing<int, float> thing;
}

//-----------------------------------------------------------------------------
>From John.Vickers@pacemicro.com Wed Dec 01 08:30:00 1999
From: John Vickers <John.Vickers@pacemicro.com>
To: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Cc: Michael Newcomb <michael.p.newcomb@lmco.com>, gcc-bugs@gcc.gnu.org
Subject: Re: g++ compiled programs that link with Java HotSpot VM core dump
Date: Wed, 01 Dec 1999 08:30:00 -0000
Message-id: <384512FF.F901FCAD@PaceMicro.com>
References: <3842C499.1CE83251@lmco.com> <orzovxcf6j.fsf@cupuacu.lsd.ic.unicamp.br>
X-SW-Source: 1999-12/msg00014.html
Content-length: 1264

Alexandre Oliva wrote:
> 
> On Nov 29, 1999, Michael Newcomb <michael.p.newcomb@lmco.com> wrote:
> 
> > Basically, any program (however simple) that gets linked with
> > the Java HotSpot VM (-ljvm) core dumps at initialization.
> 
> A program that uses cout from -lstdc++ is hardly a ``simple'' one;
> there's a lot of code involved in its initialization, and it happens
> that g++ and Sun's C++ refer to the `cout' symbol assuming completely
> different structures.
> 
> The only way to work around this problem would be to mangle variable
> names, just like we mangle functions.
> 
> Having C++ hidden within libraries is becoming more and more common,
> and, if we intend to be able to link g++-compiled code with such
> libraries, I can't see any other way to go.
> 
> Can anybody think of any reason for *not* introducing name mangling in
> variable names with -fnew-abi?

Sharing of variables with non-C++ code.  C library code.
Maybe assembler code.

How about mangling only names used to access non-POD ?

This clearly falls down rather badly if one package thinks it's
tweaking a double, and the other thinks it's tweaking a char,
but in that case we're no worse off than in C,
and non-POD mangling would presumably at least catch the 'cout' case.

John.
>From John.Vickers@pacemicro.com Wed Dec 01 08:30:00 1999
From: John Vickers <John.Vickers@pacemicro.com>
To: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Cc: Michael Newcomb <michael.p.newcomb@lmco.com>, gcc-bugs@gcc.gnu.org
Subject: Re: g++ compiled programs that link with Java HotSpot VM core dump
Date: Wed, 01 Dec 1999 08:30:00 -0000
Message-id: <3843BDD7.3813B6E7@PaceMicro.com>
References: <3842C499.1CE83251@lmco.com> <orzovxcf6j.fsf@cupuacu.lsd.ic.unicamp.br>
X-SW-Source: 1999-12/msg00015.html
Content-length: 1255

Alexandre Oliva wrote:
> 
> On Nov 29, 1999, Michael Newcomb <michael.p.newcomb@lmco.com> wrote:
> 
> > Basically, any program (however simple) that gets linked with
> > the Java HotSpot VM (-ljvm) core dumps at initialization.
> 
> A program that uses cout from -lstdc++ is hardly a ``simple'' one;
> there's a lot of code involved in its initialization, and it happens
> that g++ and Sun's C++ refer to the `cout' symbol assuming completely
> different structures.
> 
> The only way to work around this problem would be to mangle variable
> names, just like we mangle functions.
> 
> Having C++ hidden within libraries is becoming more and more common,
> and, if we intend to be able to link g++-compiled code with such
> libraries, I can't see any other way to go.
> 
> Can anybody think of any reason for *not* introducing name mangling in
> variable names with -fnew-abi?

Sharing of variables with non-C++ code.  C library code.
Maybe assembler code.

How about mangling only names used to access non-POD ?

This clearly falls down rather badly if one package thinks it's
tweaking a double, and the other thinks it's tweaking a char,
but in that case we're no worse off than in C,
and non-POD mangling would presumably catch the 'cout' case.

John.
>From oliva@lsd.ic.unicamp.br Wed Dec 01 08:39:00 1999
From: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
To: Leah Bar <leah@tiltan-se.co.il>
Cc: bug-gcc@gnu.org
Subject: Re: reporting new operator bug
Date: Wed, 01 Dec 1999 08:39:00 -0000
Message-id: <ork8my39ak.fsf@garnize.lsd.ic.unicamp.br>
References: <38454075.777F2EA9@tiltan-se.co.il>
X-SW-Source: 1999-12/msg00016.html
Content-length: 727

On Dec  1, 1999, Leah Bar <leah@tiltan-se.co.il> wrote:

> The operator new doesn't return NULL when fails, instead we get the
> message:
> "Virtual memory exceeded in `new'".

`operator new(size_t)' *never* returns NULL, only `operator
new(size_t, nothrow_t)' does.  Since exceptions were not fully
supported in gcc 2.8.1, `operator new(size_t)' just failed instead of
throwing an exception.  With gcc 2.95.2, you'll get the Standard
behavior.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-11-30 13:58 internal " Tom Hull
@ 1999-12-01  1:03 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-12-01  1:03 UTC (permalink / raw)
  To: thull; +Cc: gcc-bugs, egcs-bugs

>   ft_ios.C:371: Internal compiler error.

Thanks for your bug report. gcc-2.95.2 compiles this just fine (with a
few warnings), so the bug has been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-11-11  4:12 Internal compiler error Nemesis
@ 1999-11-30 23:39 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-11-30 23:39 UTC (permalink / raw)
  To: Nemesis; +Cc: gcc-bugs

On Nov 11, 1999, "Nemesis" <nemesis.tf@gmx.net> wrote:

> /usr/local/lib/gcc-lib/i686-pc-linux-gnu/pgcc-2.95.2/specs
> gcc version pgcc-2.95.2 19991024 (release)

pgcc is not gcc, it's a separate project, and it crashes many times
that gcc doesn't (and the converse may also be true, I don't know :-).
Please address your bug report to the maintainers of pgcc, and suggest
that, when they release their package, they also change the bug
reporting address.  Nevertheless, they may keep a pointer to the bug
reporting, instructions, even though it seems useless, as you failed
to include the *preprocessed* sources. :-(

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-11-30 23:39 Stephen Wagner
  0 siblings, 0 replies; 387+ messages in thread
From: Stephen Wagner @ 1999-11-30 23:39 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 1490 bytes --]

One of my students came up with this one.

The GCC version

tmp >g++ -v
Reading specs from
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/specs

The system

<168 nw81:/tmp >uname -a
SunOS nw81 5.6 Generic_105181-16 sun4m sparc SUNW,SPARCstation-10


No options were passed to the compiler.  If I compile the file, I get
the following:

<180 nw81:/tmp >g++ bug.cpp
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3/stl_alloc.h:
In function `static void
simple_alloc<stock,__default_alloc_template<false,0> >::deallocate(stock
*, unsigned int)':
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3/stl_vector.h:95:  
instantiated from
`_Vector_alloc_base<stock,allocator<stock>,>::_M_deallocate(stock *,
unsigned int)'
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3/stl_vector.h:115:  
instantiated from `_Vector_base<stock,allocator<stock>
>::~_Vector_base()'
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3/stl_vector.h:266:  
instantiated from `vector<stock,allocator<stock> >::~vector()'
bug.cpp:11:   instantiated from here
/soft/sparc/gnu/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3/stl_alloc.h:232:
Internal compiler error in `find_function_data', at function.c:542
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.


bug.ii is attached.

-stephen
bug.ii.gz


[-- Attachment #2: bug.ii.gz --]
[-- Type: application/x-gzip, Size: 21232 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-11-30 23:39 morell
  0 siblings, 0 replies; 387+ messages in thread
From: morell @ 1999-11-30 23:39 UTC (permalink / raw)
  To: egcs-bugs

Here is the code:

class Stack
{public:
  virtual int x(); 
};


main()
{  Stack x; 
   Stack &place=x;
   !place.x;
}

Here is the compiler report:
cs.atu.edu{morell}(102): g++ bug.cc
bug.cc: In function `int main()':
bug.cc:11: Internal compiler error.
bug.cc:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Here is the current compiler being used:
cs.atu.edu{morell}(104): g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

Larry Morell


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-11-12  8:47 Internal Compiler Error Ramon P Williams
@ 1999-11-30 23:39 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-11-30 23:39 UTC (permalink / raw)
  To: rpwillia; +Cc: gcc-bugs

> I performed a compile and received the following:  I am using Red Hat 6.0
> Linux.  The compiler version is 2.7.  Ray

Thanks for your bug report. I very much doubt that you've been using
g++ 2.7, since that would not print the message you've reported.

> g++ -o myown -g myownstlq.c
> myownstlq.c: In function `int main(...)':
> myownstlq.c:19: Internal compiler error.
> myownstlq.c:19: Please submit a full bug report to
> `egcs-bugs@egcs.cygnus.com'.
> myownstlq.c:19: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
> details.

Thanks for your bug report. gcc-2.95.2 says

a.cc: In function `int main(...)':
a.cc:18: type/value mismatch at argument 1 in template parameter list for `template <class _Tp, class _Sequence = class deque<_Tp,allocator<_Tp1>,0> > queue<_Tp,_Sequence>'
a.cc:18:   expected a type, got `node_type'

which indeed is an error.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-11-30 13:58 Tom Hull
  1999-12-01  1:03 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Tom Hull @ 1999-11-30 13:58 UTC (permalink / raw)
  To: gcc-bugs, egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1703 bytes --]

I encountered the following error whilst trying to built ftwalk-1.5.2
(see http://www.ocston.org/~thull/ftwalk/download.html ).

Error message:

  ft_ios.C: In function `int ostream_special(class ostream &, class ft_objt &)':
  ft_ios.C:371: Internal compiler error.
  ft_ios.C:371: Please submit a full bug report to 'egcs-bugs@egcs.cygnus.com'.
  ft_ios.C:371: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
  make[1]: *** [ft_ios.o] Error 1
  make[1]: Leaving directory `/home/tom/ftwork/ftwalk-1.5.2/src'
  make: *** [ftwalk] Error 2

GCC Version:

  $ g++ --version
  egcs-2.91.66

System Type:

  $ uname -a
  Linux tux.kinich.com 2.2.12-20 #1 Mon Sep 27 10:40:35 EDT 1999 i686 unknown

I.e., Intel Pentium II 333MHz, 128MB RAM, Red Hat Linux 6.1

All options you passed to the compiler:

  c++ -c -g -O2 -I. -D_GNU_SOURCE=1 ft_ios.C

Preprocessed output of the source file that caused the compiler error:

See attachment.

Note: I reworked the code a bit, which provides a workaround to this
problem:

  class ft_enum : public ft_objt {
    public:
      ...
      int operator () () const { return int(*this); }
+     int val() const          { return (int) *this; }
      ...
  }

  static int ostream_special(ostream &s, ft_objt &o)
  {
      if (o.type() == t_enum) {
-         int n = int(o);
+         int n = (int) o;
-         if (n == sym_endl()) {
+         if (n == sym_endl.val()) {
              s << endl;
              return 1;
          }
-         else if (n == sym_flush()) {
+         else if (n == sym_flush.val()) {
              s << flush;
              return 1;
          }
      }
      return 0;
  }

-- Tom Hull - thull@kscable.com
ft_ios.ii.bz2


[-- Attachment #2: ft_ios.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 23244 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-11-12  8:47 Ramon P Williams
  1999-11-30 23:39 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Ramon P Williams @ 1999-11-12  8:47 UTC (permalink / raw)
  To: gcc-bugs

I performed a compile and received the following:  I am using Red Hat 6.0
Linux.  The compiler version is 2.7.  Ray

[rpwillia@rays_pc rpwillia]$ !!
g++ -o myown -g myownstlq.c
myownstlq.c: In function `int main(...)':
myownstlq.c:19: Internal compiler error.
myownstlq.c:19: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
myownstlq.c:19: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.
[rpwillia@rays_pc rpwillia]$ 


// Filename:    myown.c
// Description: Test program for file I/O
#include <fstream.h>
#include <iostream.h>
#include <queue>

struct node {   
        char    Node_Name[20];          // Node Name
        int     Distance;       // Distance to Next Node
        char    Neighbor[20];           // Name of Next Node
} node_type; // End of struct link
void main()  {
        int     Node_ID;
        char    Node_Name[20];
        char    Neighbor[20];
        int     Distance;

queue < node_type > q;

ifstream infile("/home/rpwillia/hawaii.dat");   // Open the file for
writing.

   while(infile.peek() != EOF) { 
        infile>>Node_ID;
        infile.getline(Node_Name, 20, ' ');
        infile.getline(Neighbor, 20, ' ');
        infile>>Distance;
        q.Node_Name = Node_Name;
        q.Next_Node = Next_Node;
        q.Distance  = Distance;
        q.push(q);
        cout<<node.Node_Name<<node.Neighbor<<node.Distance<<endl;
        //infile.seekg(1L, ios::cur);
        
   } //End while

} // End of main()
>From pthomas@suse.de Fri Nov 12 09:02:00 1999
From: Philipp Thomas <pthomas@suse.de>
To: gcc-bugs@gcc.gnu.org
Subject: Internal error in c++ (regstack.c:convert_regs_1)
Date: Fri, 12 Nov 1999 09:02:00 -0000
Message-id: <19991112180217.G6734@jeffreys.suse.de>
X-SW-Source: 1999-11/msg00418.html
Content-type: multipart/mixed; boundary="----------=_1583533144-4113-755"

This is a multi-part message in MIME format...

------------=_1583533144-4113-755
Content-length: 2331

While trying to compile current CVS WxWindows, c++ dropped dead. 

here's the gcc message:

Reading specs from /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/specs
gcc version 2.96 19991030 (experimental)
 /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/cpp -lang-c++ -v -I. -I./include -I../../wxWindows/include -I../../wxWindows/src/zlib -I../../wxWindows/src/png -I../../wxWindows/src/jpeg -I/usr/X11R6/include -I/usr/lib/glib/include -MMD utilsres.d -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -W -Wall -Wpointer-arith -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__pentiumpro -D__pentiumpro__ -D__tune_pentiumpro__ -D__PIC__ -D__pic__ -D__WXGTK__ -DGTK_NO_CHECK_CASTS -D_REENTRANT -D_IODBC_ -DwxINSTALL_PREFIX="/usr/local" ../../wxWindows/src/gtk/utilsres.cpp utilsres.ii
GNU CPP version 2.96 19991030 (experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 .
 include
 ../../wxWindows/include
 ../../wxWindows/src/zlib
 ../../wxWindows/src/png
 ../../wxWindows/src/jpeg
 /usr/X11R6/include
 /usr/lib/glib/include
 /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/../../../../include/g++-3
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/../../../../i686-suse-linux-gnu/include
 /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /suse/pthomas/include
End of omitted list.
 /usr/local/lib/gcc-lib/i686-suse-linux-gnu/2.96/cc1plus utilsres.ii -quiet -dumpbase utilsres.cc -mcpu=i686 -march=i686 -O2 -W -Wall -Wpointer-arith -Wall -version -fschedule-insns2 -fPIC -o utilsres.s
GNU C++ version 2.96 19991030 (experimental) (i686-suse-linux-gnu) compiled by GNU C version 2.96 19991030 (experimental).
../../wxWindows/src/gtk/utilsres.cpp: In function `bool wxGetResource (const wxString &, const wxString &, float *, const wxString &)':
../../wxWindows/src/gtk/utilsres.cpp:318: Internal compiler error in `convert_regs_1', at reg-stack.c:2539

Attached is the preprocessed source.

-- 
	Philipp Thomas <pthomas@suse.de>

	close the windows - the penguin is freezing

------------=_1583533144-4113-755
Content-Type: application/x-bzip2; charset=binary; name="utilsres.ii.bz2"
Content-Disposition: inline; filename="utilsres.ii.bz2"
Content-Transfer-Encoding: base64
Content-Length: 77926

QlpoOTFBWSZTWRlcWzsAuVt/gH////v/////v////r////9hQh7wUAfZvveH
3n3aROzS73rvtt8r6DvfaZrnoBffffTy933z0fd9AdLZ6Bp120QB3YA7uDno
AGgAAB6BL2ndcyp93074tNb4BuxjXz14HoBQHQL3nr3tj7tvc++hDe7NL5sp
q2sTUzW+++5e1fXvk+73MgrRzPdrlo3vlffcN7O9s953i77wdt9vt1XvN2G+
77t7febl6l53Lent99vEPk57tBV9tfe7fPfePsZ7m+9ve73u3ea99PVO9Fxd
vZuuu9vXX13fRoux1l9vuz77nbY75nV99wdfTW+MHvNHT73i++XY2vNe+3s9
XecSt9zqAffNPsA0B61poeQOVdSGTVAGgEhN6wfRqBfcSKI+cEPtjoaBQ326
KoycI4e76V9702jvm9brSV2prbO2u1e++d5SPr7dZuuDXruLGypS5gDXQL73
2vWvffPva73sU5vZzvr56Dzz3DqW83fWV5WW2s2A2xb7zfT74y3x3XCgvNVM
9s9U+2dtxFXiz6+D57Nu23Sc3pyfXXvpnwF3bttKzbe4d7d97vtJfcZfd47b
XjWzbG1ligu3M+0crZs3t2+5rqxtts9dKARdH3n0BoHd59yoTI0U0YSfR1zK
31689sRzk97u963vbyGsumI61vXdrrl7rb2eVe99fJ9PPg94AfXd93OBgG32
4X18dPs2vQ5ueFd9nPgAAAAPQeh1S2Pe685rd7g+u9ve+3O7rn0uejvm3u7j
4Eouvtu2x1Q4O73A97VN3Oc029bvd65N4OHq9hte5yD333OhRHrJvvLgHeMu
QAGXt00272l55tt47tut72Gu17nfe6d7dzBeOc+Zl75tp1dGp3u7r3u7Xd5e
4acNL3294A+jdHzs9ZAUabsHXvG0N6sGtX15HNCtp7ltPuPQNUGQd4NUN2S6
1hBBu+YfW62+d07aze+Pe+vWXtbavufePAc3b7e9XvN1uN16vdbVPe4AAB3Q
EgbYUU66Bqe4GXeZ7z69433bqKF3W3bC3sa6H1zddztpnYPvDUj77zvOzbH3
ZHbCba3uwsjdoh6NEgYiAICAEJhNGQI0Ak09TBT009ANFMQyNJ6T9SNqMIMm
jQSIEQghNCaCI9T0GmiamRlT8o/UiNP0pptppT8SIekDQAPUDI0aYSNSSCCM
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
q10ZZdLNksvaw97PXmYZdZu6k2cOpnrpfu8JM53MwZdFPbLmJh3FRVU47/3z
M1OQfOzT/Thrfw2/DNJjdR6Y7ds5k0WnuzyvKOtUxAdaN8wiTSwlpQ69zNLm
+6oYa77JMuWQGg6hbiKlMMzKsynWeOtbZ1ttjhue9rLvZ9VlFGWr32NN/fsl
5bPucn4UFnFW/uYfRzg6O5WC4xGS6QDXZltjBaNGLNN2VSUhogwmYD23v8P5
/E0Zrj8uZcoaYHswXydGBrvHrWwcTEoKFVHyu17nFhwopvFhXfdFiTgDJNEC
0C0f+nHHrjIaCVBSRQIqJFiiwEmK8KDX293LpnZ2ZKBROzRzSkFmrlOeKFVP
Ci0x/OpwTRN8NWyexp8+6iXxrTPc3WaFg8MXTaiQxVIiz+CUig/BNpXpDPGD
y8IegeuO/OlNezSB3NHvWSgrR4IQj8n8f5o/eqKO9eloWhl+zEC2sduWczCF
edHndG1HrZN1B27eT5NkDGEApEVik2n82sCQDZCmYEhbItChlJ4MPDFQtITw
a0WePpJgV1Bjkf5rCNlQ5nODr6Wp7Re439UkgTz6YP3qYyadPCLTwioIel9H
KC3IHXe37FgjBaswRCJRsgSWArxhw1a+slNvHjxeB9SyGIRu4i+jr09+Yis3
7HZ9mjW4UuZw0nERKyONofbESVJRlB/dAR+ahGvoeD2G87YlfWg8lRnnvSDy
18mHs0g4fZ0Qniwq6YyIw37caPRzru4mskLTdhwQ2VMDDczXZgK/XVnFr25m
3TEFgZRNmkggsWEM4P7/7H486AkdKDu59rCdvHUznzkMigaImyJxuGEEBTTy
V3rPWqj6ZN2RU7Mq9cuNEc1B9m4n/RGT7E/Yw3Ovfx75EE6t6M+zV7ZUz8oc
u69psmIh85A5g55hOzznLb7NzGVxXrXSyCSljgLi8pSqsgnDEhRXp2x35TAs
1NK6x2xjW0x6d1QYRC0FhHldRD4qH68+1U/lFz2zvxxp5U6cAoYCD73WuR2k
nDPDYqXstEc56xUN+RAlMUtKkmjlZ1MSDutHVUIiBUDkuyTBLZFZVzq8OrO0
IpeL99lfHQib79+/FfGlyPYKogD9OyNst8MwYh3rTAcpshSLVVK+RAYevz9y
X8JZitfaa9z9I2IGOveaIOSQUESQPkcVpR1WnOHLqcRWbIL3CzOVHhTj7n4Q
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
7d9Abz2G+IcIZYdqkwJyTAC1zmuanHk4A0vJrsBwIoeSkTRINtILO+TXwIDV
Q3X9n04/xMQm5xaYcjB48Lh7MBQdntAlyNHMhkDuc9mimIomiWiike1BwKE7
t2MWl/afOgX8cG6eT6m4blikRWKLdL5h0MS0cK00lZqm1aXRW7u6Kq7pXGQO
l4GZkQalGUWHWSAx7dNEVRo7ewEYCgk++PcU2ah6BhQJbMpSWG1Ysl2WhcLh
M3hKfFoYEASDPBCP8IhC2k0as0DpoUwPVCOydmjv3jAY8x2qjlQhElESDwhI
WYKloN7oemU+nTIiAIoBow4Jq2zAgxDKUow7b3EHzmfEUB/b8ktB01ww+uin
P+5+uK3DUpiGvgQo9QimBdWMSjkCIbf91F41TuIYdnSUPcUY7bkUZ5Bh5ucA
+OJyDoD8Iyr/QQ/y6gMiP50h9aj9X1/n8Tylet09w65fCZkJ13R/Qk0CNcTm
fwNT5pb8M6dUHaZTJSghc8dy5mGEoQzT9Mh8T8cA72TKB3Hf9f4/uwnoR8EE
F/Mo3XyBooUU/90PmYn6KOvuP9CK2fmTxOJWAt+I3nObBPfOnlN8om2bZkZm
4GjrPu68J1/N5P6ffv4iP+FvVJLTP9q/+LyRj+VUEn/wgzD/Pf2uu/+vJrct
lNJ3Fy81pVS2zstsb6kDF+hIQHxX9/6RtBRO77/ifiCOXOI9Eq1hLJyDEH9H
3M9il7vng6/czH5JN4v26bbY26z912fviNxW3yO9K6HGJZ9opZFAUigKRTt4
YpjnblrsYKwhvfCXtjp+/e7hbI3AadqLhz5LbnPBkvEKJrsjO2tf77hzSZgp
M+fu6rZz46bBr/DNm/LSpYoL9/a76aNsfH6YvnOwEmbMfS4dCQGHB8Yzchm+
sgG8KDLHCO5hFG047Tya/Gmqn9QcAGWkCGVkTpXN96juZoX4JQxFayves+0c
cnH1u0sJvyRIhkwweriWWUHgM5hBf1q4v0416Vcw22+AI46c2Y7tlvNw2uK1
83zPtrHH3bbMgpFWGJzyNcQhTJ105WDqoz0DVCCC0sGEmWnPUOzhIRCZ9nMZ
vxTTBvqSBA0HPphKMGH1MDGjW8320x4j/gbaSWbfsKJADrZrOHWrOyKHrB66
TXqnt8vH2YzslAgCwrh0BEATutMO7ZQwiDSspgdp3jDmpxo0Ydes+NHeQxpo
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
ef3smiJiaiZv/8XckU4UJAZXFs7A

------------=_1583533144-4113-755--
>From ghazi@caip.rutgers.edu Fri Nov 12 10:35:00 1999
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: gcc-bugs@gcc.gnu.org, mckelvey@fafnir.com
Subject: Re: gcc-2.95.2, Next 4.2,  "gen" programs won't compile
Date: Fri, 12 Nov 1999 10:35:00 -0000
Message-id: <199911121835.NAA15307@caip.rutgers.edu>
X-SW-Source: 1999-11/msg00419.html
Content-length: 1217

 > From: James McKelvey <mckelvey@fafnir.com>
 >  
 > NeXT Cube running Openstep 4.2.
 > gmake CFLAGS='-O2' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2
 > -fno-implicit-templates' bootstrap
 >  
 > The "gen" group won't compile because "free" is not defined. I was
 > able to  
 > fix it by adding:
 >  
 > #include <stdlib.h>
 >  
 > You guys will probably fix it though by adding the include to config.h
 > and  
 > hconfig.h.
 >  
 > The "gen" files affected:
 >  
 > genattr.c
 > genattrtab.c
 > gencodes.c
 > genconfig.c
 > genemit.c
 > genextract.c
 > genflags.c
 > genopinit.c
 > genoutput.c
 > genpeep.c
 > genrecog.c
 >  
 > There are a few more problems with the gen*'s that are not common to
 > all. I will report those separately.


Amost all files, including the gen*.c ones, include system.h.  This
file in turn includes system headers when the appropriate HAVE_*_H
macro is defined by the autoconf configure script.

Rather than manually add these headers to each individual file, your
time IMHO would be better spent figuring out why configure/system.h
didn't get stdlib.h, etc, for you.

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From briareos@lokigames.com Fri Nov 12 11:28:00 1999
From: Michael Vance <briareos@lokigames.com>
To: gcc-bugs@gcc.gnu.org
Subject: Bootstrap ICE on i686-pc-linux-gnu for morning CVS
Date: Fri, 12 Nov 1999 11:28:00 -0000
Message-id: <19991112112848.O24411@namaste.lokigames-lan.com>
X-SW-Source: 1999-11/msg00420.html
Content-length: 2023

gcc  -DIN_GCC    -g -W -Wall  -DHAVE_CONFIG_H  -o collect2 collect2.o
tlink.o hash.o intl.o underscore.o version.o obstack.o
../libiberty/libiberty.a
gcc -o c++filt  -DIN_GCC    -g -W -Wall  -DHAVE_CONFIG_H  \
  cxxmain.o underscore.o obstack.o        ../libiberty/libiberty.a
_muldi3
_divdi3
../../egcs/gcc/libgcc2.c: In function `__divdi3':
../../egcs/gcc/libgcc2.c:476: Invalid `asm' statement:
../../egcs/gcc/libgcc2.c:476: fixed or forbidden register 0 (ax) was
spilled for class AREG.
../../egcs/gcc/libgcc2.c:694: fixed or forbidden register 0 (ax) was
spilled for class AREG.
../../egcs/gcc/libgcc2.c:694: This may be due to a compiler bug or to
impossible asm
../../egcs/gcc/libgcc2.c:694: statements or clauses.
../../egcs/gcc/libgcc2.c:694: This is the instruction:
(insn/i 105 104 106 (parallel[ 
            (set (reg/v:SI 49)
                (udiv:SI (reg:SI 5 edi)
                    (reg/v:SI 46)))
            (set (reg:SI 5 edi)
                (umod:SI (reg:SI 5 edi)
                    (reg/v:SI 46)))
            (clobber (reg:CC 17 flags))
        ] ) 216 {udivmodsi4} (insn_list 103 (nil))
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_UNUSED (reg:SI 5 edi)
            (expr_list:REG_DEAD (reg:SI 5 edi)
                (nil)))))
../../egcs/gcc/libgcc2.c:694: Internal compiler error in
`new_spill_reg', at reload1.c:2275
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make[2]: *** [libgcc2.a] Error 1
make[2]: Leaving directory `/home/michael/src/egcs-build/gcc'
make[1]: *** [bootstrap] Error 2
make[1]: Leaving directory `/home/michael/src/egcs-build/gcc'
make: *** [bootstrap] Error 2

My reference compiler is still egcs-1.1.2. If any extra info is
necessary, just let me know.

m.

-- 
Programmer                         "I wrote a song about dental floss,
Loki Entertainment Software         but did anyone's teeth get cleaner?"
http://lokigames.com/~briareos/              - Frank Zappa, re: the PMRC
>From zack@bitmover.com Fri Nov 12 12:17:00 1999
From: Zack Weinberg <zack@bitmover.com>
To: gcc-bugs@gcc.gnu.org
Subject: reload ICE during bootstrap, x86, current CVS
Date: Fri, 12 Nov 1999 12:17:00 -0000
Message-id: <199911122017.MAA11365@zack.bitmover.com>
X-SW-Source: 1999-11/msg00421.html
Content-length: 4753

$ ./cc1 -O2 -g1 -fPIC -W -Wall libgcc2.i
 __negdi2 __udivmoddi4 __divdi3
libgcc2.i: In function `__divdi3':
libgcc2.i:53: Invalid `asm' statement:
libgcc2.i:53: fixed or forbidden register 0 (ax) was spilled for class AREG.
libgcc2.i:187: fixed or forbidden register 0 (ax) was spilled for class AREG.
libgcc2.i:187: This may be due to a compiler bug or to impossible asm
libgcc2.i:187: statements or clauses.
libgcc2.i:187: This is the instruction:
(insn/i 105 104 106 (parallel[ 
            (set (reg/v:SI 49)
                (udiv:SI (reg:SI 5 edi)
                    (reg/v:SI 46)))
            (set (reg:SI 5 edi)
                (umod:SI (reg:SI 5 edi)
                    (reg/v:SI 46)))
            (clobber (reg:CC 17 flags))
        ] ) 216 {udivmodsi4} (insn_list 103 (nil))
    (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_UNUSED (reg:SI 5 edi)
            (expr_list:REG_DEAD (reg:SI 5 edi)
                (nil)))))
libgcc2.i:183: Internal compiler error in `new_spill_reg', at reload1.c:2275

libgcc2.i follows.

zw

typedef 	 int SItype	__attribute__ ((mode (SI)));
typedef unsigned int USItype	__attribute__ ((mode (SI)));
typedef		 int DItype	__attribute__ ((mode (DI)));
typedef unsigned int UDItype	__attribute__ ((mode (DI)));
typedef		 int word_type	__attribute__ ((mode (word)));

struct DIstruct {SItype low, high;};
typedef union
{
  struct DIstruct s;
  DItype ll;
} DIunion;

static __inline__ DItype
__negdi2 (DItype u)
{
  DIunion w;
  DIunion uu;

  uu.ll = u;

  w.s.low = -uu.s.low;
  w.s.high = -uu.s.high - ((USItype) w.s.low > 0);

  return w.ll;
}

static __inline__ UDItype
__udivmoddi4 (UDItype n, UDItype d, UDItype *rp)
{
  DIunion ww;
  DIunion nn, dd;
  DIunion rr;
  USItype d0, d1, n0, n1, n2;
  USItype q0, q1;
  USItype b, bm;

  nn.ll = n;
  dd.ll = d;

  d0 = dd.s.low;
  d1 = dd.s.high;
  n0 = nn.s.low;
  n1 = nn.s.high;

  if (d1 == 0)
    {
      if (d0 > n1)
	{
	  __asm__ ("divl %4"
		   : "=a" ((USItype) (q0)), "=d" ((USItype) (n0))
		   : "0" ((USItype) (n0)), "1" ((USItype) (n1)),
		     "rm" ((USItype) (d0)));
	  q1 = 0;
	}
      else
	{
	  if (d0 == 0)
	    d0 = 1 / d0;	 

	  __asm__ ("divl %4"
		   : "=a" ((USItype) (q1)), "=d" ((USItype) (n1))
		   : "0" ((USItype) (n1)), "1" ((USItype) (0)),
		     "rm" ((USItype) (d0)));
	  __asm__ ("divl %4"
		   : "=a" ((USItype) (q0)), "=d" ((USItype) (n0))
		   : "0" ((USItype) (n0)), "1" ((USItype) ( n1)),
		     "rm" ((USItype) (d0)));
	}

      if (rp != 0)
	{
	  rr.s.low = n0;
	  rr.s.high = 0;
	  *rp = rr.ll;
	}
    }
  else
    {
      if (d1 > n1)
	{
	  q0 = 0;
	  q1 = 0;
	  if (rp != 0)
	    {
	      rr.s.low = n0;
	      rr.s.high = n1;
	      *rp = rr.ll;
	    }
	}
      else
	{
	  USItype __cbtmp;
	  __asm__ ("bsrl %1,%0" : "=r" (__cbtmp) : "rm" ((USItype) (d1)));
	  (bm) = __cbtmp ^ 31;
	  if (bm == 0)
	    {
	      if (n1 > d1 || n0 >= d0)
		{
		  q0 = 1;
		  __asm__ ("subl %5,%1; sbbl %3,%0"
		  : "=r" ((USItype) (n1)), "=&r" ((USItype) (n0))
		  : "0" ((USItype) (n1)), "g" ((USItype) (d1)),
		    "1" ((USItype) (n0)), "g" ((USItype) (d0)));
		}
	      else
		q0 = 0;

	      q1 = 0;

	      if (rp != 0)
		{
		  rr.s.low = n0;
		  rr.s.high = n1;
		  *rp = rr.ll;
		}
	    }
	  else
	    {
	      USItype m1, m0;
	      b = (sizeof (SItype) * 8) - bm;
	      d1 = (d1 << bm) | (d0 >> b);
	      d0 = d0 << bm;
	      n2 = n1 >> b;
	      n1 = (n1 << bm) | (n0 >> b);
	      n0 = n0 << bm;

	      __asm__ ("divl %4"
		       : "=a" ((USItype) (q0)), "=d" ((USItype) (n1))
		       : "0" ((USItype) (n1)), "1" ((USItype) (n2)),
		         "rm" ((USItype) (d1)));
	      __asm__ ("mull %3"
		       : "=a" ((USItype) (m0)), "=d" ((USItype) (m1))
		       : "%0" ((USItype) (q0)),	"rm" ((USItype) (d0)));

	      if (m1 > n1 || (m1 == n1 && m0 > n0))
		{
		  q0--;
		  __asm__ ("subl %5,%1; sbbl %3,%0"
			   : "=r" ((USItype) (m1)), "=&r" ((USItype) (m0))
			   : "0" ((USItype) (m1)), "g" ((USItype) (d1)),
			     "1" ((USItype) (m0)), "g" ((USItype) (d0)));
		}

	      q1 = 0;
	      if (rp != 0)
		{
		  __asm__ ("subl %5,%1; sbbl %3,%0"
			   : "=r" ((USItype) (n1)), "=&r" ((USItype) (n0))
			   : "0" ((USItype) (n1)), "g" ((USItype) (m1)),
			     "1" ((USItype) (n0)), "g" ((USItype) (m0)));
		  rr.s.low = (n1 << b) | (n0 >> bm);
		  rr.s.high = n1 >> bm;
		  *rp = rr.ll;
		}
	    }
	}
    }

  ww.s.low = q0;
  ww.s.high = q1;
  return ww.ll;
}

DItype
__divdi3 (DItype u, DItype v)
{
  word_type c = 0;
  DIunion uu, vv;
  DItype w;

  uu.ll = u;
  vv.ll = v;

  if (uu.s.high < 0)
    c = ~c,
    uu.ll = __negdi2 (uu.ll);
  if (vv.s.high < 0)
    c = ~c,
    vv.ll = __negdi2 (vv.ll);

  w = __udivmoddi4 (uu.ll, vv.ll, (UDItype *) 0);
  if (c)
    w = __negdi2 (w);

  return w;
}
>From rth@cygnus.com Fri Nov 12 12:24:00 1999
From: Richard Henderson <rth@cygnus.com>
To: Toshiyasu Morita <tm@netcom.com>
Cc: egcs-bugs@sourceware.cygnus.com
Subject: Re: CVS GCC infinite loop
Date: Fri, 12 Nov 1999 12:24:00 -0000
Message-id: <19991112122428.A4898@cygnus.com>
References: <199911111011.CAA10593@netcom.com> <199911111015.CAA10746@netcom.com>
X-SW-Source: 1999-11/msg00422.html
Content-length: 272

On Thu, Nov 11, 1999 at 02:15:06AM -0800, Toshiyasu Morita wrote:
> Ooops, I spoke too soon.
> 
> It took around 12 minutes to compile this file on a PPro 200.
> This seems excessively long.

Would you profile the compiler and find out where it's 
spending its time?


r~
>From rth@cygnus.com Fri Nov 12 12:42:00 1999
From: Richard Henderson <rth@cygnus.com>
To: Brad Lucier <lucier@math.purdue.edu>
Cc: gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: infinite loop compiling aboot.i on alpha
Date: Fri, 12 Nov 1999 12:42:00 -0000
Message-id: <19991112124242.B4898@cygnus.com>
References: <199911111826.NAA24954@polya.math.purdue.edu>
X-SW-Source: 1999-11/msg00423.html
Content-length: 1306

On Thu, Nov 11, 1999 at 01:26:45PM -0500, Brad Lucier wrote:
> it seems to get stuck in an infinite loop.
[...]
> #0  __divl () at ../sysdeps/alpha/divrem.h:175
> #1  0x1200f2914 in unroll_loop (loop_end=0x20000551b00, insn_count=5, 
>     loop_start=0x20000551940, end_insert_before=0x20000554040, 
>     loop_info=0x120329948, strength_reduce_p=0) at ../../gcc/unroll.c:390

Yes indeed.  Assign 0x1_0000_0000 to a 32-bit int and try
to find the non-zero factor, and you'll be searching a while.


r~


	* unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.

Index: unroll.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/unroll.c,v
retrieving revision 1.77
diff -c -p -d -r1.77 unroll.c
*** unroll.c	1999/11/02 16:37:23	1.77
--- unroll.c	1999/11/12 20:39:39
*************** unroll_loop (loop_end, insn_count, loop_
*** 234,240 ****
       struct loop_info *loop_info;
       int strength_reduce_p;
  {
!   int i, j, temp;
    int unroll_number = 1;
    rtx copy_start, copy_end;
    rtx insn, sequence, pattern, tem;
--- 234,241 ----
       struct loop_info *loop_info;
       int strength_reduce_p;
  {
!   int i, j;
!   unsigned HOST_WIDE_INT temp;
    int unroll_number = 1;
    rtx copy_start, copy_end;
    rtx insn, sequence, pattern, tem;
>From jarl@diku.dk Fri Nov 12 13:18:00 1999
From: Jarl Friis <jarl@diku.dk>
To: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Cc: bug-gcc@gnu.org
Subject: Re: GCC behaviour fault
Date: Fri, 12 Nov 1999 13:18:00 -0000
Message-id: <Pine.HPX.4.20.9911122208420.2736-300000@ask.diku.dk>
References: <or3ducw77o.fsf@garnize.lsd.ic.unicamp.br>
X-SW-Source: 1999-11/msg00424.html
Content-length: 790

On 12 Nov 1999, Alexandre Oliva wrote:

> On Nov 12, 1999, Jarl Friis <jarl@diku.dk> wrote:
> 
> > But what shall I do when the compiler compiles my program but does it
> > faulty!
> 
> Submit a program that tests the expected behavior and abort()s if it
> finds unexpected behavior.
I have made a short program that demonstrates the bahaviour, but strange
things must be done to provoke it.

To me it seems that a referencecounter for a valarray seem to be mixed
with the objects. This is just a guess, and might be misleading.

> 
> > I can demonstrate different behaviour, though not in a short program.
> 
> How long is ``not short''? :-)

I succeded in localising the behaviour. So a short program is attached,
included is also the output from my command:
g++ -Wall -v simple.cc

Jarl
>From kargl@pag.apl.washington.edu Fri Nov 12 13:38:00 1999
From: kargl@pag.apl.washington.edu
To: gcc-bugs@gcc.gnu.org
Subject: virtual memory exhausted; egcs-19991110
Date: Fri, 12 Nov 1999 13:38:00 -0000
Message-id: <199911122137.NAA16864@pag.apl.washington.edu>
X-SW-Source: 1999-11/msg00425.html
Content-length: 2002

I'm having a bootstrap failure of egcs-19991110 with a message
"Virtual memory exhausted".   This machine is running Digital's
OSF/1 version 3.2D.  It has 192 MB of physical memory and 533
MB of swap space.  The machine is not swapping when the bootstrap
aborts.

I've included the output of the top utility that shows the memory
usage and the resource limits below.

Any hints?

stage1/xgcc -Bstage1/ -B/usr/local/alpha-dec-osf3.2/bin/ -c  -DIN_GCC    -W -Wall -O2 -g -O2  -DHAVE_CONFIG_H    -I. -I../../egcs-19991110/gcc -I../../egcs-19991110/gcc/config -I../../egcs-19991110/gcc/../include ../../egcs-19991110/gcc/stupid.c
../../egcs-19991110/gcc/stupid.c: In function `stupid_life_analysis':
../../egcs-19991110/gcc/stupid.c:267: warning: `chain' might be used uninitialized in this function
stage1/xgcc -Bstage1/ -B/usr/local/alpha-dec-osf3.2/bin/ -c  -DIN_GCC    -W -Wall -O2 -g -O2  -DHAVE_CONFIG_H    -I. -I../../egcs-19991110/gcc -I../../egcs-19991110/gcc/config -I../../egcs-19991110/gcc/../include ../../egcs-19991110/gcc/combine.c
Virtual memory exhausted!
gmake[2]: *** [combine.o] Error 1
gmake[2]: Leaving directory `/users/kargl/tmp/objdir/gcc'
gmake[1]: *** [bootstrap] Error 2
gmake[1]: Leaving directory `/users/kargl/tmp/objdir/gcc'
gmake: *** [bootstrap] Error 2


The output from top shows:

load averages:  1.45,  1.29,  1.23                                       13:30:38
44 processes:  2 running, 8 sleeping, 34 idle
CPU states: 95.5% user,  0.0% nice,  4.4% system,  0.0% idle
Memory: Real: 82M/183M act/tot  Virtual: 22M/533M use/tot  Free: 72M

  PID USERNAME PRI NICE  SIZE   RES STATE   TIME    CPU COMMAND
16860 root      56    0   13M 9707K run     1:11 95.40% cc1
  690 root      44    0 3712K  368K sleep   0:03  0.00% sshd1

pag:root[17] limit
cputime         unlimited
filesize        unlimited
datasize        1048576 kbytes
stacksize       32768 kbytes
coredumpsize    unlimited
memoryuse       187024 kbytes
vmemoryuse      1048576 kbytes
descriptors     4096 



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-11-11  4:12 Nemesis
  1999-11-30 23:39 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Nemesis @ 1999-11-11  4:12 UTC (permalink / raw)
  To: gcc-bugs

    * The GCC version
Reading specs from
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/pgcc-2.95.2/specs
gcc version pgcc-2.95.2 19991024 (release)
     * The system type
i686-pc-linux-gnu
intel celeron@400 MHz
glibc (2.0.7)
     * All options you passed to the compiler
nemesis@EViL: /home/nemesis/in/extract/dgen-sdl-1.18> make
g++ -Wall -W -O3 -mpentium -march=pentium -fstrength-reduce
-fomit-frame-pointer -frerun-cse-after-loop -funroll-loops -ffast-math
-malign-functions=5 -malign-jumps=5 -malign-loops=5 -malign-double
-fno-exceptions -fno-rtti -D_REENTRANT -DASM_TILES -DASM_CTV
-DJOYSTICK_SUPPORT -DCOMPILE_WITH_STAR -DCOMPILE_WITH_MUSA -DMMX
-Dmemcpy=mmx_memcpy -I/usr/local/include -I/usr/local/include/SDL -Isdl
-I. -I.. -I/usr/local/include -I/usr/local/include/SDL -Isdl -I. -I.. -c
rc.cpp
rc.cpp: In function `int ctv(char *)':
rc.cpp:403: Internal compiler error.
rc.cpp:403: Please submit a full bug report.
rc.cpp:403: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport >
for instructions.
make: *** [rc.o] Error 1
nemesis@EViL: /home/nemesis/in/extract/dgen-sdl-1.18> 
     * Preprocessed output of the source file that caused the compiler
       error:
see the Attchmnt
>From martin.kahlert@mchp.siemens.de Thu Nov 11 05:27:00 1999
From: Martin Kahlert <martin.kahlert@mchp.siemens.de>
To: <egcs-bugs@egcs.cygnus.com>
Subject: nasty error with g77 (ss-1999-11-10)
Date: Thu, 11 Nov 1999 05:27:00 -0000
Message-id: <19991111142733.A15127@keksy.mchp.siemens.de>
X-SW-Source: 1999-11/msg00385.html
Content-type: multipart/mixed; boundary="----------=_1583533144-4113-751"

This is a multi-part message in MIME format...

------------=_1583533144-4113-751
Content-length: 854

Hi!
I spent a few hours to report this bug with g77 (ss-1999-11-10):
The file was about 1300 loc. Now it's only a bit more than 100.

I attach a tarfile with the driver prog (sorry, when including
it into the buggy source file the problem disappears.)
and a trivial makefile.

I hope, this effort was not useless.

The prog compiled with -O2 -fomit-frame-pointer prints:
 IBAUM =  14
 ERROR!!!

If you neither use -fomit-frame-pointer prints or lower the
opt level, it prints:
 IBAUM =  14
 NO ERROR

gcc -v:
reading specs from /usr/local/snapshots/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 19991110 (experimental)

Bye,
Martin.

PS: This error seems to be very nasty, because you can't change
any unrelated lines without removing the bug.

-- 
The early bird gets the worm. If you want something else for       
breakfast, get up later.

------------=_1583533144-4113-751
Content-Type: application/x-gzip; charset=binary; name="bug.tar.gz"
Content-Disposition: inline; filename="bug.tar.gz"
Content-Transfer-Encoding: base64
Content-Length: 1774

H4sIAHvBKjgAA+1YW2/qOBDu6+FXuKuVSiBA7HDRVsoDlwDZBqdNwm6VN04F
PehQOKL0/58ZJzEOAbpaiXYvmYoknhl/nps9SXtvz42rCxNpGp2WQa4IpabR
hnubGrQJd0kGIR2DslbTaDVNQqjRNtgVaV3aMKS3191sS8jV99m31Xy7O6m3
W+5m648w6GOpB/l/mS3X9cXl1qCG0W6eyT9rt2X+m60W5J922vSKGJczaU//
8/zHGQimPd+bhg63ycgOJ+VHrRQLHB7aI9uvNMljwnkkFqHJs2+HU58nA5sP
SqUcXGT73jm4UxD9ruuS3nRUZjr+Ud3QFKXPjtp/h3D/T2bf54vlan6pNd7b
/yYM5PlvwjNlJm0X+/8jaNjpwIZuvL1uG6vN02zVeF3Pfrx+2+xeG1+X68Zz
p1MaDt3uKACtmsdIbbF5We5qi+3sZV77sVmud/NtqfT17fmWwKW+IKKZbEpf
fi0DtEbgJqZrpLZBjaxWfLuNh4tjk55wXqyWaj2t5rP1benL9gWsEZgJ2mfH
8t9IuP9FSi64xjv7v9VhhtL/Dez/bdYq9v9HUK5hY8/l0wn3Bvrvttvnoe48
9Ke6c+8F+tANA2cim/nk3nX6Tki4x+20bY+7frcfQotnrTYJQt/ho1zvB/g/
gj2668Fl0BeXQHfsh2lX530wgOqJIc7YcYd6jFPZfzW4DkzFSwBXAMALPgpz
u35qOY96PjyOOawz7k6PADm97nSiw0r3br9MDU13IjQqQuS8coS2RsLWCPEj
Acq7oWMP0WI/0nHJ/hhEoW/bxyBCeIsBcU+/o/odA7so/JjOmRponQP3Pr4w
+W4lYlqmt6YGR/KNT365SSQirASYcWTTsEN8kSmkkjfoH1EElw6Z4jVMvBKK
vKSpj9MTo8ITqclXQmUCJi2dgFkCdcFTWIEl7JMcMMuKBQpLKA36ktOfCiUQ
VGOjUwcw51asUCWsgtmXtQcJsWIN6S4UxAELE5mwACH2LZVhiVixSoIu7RY+
ixfdpITEclWqaScVEEZR+NN3Qrtc0SvajVgIM6uLp3T5SMQPQ6NwgmywsCiT
0CicIAmWZCXx2wdHFLAlbErzK4rZMjKVZRFl7EfqWJS7wsg7jDE9GxF0VlGI
tw6WjBBkcyG2D8pipSppVuKKlAo9Kw5VE3oPcYZl4NTth7q7XG00Eo7t9IsD
lVEqcOoju56AHyplckRubN/3/Ovr65u9hu0G9kl97hExRdXnA2e4Hwahd19S
JWA7E7YTNJ6g9SJpB5bdUeV7DEtY7Eo16HdUQyxqCF8BDVTqo7BOjJyTAgzk
CgtGVh5O0sgLPQEueVm/Bij9zSCcWUzPJFGsx9BYllmO5exnwn58R5AesFMe
JJigkWHC2MqDKpT4wQyFe5AhsTREqM6hSmB+fmmopPjgRpVjtmWKQh7keOJn
rcnV0l+eeGByMhYpgE3ncWjx0xQaVzkoLzgm/mZ9mZesL/NsfZkn6+tIgZ2u
MDOpsPdL7HiNvV9kqTeZKpM5Mo/mSPEWTzX4VdNl+T5yUa8mw8alFTiDpGwR
ey5PyFN5hAPzfBZzOTybwdjjpsyf6k82OafykriOB7QV36pN2fA5TTsE9mu6
5zOVLwOWRgtRauL9Sa7H9/HLaDFN9JneUSHNQrADiLQ/HYfAJWUPq5k5KVOk
qWcjj2A8oamd+vfZZ39PFFRQQQUVVFBBBRVUUEEFFVRQQf88+gnmzQ/aACgA
AA==

------------=_1583533144-4113-751--
>From rjohnemus@systemware-inc.com Thu Nov 11 05:43:00 1999
From: Rick Ohnemus <rjohnemus@systemware-inc.com>
To: gcc-bugs@gcc.gnu.org
Subject: ICE in `scan_region', at except.c:2611
Date: Thu, 11 Nov 1999 05:43:00 -0000
Message-id: <382AC7FD.850B76B6@systemware-inc.com>
X-SW-Source: 1999-11/msg00386.html
Content-type: multipart/mixed; boundary="----------=_1583533144-4113-752"

This is a multi-part message in MIME format...

------------=_1583533144-4113-752
Content-length: 1730

command line:
g++ -v --save-temps -W -Wall -O3 -g -Wno-uninitialized -fno-implicit-templates -c -fPIC bug.cpp

-v output:
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 19991111 (experimental)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -g -W -Wall -Wno-uninitialized -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ -D__PIC__ -D__pic__ bug.cpp bug.ii
GNU CPP version 2.96 19991111 (experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../include/g++-3
 /usr/local/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../i686-pc-linux-gnu/include
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus bug.ii -quiet -dumpbase bug.cc -g -O3 -W -Wall -Wno-uninitialized -version -fno-implicit-templates -fPIC -o bug.s
GNU C++ version 2.96 19991111 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 19991111 (experimental).
bug.cpp: In method `pid_t ACE_Process_Manager::wait (int, const ACE_Time_Value &, ACE_exitcode *)':
bug.cpp:12304: Internal compiler error in `scan_region', at except.c:2611
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
bug.ii.bz2


------------=_1583533144-4113-752
Content-Type: application/x-bzip2; charset=binary; name="bug.ii.bz2"
Content-Disposition: inline; filename="bug.ii.bz2"
Content-Transfer-Encoding: base64
Content-Length: 59976

QlpoOTFBWSZTWSSGe4cAi1Z/gH///////////////r////9hBz7yj6PJW22W
eg69Y9gAAB0AGgY4aHbEDQCnZvPecA9hY57XmVUyQerXbdcDt6bMcHebsPT2
10wbe3rzxJDbUABp0B2xoUAAnXLnW+2SXvrZobTezcgPbc32B9AfSnXrqaJ1
6++33fbPN2N9GAOb3zXmh0EvZwKNq4ae9nvYa6U7j3Dvc4avdm9hvD3b3er1
Xee62aZ9175ndCVPKQL7s6LN8IFUoAHn2D333AaAA0AfQDQe69tY4AAAe+Zd
lDo331ek13XLetT3tb3p1vYAYbWzyK73DhSpCA1p6vWXkzzB2dyMq7NQpsUd
e456+qdevRyux8++d18gr08+dz3qn3z0vbub33a73202+957fOvsa0u72cL3
q6yg+vL16bnbpH27sq8Vu1uuZq+Sr33MmBV7sdAO32O+ve7z7nrrdBnOl7nn
uvbbe0V3fNV8gVNh6BkO7ua723sD0Hb71tZq99jztQN7HXRzFjt7u1neb72m
857fXcNslu3fNsqMrX2+Yjravrrp75exZ1u8OgFdZAG9k7na9x7nbbSz13eP
canO7u8bOLbAbYiy9uz7e776vY1Xu9ZXO3ektbHvd09TofePfe8933o+tJ7b
ffe96+y63NMNbc8POu9mW3dXPvd97Pe+vvoWe7feSaHbn0Nx3tReo7fe932u
vuCNy3vUfYDdGi9fXSTuVPW7tnZe71rulwHp9tc2LNDXw5ddldz66epDw14K
ru67W7Xh6dtXPvuru++3ize+77m95697vdTLevb77uQ3psAHQG6lfbu9r7zp
J6175xetVSvr3a92+z19t967333MWn3zuvU+fd6h1vt9bY7N2w9297N87u1T
hcp0Ea0EiIEBAIBACEwUxkNApmp6I1P1NKNk9CnqekyYzU9U9PVN6nqPVPFH
6kEgkQhBAI0ExKn7SYmVPNUflQ9E0PSB4oMmg9I0aaA0Bo0NB6QSNSSTTU0m
jTyp+lT3oo2qeo3qm9QeplNsKn6nqnpH6GqemRGymQMT2UeoNEep6jE0NBCU
iImhU8aTaaalMak/Cp+lPUDIDJoH6p6jQaA9QGQHqHqaAaDQNBCkiE0ARkJk
NT0no1NGip+1KfipsPRNT1MKeU8TTFPJiJp7VMnpDamaT1MT1BCkRCmE0mTF
P1TCn6qn+k9U9iqeb1GVNT9qo36qNqBkxPUA9E00N6kPUyPUNNH6o0xPb+1D
+HqV+kSMPuuGy6ElUPsEYNEiLwSBF7JAFOSAKcjQUNRCGElQiEpDVIDhIFEP
E4fp1aKFVNQKrsqJ9h4KMD+EgDCNwIpIZLjGokIoAq6jHee2IZKGCCl66E1L
QUiSUyNDQBRVw0jAzQUzDVUDP+Z5PuBOT/QJ+5TxU2LCG07H9Anrvd2JhMHD
J/PzhL4TFG6Ek0DhJf/26Osa6Z495cz0SHb24OHhwPA9noikiAoQoKTdYzE9
z1mW04worQPAoRswaeBW9Z/Uni0loqcCqiNExYMyNjxA1T/DQ9zLIKb2Q2ji
e+fPE77MUzB4l5cbpnXDXA1p2N6Ro5jpDzHYHJe4vNB0hMaIojcAwD/ZMOKu
GWIkIR2F2wt2D48d7o8T0FFU1RPjGgiOGOGMGrWsLQREWTERVU0zDFO7nkb1
FA0JbyKoe4aOYE3IZxw2PhttjiKImorli7O4u9g9KIT8bKRR1lMTiQxS6WLF
VOtZutXJqHrxtznC2kj1qYNoYtvARwNJ9EFBjTTfL50LfIQjJGBrMQN42zkI
wrSrMnGLnkhP811Ip78cCogaEqiZIgIliKiQKA+d3DxnyHlGkSkaCIaQoSqR
+kGkSIX9sXv/trBgwd67vI/VxWHUiExmheFpnEcoSs7EGOEfbnJy8WLmNXnB
pYlLwZ72lg50ZDVXNmCK0bTiYYv/DvIcgIguGOo7upko0qas6JcQ2wd8xARr
VNJ1toKDHUlgNFFDRJERMMVw2qmP7h9x2BJhtrvNIW00gMz/3D1zNT/eUqvl
YaxQaUqNa9i/AOsHZGuySJaX3WKLcfEmQDzDwO828tdC8C7469HRaCoyoiwi
ID4FmpDQ89OtFzJnJi9gg/k+hlW0ugBprY0oMBjPPDX+OGALNvWUoz10jRTG
Jj0C68toB9EWd5BoZSGznEMapjQUVkhhyRZ5zTHV+QaQezlQLrzpHnWGwgGk
JCIZJgQ4zEKT5SOhWqEJZCgqCPMaHJtGMrioKBIloFiRTuAy0kTQFSrJIUhE
pBsgBhKqqCYoglmkqkYgHd5ThIKQQXeUHQh14EE8wIB1FAUIukFrO1N9lwrN
ttxq6GlELMXRgCiJiijbRTGtWoTO1RTtiiNrYItEyxVVR7cXhUvcaSYheoOp
1NTSlEEnViKKqlbpxmAwWYzPRGPa3RRJSRUF5OTzhLHeeiOSUNUtFUkU0GJM
rRSBRSVp0kToMVzPDhh0aIpmm6VxzCVg5uVVVFF4S3T1KHIIliNzOkoCq11E
SX8eAzHXZjXAOenOoE5BBDRQhQEEHUA5CAppKChaaKCmkYmLyzKUVSUQ8zks
bTFSxNixMwUQdEzVRQHTUzCUKYzqdBRERbYtaIqiqTFRythetkmArm1FU2xQ
UkkmgagiGkqaQhqqCSISmSCJC1htOa+n34e3cyHiyARCulQPMhVCPJTSrSJQ
HJDkKUi8lOecGWCleQVScTk4TpgAiBOSPNnqGsWjcsj1IUJ1DwubNPWxJBMp
E1zYDGUpSxQ4AlItPLVBTyoCqZpgiqJZamUuQGKKAlIIqga4TuY5UMng2ImO
YwUB1AbhcXg0ARTDDIEBQVQsFMiWtDATKU1NSUQQwTJSk6wc1g7gD8iVcSlT
IUo0hSJS0gNDSoahEMqswBbf8VrSRuTkGNkTEQUTKaYhtgKhYqIiJKI0mCWg
1WiGKKUiEmWSetlpKSolIIpKE6SWSSZ0ch1yMy0FI8Y5AnUImhYlrQomKlCm
gSlK1pKSh111upOSBirpgAdBQxFQQJSBSholNE5XqE7e3ML5MMPRrbb+b1Z/
z2+PR/fv0efqB6pKKYKKohgin6cP06A+3fF5vt46/h8/8HTs8SKqJTylE6Te
3pfm9/6HUWv+n8fz/H+bUHIBnCmOphNEWDK5hczD5hDBqZmlrQNkGRkJBsIT
cyW5NRF0Ww0asJKOOuUJHXLoJjbxuDIxuidsum7DDK1DVxGZZdN87Om6zPMF
GI0Y2KDcOelVVXVG3MwlYQG1phuoi1AJHoyFq3kj25rb2Ob1BzZUSuI0MrUG
Rk1lHxELbRjzcHIBsMIsaIMIxSGymmhQsz52mm00jCQBsEdrFsyJgwbWmUO4
h7XU27SqwjIOdmUFrmrmyun1gOc3JeyOo0B5yuJO8Og7lIamTlkzFYEYNNpj
rLIBuljKyYy4moMjIyMj5HgzInjq4aMFeYoo0PU42zUKQGzAxXYzrcG3oIY5
EYjEaM5smqxGnnLY44KTEaPBGjJ8U98hgkaXQVQkQmtFC6d2gGl1oglJzgd8
Zi6BmnrZoDkWxEc1tRE1RKHJ00FNNDQDRShcgwhUVBQUHMHE5FDMRItDQ0AK
UIlAFIpSUAhQpQbA2uCdEd+hJu47dItPcCFLQtKwkSDSDStCFAFLFPEkaiCi
uWacuSBCJFillE1iRKUIl04mgIIBNC4aBpCFIGFpaRB0K5YIgSJGlNoNmBmA
itWuS8eQ6CIHQYokhgpCtI6mKSg/RYj9ZJoSko6jRo0Afx7CbYDnjDMzINlE
vrP3wh2lEhliBCiJVmRiQaCWqGUlaSoYKAIaEaRIJIgYmJCmiWAiSKlOcYSe
v/tD9rfYV4WB/0ek3utqFA0FBQFM5gnPww+F7fp6aIgmQSJChQggPHMkJIgm
R0gZqDGMptooMZcNN/jjeQAgaTGAHRn/bwjyaBUrNt5ifrmNnvXlyPC9r/Gl
afKs4or55aXrM2iIguOZ0rnlWebpiG3/hIob2qa+3Ma89R0niUb3Tzv9+Sdr
e3EbOHK36e7vV3ilKAJkppiG7TGl8T1HxT67IGajVkQQVVUDqckCnkgaoSlA
pChRdKByVOSUJQ0vIHQtCmheTXJbWSgDSBSVqqXl+2WnkC0DSFI0o9RtYcVH
UhpSnlpLYJjRpg2qkP60cgqqiQuZDqDkukLZKp5NAbrLy5FJTp0mjS6UiAoD
TbIFEQDTbaFOoAtRj9tyR6j+nCH65OQGk5ni+jPH+j6Pt5OIriHJekcf9W9J
RuMZooFypyck39+bFIv45URBMkfkl+sD8K+adCV/V+L8Zp2QjwsDMbMkZei9
18vqwQ6T8hhf4hipkIZCMEpRhOAaMgIDMw0PuvU9AGxzAioCEgKliZn2Rl+z
Bx+kO9fzl8YTfxwDDyvHOEMbFLPCTbOCBIDS84HOAfh0OOIfFgfh7xMxh9rJ
JcAbRUZ+DX7QjAcjs7OZfna4RWxHT8lisW2ow0VtJxAgEI17WsRSwvv4U7k2
x6PqpOn/UIYHXyQaQYToQ1mLf/R0Ga82k0WSm+QVpjE3pVK9rSGGA22gbQ0u
0LpTplHEvx3OUZDQYBARPPn1PPRW4vIwJCQLFygeiDAmgQWTAGn6iXGRAOgJ
BMiqAPgSCrkiDEK84MkVQzL0aCMNcvbuCDqFApQWgVKAT2kN2ZpA2sJQbG7Z
AAiFQPDDeYqwIPJQWJVWgQoUCJFE75RXmQihoAPaQAgj4ENAjCvE+A5iBDcl
nRvrJMj6w6ghghghgj9iOMfcdP9llz2jnweRYVskmnCnPF7HAVOqUaZkKBBK
UD8UAfa5g9Qg+HQn3E4QEheeHJChQpteoiDq/HSVklt3HtKB60gOaOsoN8xh
iVuhE94cBQQV62KO2ukLQLyh28z1BkDGXyDh5bHqHpIYmmmmhjF4bl5wM5vo
IXsEICBIYKmmKaKCFPMR/t7hVp66huDbalEbMYxEmoj04/VPdoQgWFUX2Yah
CzqIzVKJJrj3YEVZ93wQkv74yPL8nH83Cu/5CcU+8+8Z2q404fnK47e76O6r
XKOXHWdZccP8J5ajKmMXiTgHgZ0r45E8sIdtm9JZSHSpQkKnbTX/nllTuq8G
U5TFib0v4I4cJiCluPZ6D8u7uuswEemi+Z+84j7FOUql2H2iQR/fPuDek/2k
zhmY9e7PBy50gCj3IIR+V1bHZsRf4LkMe4MKtsbgUOSI9HGHCO1CfUa92hU9
yX4I8/+zHdId1n11A/UJ9QmIdD8+YIhc0ZenWOjWZaIpaHX3aTAhAT4kAPxL
OwinIoCkpQgAaWiVgDBzMMB+/v3JuIbCDL6gevie5NWyvsdFFRJfX02qn/lI
++39PM/wdYgO3Q6BpIaMdUKgGi//QH1A0kSe09TCq5+nDuoxkiUHn4hgU6qK
aWlUoKKBoCJSYZkoSyFlLZ0fRV5geFGwaKaaCKkoSIooiQKVKKq8+fPQh1UB
TTFXcbGDS0VQWxpSIaKfobRMVAxUxBwg0RFLSBeQ5wYORlNUOJdsK6Ep0mqT
EoUrEfV9rWlGiCUdpHEJU92tBrHpA/WBiwZ8TW4zDaHds0QSygcAJ+rExpan
5RiFU7uyWcqgwYkYYQKMoZlVVUBQnv1gHUKJQV7Egb2c6QS/N10qO9v6Ppd9
HeB1gGZAiUEOYKCXFE5hjmQdwGjeFRdUkIBJjAMIYGjAWZsEqNYBADtchBNn
Iw+wzDQdnWXQ2rQgDjQokcDrS7I3Bq+HJgG3iQ4DsEG1Ve6AEHYJxvX69ppN
NdiSEMcRGB40BnTYCAWBge2EA3rHrdhiIXmEOo4EqnCUcBA6VPcQdEcsBgz1
hMELQEJwDBnkpBCTJwOEEbBiCMg4DBlyx9FRfPOId+7AD0yQkC+3eKVADigk
SBsKAUBQTJFQi9LzImDoHEQ4yo+p6/V8eycBl9/v6dKoXaVckO3sOo90bkEV
g1ZNElvg4K1cWX/cfVClmdVc0P/7qj4O6ZFMFC1QHEKsf88iaFhiZsg/O0fA
T/HyOxC4D7gQ/IQxIFIlASrrWfJszaMJEBMAfeJ+AJiHiMdRFFwR/0+BzaUo
sXJFcEMX+P6j6fm/v+v8Yeeut5PuZQxSP7s6Tukl3ZI81Ih+lUSdfzZbhtll
4/f6q1od+p8/5tzGONcqF5IdGQNUpqj2sbEdx2AfByvyxaRx7nDcg9SGxKbO
jbtaPyd9Q3pc73lmGwfRfrz7Bo3cO7cw7ojeH0BYKzoNCuGG/egqQCkLhliS
UAs8DKwuTTYmZh55g/7QoJ+BxJTPVAxkEYFtu/usrWG27biDoXXjo6/Lw4vn
C2jrYmxTk+D4Bsh0ypTsxptHI4fXPtbwIcAbXxcOl0q1mxdl2UKDFjJu8pNg
Iwy6R3ZrJBgpwRQ9MoQDD7RkfAMv31UR3RGh/aBdJAUUDbJGmeJ85gDoDRoq
qqI7xAMd/Vyp2SlOQ/YFCSQk0mio7oYGAUCVtlKQKDUVUAoGSM9U2MDwEYj9
1EC1R+CLGx+BcDgF/aBRh2iw3ERQtNHRVAhji5BCo1pKqCHIlUjdH0NDewfw
BGnD8yaF9NV/wJX6El4o4GPlHQ4nYf25FpPXH7O8tk4EHM0yJI9JyujiIvQJ
D8Md5mA0mDEkKnFd+8qGbTBqPhUXiTVICIRTSY5kQezxjIxlkMpIia0CJEDr
ejDp4a8xAN5nwEA2IAq4BefFWNvo72n4IcDtCSarXfLiHYfMDdR0RRU0TTTV
EbcScLyh8OMC3jvRnEVRskqIOsYQajJpoprDpw1/1M2qDo2znpPNroLxVwug
QDQIFY4a6UtfSgO/L6PWl7txt3zDTBQZL5RgdaJj5KQ080d4bSXV9zUMevmd
iqFZCEjKBC82eEkUyBBE3zJxzLf1H9YNoa8xduwN8OSFBm3CQbIPD2FHKvi8
NWymVT6WNMujD2eeVDkbbB+701xoZUY2tnBsIbFmlTLRsfr+jeb9QIkHXm2T
uyuh9CjO4b8AfwcyCiCGqjhIwLpCTaSk2wW1NBVl8RvB8jhQuaGZNweiVimQ
cyA9Cogz3E5NHIDu3JAIM2zkOxjbCtsjWMjUZKm0FF280s0DZyLOQ79fMiEl
zR1qjru9ygZ7Njca2CpY1YhwCUnQY1Kk4EZttjk3QOxUqOT7RhuK3x6hAjhQ
EeJqLSqF5irV5ECMfbbA0pYcOdxjKJb17U+dJSL2dbhxapnp9A1szgiuxts2
zz8D0PhY8C7HT0DayvAj0VeVR7bvvPpnLVzUedbM9b0z07Q52E6exx5xCPXY
J832el1s/E7W6I24n5D+j7/V2uERATRuoeym5maHHWriHeG4Yc4jkwWD+EUP
UBotPSt5frI9R2ppdjgFwfFuKFsQdI6z/G44+uSdg9C8Acvz8MvSoB5SXl+M
IS7EnbFiIRl3HmjqbYOLY3lE8cigzBXpeDqa25GEOrRbleEaHr8e8oFxnlee
+4ZZlGfRqZUF7bogbW96hx7/hSEyn9++PFZwLIGFySBs4UkyDI8EhYMksqDC
l/Uj/NHdNipOBVocMhogOiaNKVHHPUoQNsZRQfVJK9rutIH6x6LKoe7wGN8O
sBPnh2039VidjP7I2kXke81LQbmp6supyI1ji34nlLMdiez0pVuxon1M6asw
XHJqUPEzKXpbI8PFajhmkqgZLOEXqwIM9+xCKNK60JBgzrQ4ZGh09lMjJ5RA
RjGdD5qhE9cU3ONlmZmbyuSpZSNKYTGXVWu8SH7SphULBWWkuPWZ6MVxp871
OLg8OvHKa82U7REZmhkcBriMW2MbMIus9g7uvMLCqxtS7GholjQwscEg/X42
c8XCabviZIkjkMgollHB0rprxIi1qkEFs4b6xBkTMIDuyNrLfgrJFRDbbY22
226FKKiwRwJPjHHblY8B3zGaPTvhup6IXy5cdHZz1oeNzIKWmhotLb4Els71
oAOiQeMiuyowDowOo7MPN+HLMcoylwmRTq/OobVWxsWCfG5scZXIqEfGX1KL
kM7W8pJGAxpttDb7w6Lkl59DAmuPw5zcFnxGdgJA5h6UqM4zFiUxjWCGRDhQ
ChsE58OdYyopGm2wrZHUtzkrPS9TW0WgK85PJ0KOGYg8O/rWg0289r4yK6Xg
jP2eU0DQyPlSgfZGKxyneLHRrIZfWG7MCQaWGJtn3zXTyjaY0vbIDfEb4sbb
Ydtkvrbt40ooK+NMykpJn3d/Dbp3dPKMjfvLgc3WN7OSNXlGUaVg6ZTNrQXp
ToXpVnyxfvSOEGTKMsZxDJGOCG/S/gKczeDLgUHIDyjtnLMVLG6vRBUY4ZCN
miZ7rE/P4qEtjM4qTEE1Z+HZCvaasF5c79kw15eWF4cvewOgIuDRBueNR1QC
pR7Jhdou0oMEb7kcbcZtljOuLzekAUaq/FiKgsbek0y37/BuJz1vSl60zrRn
hTxvEQ4JZYeukFPOdaI68IDiwMgaQwHos1Bw2KCljQylVEtDW+NpK97vxXGo
BkMuDYd+Kta73ncBbbYhoY2MNKbcYbeeJlKuedq13dNseeWKTlehDrD2cBKa
zy85raExlWGzFcHAVKG1631i0uJdHxpRE6MxnHOeN6ROrmxEIowjHhvteJpZ
eF+5999OnKss89cyzDFuDpSTEdmtqcJMtPM+v8XAocT8y+MNx3x+88o/Pb4A
rnoiHwfbpyOlaPxOE95deRa754v9NPJr0p2m+0a777z+Hqk4Vup5KfLSUECE
fDsXTQiWqYfAWPcDdg7jwLAcKQDSS/ZRtHix1ioddugGR5JKqzBGbDAgac5u
GBIjjMmEUFnkUCmbS0u6x/6aT6FP2wFCSjgf5jX9LVQqlUBgNEcKdsE37Y4J
AdQ7zicmUab57Eo2a8l9vyEodIMM/Q0G3F7M8D6TwtvaDxQ9lobSs2DGgGwc
jHC/lyhHbU7+sR2PVkX3B6S4HK1UQRM44z1NNMhuPIQXyuJppNCyDiSBKTQh
rTgzjQ7dCnQ+fPekA7pVjKmYnLCyGW0pSmjQYLBeS8w1MWG8wdRSgQ0YcDDY
y69nlvevIeR9Xn/aIefXr2XXBO8ROIkmijh5vKEa8RRlWsUxNDRqNX3SdoPx
8e/r0OMCCEk6soIY8ZliYjGI8z+DBHZ4dySa/PhzzOGzQbr8wgGI+EB0BJFE
UK8AwQ7ZdKOts1BDAEwHfiec5HaDuOsPDWdCGcwOF0Ja3aaU1CKgwiwhpmtG
Gp6VVBlGN0MWwz+fnnIXOooBQkXgL80UsEhSFKXFkTQI1Ump+z9r5VAXC4oX
lsfcM+84fDu7Ma4728LMjIORV0Jrux2amiYojkagzPGViqkWOSKq5UUeShaZ
6DyZIQhsTkpAd2fEJF9BupgbaBsiBngvH39a6SHFSR72TCU2VqS21Xeyi0mW
jCCWmOCHixwpFbt0+7OheL4etRSmEzwR5jxdHl0ug5GcybYezt5vHJAjjDy7
WmDkjcbpxW2M8u3R31FUOqCgQ/eVQZ4yOG64ApSMzxhV1NcvTiLZl1e56KpM
hhfcePzmO+JoXXBKQw/db4OYYYhfNPAy/eLPbTA84l3Liy+hn9l/o/UOZ9eT
9GLXpzeKqpLSbuUwS8mYtEnMj0bGTlo47iGERgMQB+pALrmlEkMIKiIz/R26
eXSLY4M140SQc1334OwHEelS0m2/V5jo6/WGMh+JYxUOUpip8kAWk+VWOOSQ
hJE9LyzRVTQREBMSvCByU/HDhQnV1HSck7/EwM6DkoGgQ12vwchFA0BbtQhq
ExsXBLegBKA/qneBzBQO2HQiFK0UUUnRawt72A0gJ1PCFKHhsCBQJGAWUqJB
QoyBSnwYSgCj4SPn4GhCkJvbAYgPUsTEiUMkUxCUB6GcFESAFMVTQJoA5BuY
iKCGcmNYxrEuSCklHlmOGB3d+kVhohvQQnDE7kQI/aan9eRUJAP1G86/OlTN
UKyoO2uVrQj+MjU/jSL8pWfltQGzAJWRiTA/AgD2/zfF/KO7vBGANm2zlKCU
uBERSShCqip3NHKihMNcn0EVERVsauYpQoMYEo6PueB6BPjvvltptYOcy45I
mJgZDGYEuAe1yet9foHngHqwQssImA378CVCD4DHUVEBxYHvawmgMNV/Z8cm
fq78pBjfzFI1NSv3loPk6n5Z+eOPDkRBD3aPxs5fpP84cPp8nUBB3n9Qfj+z
cu4028YXbGWHyuKP3n1YaoL5o7Sda20Gve4LjOxDgV+5J+EjRLMOj2aNi1sB
+1NZKkFoSiigYgmgoKJjT1RzGgzK4lCJ8wHTJwnqKDku3DiumJSIWlDkxKsf
XD1KxAEJNcIKGIIAgvdYiTk4lxB3F6ZyUlRFR1jSQqkCn0M8A55ucicQYqAi
VqhwyGkKCqYISKqIIgDAZE8/h7982NOyqpCq2EQ0+uUoIbYwxoB9+RIaxBsj
KOtWrfnv+c/JBxYP1uQOuUgHRrKawRGrI6Xici3KkDw111uche0UlRAqVQ3+
hfnQvcczvXF49VaHRCQz271/yaVM3CKYIXxYKjRlmLtJLDNAbpiGlgz0dnQd
58DgIdA+DKqr08Dog8ug60NSMskoEh1sOCQPTxY/l1w6WwOyQHUQ/X8y+sR9
C0MjJrGohftQfq/Za79ZfBItuEh8Rnn0dvTchcP4jGXPgx2MeeUf4y15J/bC
EVLjG/W0EJngNfWw53jpy0v+ji+rdIYbJowxRbh+P985h6n4uaZTGmYpCtCg
1kRXbSxIsYjMnXM9HVUZFPG+VTGVoeWiqKzPhor8WuDrmRs/xtW8+E73/5ez
+TZcVtz6Yq06Vg5wUzZXjupiYs7lrzDI+7elKDrMBriQc48G6qWM/j+LhAOT
3NxxWf9b/b9Y7WROt2uf5h52AzTg8/h6nxZRr5vJkql6r22qQInE5T4zDPq8
vdJsal5A1ytnSxWK5wzNENIBtC8DEqgFCGRukKb9cC6T28vmDvpjbC9F9ufu
uF7BAxjI6RC2z8n4bq3zJCPjw+a1DQx39gKbGZKg5ceV98v+VcpjHMSN65nO
m0U8cUQsbw0L7SfrHZdy7RpdIAqrNHQQA8MPWtVcWmK/QOK6H8IQtzmc/ny0
T4zf6941EC/IP7WjmjA1A175UjBha8ac451lydjrEUWhpB8/r466NGM4SXSg
t+k6aP1MyGBq4yKcaBh2ZkDO7UrXPPMuS14etRY4QBFIhni6E8pRBaElFKES
1F/iygeQzq1uz3DXK2dQ6bGPO0OM1pYMXpuCO+LjY489OJkOwcCdqCkIhYUn
fljkcS/xLYK2oVuNshEMTzIOLQ2FGu8h/G0ZTi2OTvbiSPnmVwRyZzYW7sRs
tH8POleN3y6xYpI9lgUWeuK9qyhBxEim7oLR0SbkqpzYLcZHEfDmM7t0OcBt
1h0vyEoHLqKPuLEPlJgGobOBH41ot9TaIq0p7Q3yXGK3G9eC4HAubH25LOSH
POAjx7Or/GkpIcDNS1sNSoZ26LwbWlA25Psoj1XMGhRYF+ofIT6jW7YxtDPw
QvcUbTwBxY6G1lfcZFgMjTgQUdhCg4NechvDdINMawYMYzMODGHjm7AE0+Vg
frkTTGXCw52Fy21y2MN2iJmjRTp48zvnBohwwjRtvgg4T6Ioj8AhwG82SDgS
PiEKDUepEm0JQp0FSKUoUR1vRW2+SRJtm+fhDEwZ0RZlKvXUhpR+BIJ1iSRK
qQKGjmaVOGk1dDcyDeK/b4GRP4xAOHUoBzsO+DcHa/kOMCokKiepJlhBR4XZ
C8bedyU6yF5JmDz7ZsLH8xLOGqp7X0tiAGGoLR3UPFChoshosOUh1BufYcdt
qaiuGATPWGuwsbszNaMDkWdOdfGMEQdN45jqO5SICJGNVOrirJcD+ZogaCoy
3SKe+3tNMJHQE0SRfqzfkPWXKcHi5NT03Ahy5aMAxgeTRUMWsmbnez2M0+f6
Pr4w7DImuSkVIqhCYcEHiXRCRInmEH15Qei9xtfUSmu1khHLxJ2TfaN9Moot
5hIQ2uHH9DXZ302UD+x+RdYMxRqEfc8jnDpi7Haq7eB2d9lHV2xdjsV1GCIX
kUFe1/X3PdPQR3sRFe/vhccUe/kDhzJxiODQo1b5vpQPVkJGiETzk4iKblVo
NsCo+LqkE/4vDzql9ZYSZxAgPKmhlWxRB3Qsgbph4xbaTY5ICSfn9oYFGAz5
QgTyIDyJ3RtDE8BU5JRQOpp89DZCqgKCwMK2IYCcShmciCjKoR9xrCFgGkkN
AqZeeiO7QaIF8LQf+0HHigFoJIlbhq15Px2fucP461l4o5kfut7iZ+G1ak5T
PbjhWQk6benr+e3myvsAlsBiAPIQBAOQpkJYXqdGA4Hc5sy01xfcGMso2ZdK
TYA3Ay/dxpF5i+TrHXp1tDfdZXV2f4ikRjQMa5s+5o18544gk2quvhJ5aN7t
rqWEZAxVEh1K/ueA0HYTRj/xHrG+s6ygv5cV40DNovQw5sMQyIHoxQ0cWENt
hLEH2CTFkNXX7V3zZGcc11mvY8ReVL14dqT4wnDgMikU7y9F6nWUZ5TPq5be
drO2jypCC1UNkBevMOV3QIKsOHCM8HKrimnFWYbUnIztGlIxaeYtlQroYNK0
+YeBAEiQCYgDmcRICukebEhVSEXpokIgQBhRmZ3YUKkJgHAa77SVLV+MnZP9
l8rcVVGran27afJG17KlKaCpVnOnWV3cSAOVoQFz+g1PoZRG8BU5DGM16Z4x
tzYRChjgu8h9LoZjnRLwSVSytQx1uUS2pS+eYwHpwE+etOZKPMvfG7IDXNgK
7gnoajSkQZuqrFOdnWOZaOEG2jJYYDAxYixhAQ6N8PrPdoKKClPCAkJooaoq
iqMAPMVMOGzhN6MfWZpvMZyOd3w6k80+41lHVLSBxFV6YAe0lwPVBuR3JhiJ
uNh7CStxNEPNDRoqh5QQbOOSc4yCiI2RVermHQdKYO5Hfz8NM3rnflHiiUuB
joVh/AhJbMLpbog9ZkbTlGU4YNja8GaHMrXGfGGVI7UpyvEUZQsNDVLHFhAM
KIfATrfjX5zc4YzQVrQ0IQXFZ3ogzL86ghFIaWNbKcam0QZkwzWpqAI7xgHi
hE0rscigam0BhI7mo0HdpoYLfIIxbv89cWaZfq49oYZstKDOsWXSGLoadVQP
LuMw6bVPBHGcdHVdenrFNhoBsLsRccmccN+Nzmq+kiYlA8+44cVuZW2SyDk8
Xwjr1Zc7XxkjRAvWmJZXZDVAhhn3xEgJeJsrLp/EGvfp7jrjXlroHMHhJ9ky
+G2224vSLFlF1EGOplKK5d0q1arwWQGOhdaPER7rsblAKBjY0xLIdARVnPZp
abip1AzBXvzxhXQZnVKzQiUJQplJEIx2VQqg4hB3PCwCDwlSQERBMhjSH2kA
aaSh0NJGLLQjBKgzBREZPWthq+NZJBgNhqwm7hjWqOEAOAqEnqRPAZAEzuYT
Zd7kDspihiJICZCFmSJJBgiIgYBWaIKRQhZSoIgIkImghAVe1dBUJPUq/nIj
wYEAw0zbIaXgQBtb9s3ZdQt44jm4YsThNaNRU3od01qqLd2PcyTcgmIbE1pQ
ebIj7mCGmNgmmNiTViFjmfTrGpiRmEuFXHWdcTZtNhOKRBjMB9XnWtMbbNuj
EaqIwZhYploo2DYrAWJJJx5IJzVPMc8JpWe7RacJug8nN1gS6deVIbLBDyZZ
k4wMzBtsC9YktjReYLeQTbfPMBHOBG0atpOAFaNAxiwFywOGb5uw4Ya1DGHD
Qmk3kAgwBhJEJUECHItwvXtyaNO7F1dcytkk2qiqotxtOecrnL1OHWt56Oca
uuiQiE53uF3xKHErMNCTBQkQRTGO/Cbzae+4KfPnj4nyyKbyAmIuoaTUe6Cw
SMUPZnQ5v4ZGfXhsKypiO7PROoHu2tXKxOeSwJo/6v4QhGr5RB4buDbLW2gv
cQUXMOnD0OJalRT8nBEQCob837A8gmsc9PPm2hGuihfXWbL2DyLdW5syClqg
0IaF3F4SH6odGocVyDdQ6RlcmqUbIFwL4oqu//tdElhqoyH2eZoaCkWy/jI8
/ktPfQ8ntszicqH7B5Wsk3a8khEOYUQ5ZBIiJ1YymEaiJMtGH2pOYaNuRye1
HcJv5+p7DEGcn5y/WToYVyB9o/Ei3cZVjMk12y5H4qE1P3xtkZSKNHozFPxQ
EcW4NmjRy1e5hu7bo6UJDvTCjX0L0SgEW9caCYjIUGo9TO1ZM69wBs9cDK9/
Fz+/7ep9ATpJBcdcs87dR9sjjLSJ2u0Yr+lEseo74CuQWFQmeUL+2cpCyjn5
TV1X1tJcp7gqLWui4Z3TGbZWWGE2tKCG2+qgKO4ezqi1fF124d+WMapSwIIi
5bDTUvSpFCFGUDerDLx2DehGrCA3YHqPpgJ4l2ORtcEQDCEfF9ifGbuOHDHW
PiEC7sXQu0M8CEKP3vU5OzWRy3yD6NhOPK4rLM1RkdSRTrHL3yGjn5eWvTt2
7GdaLjMY0Et18pBsXmSJH6hjYy9DGgq+GvrSuqm4XtQJKXcEhqno9nwGmOVj
B2wqzWSRJZNjBjBFqhAsNHX8IiScMrD2bprMbayxTUWjn1ujlM5w8/mxNEPJ
3NEgPiPAu1AzbeUV9n3mfSFR1Lo1f0uN82222ylY8MtldVCMcWoQPxEMAJ9s
AD9XVTDnDGkMXv64HY2i5ZemxD0w0Jj0Q9k+QukhLDIYAfKclgOYA0JxlXhI
LngPwOG5lAcq6OiA4B1g65hgMGTRKakyaIJgAwsgEWHYdCPT8ick2OY66830
QXcDAOoztw5jJSv4XXQU8+0LVjGkSPC5oC64wPzjQO90NDGIRapLDx+stWnl
0slUoHt0IFV3YFGkvWhi3a2rISQjXmpMAd/io1GUBjZyYGPHciW3V8PKQNnV
+ENptDzRJuMw2rXlH6eMADaHrxDvmOphctRLS9ntqKmJJvR8uCnfCBpkGt9R
JF7jBD0fVzM0u57KJGjl0GcFjBUlCUSEhjnl7A0xKRrBlN9nRoTj84ZvzG4M
4QEDS+TqW28JWx4QFBpEToC8Cgt2QxtJeR3d2hRsPDRQZYYcWJdNOgA2WEvr
7o+fj46rjU9nDx3BCzQwSBbGAbEMi66X5y7RJ6QDmmnZ1FyOufQd0lBBVJ9g
Gm0CTfxRIBoZjGOtlo5FJLPE88R2GgVnF4Xn04SrIYPgEQUobZi9wgGeOqv2
M/WPfBEEgGEGbMPRttiGMiwD+dhF5TntvVGbnfWTBQEnNgqjpExooSDoQMN+
sjI9Jvqqvdyw3WiB2Tc0YYi4NoYLIiiYyDGHIyNbwVBcQXF0nWgkgNihE3jh
Z8ZVY4vFhYyo2wHuAIYzwfL0OKhbBAB7tg7iEggup56eN5yXcSPizxwYO4J6
zGNjQ2xsaKwO1CF+u1zsWkWUrUsnCGA2KBwU0sBXCCarwyCTxJR5/rQzCPES
MmxdyhjRsoGa1pERDHCw83o+670721+TRwuRkbUR0MIJKsO2ySeAhcB1rHpD
whCb34yxEhy8GhtNhKSEtyGB1FnlFDDv3Tgy87HXGXHGQEp8jTTe2rLvQR4F
jaUSMUpjTEnsWy00ZDhll6wZMlJGy78kkwQFXd8jbZrFLM5XRkNWquMyMIOP
WZiZPTK3CTFA04SSkuogJ5Pyb/J2Kh9EURPF+WPHT5E3PDDeNIoippUGDbAY
7HJGYwrROctQNhAhpZQIPLbbK9SShB7KqBpH5MoWojnBSUL2krr8mvUnY34p
2jZsOC7rzjINngYdPLIubsbG3Q9CApuQInon0RVEkUMgSEwyQkktDLFIUxUQ
hI9YFEGMj0PEnlqA9ew7SB4LEU7vifgEOuggxUOKJ/N0GUgRg6HRmkrzohiH
IMzOGtNPhaVnDlLjZZzkQpZgKaKKF0WErLZUMLOKPIxqtBHGIBtNjISKjSmh
NJBAa19vp+m8x1FMEh29Pbx2UcMB2g8z5DanuRFJDY0WhZruCidIhnZZhWsz
+zPApUCbBjrKBfUDJgxIEjd+7v66f5r2gUsQumFjZJIg+lQxpQshYAsDJ4zi
hHbYkQxIUKlqRIAPgwEVTJVQER04mSPLSZurG0mhBgTHcBbp0J9QhiRVfo4f
sELEHxrMwVPayzId/nEg72AvjCUDSaQ0pEJ5hSElZJIl4UjQUBFKskyzKyUi
0I0FDEAhgl8MFyD2HyOC00SVUDVUEVFUFBE7H1Nv1v2neT82ckLiIYBXBFfy
7MXoCeNkL0+1eiFxQtPb9NBQNFmgr0w4oH8jQkqn2jH/gEZvwKTMOqPz+wOq
1Efzb/0f4VEf3+uvX8YxpoJ+QPP+f5f1djtnHIXr1MkP61kA4yym7jwhAPVZ
Apec8ef4TSO9sCYJh74FdiRpMAPHBIHchQ/xh3wBhJYS/SlITw95zfZJ8/1U
QRBhohhBk0OBhtPMbbNH8c0OptIeVqoLsM/dTBnKP2tGyo2zSOJnZm2aEk9Q
QGltpkP30tCRNfvrhSyBZLLEDW4nls8/N58nx0vmlE1QDOs6Pyu8PMz7RwOk
TIBbCcwXmPDh3Vyl0AbkA+L3z45oTCPSEG5pdiiih0RB/l/9faJztCJwiKIH
cA5MQCaIGIYIGhGGX++Q0EiUrBKvwnYIQkCUgGA1CMMwhAlIkMR/xhMpRiJC
SAY8vGz+6Q2GkJAiBaEA/cP1Py4aT8gbBBB5J8f5uEHqDISSSgTPSwQCSFgh
ACgC9kuAH5S+U0lIoRD8yQL8HqRxAU4AyVIB/2enSe4t7lyBg+ogiCiiiiIU
1AO4DIQ5wL7DqC+Ov12dg/b5pGIFjiHqk/UqqqqqQiqhUf4bxeRintj3Ms0K
GkBm175gP2h1zwUDfFe6KmtMoiNbO0P/dv4VpOgcJ/j21/V6q1K21/prxpw5
0p05041e+mmMWhs0OB+78Md43YUXv6UxKEEeghOHb3dZ53u4mn/JOt8uWO6l
W8OZshL9jR3NIDzpGu3aUkWYD6ihAAasBAdDXuxBu6VEsNs8Ul9a9alCF9/W
gch2mSEf3CFwh+MgfANYgZKoB6727YilNAwc/qNLSD9QyiuwSUFA/qwGz/b/
wDSBrDBf4GQTgN/f+HBf9sAdsA9U0Kq/8uj/l1GGyD6YPBlDqv44EMIZ/BgB
9UP1bCFjhC6ZT4MCmrbbB+2QUbEB9uA+mA+X38OX0fc+m8W00Ch/3fL7PrvO
FjCDCBICVlAJLRpWaomnbPXWE2+XDnMfSHslPyJdAFKd+u1C+0YHe9euNoj2
kE9X2Yg8PH22kpew0LkZ7/TTj80CBZMDdgcFmMjE3ciXAqQiGaHDTpX7rCgP
AjjUGRymkpZG6PCzwEp1Sh4axzMyFyRfPIh9MCm5DyOHCLl5u2ZgLJ9cgFzG
hJMYCOrBLgwLaR1mlHeKgew/+HAgEfZ/2QtQaEUaELtlyY/M10qFkg7DEHr8
o5DEJL0YkKrQCOg30z20H04O23AXS61VYC6SiBP2358D7v07mj/mT40HRDob
2oh3ygeMCiHxhEckFaFE6VCBQiA358D8FNPl/iE/D8+xLEKsiPmT/N/pP9J6
z/KHrzV/nx7TovbPAOcFGbGD9MKF2NvDDs4LHisPtp+dmhriPi+eE5GNWaY1
hfwMXrDRVuQ29MKT8VrEl2NX6M8JNcvvqfl+P9vrP+Hk4jtefvMljH4kbO+F
XmpPGgpREs5fwuWQ8jfV5o/1tcZ1EORV9pfd9prrghs9GrTrOxjbpz8JE9OJ
TC8zi3X7aGzHrvYMXtbLe5TKkK9CAd7kFXyc17s5/pqQqwDip1vQXq9Xr8x+
vkw7joZ8jT1w4LQZ/6aHXWGmr28dMnLoVsREX8cUt/5R5MvllJ7po/9n/fXX
XLI4VMDivY/irV1t8CKN5VFXp1K+vQ75tU5RlyvNrP8mkUt1j08YLGCnZ0wc
+vf4cKlGsiYDB1yln8hrcJ9p9XgXqd0cBndlM929EdMiTaMWDhIozlMfyNHl
rW83fLzhjJXPGgQtz1Y9heCqXR9ZyrkVfIfgbqdiOZXS+WlCZhw18n8nemav
D8Tx86YHtNP06RcPwKOIj0DAgZ3taK2mSpwxDqOBEc+HjlsW4O5tEZW9IIfj
SZvyoGalNhvlZNrNkK3rg8c4A25EZY8ZDs/6CDZ95aUbKOgVqNHOr4LjaXDS
KM8u0zq0rsFyZqmhjL1kltIDJiJz2OmppaWFBiDzvl6vdkWv7FEkxnfbtQ6R
JlTSlCST1xzNKZ0VtIsefr7fn8ONs3F3poeWisztpftQ/3abyGMoSyejOc9t
6ezm/GbPLCtppA+5uxrMdjRMvKWfsenrJx7EI85tUAkoIFCUFPNFOnLfuoGA
GsIZfL8CKBtYM2ISLJUIANOvv2N9fHJIykTBJNpKE0EFTQsPocK9xlf/rxSS
IoOeffnN5pS9TkW1roP2uMRFH7aqH6y2d8ss4xyjzhxXfXO3HTRvSDS0vxnS
3VzWcqd+W+d64cZ53X/zbfyOiS+g4SZ0Pjk/UehRei2J6gIYdEj2NUQtfH/X
QB2O25GhotIGMIW/v3PVrMqgRdYMYciD1RQ20mAiYBzVL7G3ANLu2mpyqkZp
lowqLIlJVPlhfR9f0evSOPOc6G8mWk5AD90HIIlSJ4BOg0DSjSntBzmwQH6w
EKBc3UII9iPY9Q5adCipq2tKpVYhaZ0oKj48vTv5fLO16jXR33jHvufQ9kB1
zW4X4COazDgIoczszmw8b4JjQiU/CI2HT3RBMKnAhbOtaz9rRZ7cvAhcg9y4
6zNPVPVrt7dW6EWqNDZvWXIkEDXH9Qj7REh4tLe/I+0XFHUP8vRRXy/EWVcc
XU+wP+BAsjZVzF1REyvLT3JqUwaSggxgIJ3FI4eFYnlIcbzrvPZzw6D66lHl
BxIQwBniQc5ftydw8unRy2wYmkReWt94Mw0h9SCZ2Xk8ra6BoOWAizAzaSWT
DZ6sSU5bh4bwSNf6ANMbJUQ2BqhLoGcCkyYkriGFi5MsbYcJt7u8es+uPa+G
2Uo2AOqwBA2hNC+HX4ZTVXWOaNjijIVbg+qEyZgIaRDRH8XAkJwo2YWNqkHy
Urr08Du2O5/vBf+IxjbbbbGWNfNCZnz89wii+qv/raetAbE2G4eqlXHyPl/T
4L0BHo+43AwyBruflEbDM3k5wd//47iSFDStYEIr1sktE8CJM59G2g6P7H0i
c3YICDq/KN2hgzkV0e1179UQqLt7t1UCIDJFsmj7HnSrDJGVYc0eSJEAMVHy
+71/Rp/v/8P9/bvDuNYXP4wKaHvJq+nP2nfevaYPQ+V5+creSjGSR9FKk28C
+1IHrwmfe/JclaT68kcz2rosAgCx8oMb4FKSYA8/VGdfwBT3MTPZsvxFivZ1
bjw4Un8Mp+7z4yseEy4qtTDRPGFbbMiLecdWYZVsbtDhOCHMb0gN/Dc+qBE/
NOnizD0vkauOWsKcdNalAnLykzaDC+Z1k4sgmPm+EG1Irmenlv6TTnkZvjXP
/3mfGEYzbfiTXnEsrpYpMyWYe3MIGy2Uetz/x6yaMdIfDPatDnNuhNK0mNCh
FvOed24qoa7y+fIdKludSjp9H39a0bKxrOT1ZDJaatmTw6kKrNpjJ89I+Mc8
keOVqz+iVNDhOfPGmqF1qc5AqDWzObymvRKM1lEevPAThJdGjw74Dk0TMAS1
2F3EXNIUc9G5XG8CHiRFO5UZjgY60s/hhr0nH/U1ad+Mg/P6TflrgNi8bOj8
Z3UxtcJDtiACwWrLYBTF5cxmzg5NIpjBOSxAjsxJYzyOdDvalRXrWMZPnjvv
Hd455dawa3RDWpsQJx9vWiLgOnri1W4S3dsuGfOI93wtHdco699g5dnvSls9
MrZ0iMunfljte+/35UPDi2+OWD00PufK2DPPfvrXl5RrgzbOmR09gt8aTtL1
Zy1pTQr5v6dyC0RXe4R42w6Yl4DO9jKmeHR0nhOlKS4iFtzzxn0ZGM8k/1uH
7rcPbey2yVlse+Zo9RmbpisrnlGXd6i/rg0JCFTyUO5Nb/V9/XI8/j27cvE1
2Knze6bMF20LCnhTk3o49vj53rUw5oyHaolCyCILMxBFgJDt8DiDtw6fn2eL
kX8TMVjV4GUiE82odr5Uwx9oS5XgDxjhOzUMWw15MKtHvZ5Vgw1do9j17vGb
cD5ohuYIg9CTjPVrTWM87TwdWLN6uWKlHnBHZ6unSLTbZyUE5j9U1cy8NkWl
X+MWuVafXSOMebGTVohPr34SyxHnTl/x5W9dyLWk+1a7HYd54ORnjPDwba6M
59NvdSnWT5/KtIgPT1ajuRsZRSKJRy4QtKnCqzC42ttepRsdyulIKwUnXeDR
u5CVrHAYtmdqQeb29tJw8t4Mi/LhnUNYvM5hA8EZ9qEosUJ6UifXrSgj6GkN
ptNiReDE5LbbsfwaVXuOiW/bCAmCO+BReO+H9fDp6nZYyxMRsSm5b5A7Lhp5
FakBwZD+ahz7U0kwePPLpuksUi1dRzVmDdECAGIAYgCRmiBHWx4KjPNv1Spf
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
r07m8wOiJwsTC5XJ40PDx1yRYSUZhoIBdwheu+9w7VF1K6rsCSTQ+YaSsAR5
jlblSEwTKkyOlUzSl8T1XMinv54NW0BqJAWmL3J8DwlEdb2V+sUsk0STLEE0
KR3A0HnwzIwQhhQemUVbY2N5qlqXvVNoTNIgO8tsNcSVnKTYsAQMYxQEDC6V
0RD1WmdWxRs+lKchCrjwCguLSz8LT3yQsKkM0k78xVaoHgZggI10yDkFLiMG
nge9aIwbCdNTJvqPVaae1MRXtqLuVMJUEuQsHFjG2waGNHklyD2SGPLnxOY4
qTyaep34WYBzSPKDgcavRwM0RmZ6rC9B9jQgXgPpOO+uwB16ipm5niSnkjup
5PJFDoUPOBg6kHbK2yXAMxa8Tgd2qFgY20CQb5IJRjnGogYdGInihRVnZLyQ
LdgSWRY4WVIXEUGYgYRtHMO/njWjcUpkIVgTKpcwIyINDPshJbLALIZn0hFG
NpZo8WBhLWi8twF5CvmuDwc+0lmFtjnwjXIM9R5rUkKva9yPpUREBAUFNJ1s
FNUg5WdGlxgNYYhMkQnS9APM5Snq6+gEHE6VUY9yZCuR3taaKbnLhM7earyr
yueIGNBeLNpNtEAo93MS7MWjT7vV30FVjTGD/e83GKHOiI6MdBOjouZwLplk
hMDgXi0Qk1a+IpgVSStZEV8RjBlsw5rKBKNMX2YGhPXZKbOdRBO1EqaNpgKI
qZLN2xJwDRiCLalFUYonHQGTeRaBGGg0YAZ0s87OCHXU/xn8p8CBmLZjUYDt
02saRohAYaWu+V+ZoImwL90RpYZGeUaADUvbHJEhQO0Oi3577gNIopeqlK3f
AXdG2MYe1MDW8KjOcL1ZQn1Ll1dCSb4W3kvTStAaTRgZFy0C1Q6ZMDKYEnLh
1xrPW9tKWz7p87R1Q3lynq8Zemu+/Xjs3XLi8q7SWdJ0Jzck2c0t27+8tjtl
F45Z7zGViMpyypfHdXTI0yzbNOj2rpYdtsZ3Gep+J1s1n0qKE2MZAyUT4WXw
k9oIs0IOXqD2jY0fuZYR0GFH4ZzFFbBipjb5+yE/SoPYHhJ3VUjxVKMPVyLo
Zbpz0SXNetNLlpcWigBR61Avk21w9cZgsmDGGuChZrdBmvAr7OiBem/vyARX
zM9x0Q+9L2oBtaRFJRClLNLgLrJYS+jlCMm0VGMGQcwWevQS6YRKslIAj4oU
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
H4fmv1+5RPf0UAroDJk00yKkdeOaQIAhLAesdIbqCBt2gHUIizx3VeIJ8Yvm
9peZQsOORgYx7DDRGtGyHkbxRVFNF0CHM6ZA5hASIEIiXdfi6/xd+sd9CIeg
Dj7DF8EHt16GI7DT7A0B3KQpQ6qDvXFr4QmyH8pvFw8E2JlGxkvREcZM4L9W
/t8sPv4779WG+3BnpY/r8/M2Z2tk9MxCLISuDIMqgtVj9NaGEQQv+dm9AQSO
Gk1Z3bN8TvO83s8+Q4DgEAegSCi6miZCaBi7tkIEbi8mH8pUkmiLTr/Aj8UM
u9Gp11fRx2jgpy0ppe8zeGOz6MMnTg2627bUsW5clrrYrloHbeiKBtEIMqau
emtsx5m0lKSpihmzfTG+Z6GeWtNDwIHTcnTavPFwhCrjMyeKhaboosklwWgz
aIT67PqXyOW6jWNiMnObprTlZVccaIys94mJCaQcXK58p0RlzzEaIbOr3Znl
xYxj3T1HBoVhPD9a2bqJ4cTynH00t+Wu7pjhCTDidmc9dJH+cyjbE3vcomFo
JGqvPes0aNQIWRiIfA4FQrWsIvBvYekxDQUI2V6chrZX/BX3zHBFFYo9xq42
FEWtvvCQi/Ddv7HqHZUFYkYpIiggSIRFPdCiO+I4OTRR7vOK7r5TN3BTSmOa
rdOsNDGq4T/gKFGX3L3NfP1fxQxSkSnYsJQiCIzWefPHhgb8+gfm3xJ+LLLv
Nph2k8tM8n2xJwWKIeLU86W4vC8zLiw9NbUYd+PHmYbo/tsIIxpNr9wLiDMm
eW5VOS+9vzKTfpEkju+mYkpAWTs5oKyRwQgooN+NoJ0DJLro0I6cOBsgCcg+
P0Xv9XfK7XCycJ5uu8HUSfNfjpvOYZbnU+d66K3YdyEwNv1efrCtfkaRv001
vUsL1MG5lN46Q4JHtNl6gBfeM3nlaCiCAueIYkpCmKgoaa5OkpAiyAy6QU+a
q7AMHRKb0+Ke06VfkB6t5qqoir6/Dxw4c25uyqqr8IMm2JmiPFVUROOsFBjB
9+edzgxwkh5ldNXGSCOcxi+6Ht8svhtxZku0yMO2La/PAYg4VTEYQjTF4HXM
h6hHTwyU59hMP+h6O6kmu3sAyaQ2IYmulV09H7IjnsIAhUTKWXqqQIzO/XHF
raYxt6HNEnS64nE5yN1t63pbODlL1grU0Qpvo8nj5S65jGo/NGOcYpT1qiYz
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
cKEgSQz3Dg==

------------=_1583533144-4113-752--
>From oliva@lsd.ic.unicamp.br Thu Nov 11 06:15:00 1999
From: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
To: "Nemesis" <nemesis.tf@gmx.net>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error.
Date: Thu, 11 Nov 1999 06:15:00 -0000
Message-id: <oryac5azf4.fsf@garnize.lsd.ic.unicamp.br>
References: <19991111131258.498.qmail@EViL.TFNET>
X-SW-Source: 1999-11/msg00387.html
Content-length: 900

On Nov 11, 1999, "Nemesis" <nemesis.tf@gmx.net> wrote:

> /usr/local/lib/gcc-lib/i686-pc-linux-gnu/pgcc-2.95.2/specs
> gcc version pgcc-2.95.2 19991024 (release)

pgcc is not gcc, it's a separate project, and it crashes many times
that gcc doesn't (and the converse may also be true, I don't know :-).
Please address your bug report to the maintainers of pgcc, and suggest
that, when they release their package, they also change the bug
reporting address.  Nevertheless, they may keep a pointer to the bug
reporting, instructions, even though it seems useless, as you failed
to include the *preprocessed* sources. :-(

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <37E89F59.79FE3AB9@ast.dfs.de>
@ 1999-11-04 13:11 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-11-04 13:11 UTC (permalink / raw)
  To: Peter Friess; +Cc: gcc-bugs

On Sep 22, 1999, Peter Friess <pete@ast.dfs.de> wrote:

> HelpCB.C: In function `void PopupTip(void *, XtIntervalId *)':
> HelpCB.C:2148: Internal compiler error in `scan_region', at
> except.c:2566

> I am using: GNU C++ version 2.95.1 19990816 (release)
> (alpha-dec-osf4.0d)

Thanks for your bug report.  The latest development snapshot of gcc
compiles it successfully, but it is unlikely that the bug will be
fixed in the 2.95.* series.  You'll have to compile this particular
file without -DNDEBUG on alpha, before gcc 2.96 is released.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-31 23:03 Dan Egnor
@ 1999-10-31 23:03 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-10-31 23:03 UTC (permalink / raw)
  To: egnor; +Cc: gcc-bugs

> Following the directions in http://egcs.cygnus.com/faq.html#bugreport ...

Thanks for your bug report. The mainline compiler says

form.cpp:129: sorry, not implemented: `record_type' not supported by dump_expr
form.cpp: In method `xyz::text xyz::form::query::get_xml () const':
form.cpp:129: invalid use of template `template <class _Tp, class _Sequence = {expression error}> class stack' as expression

so it now detects the error in your code. The "sorry" message is still
not right; what it meant to say is

form.cpp:129: invalid use of template `template <class _Tp, class _Sequence = deque<_Tp> >' as expression

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-10-31 23:03 internal " Fred Cook
@ 1999-10-31 23:03 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-10-31 23:03 UTC (permalink / raw)
  To: Fred Cook; +Cc: egcs-bugs

On Oct 28, 1999, Fred Cook <fcook@accesscom.com> wrote:

> When trying to compile libstdc++-2.90.6 (os version Red Hat 6.0)

RH6.0 ships with egcs 1.1.2, which can't build libstdc++ 2.90.6.  You
need gcc 2.95 or newer.

> this problem, the whole reason for me compiling your lib was to get my
> hands on a copy of the shared lib, libstdc++.so.2.9.

AFAIR, it is part of egcs 1.1.*, when built with --enable-shared, but
RH ships it as a separate RPM.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-10-31 23:03 Fred Cook
  1999-10-31 23:03 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Fred Cook @ 1999-10-31 23:03 UTC (permalink / raw)
  To: egcs-bugs

Egcs,

When trying to compile libstdc++-2.90.6 (os version Red Hat 6.0)
std_ostream.h line 465 generated a internal compiler error... not much
more was said other then "phone home" IE let you know about it.  Beyond
this problem, the whole reason for me compiling your lib was to get my
hands on a copy of the shared lib, libstdc++.so.2.9.  Is this file part
of libstdc++-2.90.6?  Would it be posible for you to send me a compiled
copy of libstdc++.so.2.9?

Have fun!
Fred Cook


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-10-04  8:32 internal compiler error Louis-David Mitterrand
@ 1999-10-31 23:03 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-10-31 23:03 UTC (permalink / raw)
  To: mito; +Cc: gcc-bugs

On Oct  4, 1999, Louis-David Mitterrand <mito@aparima.com> wrote:

>> QGList.cc:46: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

Please do.  The snippet you posted is not enough for us to reproduce
the bug.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-31 23:03 Tim Rowley
  0 siblings, 0 replies; 387+ messages in thread
From: Tim Rowley @ 1999-10-31 23:03 UTC (permalink / raw)
  To: gcc-bugs

I have a gcc internal compiler error using gcc built from CVS
sources (as of 22:59 EDT Oct 7).

version: gcc version 2.96 19991007 (experimental)
system: Linux Athlon
options: gcc -O3 -c glxbug.c
response:
gcc: Internal compiler error: program cc1 got fatal signal 11

the source:

typedef enum {
        GL_PROXY_TEXTURE_2D             = 0x8064,
        GL_PROXY_TEXTURE_3D             = 0x8070,
        GL_PROXY_TEXTURE_3D_EXT         = 0x8070
} GLenum;

int GLX_image_size(GLenum target);

int GLX_texture_size(GLenum target)
{
  if ((target == GL_PROXY_TEXTURE_2D) ||
      (target == GL_PROXY_TEXTURE_3D) ||
      (target == GL_PROXY_TEXTURE_3D_EXT))
    return 0;
  return GLX_image_size(target);
}


gcc -v --save-temps -O3 -c ~/tmp/glxbug.c
Reading specs from /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 19991007 (experimental)
 /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ /u/tor/tmp/glxbug.c glxbug.i
GNU CPP version 2.96 19991007 (experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../i686-pc-linux-gnu/include
 /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../include/g++-3
 /usr/local/include
End of omitted list.
 /cs/src/gcc/gcc-2.96experimental/Linux-i686-19991007/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1 glxbug.i -quiet -dumpbase glxbug.c -O3 -version -o glxbug.s
GNU C version 2.96 19991007 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 19991007 (experimental).
gcc: Internal compiler error: program cc1 got fatal signal 11

The .i file is the same as the original save for an additional "# 1"
line, so is omitted from this report.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-10-31 23:03 Paul E. Johnson
  0 siblings, 0 replies; 387+ messages in thread
From: Paul E. Johnson @ 1999-10-31 23:03 UTC (permalink / raw)
  To: gcc-bugs

System: RedHat Linux 6.0
gcc: 2.95.1 installed from rpms obtained at
ftp.varesearch.com/pub/support/hjl

I was building an RPM for a library called "blt".  Here is the end of
the compile, which shows the flags I had used:

gcc -c -Wwrite-strings -Wtraditional -fwritable-strings -Wall -O2 -m486
-fno-strength-redu
ce   -I. -I.  -I/usr/include -I/usr/X11R6/include bltGrLine.c
In file included from /usr/include/math.h:348,
                 from bltInt.h:48,
                 from bltGraph.h:28,
                 from bltGrLine.c:28:
/usr/include/bits/mathinline.h: In function `__finite':
/usr/include/bits/mathinline.h:638: warning: integer constant is
unsigned in ANSI C, signe
d with -traditional
bltGrLine.c: In function `ComputeTraces':
bltGrLine.c:2356: Internal compiler error in `change_stack', at
reg-stack.c:2641
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
make[1]: *** [bltGrLine.o] Error 1
make[1]: Leaving directory
`/home/pauljohn/LinuxDownloads/redhat/BUILD/blt2.4j/src'
make: *** [all] Error 2
Bad exit status from /var/tmp/rpm-tmp.43234 (%build)

I'm sorry, I have no clue what this part of your instructions means:

     Preprocessed output of the source file that caused the compiler
error 

Furthermore, I don't understand the coments about sending you
"your_file.i". Sorry



-- 
Paul E. Johnson        			email: pauljohn@ukans.edu
Dept. of Political Science     		http://lark.cc.ukans.edu/~pauljohn
University of Kansas           		Office: (785) 864-9086
Lawrence, Kansas 66045         		FAX: (785) 864-5700


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-31 23:03 Mark J. Crosland
  1999-10-31 23:03 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Mark J. Crosland @ 1999-10-31 23:03 UTC (permalink / raw)
  To: gcc-bugs

Hello,

egcs-1.1.2
SunOS  5.7 Generic_106542-02 i86pc i386 i86pc

 g++ -o test test.cpp
test.cpp: In instantiation of `B<A>':
test.cpp:17:   instantiated from here
test.cpp:17: Internal compiler error.
test.cpp:17: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
test.cpp:17: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.



The following  is test.cpp

//////////////////////////////////////////////////////////////////////////////////////////

extern "C" {
#include <stdio.h>
}

template <class derivedClass> class B {

    public:
        B() {}
        ~B() {}

    private:
        typename derivedClass::aStruct * aStructPtr;

};

class A : public B<A> {

    public:
        A() {}
        ~A() {}

    protected:
        typedef struct {
            int x;
        } aStruct;
};


int main()
{
    int x;
    x++;
    printf("x is %d\n",x);

}

////////////////////////////////////////////////////////////////////////////////////







^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-31 23:03 Carlo Wood
  0 siblings, 0 replies; 387+ messages in thread
From: Carlo Wood @ 1999-10-31 23:03 UTC (permalink / raw)
  To: egcs-bugs

Hi again,

here is another Internal Compiler Error for gcc-2.95.1.
Note this is (again) not valid C++.  Still I think it's
a funny one ;).

---------------------------------------------------------
namespace N
{
  template<typename T>
  class A {
    static T x;
  };
};

class B {
  template<typename T> friend class A;
};

template<typename T>
T A<T>::x;
---------------------------------------------------------

~/c++/tests>g++ -v -c bug2.95.1.cc
Reading specs from /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/specs
gcc version 2.95.1 19990816/Linux (release)
 /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ bug2.95.1.cc /tmp/ccizRQid.ii
GNU CPP version 2.95.1 19990816/Linux (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/../../../../i686-redhat-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i686-redhat-linux/2.95.1/cc1plus /tmp/ccizRQid.ii -quiet -dumpbase bug2.95.1.cc -version -o /tmp/cce0kqck.s
GNU C++ version 2.95.1 19990816/Linux (release) (i686-redhat-linux) compiled by GNU C version 2.95.1 19990816/Linux (release).
bug2.95.1.cc:14: Internal compiler error.
bug2.95.1.cc:14: Please submit a full bug report.
bug2.95.1.cc:14: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

Regards,

Carlo "egcs torturer" Wood  <carlo@runaway.xs4all.nl>


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-10-23 23:49 Bob Upshaw
@ 1999-10-31 23:03 ` Jeffrey A Law
  0 siblings, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1999-10-31 23:03 UTC (permalink / raw)
  To: Bob Upshaw; +Cc: 'bug-gcc@gnu.org '

  In message < E359BAB3AE31D311A63600902784B273894CB8@exchsrvr.cybergold.com >you
 write:
  > We just upgraded our solaris system:
  > SunOS panther 5.6 Generic_105181-15 sun4u sparc SUNW,Ultra-2
  > 
  > and at the same time we upgraded our gcc to 2.95.  Some of our products are
  > now giving us problems, the most important of which is our Apache code.
  > We're now getting an internal compiler error.
  > 
  > Attached is the gzipped .i file.  Below is the command and the result with
  > the internal error.  Please let me know if there is any more info you want.
  > thanks!
  > -bob upshaw
  > 
  > 
  > bobup@panther:/cybergold/vm/bobup-vm/development/stronghold-2.2/src,15= gcc
  > -v --save-temps -c -Iregex
  >   -I../ssl/include -O2 -DSOLARIS2 -DSTATUS
  > -DSERVER_SUBVERSION=\"C2NetUS/2002\" -DCYBERGOLD -O -g -DCG
  > POPUP=0 -DSTRONGHOLD  mod_negotiation.c
  > Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/specs
  > gcc version 2.95.1 19990816 (release)
  >  /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/cpp -lang-c -v -Iregex
  > -I../ssl/include -D__GNUC__
  > =2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__
  > -D__sun__ -D__unix__ -D__s
  > vr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4)
  > -D__OPTIMIZE__ -g -D__GCC_NEW_
  > VARARGS__ -Acpu(sparc) -Amachine(sparc) -DSOLARIS2 -DSTATUS
  > -DSERVER_SUBVERSION="C2NetUS/2002" -DCYBER
  > GOLD -DCGPOPUP=0 -DSTRONGHOLD mod_negotiation.c mod_negotiation.i
  > GNU CPP version 2.95.1 19990816 (release) (sparc)
  > #include "..." search starts here:
  > #include <...> search starts here:
  >  regex
  >  ../ssl/include
  >  /usr/local/include
  >  
  > /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../sparc-sun-so
  > l
  > aris2.6/include
  >  /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/include
  >  /usr/include
  > End of search list.
  > The following default directories have been omitted from the search path:
  >  
  > /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-
  > 3
  > End of omitted list.
  >  /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/cc1 mod_negotiation.i
  > -quiet -dumpbase mod_negotia
  > tion.c -g -O2 -O -version -o mod_negotiation.s
  > GNU C version 2.95.1 19990816 (release) (sparc-sun-solaris2.6) compiled by
  > GNU C version 2.95.1 199908
  > 16 (release).
  > mod_negotiation.c: In function `set_language_quality':
  > mod_negotiation.c:1181: Internal compiler error in `final_scan_insn', at
  > final.c:2920
  > Please submit a full bug report.
  > See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
  > instructions.
Thanks.  This bug has been fixed for the upcoming gcc-2.95.2 release.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-31 23:03 Dan Egnor
  1999-10-31 23:03 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Dan Egnor @ 1999-10-31 23:03 UTC (permalink / raw)
  To: gcc-bugs

Following the directions in http://egcs.cygnus.com/faq.html#bugreport ...

% c++ -v --save-temps -DHAVE_CONFIG_H -I. -I. -I../../include -I../../query/include -I../../index/include -I../../include -I../../include -I../../external/db/dist              -I../../external/db/include -I../../external/cgic    -g -O2 -c form.cpp
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.95/specs
gcc version 2.95 19990728 (release)
 /usr/lib/gcc-lib/i386-redhat-linux/2.95/cpp -lang-c++ -v -I. -I. -I../../include -I../../query/include -I../../index/include -I../../include -I../../include -I../../external/db/dist -I../../external/db/include -I../../external/cgic -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -g -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -DHAVE_CONFIG_H form.cpp form.ii
GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../include
 ../../query/include
 ../../index/include
 ../../include
 ../../external/db/dist
 ../../external/db/include
 ../../external/cgic
 /usr/lib/gcc-lib/i386-redhat-linux/2.95/../../../../include/g++-3
 /usr/lib/gcc-lib/i386-redhat-linux/2.95/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/include
 /usr/lib/gcc-lib/i386-redhat-linux/2.95/../../../../i386-redhat-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i386-redhat-linux/2.95/cc1plus form.ii -quiet -dumpbase form.cc -g -O2 -version -o form.s
GNU C++ version 2.95 19990728 (release) (i386-redhat-linux) compiled by GNU C version 2.95 19990728 (release).
form.cpp: In method `class xyz::text xyz::form::query::get_xml() const':
form.cpp:129: Internal compiler error.
form.cpp:129: Please submit a full bug report.
form.cpp:129: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.

begin 644 form.ii.bz2
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
+XNY(IPH2'K=J\,``
`
end


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-31 23:03 Mark J. Crosland
@ 1999-10-31 23:03 ` Martin v. Loewis
  1999-10-23 10:45   ` Mark Crosland
  0 siblings, 1 reply; 387+ messages in thread
From: Martin v. Loewis @ 1999-10-31 23:03 UTC (permalink / raw)
  To: mjc; +Cc: gcc-bugs

> egcs-1.1.2
[...]
> test.cpp:17: Internal compiler error.

Thanks for your bug report. gcc-2.95.1 reports

a.cc: In instantiation of `B<A>':
a.cc:16:   instantiated from here
a.cc:12: invalid use of undefined type `class A'
a.cc:16: forward declaration of `class A'

so the bug has been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-24 10:09       ` Mark Crosland
@ 1999-10-24 10:40         ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-10-24 10:40 UTC (permalink / raw)
  To: mjc; +Cc: gcc-bugs

> - If the typename qualifier is removed from the aStructPtr definition,
> gcc(egcs 1.1.2) suggests trying typename.

Yes, you have to use typename in this context. The member declaration
itself is correct. The error is instantiating the template with an
incomplete type. Alternatively, not having that member would allow to
pass an incomplete type.

> - I have modified my example so the typename construct is accepted by
> gcc (egcs-1.1.2) inside a function within the B template class. It looks
> like the statement "typename derivedClass::aStruct * aStructPtr;" is being
> handled differently depending on whether it is a member variable or a
> function variable (?).

[those are called "automatic" variables] To determine the base class
of A, only the class template must be instantiated. Members of a class
template are instantiated separately, when the member is used.

Regards,
Martin
>From oliva@lsd.ic.unicamp.br Sun Oct 24 10:47:00 1999
From: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
To: Mark Crosland <mjc@c1000907-b.sttls1.wa.home.com>
Cc: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>, gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error
Date: Sun, 24 Oct 1999 10:47:00 -0000
Message-id: <ord7u48xdg.fsf@cupuacu.lsd.ic.unicamp.br>
References: <Pine.LNX.4.10.9910240951500.11750-100000@c1000907-b.sttls1.wa.home.com>
X-SW-Source: 1999-10/msg00672.html
Content-length: 1306

On Oct 24, 1999, Mark Crosland <mjc@c1000907-b.sttls1.wa.home.com> wrote:

> - If the typename qualifier is removed from the aStructPtr definition,
> gcc(egcs 1.1.2) suggests trying typename.

And it's right.  You must precede with `typename' any qualified
template-dependent type name.  But just because you do it, it doesn't
make the construct correct: there are other problems.

> - I have modified my example so the typename construct is accepted by
> gcc (egcs-1.1.2) inside a function within the B template class. It looks
> like the statement "typename derivedClass::aStruct * aStructPtr;" is being
> handled differently depending on whether it is a member variable or a
> function variable (?).

That's right.  Member functions must be processed as if they had been
defined after the body of the class, even when they're defined within
the class body.  But after the body of the class, A is already a
complete type, so that definition of B<>::bOperation is valid.  Except
that it's missing a return type, of course.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-24  1:30     ` Martin v. Loewis
@ 1999-10-24 10:09       ` Mark Crosland
  1999-10-24 10:40         ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Mark Crosland @ 1999-10-24 10:09 UTC (permalink / raw)
  To: Martin v. Loewis; +Cc: gcc-bugs

A couple of observations that muddy the waters a little for me...

- If the typename qualifier is removed from the aStructPtr definition,
gcc(egcs 1.1.2) suggests trying typename.

- I have modified my example so the typename construct is accepted by
gcc (egcs-1.1.2) inside a function within the B template class. It looks
like the statement "typename derivedClass::aStruct * aStructPtr;" is being
handled differently depending on whether it is a member variable or a
function variable (?).

Here is the modified example.

Thanks,
Mark

//////////////////////////////////////////////////////////////////

#include <stdio.h>

template <class derivedClass> class B {


    public:
        B(){}
        ~B(){}
        bOperation1()
        {
            typename derivedClass::aStruct aStructPtr;
            aStructPtr.x = -1;
            printf("aStructPtr.x:%d\n",aStructPtr.x);
            aPtr->aOperation();
        }

    protected:
        int x;
        derivedClass * aPtr;
        //typename derivedClass::aStruct * aStructPtr;
};

class A : public B <A> {

    protected:
        typedef struct { int x; } aStruct;

    public:
        A(){}
        ~A(){}

        void aOperation()
        {
            aStruct as;
            as.x = 1;
            printf("as.x:%d\n",as.x);
        }
};

int main()
{
    A anA;

    anA.bOperation1();
}

///////////////////////////////////////////////////////////////////


On Sun, 24 Oct 1999, Martin v. Loewis wrote:
> 
> The problem is the specific member declaration:
> 
>   typename derivedClass::aStruct * aStructPtr;
> 
> which is not accepted. In a previous message, I wrote that I thought
> the construct was ok and that there was a bug in gcc; after thinking
> about it again, I now believe that gcc is right.
> 
> The question is when exactly the template is instantiated. Clearly,
> the instantiation must be complete before the template can be used as
> a base class, since the base class must be a complete class. This is
> necessary as the parsing of the derived class might refer to names in
> the base class.
> 
> The point-of-instantiation is defined in 14.6.4.1/3:
> 
> # Otherwise, the point of instantiation for such a specialization
> # immediately precedes the namespace scope declaration or definition
> # that refers to the specialization.
> 
> So the template is instantiated immediately before the derived class
> is defined (which is immediately after the point-of-declaration of the
> derived class).
> 
> Therefore, inside the template instantiation, the template parameter
> is an incomplete type. typename derivedClass::aStruct is an error; the
> declaration of A::aStruct has not been seen, yet. Hence the error
> message.
> 
> Hope this clarifies it,
> Martin
> 


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-23 10:45   ` Mark Crosland
@ 1999-10-24  1:30     ` Martin v. Loewis
  1999-10-24 10:09       ` Mark Crosland
  0 siblings, 1 reply; 387+ messages in thread
From: Martin v. Loewis @ 1999-10-24  1:30 UTC (permalink / raw)
  To: mjc; +Cc: gcc-bugs

> I have seen several examples of deriving a class from a base class 
> that is a template class, and passing the derived class as the
> template argument of the base class (Coplien, Barton/Nackman).

That is not the problem, g++ accepts this construct.

> Of course the examples are 5+ years old. Are those examples no longer
> valid?

The problem is the specific member declaration:

  typename derivedClass::aStruct * aStructPtr;

which is not accepted. In a previous message, I wrote that I thought
the construct was ok and that there was a bug in gcc; after thinking
about it again, I now believe that gcc is right.

The question is when exactly the template is instantiated. Clearly,
the instantiation must be complete before the template can be used as
a base class, since the base class must be a complete class. This is
necessary as the parsing of the derived class might refer to names in
the base class.

The point-of-instantiation is defined in 14.6.4.1/3:

# Otherwise, the point of instantiation for such a specialization
# immediately precedes the namespace scope declaration or definition
# that refers to the specialization.

So the template is instantiated immediately before the derived class
is defined (which is immediately after the point-of-declaration of the
derived class).

Therefore, inside the template instantiation, the template parameter
is an incomplete type. typename derivedClass::aStruct is an error; the
declaration of A::aStruct has not been seen, yet. Hence the error
message.

Hope this clarifies it,
Martin
>From miguell@teleline.es Sun Oct 24 04:21:00 1999
From: miguell@teleline.es
To: gcc-bugs@gcc.gnu.org
Subject: Incorrect optimization of inlined functions?
Date: Sun, 24 Oct 1999 04:21:00 -0000
Message-id: <Pine.LNX.4.10.9910231121070.849-100000@localhost.localdomain>
X-SW-Source: 1999-10/msg00659.html
Content-length: 3110

I don't know if this is really a bug, or only some feature that has to be
implemented, but it contradicts the documentation ("An Inline Function is
As Fast As a Macro").

First of all, I'm using RedHat 6.0 on a Pentium MMX. GCC is gcc-19991004,
which I've just downloaded and compiled. I've also tried gcc-2.7.2.3, with
similar results.

------------------------------------------------------------------------

$ gcc -v

Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.96/specs
gcc version 2.96 19991004 (experimental)

------------------------------------------------------------------------

Now, the problem. In the following program "test.c" I define an inlined
function, f1, which is called by a second function f2. I also define
another function, f3, which is the same as f2 except that the call to f1
has been replaced by its code:

------------------------------------------------------------------------

#include "stdio.h"

static inline char *f1(char *s) {
    return (s && (*s)) ? s : 0;
}

void f2(char *s) {
    if (f1(s))
	*s = 1;
}

void f3(char *s) {
    if ((s && (*s)) ? s : 0)
	*s = 1;
}

------------------------------------------------------------------------

And the output of objdump is:

------------------------------------------------------------------------

$ gcc -W -Wall -O2 -o test.o -c test.c
$ objdump -dr test.o

test.o:     file format elf32-i386

Disassembly of section .text:

00000000 <f2>:
   0:	55                   	pushl  %ebp
   1:	b8 00 00 00 00       	movl   $0x0,%eax
   6:	89 e5                	movl   %esp,%ebp
   8:	8b 55 08             	movl   0x8(%ebp),%edx
   b:	85 d2                	testl  %edx,%edx
   d:	74 0e                	je     1d <f2+0x1d>
   f:	80 3a 00             	cmpb   $0x0,(%edx)
  12:	0f 94 c0             	sete   %al
  15:	25 ff 00 00 00       	andl   $0xff,%eax
  1a:	48                   	decl   %eax
  1b:	21 d0                	andl   %edx,%eax
  1d:	85 c0                	testl  %eax,%eax
  1f:	74 03                	je     24 <f2+0x24>
  21:	c6 02 01             	movb   $0x1,(%edx)
  24:	89 ec                	movl   %ebp,%esp
  26:	5d                   	popl   %ebp
  27:	c3                   	ret    
  28:	90                   	nop    
  29:	8d b4 26 00 00 00 00 	leal   0x0(%esi,1),%esi

00000030 <f3>:
  30:	55                   	pushl  %ebp
  31:	89 e5                	movl   %esp,%ebp
  33:	8b 45 08             	movl   0x8(%ebp),%eax
  36:	85 c0                	testl  %eax,%eax
  38:	74 08                	je     42 <f3+0x12>
  3a:	80 38 00             	cmpb   $0x0,(%eax)
  3d:	74 03                	je     42 <f3+0x12>
  3f:	c6 00 01             	movb   $0x1,(%eax)
  42:	89 ec                	movl   %ebp,%esp
  44:	5d                   	popl   %ebp
  45:	c3                   	ret    

------------------------------------------------------------------------

As you can see, f3 is quite shorter and more optimized than f2. Shouldn't
both functions generate similar code?

If you need any information I haven't provided, please ask. I'm not
subscribed, so please CC me any answers.

Thank you.

Miguel


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-10-23 23:49 Bob Upshaw
  1999-10-31 23:03 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: Bob Upshaw @ 1999-10-23 23:49 UTC (permalink / raw)
  To: 'bug-gcc@gnu.org '

[-- Attachment #1: Type: text/plain, Size: 2354 bytes --]

We just upgraded our solaris system:
SunOS panther 5.6 Generic_105181-15 sun4u sparc SUNW,Ultra-2

and at the same time we upgraded our gcc to 2.95.  Some of our products are
now giving us problems, the most important of which is our Apache code.
We're now getting an internal compiler error.

Attached is the gzipped .i file.  Below is the command and the result with
the internal error.  Please let me know if there is any more info you want.
thanks!
-bob upshaw


bobup@panther:/cybergold/vm/bobup-vm/development/stronghold-2.2/src,15= gcc
-v --save-temps -c -Iregex
  -I../ssl/include -O2 -DSOLARIS2 -DSTATUS
-DSERVER_SUBVERSION=\"C2NetUS/2002\" -DCYBERGOLD -O -g -DCG
POPUP=0 -DSTRONGHOLD  mod_negotiation.c
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/cpp -lang-c -v -Iregex
-I../ssl/include -D__GNUC__
=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__
-D__sun__ -D__unix__ -D__s
vr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4)
-D__OPTIMIZE__ -g -D__GCC_NEW_
VARARGS__ -Acpu(sparc) -Amachine(sparc) -DSOLARIS2 -DSTATUS
-DSERVER_SUBVERSION="C2NetUS/2002" -DCYBER
GOLD -DCGPOPUP=0 -DSTRONGHOLD mod_negotiation.c mod_negotiation.i
GNU CPP version 2.95.1 19990816 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 regex
 ../ssl/include
 /usr/local/include
 
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../sparc-sun-sol
aris2.6/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/cc1 mod_negotiation.i
-quiet -dumpbase mod_negotia
tion.c -g -O2 -O -version -o mod_negotiation.s
GNU C version 2.95.1 19990816 (release) (sparc-sun-solaris2.6) compiled by
GNU C version 2.95.1 199908
16 (release).
mod_negotiation.c: In function `set_language_quality':
mod_negotiation.c:1181: Internal compiler error in `final_scan_insn', at
final.c:2920
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.


[-- Attachment #2: mod_negotiation.i.gz --]
[-- Type: application/x-gzip, Size: 42087 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-31 23:03 ` Martin v. Loewis
@ 1999-10-23 10:45   ` Mark Crosland
  1999-10-24  1:30     ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Mark Crosland @ 1999-10-23 10:45 UTC (permalink / raw)
  To: Martin v. Loewis; +Cc: gcc-bugs

I have seen several examples of deriving a class from a base class 
that is a template class, and passing the derived class as the
template argument of the base class (Coplien, Barton/Nackman).

class B : public A <B> {
    .
    .
    .
};

Of course the examples are 5+ years old. Are those examples no longer
valid? Or am I missing something :)

Thanks,
Mark

On Sat, 23 Oct 1999, Martin v. Loewis wrote:

> > egcs-1.1.2
> [...]
> > test.cpp:17: Internal compiler error.
> 
> Thanks for your bug report. gcc-2.95.1 reports
> 
> a.cc: In instantiation of `B<A>':
> a.cc:16:   instantiated from here
> a.cc:12: invalid use of undefined type `class A'
> a.cc:16: forward declaration of `class A'
> 
> so the bug has been fixed.
> 
> Regards,
> Martin
> 



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-17  8:32 Santtu Hyrkkö
  0 siblings, 0 replies; 387+ messages in thread
From: Santtu Hyrkkö @ 1999-10-17  8:32 UTC (permalink / raw)
  To: bug-gcc

I get internal compiler error when I try to compile the following with gcc
2.95.1 on RedHat Linux 6.0:

template<class T>
class C
{
public:
  C(T a, T b) { }

  T a, b;

  const static C<T> s( 0, 0 );
};

int main()
{
}


$ gcc -v --save-temps bug.cpp
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v
-D__GNUC__=2 -    D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__
-Dunix -D__i386__ -Dlinu    x -D__ELF__ -D__unix__ -D__i386__ -D__linux__
-D__unix -D__linux -Asystem(posix)     -D__EXCEPTIONS -Acpu(i386)
-Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -D    pentiumpro
-D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ bug.cpp bug.ii
GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3
 /usr/local/include

/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/i
nclude
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus bug.ii -quiet
-dumpbase     bug.cc -version -o bug.s
GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by
GNU C     version 2.95.1 19990816 (release).
bug.cpp:9: Internal compiler error.
bug.cpp:9: Please submit a full bug report.
bug.cpp:9: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport >
for inst    ructions.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-10-10 15:11 Jim Sasaki
@ 1999-10-11 16:47 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-10-11 16:47 UTC (permalink / raw)
  To: sasaki; +Cc: bug-gcc, sasaki

> Hi.  Got an internal g++ compiler error on the attached C++ program.
> I trimmed down the program as much as I could -- removing the 
> constructor declaration, the field a, or the declaration C x gets
> rid of the problem.  So does changing n to const int.

Thanks for your bug report. Please note that the program is invalid
C++, as shown by 'g++ -pedantic'

comperr.cpp:5: warning: ANSI C++ forbids variable-size array `a'

The compiler still should not crash.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-10-10 15:11 Jim Sasaki
  1999-10-11 16:47 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Jim Sasaki @ 1999-10-10 15:11 UTC (permalink / raw)
  To: bug-gcc; +Cc: Jim Sasaki

Hi.  Got an internal g++ compiler error on the attached C++ program.
I trimmed down the program as much as I could -- removing the 
constructor declaration, the field a, or the declaration C x gets
rid of the problem.  So does changing n to const int.

    Best wishes,

        -- Dr. Jim Sasaki
>From oneill@cs.sfu.ca Sun Oct 10 16:09:00 1999
From: "Melissa O'Neill" <oneill@cs.sfu.ca>
To: Jeffrey A Law <law@cygnus.com>
Cc: Geoff Keating <geoffk@ozemail.com.au>, Franz.Sirl-kernel@lauterbach.com, gcc-bugs@gcc.gnu.org, piumarta@prof.inria.fr
Subject: Re: PPC -fpic bug introduced recently 
Date: Sun, 10 Oct 1999 16:09:00 -0000
Message-id: <199910102309.QAA05369@aldrington.ppp.cs.sfu.ca>
References: <3605.939533497@upchuck.cygnus.com>
X-SW-Source: 1999-10/msg00252.html
Content-length: 1792

Jeff wrote:
> The compiler currently requires that fixed registers be marked as call
> clobbered.  Failure to mark a fixed register as call clobbered will result
> in incorrect code generation.

Hmm...  Well, that means that PIC code generation on PowerPC is (and
has for a long time been) in a broken-although-it-works-in-practice
state, since it needs a call-saved fixed register, actually asks for a
call-clobbered fixed register, hopes that gcc will give it a
call-saved fixed register (due to the PowerPC ABI) rather than
give an error or warning.

(If gcc checked register use against the PowerPC ABI, it would be
have to issue a warning something like this:

	warning: choosing r30 as a call-clobbered fixed register prevents
	         r13-r29 being used for their intended purpose as call-saved
		 registers due to restrictions in the PowerPC ABI. Using
		 r13-r29 as call-clobbered registers instead (this choice
		 may be dangerous/wrong -- beware!)

... and use r13-r29 as call-clobbered registers. (The PowerPC ABI requires
that saved registers form a contiguous range, so call-clobbered fixed
registers should be put in low-numbered registers.) This would of course
be entirely the wrong thing to do for PIC offset table register on the
PowerPC, but it would be the *right* thing to do if r30 really wanted to
be the call-clobbered fixed register it claims to want to be.)

> rth & Jim & I talked about this some while I was in Sunnyvale; I think we
> agreed that it made sense to support call-saved fixed registers.  However,
> supporting them will require someone to spend some time slogging through the
> various passes to fix their behavior for this case.

This seems like the best course of action, although I'm sorry to hear that
it'll be a fair bit of work.

    Melissa.
>From law@cygnus.com Sun Oct 10 16:41:00 1999
From: Jeffrey A Law <law@cygnus.com>
To: "Melissa O'Neill" <oneill@cs.sfu.ca>
Cc: Geoff Keating <geoffk@ozemail.com.au>, Franz.Sirl-kernel@lauterbach.com, gcc-bugs@gcc.gnu.org, piumarta@prof.inria.fr
Subject: Re: PPC -fpic bug introduced recently 
Date: Sun, 10 Oct 1999 16:41:00 -0000
Message-id: <5955.939598727@upchuck.cygnus.com>
References: <199910102309.QAA05369@aldrington.ppp.cs.sfu.ca>
X-SW-Source: 1999-10/msg00253.html
Content-length: 1093

  In message < 199910102309.QAA05369@aldrington.ppp.cs.sfu.ca >you write:
  > Hmm...  Well, that means that PIC code generation on PowerPC is (and
  > has for a long time been) in a broken-although-it-works-in-practice
  > state, since it needs a call-saved fixed register, actually asks for a
  > call-clobbered fixed register, hopes that gcc will give it a
  > call-saved fixed register (due to the PowerPC ABI) rather than
  > give an error or warning.
While GCC requires fixed registers to be marked as call-clobbered, GCC in
reality generally assumes that the reg is call-saved.  ie, we're overloading
other meanings on the call-clobbered bit for fixed hard registers.  I doubt
anyone knows why -- this requirement has been imposed as long as I can remember
(ie, back in the gcc-1.xx era).

  > This seems like the best course of action, although I'm sorry to hear that
  > it'll be a fair bit of work.
Yes.

jeff

ps.  As one sad bastard that actually works daily on a port where we have a
fixed register that is clobbered by each call fixing this would make my life
a lot easier :-)




^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-10-06  3:42 Markus Klink
  0 siblings, 0 replies; 387+ messages in thread
From: Markus Klink @ 1999-10-06  3:42 UTC (permalink / raw)
  To: gcc-bugs

Note that this error happens only when I include the -O flag, and only
in gcc 2.81., not with egcs. 2.91.66
I do not really depend on the optimization, but thought you might be
interested in tracing the bug. I thought that the error might be due to
the fact that some of the libraries are not compiled with -O, but then
why does egcs cope with it, and the libraries aren't yet included
anyway.

The gemini.ii file is included as an attachment, thank you very much,
Markus
P.S. Please mail results and questions as CC to me as well, since I am
not subscribed to the gcc-bugs list.


g++ -Wall -v --save-temps -I/home/adnetec/usr/local/mysql/include/
-I/home/adnetec/markus/diploma/src/gemini
-I/home/adnetec/markus/diploma/lib/include
-I/home/adnetec/usr/local/perl/lib/5.00502/sun4-solaris/CORE
-mcpu=ultrasparc -O -I/home/adnetec/usr/local/mysql/include/
-I/home/adnetec/markus/diploma/src/gemini
-I/home/adnetec/markus/diploma/lib/include  -c -o gemini.o gemini.cc
Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/specs
gcc version 2.8.1
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/cpp -lang-c++ -v
-I/home/adnetec/usr/local/mysql/include/
-I/home/adnetec/markus/diploma/src/gemini
-I/home/adnetec/markus/diploma/lib/include
-I/home/adnetec/usr/local/perl/lib/5.00502/sun4-solaris/CORE
-I/home/adnetec/usr/local/mysql/include/
-I/home/adnetec/markus/diploma/src/gemini
-I/home/adnetec/markus/diploma/lib/include -undef -D__GNUC__=2
-D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=8 -Dsparc -Dsun -Dunix
-D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4
-D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS
-D__OPTIMIZE__ -Wall -D__sparc_v9__ -D__GCC_NEW_VARARGS__ -Acpu(sparc)
-Amachine(sparc) gemini.cc gemini.ii
GNU CPP version 2.8.1 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /home/adnetec/usr/local/mysql/include
 /home/adnetec/markus/diploma/src/gemini
 /home/adnetec/usr/local/perl/lib/5.00502/sun4-solaris/CORE
 /home/adnetec/usr/local/mysql/include
 /home/adnetec/markus/diploma/src/gemini
 /usr/local/include/g++
 /usr/local/include
 /usr/local/sparc-sun-solaris2.6/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1/cc1plus gemini.ii
-quiet -dumpbase gemini.cc -mcpu=ultrasparc -O -Wall -version -o
gemini.s
GNU C++ version 2.8.1 (sparc-sun-solaris2.6) compiled by GNU C version
2.8.1.
gemini.cc: In function `int main()':
gemini.cc:64: Internal compiler error.
gemini.cc:64: Please submit a full bug report to
`bug-g++@prep.ai.mit.edu'.
make: *** [gemini.o] Error 1
adnetec@irwell$:~/markus/diploma/src/gemini

--
Homepage: http://wotan.econ.surrey.ac.uk/~markus



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-10-05  0:12 Xiuzhen ZHANG
  0 siblings, 0 replies; 387+ messages in thread
From: Xiuzhen ZHANG @ 1999-10-05  0:12 UTC (permalink / raw)
  To: gcc-bugs; +Cc: bug-gcc

Hi, I got a 'internal compiler error' when compiling my c++ code.
Following is the command line I used:

	g++ -v --save-temps -g -Wall -fno-strict-prototype      -c HashTree.cc

The ouput of the compiler and the gzipped resulting *.ii are attached.


Thanks in advance for your help. Looking forward to your reply.


Xiuzhen Zhang

PhD student
CSSE department
The University of Melbourne
Australia


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-10-04  8:32 Louis-David Mitterrand
  1999-10-31 23:03 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Louis-David Mitterrand @ 1999-10-04  8:32 UTC (permalink / raw)
  To: gcc-bugs

When trying to compile that code snippet:

    void QGList::initGrid(const char * title, const char ** ch) {
        sw = manage(new Gtk_ScrolledWindow());
        sw->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
        // this compiles OK
//      Gtk_CList *clist = manage(new Gtk_CList(29, COLUMN_HEADER));
        // this triggers the compiler error
        Gtk_CList *clist = manage(new Gtk_CList(COLUMN_HEADER));
        clist->set_reorderable(true);
        sw->add_with_viewport(*clist);
        for (int i = 0; *(ch + i); i++) {
            vector<string> v;
            v.push_back(*(ch + i));
            for (int j = 0; j < 26; j++) {
                v.push_back("zzz");
            }
            clist->append(v);
        }
        mtv->pages().push_back(Gtk_Notebook_Helpers::Element(
                    sw, 
                    new Gtk_Label(title), 
                    NULL));
    }

Here is the exact error message I get:

> g++ -v --save-temps -c  -I/usr/local/lib/gtkmm/include -I/usr/local/include -I/usr/lib/glib/include -I/usr/local/lib/sigc++/include QGList.cc -o QGList.o
> Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
> gcc version 2.95.2 19990906 (prerelease)
>  /usr/lib/gcc-lib/i386-linux/2.95.2/cpp -lang-c++ -v -I/usr/local/lib/gtkmm/include -I/usr/local/include -I/usr/lib/glib/include -I/usr/local/lib/sigc++/include -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ QGList.cc QGList.ii
> GNU CPP version 2.95.2 19990906 (prerelease) (i386 Linux/ELF)
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/local/lib/gtkmm/include
>  /usr/local/include
>  /usr/lib/glib/include
>  /usr/local/lib/sigc++/include
>  /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
>  /usr/local/include
>  /usr/lib/gcc-lib/i386-linux/2.95.2/include
>  /usr/include
> End of search list.
> The following default directories have been omitted from the search path:
>  /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
> End of omitted list.
>  /usr/lib/gcc-lib/i386-linux/2.95.2/cc1plus QGList.ii -quiet -dumpbase QGList.cc -version -o QGList.s
> GNU C++ version 2.95.2 19990906 (prerelease) (i386-linux) compiled by GNU C version 2.95.2 19990906 (prerelease).
> QGList.cc: In method `void QGList::initGrid(const char *, const char **)':
> QGList.cc:46: Internal compiler error.
> QGList.cc:46: Please submit a full bug report.
> QGList.cc:46: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
> make: *** [QGList.o] Error 1

-- 
Louis-David Mitterrand - mito@aparima.com - http://www.aparima.com 
>From oliva@lsd.ic.unicamp.br Mon Oct 04 08:49:00 1999
From: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
To: mito@aparima.com
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: internal compiler error
Date: Mon, 04 Oct 1999 08:49:00 -0000
Message-id: <oraepzunyg.fsf@cupuacu.lsd.ic.unicamp.br>
References: <19991004173213.A1315@aparima.com>
X-SW-Source: 1999-10/msg00065.html
Content-length: 526

On Oct  4, 1999, Louis-David Mitterrand <mito@aparima.com> wrote:

>> QGList.cc:46: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

Please do.  The snippet you posted is not enough for us to reproduce
the bug.

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error.
@ 1999-09-30 19:57 Jose Santiago
  0 siblings, 0 replies; 387+ messages in thread
From: Jose Santiago @ 1999-09-30 19:57 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3809 bytes --]

GCC: Version egcs 2.91.66
System Type: HP-PARISC-1.1 HP9000/735 under HPUX 10.20. Output from
the uname command is:
    HP-UX cda100 B.10.20 A 9000/735 2009529265 two-user
license
Command Line options to the compiler:
g++ -v --save-temps -DHAVE_CONFIG_H -I. -I. -I.. -I../jscript -I../kimgio
-I../kio -I../kdecore -I../kdeui -I/appl/netapps/qt-2.0.1/include -I/usr/include/X11R6
-I/appl/netapps/kde-19990915/include -I/appl/netapps/zlib/include -I/appl/netapps/jpeg/include
-I/appl/netapps/libpng/include -I/appl/netapps/tiff/include -O2 -c 
-fPIC -DPIC khtmlstyle.cpp -o .libs/khtmlstyle.lo
Entire dialog:
cda100:/usr/src/kde/kdelibs/khtml# g++ -v --save-temps -DHAVE_CONFIG_H
-I. -I. -I.. -I../jscript -I../kimgio -I../kio -I../kdecore -I../kdeui
-I/appl/netapps/qt-2.0.1/include -I/usr/include/X11R6 -I/appl/netapps/kde-19990915/include
-I/appl/netapps/zlib/include -I/appl/netapps/jpeg/include -I/appl/netapps/libpng/include
-I/appl/netapps/tiff/include -O2 -c  -fPIC -DPIC khtmlstyle.cpp -o
.libs/khtmlstyle.lo
Reading specs from /appl/netapps/egcs-1.1.2/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
 /appl/netapps/egcs-1.1.2/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.66/cpp
-lang-c++ -v -I. -I. -I.. -I../jscript -I../kimgio -I../kio -I../kdecore
-I../kdeui -I/appl/netapps/qt-2.0.1/include -I/usr/include/X11R6 -I/appl/netapps/kde-19990915/include
-I/appl/netapps/zlib/include -I/appl/netapps/jpeg/include -I/appl/netapps/libpng/include
-I/appl/netapps/tiff/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus
-D__GNUC_MINOR__=91 -Dhppa -Dhp9000s800 -D__hp9000s800 -Dhp9k8 -DPWB -Dhpux
-Dunix -D__hppa__ -D__hp9000s800__ -D__hp9000s800 -D__hp9k8__ -D__PWB__
-D__hpux__ -D__unix__ -D__hppa -D__hp9000s800 -D__hp9k8 -D__PWB -D__hpux
-D__unix -Asystem(unix) -Asystem(hpux) -Acpu(hppa) -Amachine(hppa) -D__EXCEPTIONS
-D__OPTIMIZE__ -D__hp9000s700 -D_PA_RISC1_1 -D_HPUX_SOURCE -D_HIUX_SOURCE
-DHAVE_CONFIG_H -DPIC khtmlstyle.cpp khtmlstyle.ii
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (hppa)
#include "..." search starts here:
#include <...> search starts here:
 .
 ..
 ../jscript
 ../kimgio
 ../kio
 ../kdecore
 ../kdeui
 /appl/netapps/qt-2.0.1/include
 /usr/include/X11R6
 /appl/netapps/kde-19990915/include
 /appl/netapps/zlib/include
 /appl/netapps/jpeg/include
 /appl/netapps/libpng/include
 /appl/netapps/tiff/include
 /appl/netapps/egcs-1.1.2/include/g++
 /usr/local/include
 /appl/netapps/egcs-1.1.2/hppa1.1-hp-hpux10.20/include
 /appl/netapps/egcs-1.1.2/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.66/include
 /usr/include
End of search list.
 /appl/netapps/egcs-1.1.2/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.66/cc1plus
khtmlstyle.ii -quiet -dumpbase khtmlstyle.cc -O2 -version -fPIC -o khtmlstyle.s
GNU C++ version egcs-2.91.66 19990314 (egcs-1.1.2 release) (hppa1.1-hp-hpux10.20)
compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).
kcssprop.c: In function `const struct props * findProp(const char *,
unsigned int)':
In file included from khtmlstyle.cpp:59:
kcssprop.c:114: warning: sorry: semantics of inline function static
data `const struct props const wordlist_prop[53]' are wrong (you'll wind
up with multiple copies)
kcssprop.c:169: Internal compiler error.
kcssprop.c:169: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
kcssprop.c:169: See <URL: http://egcs.cygnus.com/faq.html#bugreport >
for details.
cda100:/usr/src/kde/kdelibs/khtml#
-- 
Jose Santiago

Senior Systems Analyst - Scientific Systems
Komatsu Mining Systems - Peoria Operations
2300 N.E. Adams Street
P.O. Box 240
Peoria, IL 61650-0240

Voice:309-672-7325  Fax:309-672-7753
mailto:jose@haulpak.com
 
source.tgz


[-- Attachment #2: source.tgz --]
[-- Type: application/x-gzip, Size: 57756 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-09-30 19:57 FabC
  1999-09-30 19:57 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: FabC @ 1999-09-30 19:57 UTC (permalink / raw)
  To: egcs-bugs

/*---------------------------------------------*/
#include <string>

class P
{
    static const string str = "ciao";

public:
  void stampa()
    { cout<<str<<endl; };
}

main()
{
  P p;
  p.stampa();
}
/*----------------------------------------------*/

Compiling his piece of code returns

g++ -o prova prova.cc
prova.cc:5: Internal compiler error 109.
prova.cc:5: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
prova.cc:5: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.

Compilation exited abnormally with code 1 at Fri Sep  3 14:06:09

my environment is:

g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

Compilation finished at Fri Sep  3 14:08:57



--
Fabrizio


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-09-15 19:56 internal " Joe Sinicropi
@ 1999-09-30 19:57 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-09-30 19:57 UTC (permalink / raw)
  To: Joe Sinicropi; +Cc: gcc-bugs

On Sep 15, 1999, Joe Sinicropi <jsinicro@sclrules.com> wrote:

> Here is the error I got when compiling the distribution:
> "libstdc++-2.90.6.tar"

> gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

libstdc++ 2.90.6 requires gcc 2.95+

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found]   ` <19990914103557.A23071@jfm.net>
@ 1999-09-30 19:57     ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-09-30 19:57 UTC (permalink / raw)
  To: jeremey; +Cc: bug-gcc, jeremey

> gdisplay.i and gdisplay.s attached.

Thanks for your bug report. I could reproduce it with your compiler
version; gcc-2.95.1 compiles it fine - so it appears that the bug has
been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-09-30 19:57 Jeremey Barrett
  1999-09-30 19:57 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Jeremey Barrett @ 1999-09-30 19:57 UTC (permalink / raw)
  To: bug-gcc; +Cc: jeremey

gcc (egcs 1.1.2) returned an internal compiler error with pentiumpro
options turned on. This was during a gimp-1.1.8 compile. Turning the
pentiumpro options off fixed the problem. Here is the error:

make[2]: Entering directory `/home/jeremey/Download/gimp-1.1.8/app'
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../intl-I/usr/X11R6/include -I/usr/lib/glib/include -I/usr/local/include -DLIBDIR=\""/usr/local/lib/gimp/1.1"\" -DLOCALEDIR=\""/usr/local/share/locale"\"               -DREGEX_MALLOC -O3 -fomit-frame-pointer -mpentiumpro -march=pentiumpro -Wall -c gdisplay.c
../../gcc/reload1.c:1281: Internal compiler error in function reload
make[2]: *** [gdisplay.o] Error 1

gcc -v:
moibus:~> gcc -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)

The source file, gdisplay.c, is attached. I isolated the function in
that file in which the error occurs: gdisplays_update_full().

If you need more info, please contact me.

Regards,
Jeremey.
-- 
Jeremey Barrett <jeremey@terisa.com>
GPG fingerprint = 7BB2 E1F1 5559 3718 CE25 565A 8455 D60B 8FE8 B38F
>From martin@mira.isdn.cs.tu-berlin.de Thu Sep 30 19:57:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: ifinci@mobileye.com
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: bug report: Internal compiler error 378.
Date: Thu, 30 Sep 1999 19:57:00 -0000
Message-id: <199909240723.JAA00481@mira.isdn.cs.tu-berlin.de>
References: <37EA1E7A.9A2F9E67@mobileye.com> <199909231526.RAA06298@mira.isdn.cs.tu-berlin.de> <37EB1850.152A0866@mobileye.com>
X-SW-Source: 1999-09n/msg00780.html
Content-length: 383

> By "mainline compiler", do you mean the current development version of
> the compiler ?

Yes; this is the CVS "head revision".

> This seems strange, since the operator/ is declered friend in the vec.h
> file, so it should have access to the private variables of Vec<3>.

It is not declared friend; see the FAQ
( http://egcs.cygnus.com/faq.html#friend ).

Hope this helps,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-09-30 19:57 Internal " Jeremey Barrett
@ 1999-09-30 19:57 ` Martin v. Loewis
       [not found]   ` <19990914103557.A23071@jfm.net>
  0 siblings, 1 reply; 387+ messages in thread
From: Martin v. Loewis @ 1999-09-30 19:57 UTC (permalink / raw)
  To: jeremey; +Cc: bug-gcc, jeremey

> The source file, gdisplay.c, is attached. I isolated the function in
> that file in which the error occurs: gdisplays_update_full().
> 
> If you need more info, please contact me.

Thanks for your bug report. Please see
http://egcs.cygnus.com/faq.html#bugreport

for details on reporting bugs. Without preprocessor output, there is
not much we can do.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-09-30 19:57 Charles J Ju
  0 siblings, 0 replies; 387+ messages in thread
From: Charles J Ju @ 1999-09-30 19:57 UTC (permalink / raw)
  To: bug-gcc

Dear GNU,

I would like to make a bug report for gcc-2.95.1 compiled on Linux system.  
The message "Internal compiler error" has come up. 
 
I have packed the files in tar.gz format.  The file name is "bug.tar.gz" 
and I made it available via ftp on my homepage.  

You can get it at http://www.ams.sunysb.edu/~ju 
It's on Bug Report. 

There's more information in "readme" file I included. 

Regards,
 
Charles J. Ju


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-09-13 23:39   ` Alexandre Oliva
@ 1999-09-30 19:57     ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-09-30 19:57 UTC (permalink / raw)
  To: oliva; +Cc: Stefan.Eilemann, bug-gcc

> > without preprocessor output, there is not much we can do.
> 
> But there was an attachment with preprocessor output bzip2ed.

Yes, I was replying to the wrong report. On this report, I can't
comment much - it seems to be architecture specific, as I couldn't
reproduce it on i386.

Sorry about that,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-09-13  3:50 Internal " Stefan Eilemann
@ 1999-09-30 19:57 ` Martin v. Loewis
  1999-09-13 23:39   ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Martin v. Loewis @ 1999-09-30 19:57 UTC (permalink / raw)
  To: Stefan.Eilemann; +Cc: bug-gcc

> ./../../include/g++-3/std/bastring.h:215: Internal compiler error in
> `output_die', at dwarf2out.c:5426

Thanks for your bug report. Please see
http://egcs.cygnus.com/faq.html#bugreport

for details on submitting bug reports; without preprocessor output,
there is not much we can do.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-09-30 19:57 internal " FabC
@ 1999-09-30 19:57 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-09-30 19:57 UTC (permalink / raw)
  To: fcannizzo; +Cc: egcs-bugs

> prova.cc:5: Internal compiler error 109.

Thanks for your bug report. gcc-2.95.1 fixes the bug and says

a.cc:5: in-class initialization of static data member of non-integral type `const string'

which points to an error in your code.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-09-30 19:57 Andreas Knüpfer
  0 siblings, 0 replies; 387+ messages in thread
From: Andreas Knüpfer @ 1999-09-30 19:57 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1938 bytes --]

hello,

i got an internal compiler error when trying to dereference a "type**
var" by
"var->* " instead of "(*var)-> ". it was easily fixed but you might want
to check it out.

i´m using an up to date debian potato linux with kernel 2.2.12 on a dual
pentium2

see below for command line and output, source.ii is attached.

i thank you for your great work!
bye, knue



g++ -v -save-temps -O3 -fomit-frame-pointer -ffast-math -march=i686 -c
item/Sphere.cpp -o item/Sphere.o

Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 19990906 (prerelease)
 /usr/lib/gcc-lib/i386-linux/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
-D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix
-D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix
-D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -D__FAST_MATH__
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ item/Sphere.cpp
Sphere.ii
GNU CPP version 2.95.2 19990906 (prerelease) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
 /usr/local/include
 /usr/lib/gcc-lib/i386-linux/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
 /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
End of omitted list.
 /usr/lib/gcc-lib/i386-linux/2.95.2/cc1plus Sphere.ii -quiet -dumpbase
Sphere.cc -march=i686 -O3 -version -fomit-frame-pointer -ffast-math -o
Sphere.s
GNU C++ version 2.95.2 19990906 (prerelease) (i386-linux) compiled by
GNU C version 2.95.2 19990906 (prerelease).
item/Sphere.cpp: In method `float Sphere::test(const Ray &, Point **)':
item/Sphere.cpp:99: Internal compiler error.
item/Sphere.cpp:99: Please submit a full bug report.
item/Sphere.cpp:99: See
<URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.
Sphere.ii.bz2


[-- Attachment #2: Sphere.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 37996 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-09-15 19:56 Joe Sinicropi
  1999-09-30 19:57 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Joe Sinicropi @ 1999-09-15 19:56 UTC (permalink / raw)
  To: gcc-bugs

Hi,

Here is the error I got when compiling the distribution:
"libstdc++-2.90.6.tar"

I currently use the RedHat Linux distribution 6.0 with the g++ version:

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs

gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)




ERROR:
----------------------------------------------------------------------------------

c++ -DHAVE_CONFIG_H -I. -I. -I.. -nostdinc++ -I.. -I../stl -I../libio -g
-D_GNU_SOURCE -fno-implicit-templates -fimplicit-templates -c  -fPIC
-DPIC misc-inst.cc -o .libs/misc-inst.lo
../bits/std_ostream.h: In function `class
basic_ostream<char,char_traits<char> > & operator
<<<char_traits<char>>(class basic_ostream<char,char_traits<char> > &,
const char *)':
misc-inst.cc:102:   instantiated from here
../bits/std_ostream.h:465: Internal compiler error.
../bits/std_ostream.h:465: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
../bits/std_ostream.h:465: See
<URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
make[1]: *** [misc-inst.lo] Error 1
make[1]: Leaving directory `/home/share/libstdc++-2.90.6/src'
make: *** [install-recursive] Error 1

---------------------------------------------------------------------------

Thanks,

Joe Sinicropi


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-09-30 19:57 ` Martin v. Loewis
@ 1999-09-13 23:39   ` Alexandre Oliva
  1999-09-30 19:57     ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Alexandre Oliva @ 1999-09-13 23:39 UTC (permalink / raw)
  To: Martin v. Loewis; +Cc: Stefan.Eilemann

On Sep 14, 1999, "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de> wrote:

> without preprocessor output, there is not much we can do.

But there was an attachment with preprocessor output bzip2ed.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-09-13  3:50 Stefan Eilemann
  1999-09-30 19:57 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Stefan Eilemann @ 1999-09-13  3:50 UTC (permalink / raw)
  To: bug-gcc

12:43:42|loewe|Serial :)gcc --version
2.95.1
12:44:31|loewe|Serial :)uname -a
IRIX64 loewe 6.5 04151556 IP30
12:43:31|loewe|Serial :)c++ -DHAVE_CONFIG_H -I. -I. -I../../Include
-I../.. -I../../Lib -I//home/p-sgi2/eilemann/IRIX64/include -g -O2 -c
serial.cxx
//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/../.
./../../include/g++-3/std/bastring.h:215: Internal compiler error in
`output_die', at dwarf2out.c:5426

12:44:37|loewe|Serial :)c++ -v --save-temps -DHAVE_CONFIG_H -I. -I.
-I../../Include -I../.. -I../../Lib
-I//home/p-sgi2/eilemann/IRIX64/include -g -O2 -c serial.cxx
Reading specs from
//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/spec
s
gcc version 2.95.1 19990816 (release)

//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/cpp
-lang-c++ -v -I. -I. -I../../Include -I../.. -I../../Lib
-I//home/p-sgi2/eilemann/IRIX64/include -D__GNUC__=2 -D__GNUG__=2
-D__GNUC_MINOR__=95 -D__cplusplus -Dunix -Dmips -Dsgi -Dhost_mips
-DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_LONGLONG -D_SVR4_SOURCE
-D_MODERN_C -D__DSO__ -D__unix__ -D__mips__ -D__sgi__ -D__host_mips__
-D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__ -D_LONGLONG -D_SVR4_SOURCE
-D_MODERN_C -D__DSO__ -D__unix -D__mips -D__sgi -D__host_mips
-D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4) -Acpu(mips)
-Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -g
-D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS
-D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__
-D_SGI_SOURCE -D_MIPS_FPSET=32 -D_MIPS_ISA=_MIPS_ISA_MIPS3 -D_ABIN32=2
-D_MIPS_SIM=_ABIN32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32
-D_COMPILER_VERSION=601 -U__mips -D__mips=3 -D__mips64 -DHAVE_CONFIG_H
serial.cxx serial.ii
GNU CPP version 2.95.1 19990816 (release) [AL 1.1, MM 40] SGI running
IRIX 6.x
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../Include
 ../..
 ../../Lib
 //home/p-sgi2/eilemann/IRIX64/include

//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/../.
./../../include/g++-3
 //home/p-sgi2/eilemann/IRIX64/include

//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/../.
./../../mips-sgi-irix6.5/include

//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/incl
ude
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.

//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/cc1p
lus serial.ii -quiet -dumpbase serial.cc -g -O2 -version -o serial.s
GNU C++ version 2.95.1 19990816 (release) (mips-sgi-irix6.5) compiled
by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).
//home/p-sgi2/eilemann/IRIX64/lib32/gcc-lib/mips-sgi-irix6.5/2.95.1/../.
./../../include/g++-3/std/bastring.h:215: Internal compiler error in
`output_die', at dwarf2out.c:5426




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-08-31 22:45 Herb McNew
  1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Herb McNew @ 1999-08-31 22:45 UTC (permalink / raw)
  To: egcs-bugs

===>  Building for mpeg_lib-1.2.1
cc -O6 -DHAVE_CONFIG_H -I.  -c gdith.c
gdith.c: In function `InitColormap':
gdith.c:171: Internal compiler error in `print_operand', at
config/i386/i386.c:3406
Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
*** Error code 1


_____________________ 
Herb McNew
Systems Administrator
Cais Internet
herb@cais.net



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-08-31 22:45 Erik Dick
  0 siblings, 0 replies; 387+ messages in thread
From: Erik Dick @ 1999-08-31 22:45 UTC (permalink / raw)
  To: gcc-bugs

Error happens while trying to compile the ACE subpackage of JX-Libraries for 
CodeCrusader/CodeMedic ( http://www.its.caltech.edu/~jafl/jx/ ).

GCC version
===========

gcc-2.95


System Type
===========

Sun Ultra 10 with Solaris 2.6


Options
=======

g++ -Wall -Wpointer-arith -save-temps  -O2 -DACE_NDEBUG 
-fno-implicit-templates  -fno-exceptions  -I. -I/home/dick/opt/local/source/JX-
1.5.0/ACE/ACE_wrappers  -c -fPIC -o .shobj/Timer_Hash.o Timer_Hash.cpp

Preprocessed output:
====================

ftp://mega.iese.fhg.de/pub/people/dick/Timer_Hash.ii.bz2

Greetings
    Erik


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-08-31 22:45 Sahuagin
  0 siblings, 0 replies; 387+ messages in thread
From: Sahuagin @ 1999-08-31 22:45 UTC (permalink / raw)
  To: gcc-bugs

-------- Original Message --------
Subject: failure notice
Date: 2 Aug 1999 15:42:45 -0000
From: MAILER-DAEMON@egcs.cygnus.com
To: sahuagin@mediaone.net

Hi. This is the qmail-send program at egcs.cygnus.com.
I'm afraid I wasn't able to deliver your message to the following
addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

< mailto:gcc-bugs@gcc.gnu.org >:
Sorry, no mailbox here by that name. (#5.1.1)

--- Below this line is a copy of the message.

Return-Path: <sahuagin@mediaone.net>
Received: (qmail 26790 invoked from network); 2 Aug 1999 15:42:42 -0000
Received: from mescaline.gnu.org (158.121.106.21)
  by egcs.cygnus.com with SMTP; 2 Aug 1999 15:42:42 -0000
Received: from chmls05.mediaone.net (ne.mediaone.net [24.128.1.70])
	by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id LAA17067
	for < mailto:gcc-bugs@gcc.gnu.org >; Mon, 2 Aug 1999 11:30:29 -0400
Received: from mediaone.net (cpc42233.us.dg.com [128.221.42.233])
	by chmls05.mediaone.net (8.8.7/8.8.7) with ESMTP id LAA23846
	for < mailto:gcc-bugs@gcc.gnu.org >; Mon, 2 Aug 1999 11:27:17 -0400 (EDT)
Message-ID: <37A5B8E7.BFCFB0D@mediaone.net>
Date: Mon, 02 Aug 1999 11:27:35 -0400
From: Sahuagin <sahuagin@mediaone.net>
X-Mailer: Mozilla 4.61 [en] (WinNT; I)
X-Accept-Language: en
MIME-Version: 1.0
To: mailto:gcc-bugs@gcc.gnu.org
Subject: internal compiler error building qt-2.0.1
Content-Type: multipart/mixed;
 boundary="------------748CD85A7F3F14A26AADE963"

This is a multi-part message in MIME format.
--------------748CD85A7F3F14A26AADE963
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

gcc 2.95
linux i386, dual celeron 458 w/ 256M memory.
suse 6.1 platform

QTDIR=/usr/lib/qt
./configure
make
g++ -c -I/usr/lib/qt/include -I/usr/X11R6/include -pipe -DNO_DEBUG -O2
-fPIC -I/usr/lib/qt/src/3rdparty/zlib -I/usr/lib/qt/src/3rdpa
rty/libpng  -o widgets/qlistview.o widgets/qlistview.cpp
/usr/lib/qt/include/qptrdict.h: In method `void
QPtrDict<void>::deleteItem(void *)':
widgets/qlistview.cpp:4603:   instantiated from here
/usr/lib/qt/include/qptrdict.h:59: warning: `void *' is not a
pointer-to-object type
g++ -c -I/usr/lib/qt/include -I/usr/X11R6/include -pipe -DNO_DEBUG -O2
-fPIC -I/usr/lib/qt/src/3rdparty/zlib -I/usr/lib/qt/src/3rdpa
rty/libpng  -o widgets/qmainwindow.o widgets/qmainwindow.cpp
g++ -c -I/usr/lib/qt/include -I/usr/X11R6/include -pipe -DNO_DEBUG -O2
-fPIC -I/usr/lib/qt/src/3rdparty/zlib -I/usr/lib/qt/src/3rdpa
rty/libpng  -o widgets/qmenubar.o widgets/qmenubar.cpp
widgets/qmenubar.cpp: In method `int QMenuBar::calculateRects(int =
-1)':
widgets/qmenubar.cpp:586: Internal compiler error.
widgets/qmenubar.cpp:586: Please submit a full bug report.
widgets/qmenubar.cpp:586: See
<URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.
cpp: output pipe has been closed
make[1]: *** [widgets/qmenubar.o] Error 1
make[1]: Leaving directory `/usr/lib/qt-2.0.1/src'
make: *** [src] Error 2
sahuagin:/usr/lib/qt #



--------------748CD85A7F3F14A26AADE963
Content-Type: application/octet-stream;
 name="bugreport.tar.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="bugreport.tar.bz2"

QlpoOTFBWSZTWRrRh4QAmTV/hP//+3//////v/////////8AAIAIYPQeHgG+zo8+0XTeeor6
+7b7dbt95e7me7r2mvIF2GgElCJ7NdgANFFCEkSN1u6DTkbvd59dcrzWPopjlfd73fZ77pR5
lAPuY+9wQcgAoCoqD3HQOXz5Zfbrx8pASE1TT7mCqrs3bKSp0+I3vt3PQA9PvfG2o09vUttN
5z1ZawNtXd3fWUPvazddS4+a6+S31z5fHPMqFVAbBlFQCkCyNFVsKG8dG7vbb1Ave0R300U+
g+0pfXrnu7Pud99AAUACQUyF93cbbEn2+X3vp6+8dV98d99se8WZKqBvnzQHvvniPb3xp3cH
Vvdi2583UB5a0O3tPop89fUPd9x97On0Mg03ZvLeFn2m1THl927PvpMtHtdcrvvbm77bGmKQ
Ghkb7327im7O8Lu91nR3u94Jp3veD3vTYvWPF16eZcZ3e3W+7o9l232eqrO97ve+7nr2Xfa7
ffNx6dAA4zuVvrefbb7fOc4++se+3XzngdLtQAOnofe30k9XeHD73T4l9ndi+J3fd3bfQ53t
99j3tnrtuC+z7b685ffe8vPZ3DaH0Z2+7PQ13tyXTrFEp0R9zPfbQ+L3fQeG3dvK3W+gZel1
y+29m29uPbvPvsa3xb7PN0nWtAOlDuRuY+ujtlb05yBenrRvXdvvfd19arPm23Xdoe77URVe
xpvvjqvp5ocDhF0Zcc8Kzzus917nPg313h968F9Hx7599Uq9iINHcDoYjaJ3Y1s+udN2V7pu
6WWNu7k+m8rUy1qz7uhwtYfT71s+u7de7fTXg77LuHn1VDQNAEppAIAQBAmmgAgCMTU0w1Ay
MiZR6ZMKGh6jyaJ6TTRppoJTIQgggCCaDSaE0ZU/FT9UNPU0NDantSNB6jRk0ABoANNBoBJo
okimiaJP1T9IxpRsk8jSbSbUGg0GQ9JoAaeoGgAAAekA0CEoompkTQmSKPxU/EKfpT01PU9T
1D9KGJoaPUAGgAABoAAAaBCoiCNAARoAE0NCYTTCmmVPYFGJ5FNlDynqPU0MQPUNADIJNREE
CAENATTQaTJHqeoxJ6EybJlRpjKaaNAAAAHqAaP+H+4/2/7s/UaHNlELYIDHrf9l0aMiGikU
tFTKhDCRFEysgRSlR9m7KtroIkiJhCOQ/MR934X4bANiKo7SAQXiIaGIEF3xQimQZAdFCRCJ
SoukG7hFTIQoLyBQxKiDEoALASiOKkoQA6gkih0lHnRIKWWJMEkLxWVMQhKQI0As00MPAJTG
giCtDB8BD1GNApuGFCigZlcGQxSuQIth2cVRLQcdwYeFUJRJDQTAdURAv2//Z/gRlCqCt/i6
F//YQPSNv+P/L/T/dILwGa4SvgH/SRb/oo0GPBBkMWLJwKXMCHZdE1OR/3c7/v4BCFKnBhSN
EoEdJvvmB+Nzj7wQ/ks+KukfFNEsE35MZpmkKZpoJIoi/JjNVFUhvNUzv0lNJxCQUxBBBElf
LGnRrjAZhCJDQOJCC1YwkWxqKCpYiiKJ2zidJEsaHVFjDv/HhuGcQ8hiN9+GuVZ/hxn+qf/n
Yv/F5FopzXsnM17k4B44m7R70dejDdJqXP+HYvwgLhBhQBiCLJphdUiA5vj/nm4CfiPUvhwz
ND32mkZIw5JYeMOx31OeYDh3uuIbvieQz0xsbTL3nMylLK8B3LCjE9zCYpQEQQwW4VCygpUt
UoCrdJn6lP/Hr5jAHQfqxMlQn5IzjltNNcR9lpKHZv7BGcJWI3R5lo7bZMTVKUFKVRKSlVMm
wpScDC90c86X4nyfPYYiCIhomob6QDzgjpGihvnjDQ1F9cnjmNOIa8YoCwKwMmVi/hYVOeIb
+5in1eZNJmEFnOeTALLBxje8MgLApxo3bd2SGEF6r7rwmk561LwCSWXoeu/LAUzNULEMb7Yd
ZlkMQkBvATM2JigKghHpZyJmYM3pxzpWxc1XQFRYyJRQFshrCsfZ73QGRjjODMggLiw6eFlF
GbgmBhVUSyo635zwb+OYWIP91QY8NwMPfVYi/SYx1guIUQW6gfRkWI2GVFqkeKjfP6ZMYy0y
BiQVJBosK0Smkxsy8Uz1GlAlvczdlIGlAVkmMUxihI1C/xdTBPgCGtvN3ofi/KdoD3su2ndf
TaMKMw3+H907YJv9X+X9EMlvXamwWKg7mTu6gGhU+6JUZpDzTOFPt0m1nxz/y44XmuVyvH/w
fFRrw95p2ICRnCgr6YVzGJQT2IRLZBMcBv5sO1gGDFEAO2d2qCXKh6qkxj8cH439psYMzUwS
MHtMwkE/aqAlicULXHFg9Q5kKUpIKqJ+NCMVQlCFARFJEhQJVIEShEFQkAkIgzRx8PkcelYB
2nucvZj04nlWwueExgFIoQtFIZNyy80FFFOaNcYYonqiAanUkwLHw1sHezP/3eiUkGLYM/KN
5InT0J64oMaferFNDMLQlbdmM6rC2OuyxS+FjWlKaTfuy4TQdIoVWzro629UWSxoo1NCGNRR
NbwI6TTykUodGd7z0k4zeLkkpYZ9Eny5LREwZz02zpkY6UoWgz6yB4d5g7nhzrfYo3hkKJd9
SFpbgQqQtIoLIGhSW+/Mds4X1fVpw7FSE5minRkyRexSugSmCXsY4NhzUPsfB7E37QHJAYJ2
WTBsaMQWRjBMiwWSUMEIxlGY4cCY0xlwaZuIKBkst4QM/o+eWwzZoXAoLjjtxbgK7+BXculc
3URSdiiUroIKbW9HE4zBpGNRcI4Gh1ipoy8kDNBzJyQ4QmJ0mTOaoJQIjvkUA6PGgf/0AdUi
bSUGgoq1EEf3EERaA8UQHqr1f8ql1tUVxe5tjM1hlbCpBpKjm2sWaws56QCbsgqItRGYduAk
C83s6jDVt4w5G5UOxJVPDY0+PXcaZqxKIy3YpvcL7Is88BvSGsuHA21mXsuzV/Q5NstBzHgm
EOYlvnrumBflpe2VinuXbd5E1aqs5aCZ2u5ht9+73DgYfObal84bGQFFBTqcnAgSDeRltxKi
B5cEwWZ52xOiQJ8b19r5LO2mQKoiap7hcMFkUOmzDBEVx7O4QhSJQlHJHQ0AhTSqd2GgTTiT
kYporyotwHEKVJC82MkUkVyc2oPwucXu8E4UtJyeRRe2hrTWmLTMqTIBmTIC5jbFNycOXe1n
PClNznDrz0XxiKxHJY1CtVihzc3McwW1GZhkYiJbZHWsr3UC8eaGRQ0MgtOW8NzHcdTKTl4b
gQnd9KIZpg89pKWk9rTQxzkJAC9XYsMVqDihrCYu1gEAw5vT5NHpg2uGYz8iHAg8ZwYxFBVh
EV0msaImQMZsCiK1YZENTDS/dUYpzks4EqxHFwixy/BmzKtttqLby6ZFmVMu1xm1ocg5UDSj
SD6YJEDnAopYhZGS85zhs0XPDzbkp3FUW21yb0W1Q5iOojx4Gpy2a2Cup52GVzyuqLya6VbY
QrJ5upuCQWLrTDay9gBKwYKqCiWhXJNajWWOcsYaIVCtiMDNYZIeNYd71ARwcVILO7TLIsWH
HYpUKwYwUFVQ4hnCpFOMzCZWLebmFUzUqU5Dc4OolI5FNG2eS9tGuSlCwd2SDtprToOyUdim
sSFJQXM9inEx6AbbTMlQVahWTgkKkztVGLLSHskqE18ukmYah105m1A3KcS7jRo5XM0D2Xkh
otgNdJ7DkLnaGZmKRNaJbthyI7UmSKQ/i8szWHUMq+NDcLMLvg+mcndROwMogGYVK3YqPxZL
8VZWVqKrXcKXlaUF6wpyz4E1NEJWBSEoItq1iLFS23UTEPIFdKOg8S6ebFUDQnZTSUDSUAnI
NJQjQgZTRyNzMWnlkdYVkUFKhlG6X0yLMhnJeUrOImbW3UUomArIWEAS1YgUJUyNBTqxP8ZT
81EpSpmO7bBUMUVMPgxnZDE0MRUVTNKhrAYYao3nIHPplz8u83DEbQEub0W0eKRFL8LAs+Ot
pukcy21VsxRQXM/F+meEUEECxR1oJQ7Qb1TW9dKyKQoaQtJRyd6yczjZpbycvMUiFQUj43ds
UltUzAUjHNY4jTbaVyGVy0qddlbtWJw5h1Wt2XKrq15y8eNvFZyvF70zOdtrb2jUqKt5t14d
tnCtzroU1u2hrawowbRc9jA4coLM1BQMHbk1KTouuc95zVizjlZU4aixHd6YyVIcRYVhbZy8
7zdoKvG8aKDyralrKCMYPOa3XBUdrMQWPeaGQ4g8k7g6HcYbzvE3HXtKueUFY5CjDtutKied
oZq2j5S7NN48u0fZ9XGw+Yp4Ml8QS2LFkFnFtC9ustEqtsFqhRETMtavZS8URtsu2lIamqIg
oJjbVQYxeW4RjLEbbV56sDqBWnemoq9pnVqtLWPbTUUpbFS8Jt0p51Nyphi87sqCrqglLUFF
EqIUNGHZ0QQSTseNrhzw569nCQwBqgcV8QrUqdSoLtgdbc5x0jKxRVBSLIqqCxEtlkBVWVOb
HeaBlnMbNniTj3tme7uxFx01XmNFGnR3VqbzOCic2KltVQrYjbR5WgWCOtRFSKoIgs4zMYMc
WNP3Vph4h1K85beO1RbeM1LUMJDwGU7tOXrZ2cMa0BKyilaxDbCIjkIlPLTOwGBqjYdUQcOk
2xJVETFEPyjEFAUkS0xNNV9TeuHqAOeUbRC+pxFdnVKUVJUJE7YcRo+WPlxXw8lAxiRDvdg5
rS66Scxa+AzcsRJgQoHELJuZHALdSbvMiIitLU6bM0V3Jopu2DZwxFPdikKTWqbxkcTFRe0+
LgaDFbYqVigKiQYgp1qCkRijdcIvlfCzqJdpxiiIjJKkOILkqQ1pBdbWGQwhKwNpThrFimVp
XSlI03bJ0koeyHINNC2N2xUhSPbccaaKAiTQbVGVcXFmo5zeCVtsK7UiIW83NRxRCnObmZLE
5ZQqiREOIGyaJWoFXXIc4fhfHjBieXuutqwrVqOuK4MxGMN2hDs5g7te/5+yr4axYRhaGhoq
JpaC9e77eH1+H+vp5eG7X+6/2+/8dns27jv11yqda99aVJ4wVKGAsKQMDaHi4QDKPeYN6br9
TbWDwopVTH1njQ9Pt5hwQGmkCLwJ4tyWl1hEmaiclmEpWmld0OsD+Y07i7tFE6EeiZSIpCmq
opShKQo7Ts7TMOqCjbQk4tFaKqIp9JwguCntIidJQAzDNEKBpeQhyUpNu8dA1NSVybYtaqoI
IpTF0uvIKR5sBqWZCpnMCp8LZmcYbUyFriWePBKjgYw4LWLI5A9gPpKf3Uv4SI87X7Td64KA
iqYkhaGJSiMIp9/3GhlDJ60xdDFQw/o9lYTKLCnm0jp2Xhwo+Tpe7OeOUgkRhcGUVRQzFJJJ
IUAVNRQyQaLK6oQgKUKagKqYpEPqchD7wotttqHSBiER+2m5bgVjSiMFKUzjMFCsrJtVS3ar
XsgxBVRlTqtSCjBKDhFFVezB1nWz4XEtv2ExfRCQ+qI3oMChcOITcA8bUbHxHCG5apSEttWr
WlEqkEUw0DdAdG0Ul1n3pD9LP6UML/QbVZVNbJLbZP2P8/76kym6ZdWT+3+ytGL+SFedyML4
fqVUaVfTX+KBBMJBVDMNXK7yvJXuz69jrhqXMZq6rVy6oevM0YYSmSkFgUtNChtzMVI0Lzci
Wlyoj+ls0hqDMmD1oJFJlIHC97yw/c4SGqdECfuQP7c0f5mjqNSqaqEvntsbQYKfpJuYxVS1
TNzNOfpJS6eQbEeOLWjhrV+AkmvF6JnTMpbtgpN2TreiYjHhI6wtEgD2x7Q9DOqjSfqK3e7p
HEARA8pACIvl9m07HiuaIVMGxqmoDT/X/h/08uuzEqiqvt48rv0DDjl1faErfoMOYSWyp8vs
xV5D6y5wMQK3r7c9p9umdJIeDKZPG2YQMsU0UglAnfeEKrmQVKFAKEClUCgQaErsCch58Rki
fa5KCPL2gANQyNM++PypLxgoEmKQgiuwZokaGZIYnDZVGd2k6ySbgWSETm0IHpRT48+Q5MFR
QQBQRERSkRERERVEEEFPq1IA/KBPMoBwJYkhgoKApI9GsagPS0GTyqHxYnTQ6mFFQVgYp7aF
CpWKgJlAoAoVqYmDuAtHTY5GMkVEJSKp4lek/wRoTSupIC7JQNSEDzwm2EBHSUBKEeKVF2kM
U0DSQJCkoBJBQjSEwIdWGwh5IUzAMhaSkOPOpRwGp593XcIFoAcWxnTSoCkJh63ZmWALJm6V
oDymu15HvbL6uP7tugctABUYkCk5ScxgpgJ4OEmGG1i0Ix6So4qmUukKx+xDHr5Y06XRX9A1
cpXnyfLtCP6EaQq5mRFBk04d2jDZ0n2H4SLG7ukkDyabKB7yBSnh68+DmqDhY9gPWGydO/Z8
8OJxCsoeUHAVigjg/azgcmprnS/+TGASqYf0kGsMncqeroh027dUtlzilEzTDo7UXvzT1lcv
2iDjBhs91TJW/hmunMcH+iHuIrHPO/SVAenE8FsEJlxh1FB+X+IlC//Qbk0NbdHINUKEpH5f
5q/V+r8/8f4/r/V9XHy9WH+aznHN2dhnoa6Mep6voTfoSQGQk81hQmFjDXgk01l2y6IpD+2g
A8kJlgYT1VR8g2p3rGiE+P7yBnB16TVj9ZR4KTgKmCepxLYDRB/VITH57L/b+udwRv5moVEG
+nCGC6q7lXvWQwxiMaSRFYspqdBEizjj+vhMvCuDroYQsXVJXZRUHtFTMafBEHKI6ISIKNnj
jDeKkOFuojMQgWFyF1wbX19sLhXxqTbMp/d0hd3RXDpV5FUxJhQf04DDIiCwHh56zUKpxLMm
uM3nr4ejEqdbMMsyw7WCnek2WihKxYE7WlBMNpPoIZvam7Q9nzEDuw1IOA/wF/G54x4/y6nU
Qa7QIfrZDhCMCKBxG73npXtR7Ye33xPf5O6IQpJm/1T+pJQXhkrCwoJQll62HjGKUUhoqnRb
LztikoSjCgSik0RdbXrGNtbTqnaNrZJeswQsSFFVUhW0YLAQ+JU95z+riRTJLvcj0H+2myyL
/bQkl/IsNwYznb7tnittS00Xp4Wctr/I+O5isD1m9qpY+s1MPE4ozxUmv06+naq7O8Gzqrre
aMGJaTeaqqtarMGsG0GLy3usqIxAlgvYqslDcuFhU3KpJQ0cCJamrnLisYnr0qS9aKz22zav
OanCmscVMByCjeBbdc/h9RE2DDB/bjUoL0DR0UBtvraSoGU0CkkTiEgzGjzPDB1KPKbhfmfr
NiJh9ItOW19cFfNvY0dIh9YaPPYaHZ2JQ+pBF0YTx56nK1gCd4PsHGFE7SsiMVOg8cPp24qI
xE0LB2DWtc32GukDYmPDTgqTvmpE1gaYxwPyjB5GN/dqUxTB9ebxCs2WycWGpugh0th7Gvuw
+AyxYWAgnhRJ9fL7RjaoNRzDxsthNDJDc3bSSSSS7kRHx7a0V44nKbfxuapZ+P2Pe8dA1ERD
CL1wnIALB0giqCCkg9gbRxnPLOpzVLVGsYAmBaAhMxGs3i0hpASRZDoIElxsM5v/uDw9n/lp
80AJ0iGT7ftoh7zEko/yp+Tgwd6B3odPit2HQTkMlPghDdCYZw6uoqqLIHFhuz+8Q4CB1+w4
/QdU314KqqqqqqqtJk1z/8SZkPR39ncb5hN+JEJRu0i9fYq1DgBOrJUCy6svnrROWYQ6NhjY
qv+UcJ7uE9EmkPZJFoJgY4sjEwsNAzlybr6+RD2McSo7n2zi5CFK/7RvYcj8UvdBG/tudRBR
BIY8+ZAyzH0y0gDoLqVSj+K6UmJEIQ9syECVh2heErS/JCC6J/c/xl9WIXhZOtyvqissIuES
5JKUsuNOWh7zPYCtWNp15RZu6vr3U0OhR3uXGGfCUjGz3FYtdHKBljpcYovvxybSCF16C21S
KK6I2JuzoUVtxwRxmFRhjExIcAJDLMiEPNN1cNHusT/jxQt/fyCvFK+RQOxK85cObHNa/U+3
aluv7ykIVn26Eb+ZzHytKUISOm5YzvTRNzNzrGuuaWm30fX9H1/T9fmu8VguuT8N8EcDaw8K
V5W52i++Kzz36y223b/LXIyO3oPz4GGtg+jyKSfod3adhf5indMqq9+kYl6eOoPAwr3NI1r3
SkHmxvunP/rbRU3p8btslj2vf4EbeZShXJOYYmMBt1Xte7rnydxKldKYkb0api+0a6yjhHOd
1a8YaI4NxPL0GhHLgE4+WGPOEJuxv29EdJT2uv6y3zcknQsd8IiPemfm7pXGF8IkkaFrvojP
J7lBYO6WifgnLI7ukdszidqfQSbBQrr3HIyEVuTxjSDBrnXXBtLszdJ8ZRpF3flU4YnhwH+j
HoWKnU7e6XOJvbGZF9kYxnRPN9RBy3067db4erl9MY1pJyBuN2UYroZ0tryLihSqVEqp4cb2
oiUnvMvfKwuNSO29JuXQfKZOdj5ca8824Bel1186onWEKsEZSlOHCV+ta6SwrZMxNi7wjs9+
IrYV8z7TlPpnhO2HXbfe8J7p0N+Neu+ENMc1BVY9fBzPKcLO9EJE83tttmQnvzodknl7cZ4l
2u7viWtfnWOcyekZQRHaNttOlLpvpm7q8zQaQjk/o0tOkvNKVr+VeWlFnnfuXDSnoy0ulRYb
udDpwpAWzwVUXb4NOOnYnYDhdvhuRcrX8McEmhXaxzTrtTcGww2xOqwWhZjziomHFlBTvOMd
yNprrBjHJ2LJTpi0Tl57uz8S4YdREK5p8h+zjtllcDNPF7SI8H8PFNU2pS+HJEmBfToczTOm
uMTdZTpPWJDWjRnB1QLpXKvdPZXXz8PG6OMzCNlRNWyZnThKG2JR8seeXHvhYxATG3aenPH3
3daRzv0xfB8Vhb6PJncRPHZQIzXG5s9BKle0xSkbcYlkSoSiBI92l8MsunZp8LZcrct0qTnx
M7Qf/v8MCUVDhGG6T3ee8Sm0ZzQyheo8JdeJci1OnGXisJFV5+VzGnrFYVNSi/Ps58DzdQdT
HO1BzhwJM99cKK6ZlSpR8IbJ1GpK2JYro9baVuI7MYzseMIIuHmxDFbenptLLfMW+65xMy1d
nUUzBMZo+BC27f249vj54cjOu5Tq+pRK6DjiIJ0xTVxpmULVdT17lAfd2XcXq/eu1P0wps5w
hFYxOsCcU4lg7l0HIXaccW9a6oMqY1sXbt5hPfIO1M7MxycQILh1a/R+nTICcawaWlbBPydz
Cw4MFhEbZVleSFDIX6HM2WsGrSKv5UerSkTFBSSBTKqRN2HRWBeDhZLd6C5fKz3t6CSlWTKX
LD/TriW4our6Wt3s54oOFAEUG8p8u7q/2Tnsq8VFCg1ANN5lQmxZIwPx6zlj+HMP8miGC5mj
aE3kDiWcDb8gs465m8KxW9XOWTNus/L+PGcw2RVVb2F8c+jPCXQTQIVkFJWgwXEMKgcXAzHM
AoskzWRkgZkLwahz/VPI0GQXJ37HNj46QJnFCKoScKJ2cjBA+oTSbUEDQuGhvBZ2gkkxzyFb
1Q6x4WWzNl3DjZVUXBjuK7xV7T1Q81x6aUCjHm/Qx3Kc+TNVATozH5z0ocv+nOJA7v6p5xwX
3dOg2zAmQgSEfkcdDG9MhN/zHpszIfzm1w+KfUlMRNEFCktp0yYxC8kdDT7lyKPhke+Cm04y
7YPMp8RQq+F5sQxIeWDhIofPJSUjQkSRDJNBTSCMSKEQiUikhdIbf+sVd/Gam3Ygux4njQ4H
eDOxjyTRMnn1jkUU/IjP1NQpAPxLOATfcu4BNuBGaBgRC2brohw0owwN6jHYOxjAWKEfFoUS
goZJogbUqPx8j38npWIGIEYCgshzhiZFJ7c4YDiKpsWFpG7LLQuzcJwSRCYDI5yUX2w8cT4x
UzlA8c/EXsSTXU9fsPNp5PRsTOcxja/mlUPzs8HldSV+G31hSEOf24ssXNe1+XPskutOEh8s
yvouuhNm1BmbmZt7ot7j4JFySeAUBovDnvAbIIuyYb3LnFynnd+yxU3t+Hun9O/kc9ujllTT
lGvDdsZpCXRJTLy+IVN/BxNi7IQdwaRVL+X+vQK/wWPIrQjhQkFdmErjEUaMzOY3Z0+nXiOa
/u6vjoHQw/lxPxRpThuzFMtECRi5d/bziLFEJJJAkJBLSvSVpR48Xwltiyb+tW5YT4dX4T4+
aFFhKak9VNWP09MeF3p/LW1nip59NqLtjf/fMSp6uJl/HxZSrZ6RVMb8O9RSrmpKp02l5Kv4
/tJx4eMi//Hvhmpzc55vm3Tv+38/6fzfh9n4e61rWta1rWta1rWta1rWta3D/Txd+nXk/7vl
w5cuPSrnK7mpdz8OHDhw4dOm/p03GG/fDbfvt+5/j/l0h6f93+fr/3/ze/z/8Pd/8fP/p6/+
P4v/n/l/9fb+z/n2fBfL3v5LzqB5eXySrGf5IMxGSpWbtVRUPs+ylvqm3zO5+OuGGL/ze+V+
L43TrmqRb+Wzw0ftpcsMcJya/baD6NSE79XvT4uyJfCX5cCMysh420xrGc0AksbCRSv1/R9H
0fR0+v6/rvDH7s+PPXkvyFCqR9/ZvLdl0Idedm5e/JsJF9uyBKKgaNZXOVD45+YX3c3rA1u7
+F9Mro6dOuKiivvFMEsMnPhlRzxfHnEX92YJTQdfU24xuee3EXZYIcMO0TOm5r291mtYjlx5
H8/fxONlhbHpxgU/cZ+IOU3hlBnDBwIoDgCSo/JyBZAVTDJCbUHzMnMySHuKloOGQroNas90
Saa19NCOjXSdiBje29oMM4mzR4A14awX3w8sE7dbucJ3vKHS7lc/QD93Wv8B/Sv5v35QZKMF
CcUO5BN+z992JWxaG0kpHyaHFVBUySJCbiyP6T+jfWCMsmYgle6DxHub/W41p6XRVGBoQhjS
K7auS5IjHnIgsL1GjGtzDwL7eJyDHV/k31t3/tVNdpcuAfLqYpHbqQdsAiNjw2MpXCFOkQoa
Ro6QQs4VL5nRLvNjbRQUIZEMyOP9bThFJny4R0DmMGcZJyyZwMPA35X+yodFoaSEl1yVSFen
aop/gZ6a+JRRmHWweW1GKZaH0WDNE5zIM8AgGLNhUJsxIUUEQYloxUhwoxnw8gKgx+X9A5qA
RBHDIZ69+Cafw4jWhQNCIBQDjE9BtB00XO/XFZmSTh49HYmqPYYwXjLqZ7yNK5QghMCcIJ79
jN6MhDUKijgmFxsZqFkjt9ehfjtoMsQCaEuQhwCxwmpWsxld2xt8+JZcRF8AohBcATj0IMBg
JNWIMigCjh+XPO2LDZGTsZwFllm7DBYMvmzQfYaaXs8wcGszBqNzsoSDiy4xgMGAQIQhGCsG
DHfPklkxgO+tbbXsyXEoiZYdkk0jaM7ZMYSznJ1ELRkZ0qqgIcNwj2LjkrYzRmhflrKqrS+o
rlShSIyHgwLcl9TBv1uLo1BvgLPfzxsQcWPbNj1VuILFFLeOaGkyKR0oKYyRVhenVtOVO+ib
XprcBqNkGJKX9G42xw2M2DTMw2MQIMpGEC0KQ2x0kD7td9wwfNDTMB4ca4shS4sdIC5YkSoI
CRcZ2OW6yjCAyiICgyYAEA1nAqx+w/a7BItcTLkFkzF2byzRyk0SIOjiRGsAYQkBDY2Czx4G
2cQzHwjwJiicPRQFDxYHFFgFu4YoNJMQwqlIp7Ac1dCsOByaUERohEEIKIA+Z2Ewd6/Bvb27
43X2ihXiEAutJwyg5qFyMg4kIbeov0h6GzY0qc7zpxDhuNaOFJPRKMIxReBuEqcIqRjkWNrM
KCtDhscCBvrCGgpAPDzqqgKFEjtlKbwqQrNFCX0OLPoz48CsqbMKDRGQ1kcpFwbwItj2DlRG
kBRD4MdXDSfjPxVnkJCVtrV3ZhktyJWyuiwTaTmW2JjgglempTNXF4sdaePOSHOT4cA3gya8
aAsTwjGL31OTpMyXdzl0r+br4+zB18AqI9V3NF3vjiOJgMk1mFqg5PzbhFJAFhB1hETBILAE
Il0lovTYwUZxjYTTLMwntLzfwQlBrw2MRFQP1LhF+hBW5aWETFVXhVXiL7wSKOkaUal+CnhV
GN8EbqPnvSgN4w5DntWigyGPIzzLZvWV5L+SBahVXhz4SNLxykHgEFgbjpN3a6EIQ7/X5czZ
r0ujyK08AUAiIOU1wq2DGu+smCO453n4kHY7IbSXSWcQSogQhREUAVPk4Qkd68O4EtKRS+Uz
ANfbtOSWlEGVJVYcEb3FRQpRSm9TooqIqisRRVEReclSDhCgiGpUKcl7SW4iF05LxG9Cxz0s
MBiE0mJpM6KkQ1BIqGhM63mb5A4PqVAasXWYDR+SDj3gqA4+Cl1NhcA3GPqyFuQjHPa/wJWL
rcYtEZAhrR5IuYQNrsOwwhMZ+6X6HEDsdnpIh8im5KdSHkCmtpgzkBCFnRNSUgIYTflV7YAy
Egii1OBCLBTdI3bmarMDcTV8k1994RCg+MWdMcW0jyMi8JMFqFeczS9gsQhJWikxULmBVNEV
FfcKGwUP3q/M99ki2888Tzm23IP2R0YJWUqJWQSIdKcNUinbr605Hxo8TuUNI00+fOThK0sy
9sxHnAfEHnu74wOIXkdk2yaYiSYkklJKm5sRQBzJgoqkoElmJiSmlCiikiaV0LggpDnThxBo
p7PIDgw00hVULBMRRREFFFBEsQBKwxFMQRIy2NiJKVopIgIqCJrx+G4REUSUX4Oy0UER5kNR
RKR5IdSS/LHOFkDCyQSEwBJJPtj5cQwYYXBN69cOHuBtmCUpiGhqlJikWgGgGgookIShSkpU
pWvUmgSgLGCY0IaTSprSkQAUoyQpWSKSLIoEMvKxN83zxXQoBnrWMd7I4RlSzGO+YOYoUJo3
mLgDEUQfYysVkU2NWTTnbgosYyLlvDBByhyT7sWaFSsKahJY4tQiEkI2jAGNsvx+ES6s9/eS
OC3TQnxarShxGrbNncezE6yCUGUoBUZq6oqgQjWu7gZv3ceLscc8tiIiIwNEalRIiIisJBnW
rCA6IxjRyXXHsCiPxTEJJRPXhnt0ZcO40nueF5X+Zhj+aBFMJSQxl0NeGIU2nlOrZHiYJpEU
rydvSu/ifyXOH+JIlKtPzZY77HjCgc0niCGajNnNgy1UNDOhfEwm8zFiwXHW0jm4Xm5mugMX
FwGdzaC5GfrFndlXFQqowdrFCejNMkscNrSqrzZphUoYKw1ZEg6RHN2qwweA5zeNh0d7p4d/
EqW8cRjgOaKQO06UEC2DCQql1DDKbYzK1Giqk5kwvvLhQqMohbmHlQ74HFaFStm7vd8kAI7U
gEEhEZk3We2dAvvsOU7sGmTAyavovbr0bDo5l4tNFd8NMS8dJMYqA90O2Ig98zNPAN+/+000
004EOIikeEYTEim+XOff7SF7T7ZMhEBLAwk7SqnMMWOfifSSXJohkuJoUMgnE4FRTRVUh5xi
CGmYmJfj4cHKgKmA4q+0Jh9iRXu9+PCIDbezQqjdMgigXU1sCUgKCkiJEaHPtw5ThIGCWWVk
imCCApQ8xvMrookTk2d5jPcuC+BwUqqTYgJksCgLA0W4Fwd2FcdMUPp8Rg9/bC+3TFsQRVFF
DQIUhSUPCMpQJVVbbsAfEcKIkKCQhlQdfR26aBEVU0TCEAkJAlGBwsZyuZk8W23WA8VP6B7Y
ce3Lieu0JtQxMgbjTaCWgZKJJY0IGMqYmLMVwTLbRxYHiHKTtN3600iF6MOU7mGOBg8k6pt7
gYXJQawuEeroSw95HWmeHStiMJY0B81Jo1DkRuM6MGFUx1Q2to6hM69Ayd+TqsO0eh1cAJlO
tkE40UxQtMMDcgpakGGgXl2t8Fuw1dhswxwLr7UAWEb+WdPT56QhZ4vp5dptVlD/N+LlGNjJ
LkZBt5ByFQgkpRGCDErJaQIwiMdiOJ0vbFExbiGSyw1UQsVFAtcUZs0x/9q6tDayCpCRMsvK
KZIxl+IeqjDo4SuDV3iQ+QwpJn1b2TsnZ2ccZgTHrzkulKFb7F0YCLMWgQ3MztE6kRmvbZwk
W35vHz5u4K+Wz4JgovhI7GmzCF4BW7Mwo2lkE3Vo8KDqH7W0kkrj5dCKNWSRZrWSYxFVkJyW
XgbsKBRsRQ4cD++EoHMKL4ZBIIFCgsO2NpWWmzqBpGcjEHl2gnHmHEnhFuINxhCFDY/jlxYk
dRGQwNB742l9HekYw903aOjxRt8Pf258C/Y2rYLsnoHJHFJzzNhJZoVSRZ0SrN2Vm98gPaeG
/Du478xzYHZgL2QyQAv6SOeOWdoUf1TAIkFF84VCzX7EprlVERIsuKo3D7ttseKOSWRs/BxE
DEwkMxJ2YHZggRApUtQjfraxvJlaU65Sx4PJyYLvsNxR2UWVW9TpsSVOQqic74i0tmx26a44
YNUReEBIEpDCrsgRApGKqsCKSSdZLHS7p8NOBzz3wLos9HyPs2PU7RyyoTLoQswxugxkBcBQ
k7XQkRHbARqpon73nz8vVPKK9dPsa1o9Y6+ZMSgbcJAjhcUWZrKOtEbZdekNDG+FnWkU5ZMp
tIlEkoSN979UvA5NzqnFiBgmZCEJSSwnRi3ZGYV7jFrtXcK2hqUzs9R4WKNZEFYNu4gGwS6j
3DNcEggVxMpilIUDqZEGJCJWFye5xoPCHkmJNQHEXe0cQbm8wLGs3d3giEHHd9GU5IOK1bEw
ufE42vutoMZIC6xQEJhCYJzKHLl8Kxo2LvinR3sDjF2QgzFlylRtCebAnHSfSgXzxmYmYYsF
6ZAHGE801RJsEUGKx8MAfKV+RVkcmcGOESkILwv6l5x+0+XvZY8p43AjmVNKkEURAUIiCRYN
UY+rAWCiw7T01x36mhz0q/GKpAZp142bDjVyRoSxQa2J7ntqY5M72rHUkNwUkBBWMYPUZxuQ
YccbzNw6GmBV9HPaeb12CHsaUTS6moqkocB9hzkyRAUrIS8xr0ewfmswMwWyc0s0QzD3YM7I
mhVzIxpqXXRkau47i7HO8ZOIileuxmCdW9GgyUSOIjESSMS+yS+4qibayYBih6b8WUQwrADv
A4Z7Rac65x63BrZx2MeYPVn2capVVVVJjlytnCipiE6uA9TVF0GNUwwDmO6xXvkTCGGDQLqS
rQkKlNNKTPSOmtbV2TfYqZnOD7oePjUoVkxGQUikgoHrMleGGjOKpgZyO1y0ywpJFd5L3jqP
b4U7LtbrsPaPd5OTRKw4XV4upRxRXwfyvMcsj7QskPqflDClcExkK0DiqYoiKQKECk0GlaaF
0jlOwoHqPkfD24P3Lwjz3bp21/fx8/p0tTQPsdN2dnXs+btAD6IU8cgmJEVxKBAQARUAgFNI
BRScfH9/A+zv4t6zx1Prjf1+/H6+yu76a6+ZsuwEhCEhJCYSQIbkx6jKbfAwLSv9/92FQyC+
Tv5dB+OCmlT2ZCfogAUsGAQ/+j+48TvIhZp2cKNth3gC+8gH+9/wLA8hHvT7p2GUIgMBpodX
+Xt/k+fs/7fjv48VczA6tiz9v9vm4X5XQYj/+/77Jz6KT6XKf9Gd+Ovlv8ZJ6TctZFCtv+yz
/nz0uWaTGmDW2XPsDF2f4BdhHaeTD7UPUQGJkMEi/RHwlTMq0GpIp/NK6EgGZxkUJIskCoT+
RPOgeucO2fd/j3us8GBq6mTFxgn+I+QY+PHJc0qyccbSZQwhsPBcRcKcZ/XmNA0JfvQpLo2j
Tl5rQIUuOROG5VYaR4MMiXDAtcLJUxcAwWoD45B/2am/IcdxkvEhy8eS+X/N+7RAXSVYJ3pf
q24/lD5gw8hgwqvg0R2Sr4Q+aQ1ZDwSIe8AYfrkXMRAhExPj+ljn68mgKCiIESlGYAZZUSEJ
Yk5IMyu6R+kO7DzjH2Wgx5yP+bpwYyb7ehBC+dXoCJPXphCs0ckXCHh/2RBDHI80CeLp3eKE
ITSlgTPxKjMFvFhyFFU8q2JpJrh51UMdjsTfr2f779INKT/wzrc1vVdBPifojnOc8odmmxk5
xKKkDpCC4hskNkyH+J2L7LqDBO9DCQ4FFpT243Y3RCv6NWo04NzO+cz1byTLlitd7CrpY1kR
td/2u/54ioUL+3vxMHXynp336TeWR+TKFzl711zU0uZroaMSefmkkhCEIRKpulpHIxL8dxMo
RZojQIVjZQ0w1It0Y3YvApfCGG81nTIu2rKK33u6jqnEXpkkmSksaw0qa4NG+2w3kVbblvOM
dQLL7Le9os5594yexZpzJNxwcitr3HwzyIcc55igtn23VunBZiM3d0Zo4v+zzNIOi26liZYX
3614TZK00P0+DNlb/serJSRVKuam9n6dKnjCbTESp4iHJI6XmrVUIB3OMJunZvxXOoHGhD6j
mc0hb7KOaqXO/rpn9O3OV7bzQy+fVVZ/j/IT2OOMbaJRg7KJviS1yUb7WK0GK55RrniRljba
r9106XncmqsBMleihsFevlYc0w2eypVKlaMZxQKxG5R0nfHf+P5bf9Zjad9rQUVdjDfyKQE0
0QMb5OuXIW6jFZDxklmi/m/TPkVLlD7GL3fyRlFHMbH0R9JZKJXh7dKw6hl3YZTekEnhjwaB
ppK/GfgxF4CEURiuPjwUKRZTKlkpwhkP/hKvjpMmXGgSjSU71AnSc9dU8+vjdE/ZWBDBk25R
Qh93TTojooJoLHma4bPHNwjPYmPVU6ZS3sb5JX3PSmsMIUwk8ChWKKKRxPX7MYMbVMwOphA1
6nEgbuMFQ1vEJt2wVhEXrRAbKJhYLphvExuRsIeg7ApiePdwlsbY1rJruMfKPePBKUMqjwkp
k9ie6HKDHSN/q8aFadQOg9lYlPwi4cPdNXn253v1t+PjOTHErfwslzSgyUCWmC7VALxxtmjI
l6dZb87oWcEnNNp8X5tfB3+Z2dEq35DklHEL+8HR17GXOGJRxvUSCUFqL9/C2UHTepP7wPWf
DtXuclb+3Ti5n1gu2jScNqNyYlQaEqK9rJQVjHVFqMgIDyOHhLX4MaJjKAQT7b7+ZXhh9Wxa
SSIYo1mLqjh+yHjMG4O3DSIWE1GvmRb+BMXzWYmQFTtchozrzTLSZutc6skEyQ5MraW+PYCC
CEFEJFEDWUJQqgQ4GaQkRm32B3bQsg4aV043s8CTsKwt8KCPiuwq7WPJ2PKbsDWuSzL73gpQ
aTPYsCfA+YfvQ1sb93K99SgwajhidATRxm/ujoVKh58GiHDZnxQeZxzBS1OY51iT6CjC56Rp
DvysvKCov2cxJ5vPgfkYG/zSdzygzyvZHZY5cNXrJnzFuQeNXkZyjBtFY9B6CEjJYPwzwzwq
4s63pJao+u1bv2v3veeG873QhLetgwjB+GG6eQ89knRs84G68l1sdt+WN71LErR5Pf3na+Rb
9GN526vpjnTsxdJzp2l0vpJtsb1x1n4X3vbjfo47KadKfr0Gr7fSopAlhenWZG3fiHbpzjbI
4grV9/fDDF812CSp8DVHaienniaMlOZ6VcmdZz0Tp4dDvBhYi1BpV3Q4V1HEYKhGycNjESMG
uiHJLfLajWI8uvMycZ3SJckiUNxoBREXjOAUs4FiMV0e1Xy+IJWdSKM2cvb1s44cbsMcHE2y
jg7YYa0U9Jk9HIqBDTO6PExpRqPpPhpfOX489N4Nr86Krm0ttqL9L2rN/fcykjxs9U9q9vTl
Lzy843nUc4ZU6LxWZ46Np4vzVqF5D42pjJuyJ4zWGKtXy+KUpZ1wjFQWDtUfN7WSdsNssWYg
IvpxplHPF6Xck5GVs7o+abaEi8wNFbRKjFlKsIdbPAWOylPScc8OXO5uektr7lldArO990I8
qlY5J4QpSvCzqcv6+blZ2IBflCx1nBSwlChlKCtlGV70OzhSlJln5r6tXJvunfi8p3EM60iu
VXKT7HnytOBPaF96etODwp5jzE6XSVGjufG04cnpz2sTouE72jlbYvYc7MS8Di5PDakiYhPo
wNkRhEcdo36UOYeJIi1MM2ySFyyZUQmZATBTKlRwJpyvJOECqGLruJKG7C94KMSCnw7e3Gqc
zu67PHaV8aiIOs68WKGIXx69s5saxDzKJ8KTdCH87eWrueK9pW56TOMZnXpZ03rE3etdpyru
+Np61XWpW7OQ1tO/361So9Z3lzmzrz0/Xkx0BnljW+0q27w3qZJ6ye5oUT7bruXKxv0tvpjN
zcXY0xiSUMa5EFju8+mnituW5PjNpTeqkr8GZrrzTl+tk9OX7c5muM9d9VibnrqZHC2dF11f
PQyjw9MuuJC923xXF5OFA3eJeO0eWwX0XjfhtnLxeqnypqnvgzqOvoo0LroWbFm1jGQZPcUx
YaYs+5qCWFbb3gjaNSC38elTkXBjeV0tPC26TgUFeUuTpvVBFbfd0S7NCUCARYJoPBG45t2w
JI2wc4ayybt2kR44OcLVxVn33Cqonft0XNF8RdnrZB+IEI3Dq4a3Z+k4fnzpqB/YoJf/4mxL
dhqJGNADIiKJG7rBa4UnEowOIEks09+tIzvCcDxEONuVyEhNbQMAhCsgGn0x2s76KdmNOHse
DS7l7LNRiZtSNjn7GZ2CU9zN5nLK9edQSWXzuV0Nb3oMe3z6yxcnYcaIdbIe7M4HSMxWQ0Os
2bnfYnBr2a8UnqTAGTy922ZjMJrk+HwWyaBmH3J4J+D0kOM2Qbg8oJJJIRL4v2z20sNQRq5q
ivFh+3j3MXnFhmxMSwkmRj0SewXMmMcCJFm+n7LYeaU/GwbBRNdl0wLNIjGUbxyjCEi5EWZk
d6noU3cpVC61h3NQUad2/DGUxvkEMwSgmYTCe/HPMkTBdQmCZSIRLD5VsiPdjPXfCDex24RT
MtCQELSFLMhIfvwGQpGgSIKESgqqSvUmakmKooQiiWkiGIlkGT/Xxm++qRnwqGzjrPLTg5kP
wQ0bGBaSmCPenB0h6uwj/cQn7ef8Pv2GXQByQiTmMiURCVQUTA0BMNBSDExKhAEpShQaDI0R
BF80hjiIk4j6C7cfrkXi3cNLn9bCUYXCkaWbLukHva68Zmdkky/7B9/WVF9F8Y+Av2XAL3/f
AOmtoDfyfXdzrnSoUwpCkk9CXdFeuhaGZcsHJgTZDiHMPnkfil8Wv2GMbtF3ox3aY77CdANu
ekQ69kQP2oikm/qcdgSDuXhyyn/W5rMfFWPWYCOMYMd6V2344+1PmmBNEhj8dLmF8z4V8F4z
hg/skNsqznTLnGcCGcF392FXQD2yYk/POmCICgQ+sLiU8hAiaSWGmYIkoDpjvigzKkEIzKUD
FQUR+rGIqK/oybb+DgGLuMFTX5Y1UTzW0VEMRSEQUSUUV862T8IMV+tCMT/d7BrUNMUBUXmF
wn1pse2LYggoj6YyhS1MkwVRDEUPm5AP2wB7BIniTBI4ZTye2TkXyzmCJgq3w4kpqKCQpLkz
5+Yi8prsutvpdiUebNp76xJaIfbpmH+me1zP4tSHUwc/i/rS89MJ4jFMHTCQK4kDnAMLxwmN
FjRNvNovjQiWhtOC3FyuAMKYO69mi8Dzevxjk0KFDqQuxhzi4Jm3/Dz3EndqrijsusxhF1fL
hua5XXjVyRZNV/Bz3d2Eyd7zyR5eAXybCtqeuTEBNZpj56BRvNHcq3WyeakwwuA4wBVenwlA
NXcGSZuELyQHAIjrMuoaPOTkMYxLyFFEsxDRDM958WP8Q2deQKErbixgaqCBZD0oSHtziTx4
jFBigKIIk+diKoIoK+Dck5AU0QQ16nKg2lFV2ocfk7ViiowWCKjNK0UUFKfmjRfZlTQ0RUsU
FS0zATBTFFVJRTRT2wYhaSmmihoiWCGiqSYkqf3tvnGJfnJo5aKYqKKoGuQYoJ7sxG+7aD80
H1vEFUklWxomCQL640UzBJK/BjBEvtsR47EA1ENKUlFRMRSFDQ0/ONIUBSJT9I01RE0X9val
Glo9oTRSUiTF9xkwMJySvQys9lWjKK8xtTyShT1CbXKSMURJEUyRRSkRsZlYkpmHRWKiJKWl
H3g/CeUVdjBVSFMxFSkpKtCDMxNJTBAV8oNEVIkNMlAlBRb1x/GOzNQFAUNKFKxedmEHggtE
h7tiDfntijLf6Ms/wHL0vayNKJiCL49VBLJwGI4QCuOjvSaGZp6bbxYU3TnDb3fj0lSbY6yy
Z+leKZ0R/It+/tzwSNHfXN8UaOMVhpy57NvZrXYlCUPH3uGs6PUmfhJdcUGUw4hshiW8GX+z
ExZSs97SDd5W54MJRf0rrRQROZDZRx6Lpv43OtpiOUQRzxUkaWT6aLKgpGv0jiI5ExaUZFiO
7D8KZ3vXXiT0NJgfbna3j18NqrIpp+anrSy54Aeue4GDCCmZoLmCbp1kdPaBRrwuqEzxZmcH
TGxQuOz2/PWYc1OgHMreGIdVzIYJiByPKIdqHO6kSn4unFMSm/jwhsjML5Z3SCZuKVcDofxS
8bB6hNDZB1tK3wphZL7qLFLoCYFOzg1LOKUzON+d7jq6MlBhjgBJBSYl6FkzHLBkHQZGEQBI
WDgEIywk4A0PzgcXD85nlECSUXJxFEcWmEOPo2WzsCN0ockqmICIfyn6sGb7BChLwVIfjdGx
uJwjTESiz9yE0RQ/llA9qJH13RvfgJwgAi7GlOlp9zzvMdnq9y8lCnsugU+G+YGySZBZCB0a
yD69sa+pgzbSQ1bA1kHNQqUGkLdHoOoxHt1QOKB+ErxEIZYBN8pvJ5IMRrLiSl9fV95ldGEU
lwCwnPwsJyPux47TlusKoWvDj8t3a5gxeUZgTDHIvt4zC0nGEIlJPE9QvL3/GMV83b/xfu0s
9M6ys6uyHm6ztoWWrzTpVBsvU9HXzPGIPNuICTv8IG3f8YHx9NP7ivZ2dnzfJ8LvhhOMb5R5
fJVuEYQVNlScYEckQlq9fSYW3yu8TSPv1wvMTi1ybYIhSMMeRcYmuRnPa83Q3y8mrmZ7S1Wt
rqb4wm9MoCysX4CfujhhDfhx+mvCG1x2cOSbjqOS8JeV9cZZ74Qh4+fy8oU6dv0r7P8Nu79P
bwNwhLhMZLcHgRGyjSVDhGt0aVIHlpdzStKECMSl9t3V12j5eko/b3YXYeJZ1hGGAx8sZS7n
PUeD5Lass/kukYMmbvV9iPntD1zwFCCvyyuv8/nyrFVpa0q23HlOdfaJXer0KWF9qQgry7Gd
spXbs7q1rfTOt+WeeeWWWeWWVssssspZZZZZZK58YxzxnjlPOsMVS+D182cs71nhbOej5qF+
UaX32snuvnXaWEtKYYwrplat+t8tbaZ5FdMr4X30vrWMo3ZRlfAwM8s1XO+ueOed+ds7p3XX
4wfCAr7ZZYY1w34anHDWfACqOJTXdTWVp4RrTDj3VxzldnTo57Wkxg5WBtB2LndmM9pzmvs5
7q0Wz8/k69k38INsR50uyj/D8K4HXv7fadbrzt8Yv081nac5SzOK1b1eNbbYztrK3fz+Xfrd
6zW63y3fF4ezh6Es8PSegbL14ewZo1xGidhdN3Lvjug3tj6fAZxllzNJStddhDn2KG8uea9U
M/hOelZD1f0fd/f8qc/v/93mdp0u9OPAn3d3E8B+u7Chu9K+Mo/L299e+vpj6r52Jerxtct1
1dscd4Z4xgeiWNJ41sXlDxXtyxjG1cc+spseJ1XT1DLJmcgGscQtRXATNzCgGOCINAw5muZG
rv+FtjdcxKkkoS2E7dyKKhB3oFq5ilurvjP5vn1qGzHr2/zgX4v4X+bDYkR9vL59dhTfhVuA
uq5s1GEIEYge/JnbRHM6Am4c8DhelvXcQ8pzOvdr6IcVtf28pOhOHBiMdtAxN9hYJKlL9yhZ
yJ8xhx3UrbnXddAiwOBK8zP5CJ2IlcpT6N4ywv4PPQ4HQqOTGkXNYvK3jH6mWpNspqmPJ+18
WJcmTg2OdzRtdK6yunYXCl5BugqsjrljWLNVSwpiV32yqOg78YndOGXAVtCNzWDcjWINdaMK
Mo07HFd78e+8xsLc1ERfdI4J7Owxo6MZyQofG88q9JM6LEh3iPTCEg/KZDNEIs4S7hRAjwDd
whxa5r3SDQOEN25J2yPUIuINdbto7ZdwOz9HRk5c6UIxwg4bYWww3pdjahyi0WEhGmOBGNbt
nvc3axZbtsaDduLXGYkipvYMNBugSC8aGbJCcZ31w4JK+Tj0gaM2OAzUoRJ0SUxqgzBjBv1O
ZUvuWIReCXOYXnCGB8SRKYYxdC8uyhGyDEfPB6xJXbY3GfC2IkJnO07xtaBjgbbxS53BqJjH
djeamxu3SEmACtC5ZqiZm6KohrgldpuYBiIdAvntOXOmbLXKSr66uDGE8/OMNE5nnr24MZe3
0YzvVJ2urDRCd8cCbMmxsNF4okOymgkL9XAq2p2ywt0J9iLlJD4vyvYEO7QVCjnnLnnwOF6t
kflxOtZ0RMg/VQTuZDsbzGuq7EHfCtJPDPr0xv7LI3SXbtGUzfMTLpEnQSx/MEjt7AlAC9QB
NAUyaE17it17ydtp4xzFnuJx6YU1HDi3OiM8BkOxYp7NeffXTIcurt9Z+1nyEOqRuTuuTX9m
fi97+hqE+2NRVNERRUbJigv81sPr2ZMCgQixQwREO5iMKYOXwB4mt8BsjgshjEEx741JsTnE
TUoVZMmeMw0s5WdN3oGwOu8lw0yW6oZjLO+BpPh5end56aqhsqSpUzwoYjXEMcfiZhfOosKE
FDnJM26ypN4XVAG7oBaGWBpuzjgybIxRGujNg2aLJB/i3jMQxLeM5CxQHhBmPGubM/mGb806
nzM2F/ef5gxMY8GaAGrHTpmH+zzvM7dBEKutvuJM+uEM3wyMDqm+s3gMDWTsMhkNqPb57+/2
Z5xo7rc/BD+V1UVilO81msN6/rNmB1jPtV/TDm/mt/Cbrv3Fx1L23yyrh7rArlnbLzhzmZyq
thaBKpk79pHmqIliFRJPTF60bTiBbZdod+JaRZO2k7uQPeahQhRpmxlMjqyubsBuVm4cUWEs
nhsAhucAooQUq311NSEq8TC1rkG9gbEw1GiIGKHmQnNI44q2EZ1UQEqK5JLtJg0xuIaDiuTs
gIxd0xweiFEKdA9H05HkFgZ4Pfzq22kap4hgh9siyaBNCSE/hXAnOsKj1EuxR2kCQsgzK7RU
ZU40keEHxKIHIobjwPAQT8en+TTD/HDOaPxYGCfYIJlmiqqrZ8FQVxqftN48UG28kRfhjK0L
EVQxFFJCgcMUMEkoQYsxbc0SKvfb/yrdR9Na+v5rDC9CYg3ui4NAg64po45+qmmk1CeuU4EZ
ZPRsRrcqJSlFDo885vWJq93x9i9vr5fHk6LXLOlMiUFKKRhdrw+qz05mIxntTKROjfUpEqC0
QKKYGGViOheqkiMp/N7+HEgJwN/JinIkuefymbuJtxLmSruS24Ags7InDtOZrctut2fIDw5z
8jm6T9BAENYTzzuk7CPoPODEQbGInbGyYi1NVkxYtLJM6zB/Z/s98EPQ8MazBhnRsSucybYM
vxAexztwD93B5I0KhOcHqg+iBfXxYAHQiIUpKaAiKD/o8+yAFK1StScQF7JQFNIIxNAoTCJM
gkyfYBDn7cnzl30yHygoGhoaSmqpTurpZTHv5junHJwGyJiqZAPkRIeOnx6ibAzS5gM7Qikk
kfruzx8viqFP5M8L39Y1b70nHd2HdJwsU3947CTa7jyfIkQelyfTjnLfx7n/CUlkXWvzqoeN
dvQoePo8vRcZ53X4XbdmtAHVusTv2Gcdg4+jK5NqRrIZPgOByQj4w2m02Hf29ZlXiIRFBQNH
xf2m5G4XjiKgBAg5IK26EdWUC/vKBsfsfUvmOXjw7b+ud0/fDwUZEZBcu78ifhnfsxo+nOfT
jGm5V/FZClfDi0TXfbaRIp1Taj5FOab+Pxuqttf2YKRDF1ZeXQP7MeNmHcqmbEuUHxUBbHEe
/ZyL4fCHEH/SIQqeMVR+d1QnW/Fla+dkER9VB9PxxBGivCNlH7/uOLBGe+p2UWIwCu/PA69Z
162j8Lsk1047jSDANWEEjhjllzy9aqVkD8vYND6brkkmRoxQzdhGbNdGJGB/P5y6jdUB6rt/
lOXXAyVN+PRdK+utML4dPIhDt85Tv9uHtvOmJlVYY3685WFQsx5uHA6kIji4WZvPxmsIgh5E
Pfy57r9tVRdJZ9o39olA493Zt+iDGHGIX2O5iLupPa7v8JWCqZTmYmZ29ru3lTLBuZUKPKd+
O4eChJYDxxpaEjWpyfU+kkZ8LhhgH8yPFXIPdtMWmM593ptVTrCEJeamlvMlDKnDx28/lfnv
ppbCGGdJTZhINlA77QgU9cBiiKKc3Y9kUiHVOJD8N5gyjOczRswu7kJma/jZVe8zKYm4b8fd
ykISQlwHc9c7+CipOemL68TjdmL+cpemVZ77uksZKOWHRPr059LGBphfbKE2JLpq7kIEPIf1
FIL599TWRttv0FMpNNtuppVWJmYXhLpJJJJRwlHG3RyJzvlHPn9Nve9LRnB6dLdCGMulJx8P
b3+H8eus8+c74iHjn0Y28DmeszIm5mZG3lTLXoXEBoebSI043FaY3c1JpnpY6Qrx6QGJq+NZ
8ovuisDPhy48pY41d9mZ9yggWDtiYu5+RmkGU6TjcVeUTaENdsIqb4Srtk61unga66bRljjc
hxWftUCI/Ae24MpVcXnaB7pcLp7uFAaoaDszfyAgaFHxp46tlxUsI8d/Ddx0vO7LPDxxxDhN
4kDmeI8WUp0fqAy6sy14ANxDu9Z/3a057NjGBCETthC7tlGEZ9i0NuzTr17OzHnvzPokbxuB
N5JzgMDjAx9ZYVR13YzK5gxowa0DVVim1QUNOqdbQZItOsazREG0laP4+d69jQbMRtsotdLZ
TM1saxssDQzH6OEAz9CB/UUFQWeP2d5goIkDWFKk8y7sf0UEJo/ghOf83SrCDMfL2/4cE7Az
XrSU3UaHIBDWT3HtNNKff/k00OUKUfOSoU7LqxP0uwyr/LZ6044gs6+DA2np83nSyCk4bGnP
bu4VlfLVVXoeg2UUIjM81E1K/YvEy9O4U9Y2ntzzHnaWKW+G2A5e44GpYqe3kMIhzi2NoW1q
+pwpxdN5688ng9jCqknryymO5Tnl5tdE4VQ8Iec9XmTNlsYLdMtCUGZtBMQgQZY1llCtGJIA
nTX2Kq8pKIrx7Ln+q49+OPF3d9nRMaQskoRh7LQP0zl54HdC+qoeP7d1bVmxbR/Th1/89ZFv
S7TQVoLVND88YyrPWWEa4a+/4NB+15eWDOMWQCZDj98121rHgf1PzvZBiLLkGU92pwfsxITJ
B9jPczRD9iHq9NQntQqqnrTxzwlkTro11qT2pOCfKq8hJpdZSO93AKTimVZzK4/Tp6vP6dji
im65QwFuD0uTQfPk5B9mgOocHYzuHIrdaGEX/CoTrJkmogm6Th+Pe+MmkQHTbimhufP1TB6D
68VuhhWlNEPznDnpAZO4YJ1kvTwahOLREhklMyxEVjT83pco/mbvNbwT27Q4h8vacY5XeMfJ
JSKiIYrHc/158/OsGmsuCCi9mm4pNIryZHz7uJQcqVBJviYg7alSTtPOTsDwQ8c2LRmJYo0N
Og0FB9Y+f3Z+k+IfN525sGjUlRMlBbYhprsaKKqJ/Ak0XfucceEaUqqGp66u5Cms1XTHS67T
jYcVZDD80oY0Uk0HNoaLxYKIvlBpiftg0R9mffhjloczipMSTB8RyoAWKCkGCv1n49YxCnka
GTpSizdNZr1TlQql2ho8Qrxr7PzvpftzRGVBsHesfokrBSUDNnsZ7EJhTsrdljOtChlyd7Um
OqpbD6E6CIHVtYM83k3hKedd1kp8GHX0OPPSGYskRKYFe6qQO54PrZhAnn8KnbgKArjUPBnD
fQvwe1t7O3OcftoqZGc2GqRRZH5IehlwZ2lUqgz0NGyUiK61QNF+XGH9NgpL7fPK4ENRXZ0E
oUh4NT0DTllTVqCk707mcPXXW6KqqBtHnjlvv58d6UsEMs0+I+tfLvIg7kGcocR8E0ur3l8I
ctm6N5aFLTcdU1hG5N0inNAyjBlfZwy4QyvaRzqUaceWcJ0oaYPCrMGUno7NL72TxZe0K9vE
7fHOedB0ZJaRRgMQhd18e7KUdZqav2kglJ5Zjv3Undd+JnlGZ3hypYNQ/RpEV6xA6q5Wco71
12bQ929KHBPo9U4RTaA69mjyZdtC7dOuzRu9enjSpfbWxOzOdvDt7ezGwdSLIWwKSTZC4zqR
Y7TRNpKFc3mdVvtN5ayILFSxMYDm97LV3Xp9cM4ucPRd25vk90Nd+XubjhJw0JjYNQ4GJAkk
QUTDeM8muQGIlJpWlxRFBEK00UlJe1qAaiCiYoQiRKBTunBTCtTUTEVEBEVQElKU03izjITI
RUwko/JHiomEHbseW5N35LjvctTlFIXd1zOCfC7Osb1bo5aFfTlGWAhrHd0fu7JGivQAHSM4
90Eq33nSxS7XSVj+QtkT9k8/4Pu1n56fDpyE65LjpXp1ofbzu28gCVx4PFMoD7sYd2L+iYcY
dIf7Yc4YKGDezQcJ9nEg0UxciBvVbokhSjugxwwqBXncatQfrfBJJlOPnsP6OtsrSVlFNcrd
2sPOtUY6Pje8kwYCAZKCaM8MzJ59CiLqb+k8YzuhO6RG4tDxyxoUxm9jJQ34vlwhU9KZM3K+
AQo9zu0b4bsZbIPFPMTnOzpHePwD45HGohYlRxkzNBGqqRiQ2jTVgiQWdXzhnCQhJu+1uMRp
YOapjFRWCN+1oCQ3o9cbhy6uNmHvT0U1OWtKcRtEkZwYb5L9Jr0vt6tiG/dD18ceL05nFsOS
S03XBo3zqgtthMKK4KCEi7d06SuxStdrLSHKGA22jwu0uI3pv8VK902+zb2vnlIy3zdEcr+K
O2jyfWivn34UP339DMEXu/ZVwn4PcuPR/S7lyAdDNss0NFmjwui0Yjl/DjgxNH+XxrBigtk4
r4cdMzOmLtZFgfZ8q9/bQZEdvNOchYphluoz13ZFBUfs6w4QTjHCXhBsvVnANRDHBYiDNDM2
wgrs604UiBhCXZ1gYLtoYkOOWpt117LcVxIj3GTOxBMEEjzYl1JHoxcqopjDrxq1JM/bDHTJ
6ORpyZ4KCO52N0nPzMDdBMhIGoIGVguklWWerdvzqA6yDCB2PnpiQsDt8O7abmXuBlB2tCBT
JQCJEZDkeoiX58TqFMviXO/k8p/Nv6vAfTrn9udF+mU0I/ZYgiaQoQ7tmcFFQcAwSIajWRIJ
BP55AO8yYt24/XFzvetVrMkR78lB2zvOdznI0sdtM/3297j/rtvxdKuS222qLCA+25wED/aI
OVIYhQoV1wkE06PoSHGB/dlNA0iUV0kWLQmgmIIr0SY2Awk+IDhKva7JliK6HjhTHx3yW626
c4MzOiBzmU8GMOgyRBjCpgkDwW5mxYdsuxdA+fU73PZ4njJrR9D9gff/An36zttu3M3ZdXdl
S22NqnVFSkkxtxANttt34imaGOH/frpznOHc5czNanapmZxdSkn9ll5xoN3g0/aaiIjFc6cz
2HwDM0WYMGDTwakPBR06stHXEOYYxRL/FyT8/5YL+5tf3RMQPQHjJsokmIHw/WSAcIGPLtGK
eSkK/LKKft91S4u8Y/GfojvFfDK2E8OS8GoNE1ZHboRRGAmCYSzIZezropao7svok/70NH0L
GqxTbo333WQzE0ZQguTHc6BmP4vZ+mDMARGA6/AxTdf5cQ4Euu+xKFpQf505mENALy7HuxMI
XyuKA3a4J2FGHq7NU7snL+B4+cUwdxc+mdPwZsNyxGDVsWpCDNBmaYsvH087J0zDynMHMWkZ
IIR8OABlqCVrglgmhJkDw09f4eXZrCGsgFh1SRRMqPyR8sI/s7oP7D+D6wEdvF/yi4/8H+BG
70nL/Jj9ao8CCXBOmijxCPXQPKHT2YYRAkBv4KCW1sbfchCQpzlgl3jPHJ5JQP9+V+o+B7VN
AjVSKoPUCetpxVLArhmH9hAqeUXvHsH2jMkHEV+Cv5Qi+fr2/8PHDLOqQoyY3n8dxiYKrzjj
ibLzhjnAeWQKy3QI+j8jlB+S6GX7vALBihmj/qhZcE5oHNzMSE/0CAlwC3Gai9oROx4EunC8
luqbfz/qD+erMIuOF1cmLnZx/07E/WlIeB0FYETGMXmAInfu70HeG+G9u7zk+/qz/sOtzDWQ
RcRIvFodGkzeLX/XX4SOO70+n0SNxmWyDO6EeGrMDVQhkkEJOeSizdaB5kZgiuH3UB2dVNKq
qgUzWvPtzZ1R4IPuDjGPfEF8jZTvg9H1hCrjou1Gq3iLcSD8YxeARpncT8WP4uXuIf3t/I0f
6/UYsMMYdjsww38DdyKcNXo/XjKXw+Ivl+fvXGF0YBz0xaFXdvBMkhC1BmGzzuGn3LqqeoXq
uj3XtxuS8eN7EPK/XkX2VsII5RPG5xsZp7hUjO0w4crtXICmnLgFTtPWT7ubQNrXeYwYxSS4
wmObAun9/Z27DVVNkhJC/8/iz773kcfWakEhJCU3j2rmknWGXzLpu5HHS99lx4SCGHczbCVW
TQZxkmQNILB8WF8A7bIzHLd0bXaDy4kR6O+rwxOxAzUVkJO7rrTg+OdPNnReO+euFJXXTuuu
Svvlfec6uJaCbXXS3X+0Zj0ScGdADKXzN9gSG9xQZno19Pje0uwy3akGIL83CPX5eHOEvOB1
SuLzMut/HpJj4mhFiJNBs9SKWa265m9jff76lCgJWtZRKSvlWcW7GZmYMMdvbbdw8PH0yDjq
JybJ4CxGr5HA0rizUqWerzHeXI5bnP7eITbH8zP5gSSSVNLQnNtxmasYVMTxdWEx93x1XL4r
0ob39/7Nq2y2gB9Dx04qquxNqDa2wYsbmlxG9yDutynHdodnt8b8qtVtIxeBQQ36L+0UYnn5
ma0087bhTGMRvflL8FtJPUtGbyrCeRg+PNn+R2+7OEs4O32wUkSwEkGuui8ht/Ff7/rwYMEE
REBREVUlBEUMkEUX7fs6HQO1EhFEBMoVSUxFEUUTjGKooomPg/5H2vPofTg3cD7jAfDFNyXi
DHcg1F7gTMxQ4xY6VVOz1PTlIZ7NPV0PrGy+SiDadfh0sLvExfhUJGf5V3/Gc2JcNxIoaJQs
VObkiRCgYS91wjCwjK2ztxxe6N8MupmNH7EzgF+9uBCSMFBySRzo5z01gzz+WN7NGz6UMlG6
UQLhXJHUQQxD2rSSE0qYFyXAv0wNwxH+A9E29cfRxhuLyU5ez5WPLdQSIZ+8lAjf7iKiEimi
iaOQ/OZDLBJJIETSlLuOP0+vx82dcVJPvlD9vJv5afCOgVQ1VSiU4EWUJ86KK7P1CQv45qAy
TNFdxUky/L6O/xsdEVVPJiIhn45pd67lTsFu7SFbwAU62gURRq9KwT6WTwxUhoyFMCVaA3n+
T1HtgyIaY0r+k17fh28ZZQkp6U6SpGaztV3+x9pkxh49yifAHrOBzfv1BRj6WPmJ8hHIeo8w
+065jaB2cOCSIkjdOHk3e++DnuAE8F/DW6V6F8pvPyZ3c0Vh/x69/e6X73B6g3Ndshxlukbv
OJX82h/ijy9DD0g7WTBbg5C6f417fR1zsNz+wPx/I+kn8fzfp+n9m8/EpqLosVVUWLEUTWMY
enuF3Ccz+lqqqqStRNikfk4ezWQPNCvxJ8cUMgnyxigbp0wOhDydSphPtwbvnNbldUPfOWqX
sr/h4QmqSbb4I7nz6+K/OcwDb9HAvCV7T8Tp8tpmdbBPIrrx+EhUP2CY7o0MwXaxojgOTEJI
cKlQ8+gjxbwPI00/dOK0GDYMHemN2Mk0uDJ88S96oSanfVlFGJLwk7rCsBz5ygH31+xSlpRV
pZan0jAxwmihkaqqigBiKAD6TviM8mvi2B9Bo+3XPq072Q/N+uh/TU6PmSesal9RQlObOMxA
JhIiqUoKEpEaaiaUiApaCikaQQ6fm7t5no/V9thuj3nmF+rX/I+16VCAR0KT4uc9XJ33UHlM
5Kz5OzbsSA44tFNfAjfqq2PrtI34tpPGsi3M3V+sL9sG0Bm5fQ9vj+HZ4G9pjuF8KEe6R+aD
NFkXu36aPvgzOCN78UT6WQ2zH2uSR0cCgiDE5mRE6zkSIhQKAGFmMUgtsSbbRAJhCEQG3qZ9
eL/b8eqW4ClRvwH+OeYSdtsn5c0kzuzipm2nY2WTCWFbrEHfseLloFpiOvTFvdgqTUL7oOh5
hh8ozPhrpnJVw1PDzbB60/TUHhdPDWFbdYCJipzqF24DkhBNJGhurY7Q0FNmUOoRQNfZAYNw
hi5AksOcPNCL1Ya9stTUpUZSJEta8/p5intBGjreFh/GzFYyoFjOKk0QCbOUyIb0lHvtO4lI
rgI1EHDFQb2fYtwwchEelsTzJcGUPGeD/Nk5ckog7nY9YCuPx/T8MD2fDD4/CIzew9pnW4GY
w3a8HP9W3mm0Rh/NCFGH83PZsI96ehCMFIXuTa6PWX/TeHf9JA+ECitPky8sKMwpVEtGMRH5
GUEjgQ1HU5o3VBju45WEX96zTDh1VuY65AwNhAv3S5XZHxQ/Sfpsk/z8cQhD0/hAO19aInz/
lAc8v7VCviUYEmgXiSoSKMhTR7Kkb7T9U7dj4H9Uq/SY2LPv30QbnGGLS5p/pt4XjdyLlNnS
83yJjzwP7JnwF+JmMw8RlrZkCYvFDsEgGpzL+Mvl4UbprIpM5eguZga9Sfiku6AIHNh0UYWT
dJdVNOPq8S9rr6rKTEdnrjHfkn/f/D+7+n/Z/b8p/ZdhlzBt6ASYZuLDcUhJIR4eLPqvrjJH
OxdejUHnHBVBBCpwTTcxIbCTZZRSCvrHe+eSEApykkEo4LDhQxILyZ/G2/k79uiYTv54iJoq
LBvcSh/bNsR0bxTylEU0sLkiI/BEG36Njmdxmsi+9g3oIRIiD2vARruqXb0hphY00ZxFc4mn
dlvqxrCMIpi6ndCCWZVrsDRWmwGQmkE5PsXo0bi4cZtKi/fGJonGH9dVMTQ5DWVUFjD7ZGtt
zYOu1BEFWRgpT8nwZ4SJTRShJ2ylRDdsAQEnvsAbFUx+2MqsqFJDGSyp/SsEBJstgVPECZEV
REhv8u5JAcSYSKCkoL1A5QmWSAgSA8G1ICUk0H7IrPiQXpy2ifFgaabY0A1Ds6CkBISFJSII
j/AwYc2DhG8YDMU3naaBC8ZVzLRMUoya1P+dskyTzLipomSdgNRIFJQkSMrT9mekoiiRTKiz
3GnaGBA/sCJ0oCMnY/Dy8D1YtAQPXkqdsOKqTrCqiCQYgcnndDgCiB2mKbliYaGNtNKVeduW
bm2oHvyFmVBIjIg8asddqoL5THL+j0kCsUFeNijPGiNqLQucPubV3GByFoOwWxQhMUEzRSlU
qxsvr5Z6UQFKUFMdwnKkqh4SQRQIzyyHxE9yhpCk0jwlKSDtj2sQ0zyyXtssoEQxSHLB4hy0
lQqwwqyQhDRAe+wbYA9gI8k+z3IE0F75LBoXpnJFHrbuHVsmBWAU4oxNcMbCDJG+PVlXikDi
lO1AtEAUPvYff1uMqUJTMVEUQ0ERAJDAtUgU+tnbK+wEdJ5dzoRoVohUYGBLkaQhIJRoQh89
25rzeSAxD7M0iHsdr1r47FSIIoGpVmC33/1soGZFFE7TzUc0+K0BBQRlM4piMYMUQRXLFEQQ
krExSQkEJzezwDSnIx3BroR6gORoNI755HkOlCxjp5zjYxsZnEFBQnFBwtIdbsOvb7vOZT7w
/r830oiXNwn77x634fGrtGn6GruhPot/rOE3IQK4eZ3O7Km6EPHC6YEDzgMzcJOzB7/bT2Th
CFNo0Hl+Rfrnpe+/FVi7unubmN9YmeZ5Eb7G+ScaxIsYuqxt6am+KcBo6xJJu9JmBn9U/TyJ
xJOWljXC6usHD4Y4xeuFf4c+EPNI4rbYON9ODnfA2RXIHId/ho5+g65dmAH2TzOgVMiOAxQA
nyQtIPfSinnt1gPxUB7qVqKBuPuJsNf2MX4XeB3+G+3736AGG+k0g3kA34OfyfxG/hMdvb2O
KB0/ELx7Q50ONOTD8+9qET0encdfFufUP2sdHEGDTi8R1BSww0kZwYOpZex4CvQGBcJCT7jb
IDT94otR8g9Lv+qcyKmZwmaIqtmYg5w1WvZySdVq0P1+kC5j3oWMzmmYs/19tsE+1kkB/Ymx
2WcGsBmBKZ8ztw0aetmSy1FSIdaFiwu6wwdDjVKC9BOgLGY4xJWVYOEgHCSEtB90OdE3SBn8
6S5N2asNbe4cGgPJ66pCL9MCC5N+rfQvuZq3r1g0A/YDsDpocm79oZ/QqoT3D8IaIqKIqaWq
aKopoiKIqqqqqiWgaRJCQJioJahhmCAkXbUA0BUwUjBUDQUI0jEutH6LP1s8NjsukpKopKiY
qqqpxK9EjY7L6ub92wxjoSnTMQlU+YFU25KI7mRAhH9hLNNDRzj6/0flJyYa+GDnp8NDPkwD
hj3ayicznt9EOyHtDStvmSrU53z7+v8m1munbtVKiqQNT9/8TAh+8xJ/NAJ6gzudT6HQ37T3
RNIQFEwVD7ywBQhk1NjhNYX9f13O4Q67uen2zpi0l4KI0Wvuo/y4NZtGzGcK/LSeNerDYnf6
rmbIvl77/dy0YjoZGQ1gTCWIW+d3PKMlmUz1KHkTkth3BnyGfJ2bWi7ixiDp3g5EEw2+92tH
+0KyrYfu/KA7cfIggGNimEmEvqZjsDKMYCDCCZ7RNonT3G97VyzdXx2O4uYvKV/11r80tvQ1
5cT6UZJOQ4B8zAYjQbqzMBI4nBkaEs6Oe2FPcjt3zoJjc7MJM/gvrST08bZ8j95w6DJHfs+e
A4u2aHBokuoDnpMDuHz2mhx8SUlAUPmKQ0VVBzn39kTqmfORx7jRnW4P7zwP4VAcqAIv5M+1
8XBVUK3Th1oIB3Khjl0uQbMuhSZkDr6Jxy3pRAUD7oMziJCEH05dWYoYOOW1r3xB2JPDBxmK
GqYSLIddIRqLRr4b6V+0tULj0eznG5aJwRS4Sb79ckkpe2lD5Nf5fVTf2vRBsaxIEfJHHYYd
o/h1AOzgDjZsaoZL7ExE8/9nzHuWvi4xCHhl1wcdHYo73jPQQl7P7IZxMdjezcC7/wBnQkdr
uKqr/UBKosr+M/logdzARh6xPtO+jBVHK/a3/hJWc4sjA8UhDFzFyakDSdoSwzhnYSyPdQ4W
f4L/cjVqFyzEChImWTrsyeixYbfiv9UuHPhoVerzSjFEqMpBGgSFO90XVH2qPK8MvrgFVJbQ
r1gzbSYk/xHwJ+zHsCfsIkCBpmGwOAiUIWZYhiCCYko3eIl9h4AP0Bnn4yhA82aG0PhEAcoL
JrH8/la+MvsCphcww11Ha0ICI1pjmTmZknQXkPSSZIKeYofHh3iQszDN3jePWBQj0myliO0Z
4Ilo0IozrbaTsIQPoQcPC6dISjfhc5OYkmAOQ3E+nAWcLtGG0R1komDmOLUnC6xmMp4Eqexe
K4o6G0kAcl7hW8BZBX4XvBNRxgXWYEtFARiMRjv1yuhnRhxOHJakNDMMzwKDoIcGeDJxP2rD
bVGxGITxA+J+rfbK9J7Kn80/KVHRYdsm6d8SSHw0x3f2f1Y/X/X8l/x58Ov6ej9vHxcj9PsD
KmT9QccoH2HQgM/fCUByNLpO7C0cj8AhENAAnj9H6+QcwZhhhRlFICfr9YHu88l33XRaVSiH
toUSgSgqgmKp/T6uLlXYnD8PrNAg2QfyQfnyf24sGtD/C06jGl6ZR+IepZS7COUR/Hx6u/XU
o+c2nmcJLCTERhGT4uLXTGONSlEn9qsWBziYQYIfyh9wY1x8+0+RYx+ebI4OjAb3oY7nnVeg
5of+Jg4/n+z7Pu/j/q+Td+55/4PriFh9dYiXE+ACfgB1V6W4Beu4R/UfSQ+c92YSJEHuU9qH
wv5yMQuIvhj0JsOHEgh+uDZsD1Iu7iBJECYhikoQCSVSIZNx+h/X+rqF2juYpIhx9f0cyfpE
jCEuzZm38YmaxQARF3N0RFW/gSYFA8titawMbCZFBcjpxepUdcwa899hVKNlQgNkgLgGSqyn
vMytlapDKjW8my73AzLx7HORxpsrIYeEcEfYDvUOOEhImASYEmXS9jEa/BMIgzemvr5ES859
bM75BpAA4AodQdAoB3eKwi4wbYL91gIxNWFjWptOhNVU2yGCsC6JYN5FAuTPxP3pwT0m/mjy
vZZ5u5/oZ4S96GbxI7B6MiBh35fs6ekR8XKPLtUEMSB5ZIUycCehkF1D+Tb1vnd3VBaXdkDf
+D/jz+f861VVf1l2dU6RFf0BwJ2nWeXZJ+hA8RAKj3siCIEEN+9+5jgqMxdMM7ag1QmAAzME
HQZMI0rQQXIAW2rACpQaeiIAUfOTwsX6nWQNCoImZgnqBshJIS4vx1I/bwA4CG6RVJtYbafr
ZN+A46ZndtfaCGEa8ePT88E8AzbcLs+2J541A6COYXmKZi3XyrwBHoEON97w6O6NTr5dUbA6
zj9SGHkHDA8f1a6YUnIPVw9OPYwcTjo/O/mPuLPPzA/KFImk7tBBaKABy8DzljzPb59jTDVV
TFESSCz75Ogz0nlOseQDB+8opKOVldfjiHNRsMLzppYgMIcw4yR1yOIC6tiQkInxA9MSUEkJ
NMBKUKTM1BLEE0EISSUFSEKwE1RTJBDAMgCXyfJYOxPgnOZiI5cp5RUyUQM8CirksY2yiSSF
BTgJTBzMCgfbeKEgKCMOyHTDENPNBUp6hGeG6g7wSHfwwPmCn9j6bx6Q93FxHLAotCebi7yW
B/1cbqYDBDixHKY+nOFy7iJR4n768H6ieooKiURrwYw0qlAoxAFKBSCpQg4xOENJ8Ch8F+hA
z9AD6L9R+T97CY8Pof936wouvZYs+t6EOH3P1RIUUpe3wogkjDIBRQCPRzqkkTNUrhOmGkGG
KpAKiSJiQCmqRkJYWMiUBYnoCmdndVh4k59KJRPi/Ta5D9A/BLopCtSKfi76x+z4fte9+7+G
/3fw/h/X/Lb7fL6eXeevqM9YKv4CY9mzWjYmEJKqaDRAarPhMnzPfd3co+lr6ZX5iSfp4BPL
lJkOAhEmBudXJmE2UBH5dPL7MiY32BWTA2ImGzunkLdG/H1cxudR5tf9Gu4+rjP0CkSNKARC
BJSEqQTfWb/nunrAelYKJJFKIwFBjSQEwYNhFgETz9Pp5/citeHMH2P5isBtNpuFN0SxEgES
0INDSpQhBAnJxBEiSKUUA/2/1WBQzRNClAlRKUKUlFJSUSpUEsBMBEjEBErSS1BB8ZYFPkIx
AZPPGE3Xg4+Ke4SZ2jofpNjlJMhmneCYRujcbSnjF0XgsPul67LoSnHPimboGsAgxLBoXFBH
obHZmoYBs91y45+U7MdSH++7kSBwPxKBBm4oyFAw3LJ+YJhzy0haQhAxQb8/3DHDk2DnDu6m
K8GPqvkr7H3L7Qo0WZoyTQk4dJQR/QO1SbGHw+PvPh2L48et/u+P9XIzbkgNEzEdZ2Rduaqt
J5l9K5Htoh+cx3bFT9/z5LQkikMlSc5IE54fPtCr+8bKvrwWcU4FCTzWVuyPkDwHrgOGBCiB
EEerMcvot0Rlg7/DxR6mX2EiY5CkmHDHNeMnMSTvULJODsanrwinJt0xyr4vadE0S1DQSUFB
SREEpRDT4sKPyGzyBxDy64RaqdnBSx9NrmCtZx4uUI3F0bFLv/k8vSowi868zDqcjuMb+s2d
vdvAeseXTW66n6Ik9KcLoZyQVAnmWTudDJ3a7AZPs9RQ5jMppQN7GX+aADJIRIvLpA0+JEQ7
PJthNBEDQnTDpAC4kEEOq+5/0Y1HoJ3xBPdRVG9ylRgdd5qc+QDMrmu7P4fq+P8M6cr90Y5x
YIMSZ0RQKhhLMwKo9JA4EJU7A+hh/RP0vwaf+dIfYw9if3tCe0fN1EujG2MILNv4tv8epw0m
L/7cB/w96Hb8Jhio6xfNYsGIMWMc6Te/HnjYJ/lh1U0lSXnaTpG1oKW5Q0ujLkEPgSe6z3yF
V9RVEDsHur75i4kTSa+2fKdfe8W2uifR3q2EQB6xVe50UX6vp0V8pGhEev79BDde+dQyGz7t
Ol6xYzyPVdZHRb/rvjwRGQzG+OlDj90pKFUkHQeArPLQosqg8iinpoFEMjD8WGgjaU61SSNF
BTSUExNTCgP6oUOSh/SmIDBKzL9pBrNtotCfnIV0HTOBKCKiqKCCoVir+C0YCs7PCqaLhjbQ
LTpaBShFEIlDyeFMvJDk4xBWCkLZdKRLUQJRTTV7FqVSomgUgk9EJiQKAShdQhDTSlANV6/T
GRDkKVQviCIVcTQeCCIA17ejnE9Twh5IFCXchkhD2Nq8IYyD5gT7wEuStKUe0LpUT1DovGN3
RGgeI3gkNAOUgOr6MA+zAFUUinwQgdI4QJ62VIkKTtn1tFPLFVRUlBSFQS0DQ0lIRBRQm2GK
ZKWIIiIpKWuQeeGO7A0xFTFBFExAUsEJSss0EwxIRTUTJdlxEpASBbBkg0mhiPM6IqIYKkiY
C5OX70S8XKO6ajGJg8Owu0rFEGPZ67hZgqutK59+uN4yb0bKi3rdSi8OGJ1ZL/zVo6QPvkJ/
F6/Z78FlppzTZh1Mizp7wYawzj05yMEZ9mMQWKzLAHTxY8POGDgOyQYqOP4zCBmSloIkBKBG
bO/Hzzi1SikKaSAdUZJMwkKiJA6gvEIZDcMHAkiQ2DGKsENEVC4hxQSwFEkEpDDFSxOMDkaA
HYYGWExIGkoIYC0kAXkcJjmHFyUExJx0jFEREwUgREDVa4xBEZQkJRNF1D6y9r/3WDJ2Yh1w
7UwdoJtGW04ByaI52JLM9G+hu83zCob98ae47EezsSladY9hyJhTEKFAFCDSjmEUCkYlRnqa
IyQGd3hYE/eYCg1exBKQNdtdNNLKNTsHUZtbiGkMFZBJtW1lrIobUN3c1YCCwLYOkWdXuiXi
QNJbaCIg0oAqC9lBhRJEnDJSAMEKYgwexmjiIw5BtLC9aLFslblBliMmECgi0QXmokCWRoRC
MFBJhlCAlEFgWw48ZzlvDl5xYemF3DGVigPhQKBQKm7RUSoHjpzD8uGd/o8l/1G18NMkgJtY
Em0GkhwmoiE35Pv+/716H+/SnD4+6F6bBI4sQejs8U7NpwjvlqRkBDcNDcCFJfpbtw5/P90J
RdqYoP5xpKIUARfRdZ3+b0lhGu9Uh0Z1NXZNOsEqlVAv12ybfeMdkGLgH9mU36qfKwqKS6bb
gjIsjGJ3mos1LZybus4Id+bykOBwk6U7fsnSzrIrOztA8YcIhwSFlMLKNaLxQLJi2WaDiPZn
3AdPH5JUh1HbVv0w7oNERDBTpLCk+LZA76LENtNtQwT8whM1R90xpBtUE4A2FChQ/EfUAnNy
t+1QccedvzPV8a9m0ECO1bCsSiFIwRSFJ7WgB+qiBIaRCSg7ElcAmHOMwbyXy4O2LxaPeHBZ
C5Mmg/OqXVnf2qbfV1+waoaqqzlR0Ce/eqKEpTgh5JmD4J1l0atbT2TLzqpSyKtBTUSiZNjW
qFzA7CaCTPr9VcJDYn6UOqKCmRGOz6Ja4cnXWVLMHGnoiAj27e52AYZsen3+f7/v7u2ufd+7
HMG3BP6tz7rN9v0/W9Txva9sk1UzFyfVoaPgvqaD3OctXPP22UzUdeT7Zwrn6ucmEOkPeb9n
k5FTKHngD7JBwScvDanEEkkIsGMWG7kECTfsso9wV5Ib9rzuFW3irra7QpnaX5vmL169TOSt
a1DArna52gUwrLimGmphmPvfmnxQ8uHa5iCNDYBhiFUTMk+QvdjnBPeMEKZJ3Lt1CW6YMkBO
c5kWkeo7V/AXHdxJd8gdEyD9i9ue20SY1JOWRmVAwZkzMmkrux3EFLBt/To2gnWs5MBihIR5
7GhFQFIOE4WII0EyHHFCRuZjBgBpohTFSBtsXGKAiyJhtHQnUvSc69iMbkaFg1wysyMFpsbF
TNkrspYZISRui8WpE7HhDSNTqumGa1jRUfOZJitnOOZLnkzk2sSjHSDIYAIYFJhbbEQCwZTG
CpJQ1U53AyY4E53qlKjK/q5rSOq1sha7K+27w8NpNt/WZEp+kylLbbLzup78T9nfpu9/Dhve
73sXg9axOkYj1msu+MFczjmY80hqk6IUw4k4yIBNk2cIQPZkkRAmYFQ49OB5ExAh24kweIIe
BAWIhxgCaiIAxTsDEFWAIujJiMB0h2RiQAx4HEl5tKfFeHr0rUpoUVWN8ISrptq4NU3kZoVm
taLove5IDAqTWQkNb1BnGx31rgE8Te2i/PMq+2ZMXysS7ZwrmN55kSYbPCNNsyV2ZgayKeoR
ttW3SdijiTEun5zvNwjCpB0PLdhVbzl5riEIDGeaR06mKxmOj6XtyYLnXOODfiRiW6jjaJii
hCBSt3DiS5mOsHJdUsdJtRYbvYw2W+UPN0p+uTGkC8NZnrAaSaiMPNuVgtECDCdj3fFZKd1n
aXeDJQXUkxqcyrz22xlatbS3tROJhKVFDIQUY67hZynnr04lE62vdLQshSbUZLC+vffhZ0lm
RzwuyN6OnSpFzD6Midyhlo0WMDZWrztrqlepDDquJcwkQMsZKpPTQXq7xluIrOXDNR2mTBsZ
BTzsKNFKMyQT+r6nTv9X4t3P6tPrV+f4k2mafepBvooY8hPywqmbJmAsTFUxIiJaPhJ4aLRg
yvbMFAJg4IHB+LiIf+kon8HvtrmeeYZVWpkDiUQPyPNVVVVGoDuDbhEcbQ2kNpMGxIYIhoYh
KGAVoJVJK+rH8axE8XshWVONnqn8jac1EoGP7Na8eXo0JCfXVBXCJkhlORQIiMbyiMfbnJEG
DAY+zZ4MBrqQG6II87lKNzdmcoMEgEtKyQkRQLEODXkNetEVzjGPp6DdiC3k77d89uvmrooV
gsG1c3WWGpYxEwKGNNcU4NFnERMaVYCrjekt01GytbiUmkmjDaYhcaGNAjz11xODpbtxHqkg
F66LnVFUX9NizFI4I2I6OeRCwQgNuOY1eiD21ssREdmTBgoIGNj0obNKoC4sOZnJRgcgoXxM
S3DUJQYz14gVgm9ZFVXe0rDrIPGQ5nE69MGelseAE4oiMzkOOj77Qas4ZHKsYyFRLgRIxAxM
SBjiDrlKaxY7tIlscA3sBGBnl/p7fhzAfxOGQCngYQ6iSIR+fmx/OMjybQe0f8zpMF169Vgz
2pi/YOG2qCqMImbTiNKIIrPfqQGnIGjqNnn/0sMysxSJEi0IkEQQJEpbJFD6prrSGLqBcAeI
Vw4YiUMbCZjEx0TJWwJqDBGiDnNyXVEpagmSJKKCls2jOuXMEsHNBB8j8RRnxXmTESgnkNf2
EoyPfZ0N7EULrf0226vucZL9eMQicEwdVM4iY7vFiT0AKI2k5yyFBuxtjIC0pJPl8YdUyC4J
cJvaZ36WUJC0I0MKGZUSom9aA2FrQoPKeZGjPBMARLmcs5va3jbWYr4nXtF3oKZhwohQGRUc
JhEjJul7MzHD+PsaWY3f6PljBbtOQEGA4R5zwOh4yEpJCRZNICRpFo3cXj3dINQVFBBQSYpJ
H8/3yERSQ0lTTGEyGonFjzcQNoquZYhl852L1btF7zf/DnX8b+JmocGakSGUCECkoQ8ZCa+r
WwBj5NCJOujCFpXqGs1RBbYUwsneSjAYDmBZsfEgdshR1GAzNkIgkHtMSXDPkGgB/d8K/xhB
3H0HxeVMSBxB2njAUT+X1Cnpk4uZLp6ffqbPObQF7K4lU1/Q+3ZgSHzQGZcSD5M4kPHGcQMU
ZQoT5SxTg2K4ETKTKZTvNiHOWnQobzm4MJxPAOQm8qpQOpT7u315Eryb3fkNx5QROJUym77A
y7guvCyX6zk/t4HxSRd69m49ShzEXbYVU8ZArpSIDhBcMcQ5OKRo0DhoQJ7GF1clwC6kO1CX
9xZL+ENRO89t38d+84BjDhfMqmQkpBZIAkZRIKV9P90IFKH38fzI9g85Jnee8fEejpVMdkJC
zOH1kIcXUidodySa79+71Dr14wU5Q+ftUfDOJ8w9abNoDIaiBBXXFhq9nzZSI1O0+ggaQgJv
etDM4iGKFRuMmU5jO8VSpSx3U5qJktJyZtwbIODZrfIOadRtTINwQQnAEJ5c0oNN0j8rxMXx
To4RKL5aF/nmQ0214aqoi0M5VFlhNeGuSGZmrdyrsVqrG5wDxJ8fSlVVSNDU/gO/QA9MBJKB
ChCBASSCsikCMoyih0hgwnD1YMnIc8j9YPI9ht2hTMoA7MwN1/8Ri7gHsbuaYQ5SgXWduTTE
gOgLCCIAsqTOJcPoMl26Q7W7CjuquBfA3J7l+XPzniITsLiFICCf0B0iMG2D26p52AmqNPXn
jO0ZNwn0fNwQOg5bConPUiLFKn0ddHz+hOdAygRKBo19M8jkQ0y6UiQhgagjCX6WNyPM0S2J
AdYLUhgQEGU2KFQ13iuCEOEFDQ6S2ClcwJSlDpaQKXSkpQEdhy0Ei0onIRgleQPJHkUOJ0lB
Q42MbKUAGhyEZPJLqnMCSJCSpxCOTdt6lA3Hd2G93gBQyO4R2KAdaFt3EG8RE5pBCBy8t/vw
dGR0DsBhdCVZUgohZTKhexfvcPtDx9aF+QHPKHvSh97KXqdeusL/6DHJgYQQxKlCdYHYR8jE
Nog7BIENJCDc6/Ldydor4X1X9z7jmElCjtMzAOZcA2MidsIjDNQqpKuawQ4k4TAgGKcJpEQY
f6H/sn+uVOSBD3dZxeof9QUTBAQwzKRCSLBDTQqD9EKOJvaeV9SH3+M3SohKfgWw1x4RkADv
/ad1qFH0XLgfsHVFhYpmiSYhE1NooDzpiZh+fX9HyL9J+ny/Fjf+3Bmrk6PnHEfrb11ZtC36
HZ2kaB/abxO/L41DvZSMYTZ+fj8HdsUdSROz+gnd1ZVwwM9QA12RgfHGIMxvzEgM6uVw+afR
IHVD7W+N0GmLf6cx11NQ/pdFItpRZKMxMDUlOChtRCnHeYiqBi+bSNnmT/QCZ3oNuzexL98O
OH9TCiN1CZuHYfoIdJlgl8zg3UTbmYbJnNFN0OZtCEVCP0kR8Lb6ir1P8nz209saGIbGNwrM
GOpUJXtD/3jeIoNCUTWof2JucNixWlqqX+6uMA/gZBWCNSRJQr4bDZTHf8j4mkY2aButHyQ0
oUDQfzno/XbzRP1O7duU8YA8coOIB64BXtID4SbSQB++AH/AYB9BDumj6Q9yYGCGqpSsSTwI
OUl4aCHsjkCNlxljIv9HlyOidvwyZRklUo48FB2t2dLDomUO0bggLIYKJoQsOTYyMBfbY8YT
BndI8hkg8/nPXsp/WHpElKYpqkC85h7Py4MfKuN20XFwCkiIKoSApGOvy4TwVXplyzgmFAQA
lU+58+2DzmTp9VKlvkgs3FMn6ZL5c4I/f+Ioj812iNFNjQEYHComFNROSqQ4zxluHYbAdqSq
n7Bedm1/U2W4qzWxIM/T9HA8v25fZ+2V+nd4YRWa7SCEIRLSJbVMywECUvP14UMkFZsSjUJ/
BT7TJMds/X+YoJGfx1tcZ7ruWX7qOSBsXRDU1WEKnosNpW9kFzEJbRg+VCvjvS3PoiIcyFId
zknELRVUu2p2xpA0Kk1jFZxaFmh+WwUz4mC7kn7kJps1kmShBBjCz39VwoEChQioCDt1fbVz
h/qn96qiOJBr9o4Oq0edDSFuSZlGSfrMCoZ/V+mc3vJ9ogVHm3+Ou173+hHeBI7XdCU5VchF
CAhESyRRFFVVQ1FFQxRLK0BVMFTBVIUhDEIzCkhJClBEWFM1EGzYX2bvrzpSz907xFgzw5bh
k2pTs6uZgwUdEEQYtcA4M3NFE3pT1eupRJziBKFPDDYfwa6a5NjouoAdij9WcwuHUslfQbId
eYL7P12IkMfxNOx7CpIpiKI5RdeUQ8cMjALk7A8FHuOMejiTbognKEJquMNE1LF8PT3OgcDx
6fyxgwYNKaRBjR8kpuQqltsuhRAoITw3+UxP0jPR8Cp2xkw5aSBZGB3d2LBarwZC4fg1qSmS
PHoVdE96LPimN/9OxcRDVmdMQhLn55M3cKo6r3JigcFNSB+9Hv+2XPecgOn4hP3SPmfGK5cp
+IqvJ4kDBsWDYxIUSTEQhMpCVATAQjVCEMKoWGcSIPs+TXRTUl0jUAdq/IqJ+Xj01CTbtVOn
yeXkHDh8efjx+U00/z70TjIpoiQ6RXnAgWkR/pDlVPpEFA3KsgkEqAnK8ND5UINfRscBw2lh
Tp6bGITf8IlSxUaCHHh3esSPuGf3whsER0gC19mDoVZlT4KSC0MUUEAQkEoTzec5eV1HUaRg
iqUpJipkpkUqgmoEpQ+Y603fiIcwInHD/TmIwf6IHjH8f2lH252sUVbRIe8hy47LQVoxVUE0
BVWgxQ0xFU1KClaqhRGUynzkA9R5zvCwPT0PIP1/v5/W7jxpVEsTUfZ7JOmIwH9OfrnJPCJT
o6YMwzmQKIa2ACw3dSuS5T2eHBuKXbSJKfUPtCff7ITwJhwEyjFMkQJjqH0Sef6/gAvEB2H5
ukUwPR82VDPWP/NquHT+fAgfhAR0u42gGi9IFjNagg7u9nD5PfPaOhZnPWw0BhxJk0LoIHo3
1Fd5YiqIqoqIqKqPzB2cZgR+KDar74cB0k5U6LUuBy4fD2cZqcZprt1HrNfsUQLdwEXw7NFC
jkvKSL8JAM4+kzwORChikgEgDBxeoevuxUKIMH47NVMP8OTEUEMjBFW+vO/UfL5sCu6QAfRB
sjU1wg6kojg+qMIaICc+zpwc917XaTawr9HnD25JJObu1E3ENUDJDTEskvMhVnxlBi5jznX5
dp64GhM1RXzj02/vDxRFvUx9JhOR67tnFJ/X/d84/okOQHskg6pHE1FEROisQkTVRROkDLCw
SixEBEkRH74UzL/TAmhCEPujAxChpKN6kXJ9kWbB9owc17bAOkYcB8/KIcJEHuV/i4FCRFKH
5I3MGxraC0sEb9OmmYNpCpOp+iMmnDxOBec6OBCSNV3MiOktlV0yOgKDxslRKUDEKfQgDzHg
p5aY0RYD1GthNIgiTAwplfIpReMeeBgbpYPcOJhImihA8kL8RsnMUj69i24y8SWi0AsSBRkH
xaTwxYBBSeDOgsWDHC3uKkQCYVWVFQSemkGCAyE9edx4tgwPgJKCVJSZmoeRgung7SbmlPGa
CTJAaSs8otSI62GGb0QLAqS8ZripRBEHnJdAFAXt6mlElQUwhWTIRZKCV8gpPBAeZFCjwE3j
BthA9Q+SAoH2gE7AKfL1qk7h3unYzMUIfMFrAxb8eFl01Ds50mgeSAfFFS9iDTB5OT3pkSih
HAmlQ4qBQwEey7fzwi85mJADQ35g9Tt0INEMGqp4vH3L8nRo7uQCmXecPM/IwXkhcQlBTLQf
rtHINDLQczhhqSDVja0UO2YjQU6KImgQaGgs5gkmc7AQMHgfhGIMWJ88h8488n8nsoTHriGp
Iqu/lT88Y6cHbfjJnTA9b8/yrQEtVEUUEUMMB+UVF4njKYmT5QDrBkENEfXgZwmJClH7lMuG
VR+NBYILU91AVynC8vMtGJ1F815aiZ4cJSsUrLbLeaPkLnJxMupY1OR1mPHhk9RnG5xgop43
jKiMBI3Wl2I/ajzTd+m0DbJRFGH5BB2iwKUCrp4Ls8CbG4DA2PWaFB/gjA9Q2fTmwxU+CZP0
VojCbR9vlNiVpsfzsvyobgICODuz0PlZuJ4wOIhjLDwebTnMY7uzk5S9r+L49Q2tiCDUPkZC
YTsiUIbHuqFCEUquk64pIbdxX5esJyA+IP5ju7QKAmK3nEefzh5tDiE58I6REKJESCHEzQUc
v3qPdqe6FPtJxjClVWPeRBEGXxUikStCFASUxNKSEVMcQ9mvYoflWgBOSYiSpoANOIIloKvu
lM1BFsamghoowWSIICkiIjkmWRamqRqZqpqhiFuSDkIXiHaHiDrVQOWFTJ7+Y2r+y9Pwxxfk
6948SnRx9dFNGVBSeMwqK3lv63Kii5cJb0BQZh3xb9m+7tgoubAak2ZpFDMLRh3uAMcF/N4J
YhsamZJAbgVwVQuVQtSaak++t0uQ/nAQMgakhrQEMnHk15D98CqD+jGWxEPprm3bDQ+mijs4
EAqyoTkPNlpkhz8s1JJAUSqICIdl0BPS4QkbWQXUOjhl4KuGUMJSQpEVXm1iihAEw5TW5Ash
j0ZwnS6FBubkFAQQNIEEwTMLQ0sLCEyIkCQIhEEiCS1wxbK7mymrD/DnFdg0x1xG1EbYYjTi
TW2MQxLCbDFHH6JhgmmHDT9DyWdCwEyyNCihA1IyqqklIcsHXQdyTwyZYUyxkcNHJMs9n2xf
g1XlvNdthTiGc6ULOKC2O7y59l1guhDsMltBQWGw4jAJUqIU0FBgELCJc39pDy198h7oJIQs
BLQwkRSegOMtNbd1dvot5v3iCfTKol0J35MPVjx5XTydp9HS8ElOVDHabE+FkDJIb424VPGB
t4iKMREUYnuKHyhGWJzlyuSmSfEIevvB9JEQkJeB2PCYNQx/GWJpmlWSAhGIDMkOIDp7lDJi
qfbaRkrbSDaZOw8uMvk348z7DJkKGqSJJ2wbsobDRdAygW7l3dxBSjScaNkRzL4nYwMxYBmu
vZnJUK13seG8ieabXm5tG1H0RQnpnovl0xqMTA+TaYIx5j6dKeuEuX35NmLfkHsY5i6jq8Yd
weOQJka5wQPd4+gTOiH6D86/pWAF8qawqwSIPUAO5O/jVNRg9yeqjXYdH0eTo6c4rJg0zgU/
Yp0J7fD5RRB82NuCk8T4r38aODO3W3ydy84nYxVPpW7u1fbRXAL7bijGH39x545AjwXf+Pil
DbAYjD7ETEQxEk/l2o8EvQ8L42M9TXOQmM54IpH9C8ehBsUwPDrHzofKkfxHnQglOpT0Ltej
5uuBBhxnWeqdprUqo/OiFFCIiSqRHzCgj2PzbVFQ8Z4JETFUGvYc5r672d2yr2ac54k3ZyYD
EGHeI82odK4DErCkJYYAPMgXzCQDTvMyimoSB+HqmZ7OXA+8Y+XRa+YpmxqEHLJ3YxuYZ9G8
smizEgSECCEFkIIbsCeCbiVd2YYBqyVWpZRexAmECGQIVO58YOJEHg2BwQXVy0IR6NoigHHC
i7u7FZMvH1YJJupgapEZkZviabFk6avgenQbr/Osssu7sqxXd2WWZIjYlR9ktIzCgXLEPnH2
HgnH2BBg6ZMSYZHGJTEaaooojKAGgQaJ0oPw7uX7SQ4iLz5+awedjkAdk+U3afA8UUDVJQEE
LTVTJ4JdJ+M92EpKiDpPcVtaSIcQhrZxjBjR16X8k8Ps+K545b+WbfzDe9cSBwkjDvOOLnE4
oKApOCRkDpAOtSAg3L8oZT1eaI7wHrlNkJpWkGogGqQxCmRkD5h8qQhJmTLZB7VZm7/UdjTM
56HR3IcDyjEjJ3g5eryqHLyqaiQk+LnR16xNA1d3FisSfhokFRk9qUZSiGTFWJks7jJ5zJK6
XzA6TPu0WpohTWvwuGffxlw5JFP4RFvrCHYk44sOB2GMB4RDgJlmzBiB9dSlCx4ndD0kdmxt
jzq8xdshowotAMOqGkQRWts0NBPGqdgJDAQSpyGeVPiwLzmQb3sMKAAXXFxBGkX83n3dVewB
2lKbjPHBB9Kwk+QdMnLnN+873OHBTphOkjMBRUxzSC0qnyPsH14OB4GCd3GI4XMVT69ooJyn
iGZkqpFFDVUkDWMKswyCVvde6qtyVi5ToZr5JRMG453r35vkqB5JFKAoApFaRGCAiaEAoUCJ
gkUoaEQpUKQAg94TpHtLvcxWN7mOYgNhSma1HGNqUKLaW1bWgVDRETd4Z5ta2I3TBuEHqPqU
LLh91H4gn8WPaGQwGZ7M2RhxoecJay+b6iTYJBnYTEhMGMkkm1FIaOpEGqkgCJjS7TMFNOhO
qgToqBmBAxFwItpweGmQWC6rGmOmA0BtrbAyoKVmyuBYZGlRrFmmJCmGam5O40syIlRDWuHA
WYHAWJaffuD0Y6+nv9eBOHsIeMAICNdqbROBVQ0psxhSYiRlVUDTuOSKjPZff31m6YZ/uZPo
x2SfXxlBz54P7OuwkA0hqCdcNiTGAiH7bdN3JCBlEREEEFBiIPbC8jLMcmFAcUwHTWQ6T8sv
Y8kZBNQuPr8Op2GoudcmSzXFoLZIm7tRHiKlWCRD3fJxOW9nh7CYHAP4wC/OQ0IKPdCJ71A7
hDB1mu1Qt+NM9nikOzwsHvYiqCsY8dlPRBiW0q6DdIm+SDEKySfpIUcVKIEwNDEoQkojTBAL
AElQSgFCtAB8EA7UpTuBA6SCFpk7vDVEgYMMhMJJ+TA9eeGWSAM+5l9pYgOCnbAog8eBuWus
4jrlA1usIo2PtIgk+89aAhOE0cOYycy4nYnBMlCCW20NcdiT7NCOc/Kh8b4cB/YaScXyz1AS
i+4c/Zw/BY70BKsfaRK9fAjuIgIh4TxYB7ZEKFChAClTxAaRDI0GyxBQGlQ0RERBRRAUk1JE
AUJEohmpaApGkYgZmpEYhtLSYGUYQkqjxzYhU0pyVQNIOkAFdzIHJJQ5KhoTwFji4xNNRBmN
EqasaIudHFMzA5rdXlmbC4Erm3GymyF5Shxew5WDEOAeQjglKLYeSXDATKhI2yUtjarIaHB+
zhxHDeJuOMUjeVMhA6GCoCEkwMJxA5EixwkMIEvMwxARGAlyCWGLKTlF/K7BREaQxCrZqMHQ
iZCN0eIb584l/CSmHoEFESacgv5AJAE+PJPDBjFk+chR7nTmuqHnHiQ5CuAGJnyul0BunyD+
U3LPNlgKDDKqBRR+3SjOalLTn+2H3AzT9KZup+uqIJqzWHPBSS0zgA2aGta4jGjBhYn5SF7e
xeNc4FTy+t1532Bn58nw8R8q6+3o41DpJ6hycNHQfqkPuAO5kYiZImJSQoez+ZPpjyucJ67x
nCgyPmO8UycsdANyeA8UyOYUwsOVuhuYvLWy2KUrEUKU4YGKEBOJcg8dx4CVlJuYl4GwQ0wf
WuHUDQjZybHX1K/H+S+zvOd6t/51QRf7n7G+4EB+qKRKQKQSiaSIYGfT4AHapi3yKLSKTCgh
QAxMg0B384fj/T92ggiH5TceSFgTG+1hrBmZiAKvQGMNNzcyP3+ZcwglCI1ShSysMEDMRArQ
AUgQQEBB0uhu2DlDLBKQTBQ66tX69DwR111KChIx5UhhoRiEmJs8mMzSbLxl9comizssynp0
HAmkBiVtsUxKG0uiUCEqQonWVUWRBhDPBHfrlPPXvKKyUCd/Q+/yQff+AMKY3eq2fNhQ2kBB
XreBtON6w2CKAhsVSAfavtgEihk0IxJNYDBgO0y6BggaUIKYdai6i/4w+B8iZgjUwJjGMCdL
zA/P5xRULAaa8F6zUtaUUBftCZPubZIcsYIfPaHHkhr5fl9x+SqZMVMOLqXRLSmgQuqgsnwi
cjAKz7eERKQNENENK1qWxNGAsqOrTaBTCJSDCCyqqFQk0IFYiixRIdjWCDxslP7/8kGV8ilP
mqgx7Ry0Pr3pood92u/yeruUIGYgpZmiiGClQlEpKlgDlB6ohn18R2OIxjGErHCONBcxFRqg
sbFTQlFSENAJZyfu2gnhLi/OGMgUlABSH7JV0HgwRjQ0HjDOC/f48Co5ZA6Q85kiYp20Bqra
xK5JkShV88dPKg8kG4qWyBiIgpWSBg2SF1tsOY0U4lECDGFAoEcewzaBjMQqHm1MA+GyB2H6
yTDUiO1HTCYaEMDyMp44Mfo/c9zalW8C2PrUlJExwKjj4E2Dq6R4clJsNgh0pvWCIpq5xDQD
QihJ588QTOETtgh9qFFI91MuRG03+nRERiin1oa+lEZGIkoKKKiGkKRN41QAmB9+wQjFxAtM
94QvD1rB2cMQSa4+4N2BR7/QJzivxpruLn0MbH31E08vnUQ5CWI4/lhQkjUHyAphFDsbtO6U
9BwPMPQ8ww0KVBQEpfkHoq4HJpqEHWkhRgohRBYgFpCkA+Py6GOymK+VAoh7oU1oIiJZUSgP
2DYMO6XTYoYBYCDRLkPzZs8KoqInooCSnJAx0Mz7AR5OfQmaJsMkcS49XFEyaSARNSY8+QzM
hkYwQpESO1Xi7Pj8kbBDgw9VFEs7tMG9ZnS9BuDCcJIzjzsL6/5n18FN77gc/zIEccJXcbpD
GV4QDKREUxpYKSPsSz4hgZMBbq8uNZRc7U0GiNoKwaRvvzzmN8c1zQfhB809B1n5jnwaCGgN
StrA445oioxxVb7C8TQM4mTDZCKD6mxnxLEWQhgjdDCpKApkFjsJ/PXHkcT8wvb22Be0uwLQ
RghFKamBxNbA3JGAfoR+8QaKYJIlIcSkWuSq9pMTIwojP69aao8ukhzgdeA34NTvyGia7w6l
uRImKtyEX27ToWD+spMi2mSflQTrkyKvJPTx5QwPM2REihgC7mBLhNYKiIgvk+JIWwFFCMVT
goZMMCRRd0XKQ6B9UgjLkOAQ5+J3ne2/qph6is/J1s6JfdGUTtu7YFzKdd7Ddz3gBuCbYwf6
WhjFyKFndAaM2Z9lMpN9KdAhdyDzd7NdyZJubMzdWB2CBuw+HhUhUVAI0UtAFUkVESNBSr45
MSK8ngHSVsdFU2ePu67xfLzdANDnKxvOSiIqIgeIyB1oZKOSuMADQgdE3COqTXC7/SzRt6C5
qN+e9zcsdB9DtLGHKZCeowZtOkToF7BTmLqE5RQ0O3SV6ernwYh7d4mh8zHv6+q+wW+Mv6DM
ZZ2OD3uruAIMiETsTIfwrzlEB+AMLFgsWCguxMUKKhdZoEeU/OSuxnqSLIa60Y4QTc3gXMCa
LJCNhQp9EEvU8ld3hp0GNqn5eq8WCFPSCHkIQ8jNQUTRXry6KZCZDFE1PrEnm9/itVXP3PlM
sPOs2eTaTFdvZU9OTxL+5NC0gbchgEexNAx+6dEIBMnN6uqKZWTq7OXpcL3KegYIJZk0wKe4
DaSsW13ps07ETk5E5BV50MKiYJ4+nq3IKmw2czniT48YYSLEpz8+xOIkd0Ug6+Z/QgPJT/6g
E6AcLJBrKoriQcSCAvwDKxdu0IVN3JrmGM2kCTFGHBKJQKFQZEGlEP4f4J6x2j2QcWwK0G2A
PskBOcy7858EcudM+mPrcuI3t7E1HIbIth4cPOHJqslVC2XbSIUjo0CugQ0AEAkADttTmCrZ
xbUGi3726dz4jzPE8muYDKIVBQykGg0nIXCmgiSu2EMWUS7OFkkoUpArZEjSlLVhGwqKgbG6
nFMlyWAayJVpeBTTRKpbRzAxqVzarkDqCxGQ2xWZ2JMTWUaWolCWIwZiH1rsPsJ4eHv1tnS8
AeZU6mLLkSQK0TKeOCrwhe1mqCkVjIiXs1Rv51DBD1vl5MYJmQuJZdUmmNc2SD9m5CzVpoMc
RgUj354/LfllHw3ZQzKE72AMogXwDQMeyRBB6KdU0AVVFlawZsZrS0YXVajG2IYwYEAW3Tb5
Ev3+YmARFidK2pYlaWD0QKaVUnybEqEVdhB/Djb9X19B3vjztVVUVVRxlLHEeGGQKCp2RznX
XGqJrEhTqEPbriYQiuUumF0rcAZzcEYqIh3CEAoUXdQWiy0m8WEwNLTTEkG9A/IH7j6g/PpC
R+Hn+lKShoeM7O3Bqg9pCMkxERMs1VtTcpElXGHn5QSJDf045o4pKGJkpilBmRCZaFKgiZQU
oRFmE2Cc3JyhSUpQ00tMQ16Y0FJMFFUlUNDAS0DBARIRPagukNJSiKSdmYORyA9j9QcZxhj6
ggF5o3UZsyGZdrk78KMDprQQVB40iIm/gEau4wa4xglqMWBPAOUq83geRHTcgCez74C6/qMi
Ik+EKZIqJXqs7AeNFW8vP4ZDn+JzCcfhvbpAiwB7Txnk0A338mYxVOG7Fhfb5rblAQOJ3dvI
unUPehId+TDH1AQeJ+QPrbEPHvPL6wfT3SMo06oMDmmxXeWClRpcyilRo/dZb88WqX9U8ke4
ZGIKxAFRgIIHIwZ3NaFOYYuy0s9gHIoY+b3z3kqGg7NeR4hKMCcFzSI1cpGzxhOLvuvwPH7Z
T1IUVEpR2V0qBQGAwYQsRkIyakNUolBQERTQToyskpRQH/nJomJKIKoJGKUpKoiaBiHm1K0I
UtKY2QqgaapClMS6rQji0C4qUaFiGCMGBwIUClgXag7ulT3wHu2jMcMOPDBE4qxONFS6fEdm
7Ud3Z0vYIPcHoBE9w95qfk/Lt6zn48B2N7PibjU2gdUgi9HRhEQiSJIgQfIB3d5BMMJzph0c
dH8v3BQXD1+n0npIggUJT0gnB+nhA0PDLL5Q/HiimfcEiQRpFNAo5gAJEgUZRkFSCRGAkRhZ
WUNAdUDtcqbTxb+JNdNqGqMfQt4CFkRiObz/gfb6z5iPP7eyLepBoasCFhA1G+TOPRx7hR+V
BOUVDBt4ZwewcshnIRBTHB1uCvdXkAEhgGqQYHHfeIAwtPzOo6zTl8Ioli1sJsJcyyom8qLQ
dEPJN4yJFEMUUUsMEGYrBEARGsTjZcdOqiuAzhDKAe/0qvlJBqoIYgqapEEUDIH1dZDrZ8e9
fo4c6QpSY0qxzVCsFE2VKoQa76+l5ej/O6fjAIfRpdvpybkH/SYOKK7cidXWuLoYUA9+luEv
fTFwUIRnOE06IidKgmJqdIJrP96bt8bsuntIamCrLV2Ydiim/co/MiftzuZVfZr0xTBNjlTB
hhjRMMMsuIhEMEOIUQKOu3SnYPqcXojuucES29bI0bR0Bi0NKJWmyVYttnIoyHfb643C9gFT
eRKP5/Ak887nSh8dOs91p9cwaEC22c1rE6jPRZRh1rSygkUGVe67V1vyvGVgVt0OHurTjPoh
8qk878QUdYvcd7UiK+I+iGQ250O1N3cLydKsYt9IGsEqfCThHMGsneFFRfsNe+SJkTQSs6Hb
id2OS7d/C9OfSENSQrdfN6XQsiuOwU7Chf4z8igOGCYLKDXCngHdIGSd33IR9tDPJ1VVVGhf
Q4JCGLHIp0uG0OqKKKuh8D4MmQ/xPnoCdwOOa3ccsYA8GguHCcek4QSnbgEOVr5zVz14gNid
pDO1Hwnj1xPHJJF/BMQVqYjd6rpcrfFyJl4nOOIBQD9YuwZhExZiowhegdu41A5xF+aSNc1g
JOgU4+A8Znobk9n5z7dyeXwr54qb28bnUxIfkDhEOYCU25ddFxDw4K41RnigM8RgXfb0KFIz
AeCIPuJDCA6fSBo0DDdjiCxG4B2Y4vOV4/Lj7jm6p9xJFQBCkG4Xdv3/C6TgZNdXz7JQTruv
B2YGZIVWDNWMYy4NnkwHnuU/rRriyjjxmGFIDQBHMY4mDnNwh0HeDgllK9YPmfF6ZjKEiz95
+H6OpNz/CFcGFsfdPGzn86Gs1fUeOBl9giDzg6e9cBucYgyaN1GUPLBKP9iES3JxlpaxlefA
4aZ4zRP0y300+mlHUL5ZRfUKS2gdcPpWnQaZvNYadpQZmdO3gJxkUOGaZN+UYYiCIiCOIbrb
Q8GYPPEwmzW74vTzl4b88ZxHVSoc7zwT+tb1B8S4YU1F21XCNGo1ximSiK0xx84x7nT7IvM0
KfpG0Y48gAvXFAxRlCyBwJCYQISmyPJUp4/WDaTL4KZTxIYw32o/zdP9S9UWqQ99uhQTv1BI
RLGzZiQ1VFpgUp1GRa+5KFdiBz42fHmQsO0j4AhMr11huh499CSa8TznLzJhQHLJUO0Jkhg6
5nO00Z8O+4cGEcF0VDjOp8LodId6la0d/afmzDQI8Jwoth6kFJhPL+moZ38Rqj+Xj8QB3Qib
BO7/R3gPE7I7/f8SeMUTRuVw/JN1/Ng0sNT4ZDMVC+EwgMdSk7xPGDCBuZRA3mPKXZYDLOMG
OwP4KHYoJwYAEh/EgcLONm8Qn8XBd9PoA1rECIRII/bI6FCnBluYXgmONJlBVDkogynDhi1T
UkVVUVZtW2o1sYMRNsHUP7wDux0XncingR4EAaARpRFIYiIBM7jZldRtYYQmKGKUJmERVViK
qoXtGqtJxgad+l4HQdPm4jRduw5U8upgKDzEfez7NDB5xT0ISshKifqGFQwhOQceUx2L0cJO
Z5R5wbr4dKe10XcGTzhgGTHJAdnePji5vAM2HLTbbASk9CQYIZ8qFIhPox/eAfY4mZmJqvA+
REFFV0PYUwZXrthtppQ6RRZMxbisuqZM0vXvERRSVuPl8OP+FjSg/v1KWIrT6bw9IZ9shn4v
VAloieY7949BVHNx1ZghA8xVFDlQ6T4VIepIeHjk3wfvP6HBYZ5dkuTVk8ff4hYaht6t2mg+
X/DdkAwU+m1hJC0DMU7lOS8uEaVfs2En57xUBQtAi9vz3zelQ7BnC2GVpaSsrbVFP0cw44Yi
uZoq9Iqev77cYUfc9c8oW3icV4iluIQm+0gYHex5nks4BbhvRbjGYndT5GdBwwoSvZGiKnaf
fyGDdOlQHDOLbVFMeKNLm5KgNaoIx1KIIW2KisQwQwwFB5jT0JTu5cUTQiEBGDDkiXvhllj8
mmwyh3Qp8C7KNbFxWB2FpopQbJIwhIHLINCiL8ZMT2N62PXse8HRK94KMxECaK0AVTtqSDBa
2A1Btp97i4sDuZN26CXR0kQ7dhTY1JsS2NJQQgcyQCGpbsp6Yfn3/dktAaxPVYmZ4eadeDaF
Ja4l8E6c8/uDkMoTDUaBRGS7d3nqVeAxbBKAApQEDREQCBKDoxKmihMkLEgaBM7BSCZbQ2sK
Ugm2AVxAIyMiGg06UXEqAU6BKiFMBpypGf0GAJAkfcqKFOECnSDQBy4CoH2GOkIdg5IB9sIH
EhADnQKfeiQOMOIAAqk6NaUB5LMuJjGHEIHtUR5wIQLwsykKCHxjzH39yqh9x6+N9ng6R41W
+Y7C8JuZ9zx3jzuAKX6/ZhfE+iVUQEFAyqQ4lzXXFYGhEXVOGhyJiN543bUAxIqPCx68BVRU
YESh7ojdSi01FJolA4G2cbUbw6xMvBLvpg3rQKd+LysbDgncxSFBRZhi51GNGTZQFIJTLQVr
ZyHBh60SBaKRKLEZIpQi0OMJSlBsbmN92XqNCnYps3QhlcxmwztuaHCt60zpUxJi6zjGItM0
J5TjSiN9sSobC00t8SRS5IlL799ro4vZVb2+FPHjMrkW1kErhuh505leUhjFrSqeJct07qJU
3kMIdRSLI3QUgGoUIDBd3GAaBqSAdJJVd2nRIuZzgLlrBgRm9MwOEcttPGZQ8yCWZwqhHDC5
NTEj1DzusoJ1DDDIiYglOclbA5A5qjq5MIYlE33oDCiUw7W0OHCoS7OVzQ1CgkyjdVEFFNO2
+ZickGPMFWBgGnBKTflYbDVFvFNLYSMNiUjjA1SUjZakUG8Ao+NRcmDEpTtneZZsEhUYQ4Ck
JQyQSLNVEEKi8Yi6yLAKhVLUSiQKuNBvnxWvmUca6qtugYsOAdCZFDE0D3EkJZsp2nHPDXoJ
R3RTkyiF0FC8Yc5kMCOloqiIllgkRlTYuY6yusCwbiUuqWhbApQZhttURUatopkYlLZcc2B1
t/U6V4ZoCcHjiLmnssizAdN89+Cdvg1AywhOKQJqzxwVIRSb70pIBW+lwAMOaqE1SFeSr8XZ
OkcJT2gQfu+m83x6tnUzpdFFKuG/JeORjw/EXN5JwJRhXOMTItdnZrOGhptjdYAkYij87DrD
STi3zOJZsmMlsDihjyOmbCBp150DQYBjCjU7JEmqE1DOXsSjAYBw6tiA8MCFwyJYdEDe8e5z
excg34Tg87enIOigUj+qTauYnVC8w7JxqbJoTcXnxvEAdwSUw2Bs22cEo0g0+ZjoRwOCKLGR
aziSQ2UB6EPrKeR1zAB7A1AUDweOTMVVUQJEpFVFRDUEQFERMSUUo826tpqm0mIHgEPBndH2
2atsUhBL4U+BIAMBw+YpuM6F1JyDEVCVkQgWYMJbti4Br6CpOnIo3AxSsEb6tcTgCwo1vcXF
BMTLLJISi5GdYN96pBhQw0gJCqmDLYGQs3LMsygsNhYwOIJsIgxEQeTDIMFJaEnBEUQTXicV
HEDynC7W5kjgYpfr4+XhOCHYFoVPiVXEYlIkF0JVyohAAnedj6fNejOaKnjspKtmxCenrnlD
kAawk3DXgrKqlUuchePizeTB86onbKON0chFHYolAL3CuAISUkWAVdBnERW51uXsyZM0PiaS
cAvY4hpBAUULlSasLGG0Ji5KRYMFlOBZnRQcvLk5Ehxi2zcyUksbGQ7Ae5BxkBPFhgCk/PAK
YclbI+ddlYI0ENrE6S07SHTFwai7tzITyRCYkI68t5NNTjp4MViKDBF0JfIuYHGa1gE12QbN
CpJeUE4BCEwEVVSpB2cwEU0qjSRCmxhpZISAlaqBhxjEEh5PcfTB6S99i2OyEY8OdTqIVeS4
Rs4DjvDnsRBLBjzVjJchKFA6Dh3uIieTvI908SqwywWQoTfOtrJvwB1ZK9Hq9IVX+AspD7T7
6orw4YzmvnJiKfbgwM0YVJo5PPtULLkZ7P4/5f8Kr9MxL6hT75TvcOkrWmkrWixgVKKDEOYc
yNBQRA+ju7l/VMFkTBgntOAHrioT6R6zBlMWFKVOh63d0y8oArpCc5yLuDQeRUIOk9/+fn38
da7ZD2dDj4p2ZgGkIctydD1z5TL2tCxSJ92c8MYiqH29Wedq7xxVzBqSgYBBJMkqMGGBk7uv
2eE4GIErENYKUttzcA6+X54xqg8uiuqPhCnlOVDY2mD3Swu7swCKSy7JK7Dup5ydZEFiGRoh
A+w+x0dvyhU8cHrcZ5/DFN6y+s3DjDtUO2KURiRXlnEoJSCYlAxAUGJAF/TAmgmTC6CQc/Ha
g/QgV6g5IYeLAkAxBkmOxgJnH2Y8uZ8C8uGA4KoEQBIPevpTEiHl0yRMIKkkJSELCoS3Ognk
MqEpkwyQXUnlxL2hKtHt7jDDYRBUSUleypiZoOG0mUNo05xJyPdHovxg8KAT4wUmAINxX8UE
Or+gVF8ycdQoMEoISSDNQ1vv9BqczpNeGV1uwX6A0BXsYX6jggRqKGZJmQiSKIkqkliEPs82
89fZkynFyYcjQoQdCVgA+exH6BK6oZpfuP98QwsoYft+BtAqKQioP/ifwvuh06DxCB+WA4Ty
yvZACHP9h5txeYVFsARfqgKlyeiyCpqEo9YEhuBCGM4oTw6AhzaiwrT18/5CQPWBOU+YSAY6
VAIYqhIJ572BteTCbfocRyJxy0iUFInLYgwB9hgyRSURSBiFYIV0lAESGM5yjkGDPFxUdfjU
5n5hSQ3m28ib8/oEYE31DeiiQmNwgUFgJSUKSYE0E+gNNx9b1AdZ8j+wl8SA8pzlgTYn4CWM
9fxpLr2pn190IerYyzptcA4BIegL6/e4cECELJQQMWkNDSl+LiI0rJKspX6A3nuQHpDwP4vQ
xHdjjwEVLEoO3ZCSjgg1G0qu+ciZVLAB2oOBeQSPbgEVTPzQuycIhQIoAqwVOpPfVGUdRSoI
JADzqemBoQetBDbNCd6VAmOoObyGMU4wEGOjQPuUQP6v+Bf1h0BzRBcj9lMkBZOwzkxlHp4v
YvJ/KbdX7V7IphYk+JXbAQEREwNCxPcu70fV783mxeVSkZ2GOkHJaE0c27P8wkh34/M9/iCU
QPrFIfYpsbFhyUYhDA7FYmHYTEaKqZYkMEhYwaS2QsFg1rHz/Ntw8tHyU/x1CSFUpCqEAoRg
mUkYmCBiS14ztwlDIDbtV3LxquPjnmE2PA3wyQhrPZ7SSEbf6Pdtxjwwx0bNdoLRS0VVBQzS
VRRK0tJkIF0IpSiUlJSUpFJEQ1Q0lJMREkkVRKUhQFAQQNAEkVQJDI4kMEgFC0EfUJiFxSKC
wP4X39+dktb+ojZXn8DnOqPfAJGCBiXBMSTMSA1BJSJhYDUkETJTITNLTEURTCJAkMhc7nuW
ba5QeAvxb4xQlPlOLUTSuI++U+AaoISg40QCoPalMn4OfVxOT8bMWEgZ51d4fz+jM/Fq0sQy
X2p3ecI+cFsMEkzIENlV2OBDQE8wv1714lIsQiwSN1c6ff4lz3h3w/AsEFFPFKYvobbRC0N4
ORlSG7wuYVg5BWTa/jIdPeDhxxQSD+aIC4B5BR4PMdIo8XAAxJu5YYZ+wEQZX7a9nh62qo31
mWT7uNhy4HXC5+tcHbCr7Efx8W4cL1d5+vMZvapae9WGcMBEgGaFCOgo+2LuD4IG6H7sZgpK
L8MBnWZlr28awwxGroh+GLDORrLFFGXDzz1xM/1esCB2h0IMROSoREdXHkX21feMRDMwYgCB
A+Pxsvy/XJyv/ckgSZXzQo/drXLAWNhIHb45/Kcr5SrW63kAtVXm597nXvQ8FewY/cu8D08Q
NRCofHx9vXcY/Ydwr+CZo9XT/H/nH1aD1NDrNbGjFwU1Sk6JSUn0baqqraPJnNZU3H01RcPj
9mQ3InQieGhtOQkDz1lSahADmiqqJ6ud6Ps6CkooU8UpBextxhoqYSw4MiIvHiYPHmeVQPeR
GikPZgaBAjzA4oz74dK+R99TXsu4F1/CRuBLORuVz1+zPmO+tjE9t7JUJStyEefBMY564r+b
pn993qxxDFBy5ckOV+qf2Ua3XYLjItHPO5XO+CYMoVN26YbPmNkSTuVIssknGb7YDPtEFMIm
EtGOJkt/eotjjCW5s4xJOavttk2YsNxvBEcp3lR4y4RvcS2To3B/k+fjyXsIexPB30bqA6Rh
B6Exv4y0BA90eTU+jU5J4BsfLJ7ufhlCnSfbCVqzMcNMNo4Sdg1kCj4FZErSThBgbtQggH9E
fOwwvmLk5cAVtEOPWzqLSCZJnFwFAoNzIDjbLD5jx7kFEAEciAyAiDhAQxAx5vdpiEWj9YXg
ZQs2FBmGC4gegNhUiB7aHQZSelKV9DbaKJaYD8BgEiKIxMjMxANFBECkDCD+4/doeLk6OFyB
YHkqewQ6Rgu812Bv9oCLmWkRTXD9Rkd6aj7pQpE4QI9ElJE0MQtDT8wkSlLRQ0g0DSoOY2yJ
pQpUoKKCTs6AdSfxhIff/Pu0EFBNF5IyUgeVGwalI/q7ZK2zjNJ64iXCEpiOwYmeFUMFBRgM
HkIjKfsYwqm4TDEoyVSwCi+UnuJKcx1HRSS5bBBtWyOxoN7SbghRlEFYs9tOhw6GJ0MslKDL
pNYIYlx0gwkHMtGcETsWNSJmIB2NCQ5I0SRsNnRRstGkGGUgJCTRkKHQOQPlC+L2lfG2k9MD
/z0AQUkFJEsT0YKAj1fL8f4ad+wR3wn8YTls8hSwaKFwG40kF3AYCqUIeTkiitkDBqpqCKGO
Q0GMbsHAhiJikamoiTpREEqUiSVLVMQULFQ0RLEJEkkxEw0yQwxQJNFFMhQ0CQkFLCMAnbBK
lFYKLJBTDUX8e2VjFhLYWQYqBSIQioiGhDMBoKQoCnBKHJoUoOMPJ0g0iUj4BgyyJ2KHqkao
5Jwj/l88HzVRJNB14qUFCaRDOkp8ZNNDScR+/Zeaoj8+HTS00j/eyNag/XjIJ//i7kinChID
WjDwgA==
--------------748CD85A7F3F14A26AADE963--


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-08-31 22:45 Internal Compiler Error Herb McNew
@ 1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-08-31 22:45 UTC (permalink / raw)
  To: Herb McNew; +Cc: egcs-bugs

On Aug  6, 1999, Herb McNew <herb@catharsis.systems.cais.net> wrote:

> See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Please do

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-08-05 11:14 internal " Aaron Maxwell
@ 1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-08-31 22:45 UTC (permalink / raw)
  To: Aaron Maxwell; +Cc: egcs-bugs

On Aug  5, 1999, Aaron Maxwell <amaxwell@phy.ucsf.EDU> wrote:

> Hi.  I tried to compile LyX 1.0.3, using egcs 2.90.29, and received an
> internal compiler error.

Lots of C++ ICEs have been fixed since egcs 1.0 series.  I advise you
to try gcc 2.95, that is very likely to fix the problem.  If, for some
reason, you can't do that, please take a look at
http://egcs.cygnus.com/faq.html#bugreport and post a new, full bug
report.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-08-31 22:45 Loring Holden
  0 siblings, 0 replies; 387+ messages in thread
From: Loring Holden @ 1999-08-31 22:45 UTC (permalink / raw)
  To: gcc-bugs; +Cc: lsh

I have a g++ internal compiler error using g++ built from CVS sources (as of
21:30 EDT Aug 29).

version: gcc version 2.96 19990829 (experimental)

options: g++ test.C
response:
/home/lsh/space/jot/mlib/test.C: In method `void _line<Wline,Wvec>::create_error() const':
/home/lsh/space/jot/mlib/test.C:18:   instantiated from here
/home/lsh/space/jot/mlib/test.C:8: Internal compiler error in `expand_expr', at expr.c:5701
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

Thanks,
Loring
PS-

the source:
#include <iostream.h>
template <class L, class V>
class _line
{
   protected : 
      V  _vector;
   public:
      void create_error() const { const V &Y = _vector.normalize(); }
};

class Wvec {
   public :
      inline Wvec normalize() const;
};

class Wline : public _line<Wline, Wvec> { };

void test(const Wline  &a) { a.create_error(); }

~/egcs/bin/g++ -v --save-temps ~/space/jot/mlib/test.C -c -o /tmp/a.out:
Reading specs from /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 19990829 (experimental)
 /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ /home/lsh/space/jot/mlib/test.C test.ii
GNU CPP version 2.96 19990829 (experimental) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../include/g++-3
 /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/../../../../i686-pc-linux-gnu/include
 /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/include
End of omitted list.
 /u/lsh/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus test.ii -quiet -dumpbase test.cc -version -o test.s
GNU C++ version 2.96 19990829 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.96 19990829 (experimental).
/home/lsh/space/jot/mlib/test.C: In method `void _line<Wline,Wvec>::create_error() const':
/home/lsh/space/jot/mlib/test.C:17:   instantiated from here
/home/lsh/space/jot/mlib/test.C:7: Internal compiler error in `expand_expr', at expr.c:5701
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.

The .ii file is almost the same as the .C file so it isn't being sent.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-08-31 22:45 Erik Dick
@ 1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-08-31 22:45 UTC (permalink / raw)
  To: Erik Dick; +Cc: gcc-bugs

On Aug  5, 1999, Erik Dick <Erik.Dick@iese.fhg.de> wrote:

> Preprocessed output:

> Has not been generated!

Probably because you didn't add -save-temps?  Or, if you did, it may
be that -pipe is getting in the way, and you might try again omitting
-pipe.  Please do it and post a new, full bug report.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-08-31 22:45 root
  0 siblings, 0 replies; 387+ messages in thread
From: root @ 1999-08-31 22:45 UTC (permalink / raw)
  To: gcc-bugs

[-- Attachment #1: Type: text/plain, Size: 855 bytes --]

Have just been exposed to an internal compiler error.
Here the info:

gcc version:

 egcs-2.91.66

system version:

 Linux Redhat 6.0/i386. No updates applied.

gcc cmdline    :

g++ -I. -I/usr/local/include/tcl8.1 -DTCL=1 -I/usr/local/include/tcl8.1
-I/usr/include/X11 -DMOTIF=1 -I/usr/X11R6/include -DSYS5=1 -Wall -DNOID
-pipe -Wstrict-prototypes -DFUNCPROTO=15 -DARC100 -DPSTACK=1 -DTM15
-mpentiumpro -fno-strength-reduce -I/home/90/src/lib/ipl -DDDETERM=0
-DXWTERM=1 -I/home/90/obj/iplcode/inc -I/home/90/obj/helpmenu/inc
-I/home/90/obj/license/inc -I/home/90/obj/lib/platform/inc
-I/home/90/obj/dbscode/inc -I. -I/home/90/src/helpmenu `./cflags g++
property.c` -c property.c -o /home/90/obj/iplcode/obj//property.o

Preprocessed output attached as gzip file.

Hope this helps.

Regards

Jannich Thorsen
Development Manager
DDE, EDA Division
Denmark


[-- Attachment #2: property.ii.gz --]
[-- Type: application/x-gzip, Size: 52889 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-08-31 22:45 Erik Dick
  1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Erik Dick @ 1999-08-31 22:45 UTC (permalink / raw)
  To: gcc-bugs

Error happens while trying to compile the JX-Libraries for 
CodeCrusader/CodeMedic coming from http://www.its.caltech.edu/~jafl/jx/ .

GCC version
===========

gcc-2.95


System Type
===========

Sun Ultra 10 with Solaris 2.6


Options
=======

g++ -Wall -Wpointer-arith -pipe  -O2 -DACE_NDEBUG -fno-implicit-templates  
-fno-exceptions  -I. -I/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers  
-c -fPIC -o .shobj/Timer_Hash.o Timer_Hash.cpp


Preprocessed output:
====================

Has not been generated! This is the log:

g++ -Wall -Wpointer-arith -pipe  -O2 -DACE_NDEBUG -fno-implicit-templates  
-fno-exceptions  -I. -I/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers  
-c -fPIC -o .shobj/Timer_Hash.o Timer_Hash.cpp
In file included from /usr/include/netinet/in.h:38,
                 from /usr/include/netdb.h:96,
                 from /home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace
/OS.h:3330,
                 from /home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace
/Free_List.h:21,
                 from /home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace
/Timer_Queue_T.h:21,
                 from /home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace
/Timer_Hash_T.h:20,
                 from /home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace
/Timer_Hash.h:20,
                 from Timer_Hash.cpp:10:
/opt/local/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/include/sys/stream.h:
3: warning: `queue' redefined
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/OS.h:3328: warning: 
this is the location of the previous definition
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp: In 
method `void ACE_Timer_Heap_T<ACE_Event_Handler *,ACE_Timer_Hash_Upcall<ACE_Eve
nt_Handler *,ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex
>,ACE_Recursive_Thread_Mutex>,ACE_Null_Mutex>::grow_heap()':
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp:500:
   instantiated from `ACE_Timer_Heap_T<ACE_Event_Handler 
*,ACE_Timer_Hash_Upcall<ACE_Event_Handler *,ACE_Event_Handler_Handle_Timeout_Up
call<ACE_Recursive_Thread_Mutex>,ACE_Recursive_Thread_Mutex>,ACE_Null_Mutex>
::alloc_node()'
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp:545:
   instantiated from `ACE_Timer_Heap_T<ACE_Event_Handler 
*,ACE_Timer_Hash_Upcall<ACE_Event_Handler *,ACE_Event_Handler_Handle_Timeout_Up
call<ACE_Recursive_Thread_Mutex>,ACE_Recursive_Thread_Mutex>,ACE_Null_Mutex>
::schedule(ACE_Event_Handler *const &, const void *, const ACE_Time_Value &, 
const ACE_Time_Value &)'
Timer_Hash.cpp:44:   instantiated from here
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp:402:
 Internal compiler error.
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp:402:
 Please submit a full bug report.
/home/dick/opt/local/source/JX-1.5.0/ACE/ACE_wrappers/ace/Timer_Heap_T.cpp:402:
 See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler error
  1999-08-27 15:07 Internal Compiler error Bill Pringlemeir
@ 1999-08-27 19:12 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-08-27 19:12 UTC (permalink / raw)
  To: Bill Pringlemeir; +Cc: gcc-bugs

On Aug 27, 1999, Bill Pringlemeir <bpringle@teklogix.com> wrote:

> I can pre-process the source and send that to you if you wish.

Please do, as requested in the FAQ.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From oliva@dcc.unicamp.br Fri Aug 27 19:15:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Preda Mihailescu <mihailes@inf.ethz.ch>
Cc: bug-gcc@gnu.org
Subject: Re: Internal compiler error in `scan_region', at except.c:2566
Date: Fri, 27 Aug 1999 19:15:00 -0000
Message-id: <or906wfy7r.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <37C714E5.41C6@inf.ethz.ch>
X-SW-Source: 1999-08/msg01053.html
Content-length: 365

http://egcs.cygnus.com/faq.html#bugreport

We need the preprocessed code.  Thanks

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From Prince_Tim_C@solarturbines.com Fri Aug 27 20:53:00 1999
From: Tim C Prince <Prince_Tim_C@solarturbines.com>
To: egcs-bugs@egcs.cygnus.com (IPM Return requested) (Receipt notification requested)
Subject: egcs-19990824/g77 x86 ICE simplified
Date: Fri, 27 Aug 1999 20:53:00 -0000
Message-id: <37C716F3.6E8C.3B94.000*/c=US/admd=> </prmd=Cat/o=GWise/s=Prince/g=Tim/i=C/"@MHS>
X-SW-Source: 1999-08/msg01054.html
Content-length: 504

This is a simplified version of the bug I reported yesterday, which
is provoked by compiling on i686-pc-linux-gnu or
i586-pc-cygwin32 with 'g77 -Os -c -funroll-loops'.  It attempts to
calculate the minimum element and harmonic mean of a vector
in a single DO loop.  If either of the comparisons is removed
from the loop or the level of optimization is reduced, the problem
disappears.
Dr. Timothy C. Prince
Consulting Engineer
Solar Turbines, a Caterpillar Company
alternate e-mail: tprince@computer.org
>From mark@codesourcery.com Fri Aug 27 21:11:00 1999
From: Mark Mitchell <mark@codesourcery.com>
To: tromey@cygnus.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Fw: Returned message: Re: g++ -vs Java boolean
Date: Fri, 27 Aug 1999 21:11:00 -0000
Message-id: <19990827211713E.mitchell@codesourcery.com>
References: <199908062132.OAA23091@ferrule.cygnus.com.> <19990806182422W.mitchell@codesourcery.com> <199908272005.NAA01171@ferrule.cygnus.com.>
X-SW-Source: 1999-08/msg01055.html
Content-length: 878

>>>>> "Tom" == Tom Tromey <tromey@cygnus.com> writes:

    Tom> Is there a way to preserve the error checking?

Not that I know of.  I fully understand why the Java folks like the
current setup, but it's not standard C++, and the semantics are
ill-defined, and that's causing problems.  I don't see how to solve
all of the problems that we've talked about, including:

  o Good, well-documented, sensible semantics.
  o Binary compatibility with current setup.
  o Platform-independence.
  o Type-checking.

It's too bad that this stuff went in the first place without being
fully thought out; there's a long history of GCC extensions with that
property, and things often go wrong down the road as a result.

I'm not really sure what to suggest at this point.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com
>From burchard@pobox.com Fri Aug 27 23:23:00 1999
From: Paul Burchard <burchard@pobox.com>
To: Michael Vance <briareos@lokigames.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Inner template classes confuse gcc-2.95 and gcc-2.95.1 compiler
Date: Fri, 27 Aug 1999 23:23:00 -0000
Message-id: <37C7806B.83B0E877@pobox.com>
X-SW-Source: 1999-08/msg01056.html
Content-length: 1133

Here's a shorter version of your bug report in
http://egcs.cygnus.com/ml/gcc-bugs/1999-08/msg01036.html .  As you
implied, removing the "class N" wrapper eliminates the error message, so
that this is indeed a problem with member templates:

class N {
	template<class> class X {};
	class Y {
		friend X<int>;
	};
};

Alexander Zvyagin submitted a report on exactly the same problem a few
days ago, in http://egcs.cygnus.com/ml/gcc-bugs/1999-08/msg00824.html . 
He also pointed out that (in his example and in the simplified version
of yours above), you can work around the error by using the full name of
the template class like this:

	friend N::X<int>;

Unfortunately, doing this in your full example causes an ICE. :-(

This may also be related to the bug I reported in
http://egcs.cygnus.com/ml/gcc-bugs/1999-08/msg00822.html and
http://egcs.cygnus.com/ml/gcc-bugs/1999-08/msg00823.html , but it's not
as clear.

-- 
----------------------------------------------------------------------
Paul Burchard   <burchard@pobox.com>   http://www.pobox.com/~burchard/
----------------------------------------------------------------------
>From tromey@cygnus.com Fri Aug 27 23:50:00 1999
From: Tom Tromey <tromey@cygnus.com>
To: Mark Mitchell <mark@codesourcery.com>
Cc: tromey@cygnus.com, egcs-bugs@egcs.cygnus.com
Subject: Re: Fw: Returned message: Re: g++ -vs Java boolean
Date: Fri, 27 Aug 1999 23:50:00 -0000
Message-id: <199908280650.XAA13235@ferrule.cygnus.com.>
References: <199908062132.OAA23091@ferrule.cygnus.com.> <19990806182422W.mitchell@codesourcery.com> <199908272005.NAA01171@ferrule.cygnus.com.> <19990827211713E.mitchell@codesourcery.com>
X-SW-Source: 1999-08/msg01057.html
Content-length: 1245

>>>>> "Mark" == Mark Mitchell <mark@codesourcery.com> writes:

Mark>   o Good, well-documented, sensible semantics.

We do need this, but we don't need "full" semantics.  For instance, we
can just decide that Java types won't work in situations we don't care
about.  We can also decide to limit error checking to method arguments
on Java objects, etc.  I say this since I'm under the impression that
you want to have the semantics defined in every case -- but that isn't
important.

Mark>   o Binary compatibility with current setup.

We don't need this.

Mark>   o Platform-independence.

This is nice, but not absolutely critical.  We can introduce a
platform-dependent config file.  I'd prefer not to, but it's possible
we might have to in any case.

Mark>   o Type-checking.

What if we introduce a new mangling for Java?  On the C++ side, we'd
have attributes to mark certain types as "Java" types; these types
would have a new mangling.  This is more work, but it preserves what I
care about.  Perhaps that's just because I don't understand the
benefit of having the same mangling (I can think up theories to
explain it, but I haven't checked any of them, and I'd rather just
have the answer from somebody who knows.  Per, you there?).

T
>From oliva@dcc.unicamp.br Sat Aug 28 01:08:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: tromey@cygnus.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: libgcj-snapshot-1999-08-27 on SunOS olympia 5.7 Generic i86pc i386 i86pc
Date: Sat, 28 Aug 1999 01:08:00 -0000
Message-id: <orbtbsxr80.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <37C6AED8.3EA6E8A4@netintouch.com> <87emgptdmx.fsf@cygnus.com>
X-SW-Source: 1999-08/msg01058.html
Content-length: 1102

On Aug 27, 1999, Tom Tromey <tromey@cygnus.com> wrote:

>>>>>> "Richard" == Richard Emberson <emberson@netintouch.com> writes:
Richard> ./libgcj/configure --enable-fast-character --enable-threads=posix

Richard> ./../../libgcj-snapshot-1999-08-27/libjava/prims.cc:523: Internal
Richard> compiler error in `dwarfout_finish', at dwarfout.c:6102

> I thought Alexandre had checked in a fix for this bug.

Well, in fact, I had checked in a fix for another, much simpler bug in
dwarf debugging output.  I already suspected there still were other
problems with -gdwarf, but I couldn't get to them :-(

Maybe we should just have completely disabled debugging on
Solaris7/x86...  After all, gdb doesn't work on it either :-)

Meanwhile, the work-around is to set
libjava_cv_gxx_debug_jboolean_bug=yes when running configure...

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From burchard@pobox.com Sat Aug 28 02:38:00 1999
From: Paul Burchard <burchard@pobox.com>
To: gcc-bugs@gcc.gnu.org
Cc: Michael Vance <briareos@lokigames.com>, Alexander Zvyagin <zvyagin@gams.ihep.su>
Subject: Re: Inner template classes confuse gcc-2.95 and gcc-2.95.1 compiler
Date: Sat, 28 Aug 1999 02:38:00 -0000
Message-id: <37C7ADFF.9DA389E4@pobox.com>
References: <37C7806B.83B0E877@pobox.com>
X-SW-Source: 1999-08/msg01059.html
Content-length: 3553

Here is what I was able to determine about the following
frequently-reported bug about member templates (using Alexander
Zvyagin's version):

// Build don't link:
class A {
        template <class T> class B {};
        class C {
                B<int> b; // gets bogus error - not a template
        };
};

The name lookup logic seems to have some problems with intermediate
class scopes (between namespace scope and current class scope).  Here is
what happens during the parse:

1.  When `B<int>' is encountered, lookup_template_class() does not find
`B' in the current class scope `A::C' (that's correct), so it punts to
lookup_name_nonclass() (i.e., lookup_name_real() with the "nonclass
scope" flag set -- whatever that means exactly).

2.  lookup_name_real() runs up the chain of bindings for the identifier
`B', checking for the condition LOCAL_BINDING_P.  In our case, there is
exactly one binding for `B' (detailed below), which indeed refers to the
desired template `A::B<T>'.  But this binding fails to satisfy
LOCAL_BINDING_P (why?).

3.  Since that failed, lookup_name_real() goes on to check the enclosing
namespace scopes for a template `B', but at this point it's too late --
we've already missed our chance to find the correct `B'.

I'm actually a little confused about the term "nonclass scope" in GCC. 
"Class scope" seems to mean "in the scope of the class currently being
defined".  But is "nonclass scope" its opposite, as would be required
for the above logic to be correct?  Or does it mean "not in the scope of
ANY class" (i.e., namespace scope)?  Could this ambiguity be the source
of the bug?

In case it helps, here is what the binding for `B' actually contains:

 <binding 0x8289e9c allocated from permanent_obstack
    permanent scope 0x8288cb0
    value <template_decl 0x8289dd0 B
        type <record_type 0x8281698 B<T> allocated from
permanent_obstack
            permanent type_5 VOID
            size <integer_cst 0x8277f90 constant permanent 0>
            align 1 symtab 0 alias set -1 fields <type_decl 0x8289f14 B>
context <record_type 0x82811c4 A>
            n_parents 0 use_template=0 interface-unknown
            pointer_to_this <pointer_type 0x8281744> chain <type_decl
0x8289d58 B<T>>>
        allocated from permanent_obstack
        permanent ignored VOID file notatempl3.C line 3
        align 1 context <record_type 0x82811c4 A>
        arguments <tree_list 0x8281658 allocated from permanent_obstack
            permanent
            purpose <integer_cst 0x8281640 constant permanent
0x100000000>
            value <tree_vec 0x828162c type <template_decl 0x8289dd0 B>
                allocated from permanent_obstack
                permanent
                elt 0 <tree_list 0x8281618>>>
        result <type_decl 0x8289d58 B<T> type <record_type 0x8281698
B<T>>
            allocated from permanent_obstack
            permanent VOID file notatempl3.C line 3
            align 1 context <record_type 0x82811c4 A> chain <type_decl
0x8281558 T>>
        decl-main-variant 0x8289dd0
        chain <type_decl 0x82813b4 A type <record_type 0x82811c4 A>
            allocated from permanent_obstack
            permanent nonlocal VOID file notatempl3.C line 2
            align 1 context <record_type 0x82811c4 A>
            decl-main-variant 0x82813b4 chain <type_decl 0x828a8a0 C>>>>

-- 
----------------------------------------------------------------------
Paul Burchard   <burchard@pobox.com>   http://www.pobox.com/~burchard/
----------------------------------------------------------------------
>From variani@sprynet.com Sat Aug 28 06:48:00 1999
From: ImageFX Webmaster<variani@sprynet.com>
To: gnu-gcc-bug@gnu.org
Subject: Customized,  Webpage Banners  "ONLY"  $50.00
Date: Sat, 28 Aug 1999 06:48:00 -0000
Message-id: <7q8pbi$5jl$126@nntp2.atl.mindspring.net>
X-SW-Source: 1999-08/msg01060.html
Content-length: 526

Hi there...

ImageFX is currently offering a Mega Banner Sale. ImageFX will
design a high-tech banner for your website that receives results. Increase your
hits by thousands. When you shop at ImageFX, whether it's for a webpage design,
print media or advertising solutions our customers walkaway winners, as
satisfaction is guaranteed.
Please visit our website at:

    www.designsbybian.com

Also I just finished writing a book called "Unlimited Motivation" please review
it and e-mail me your comments..

Thank You;
ImageFX
>From ghazi@caip.rutgers.edu Sat Aug 28 07:09:00 1999
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: egcs-bugs@egcs.cygnus.com
Subject: new bootstrap failure on Solaris *and* SunOS4.  flow/combine/sched
Date: Sat, 28 Aug 1999 07:09:00 -0000
Message-id: <199908281409.KAA25419@caip.rutgers.edu>
X-SW-Source: 1999-08/msg01061.html
Content-length: 1864

	I'm getting a bootstrap failure on Solaris2.7 and SunOS4 in stage2:

 > stage1/xgcc -Bstage1/ -B/usr/local/sparc-sun-solaris2.7/bin/ -c
 > 	-DIN_GCC -DSVR4 -W -Wall -O2 -g -DHAVE_CONFIG_H
 > 	-I. -I../../egcs-CVS19990828/gcc
 > 	-I../../egcs-CVS19990828/gcc/config
 > 	-I../../egcs-CVS19990828/gcc/../include
 > 	../../egcs-CVS19990828/gcc/fold-const.c
 > ../../egcs-CVS19990828/gcc/fold-const.c: In function `add_double':
 > ../../egcs-CVS19990828/gcc/fold-const.c:248: warning: comparison
 > 	between signed and unsigned
 > ../../egcs-CVS19990828/gcc/fold-const.c: In function `mul_double':
 > ../../egcs-CVS19990828/gcc/fold-const.c:334: Internal compiler error
 > 	in `?', at haifa-sched.c:4428
 > Please submit a full bug report.
 > See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
 > 	instructions.
 > make[2]: *** [fold-const.o] Error 1

	It fails in the same place for both systems.  In both cases I
used cc for stage1, however I don't think its related to the recent
solaris cc v5.0 problem because I'm using v4.2 and it doesn't exihibit
the problem from the testcase for the 5.0 bug that Jeff posted in his
patch http://egcs.cygnus.com/ml/gcc-patches/1999-08/msg00900.html .

 > %cc -V
 > cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2
 > %cc -g foo.c
 > %./a.out
 > -2147483648 is < 0                  

(Also because I get this same problem with SunOS4's old K&R cc too.)


	The code at haifa-sched.c:4428 says:

 >      We carefully remove REG_DEAD notes from the dead_notes list, so that
 >      there will be none left at the end.  If we run out early, then there
 >      is a bug somewhere in flow, combine and/or sched.  */
 > 
 >   if (dead_notes == 0)
 >     {
 >       if (current_nr_blocks <= 1)
 >         abort ();


--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From ghazi@caip.rutgers.edu Sat Aug 28 07:28:00 1999
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: egcs-bugs@egcs.cygnus.com
Subject: new bootstrap failure in stage1 on mips-sgi-irix6.2
Date: Sat, 28 Aug 1999 07:28:00 -0000
Message-id: <199908281428.KAA25720@caip.rutgers.edu>
X-SW-Source: 1999-08/msg01062.html
Content-length: 644

	I'm seeing a new bootstrap failure with gcc-2.96 19990827 on
mips-sgi-irix6.2 in stage1 having used cc -n32 for stage1.

 > [...]
 > _divdi3
 > _moddi3
 > _udivdi3
 > xgcc: Internal compiler error: program cc1 got fatal signal 10
 > make[4]: *** [libgcc2.a] Error 1

It dies in a similar, but not identical, place using gcc-2.8.1 for stage1:

 > [...]
 > _muldi3
 > _divdi3
 > xgcc: Internal compiler error: program cc1 got fatal signal 11
 > make[2]: *** [libgcc2.a] Error 1


	I think this started occuring a 2-4 days ago.

		--Kaveh
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From ghazi@caip.rutgers.edu Sat Aug 28 07:54:00 1999
From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
To: egcs-bugs@egcs.cygnus.com
Cc: rth@cygnus.com
Subject: Bootstrap failure on OSF4 libio/isscan.cc in call to va_start
Date: Sat, 28 Aug 1999 07:54:00 -0000
Message-id: <199908281453.KAA26198@caip.rutgers.edu>
X-SW-Source: 1999-08/msg01063.html
Content-length: 12690

	I'm seeing a build failure with gcc-2.96 19990827 on
alphaev5-dec-osf4.0b when compiling libio, after the 3-stage bootstrap
and successful "make compare".  (I used cc for stage1.)

 > /usr/var/tmp/gcc-testing/build/gcc/xgcc
 > 	-B/usr/var/tmp/gcc-testing/build/gcc/
 > 	-B/usr/local/alphaev5-dec-osf4.0b/bin/ -c -g -O2
 > 	-fno-implicit-templates -I. -I../../../egcs-CVS19990828/libio
 > 	-nostdinc++ ../../../egcs-CVS19990828/libio/isscan.cc
 > ../../../egcs-CVS19990828/libio/isscan.cc: In method `class istream &
 > 	istream::scan(const char *, ...)':
 > ../../../egcs-CVS19990828/libio/isscan.cc:35: Internal compiler error.
 > ../../../egcs-CVS19990828/libio/isscan.cc:35: Please submit a full bug
 > 	report.
 > ../../../egcs-CVS19990828/libio/isscan.cc:35: See
 > 	<URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
 > 	instructions.
 > make[2]: *** [isscan.o] Error 1
 > make[2]: Leaving directory
 > 	`/usr/var/tmp/gcc-testing/build/alphaev5-dec-osf4.0b/libio'
 > make[1]: *** [all-target-libio] Error 2

	When I run cc1plus under gdb I get:

 > Program received signal SIGSEGV, Segmentation fault.
 > decl_namespace (decl=0x0) at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4455
 > 4455      while (DECL_CONTEXT (decl))
 > (gdb) where
 > #0  decl_namespace (decl=0x0) at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4455
 > #1  0x12022ae68 in arg_assoc_class (k=0x11fffe810, type=0x140141380)
 >     at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4624
 > #2  0x12022b0ac in arg_assoc_type (k=0x11fffe810, type=0x140141380)
 >     at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4677
 > #3  0x12022b310 in arg_assoc (k=0x11fffe810, n=0x140099bb0)
 >     at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4751
 > #4  0x12022b1cc in arg_assoc_args (k=0x11fffe810, args=0x140099c00)
 >     at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4720
 > #5  0x12022b56c in lookup_arg_dependent (name=0x1400ab048, fns=0x140077fb0,
 >     args=0x140099c00) at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4844
 > #6  0x12023c9c0 in do_identifier (token=0x1400af520, parsing=2,
 >     args=0x140099c00) at ../../../egcs-CVS19990828/gcc/cp/lex.c:3095
 > #7  0x12027ff90 in finish_call_expr (fn=0x140099c50, args=0x140099c00,
 >     koenig=0) at ../../../egcs-CVS19990828/gcc/cp/semantics.c:1167
 > #8  0x120245fd8 in yyparse () at parse.y:1448
 > #9  0x120038c50 in compile_file (name=0x11ffffa6b "isscan.ii")
 >     at ../../egcs-CVS19990828/gcc/toplev.c:3221
 > #10 0x12003d084 in main (argc=8, argv=0x11ffff868)
 >     at ../../egcs-CVS19990828/gcc/toplev.c:5398

	Now line 35 in libio/isscan.cc is a call to va_start().  I
know the va stuff is in flux, and OSF4 isn't supposed to bootstrap
without using the new code.  So I did use the following patch when I
bootstraped to activate it.  Perhaps something I have in the patch is
wrong?  I'd be curious to know if anyone else is having any luck on
OSF4 lately with the new va code.

		--Kaveh

PS: I don't think this is related to the recent bootstrap failures I
got elsewhere.  I think this one's been around for longer.

Here's the patch I used to activate the new va code.

diff -rup orig/egcs-CVS19990805/gcc/ginclude/stdarg.h egcs-CVS19990805/gcc/ginclude/stdarg.h
--- orig/egcs-CVS19990805/gcc/ginclude/stdarg.h	Sat May  8 09:23:49 1999
+++ egcs-CVS19990805/gcc/ginclude/stdarg.h	Fri Aug  6 11:43:36 1999
@@ -11,135 +11,23 @@
 #endif /* not __need___va_list */
 #undef __need___va_list
 
-#ifdef __clipper__
-#include "va-clipper.h"
-#else
-#ifdef __m88k__
-#include "va-m88k.h"
-#else
-#ifdef __i860__
-#include "va-i860.h"
-#else
-#ifdef __hppa__
-#include "va-pa.h"
-#else
-#ifdef __mips__
-#include "va-mips.h"
-#else
-#ifdef __sparc__
-#include "va-sparc.h"
-#else
-#ifdef __i960__
-#include "va-i960.h"
-#else
-#ifdef __alpha__
-#include "va-alpha.h"
-#else
-#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__)
-#include "va-h8300.h"
-#else
-#if defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
-#include "va-ppc.h"
-#else
-#ifdef __arc__
-#include "va-arc.h"
-#else
-#ifdef __M32R__
-#include "va-m32r.h"
-#else
-#ifdef __sh__
-#include "va-sh.h"
-#else
-#ifdef __mn10300__
-#include "va-mn10300.h"
-#else
-#ifdef __mn10200__
-#include "va-mn10200.h"
-#else
-#ifdef __v850__
-#include "va-v850.h"
-#else
-#if defined (_TMS320C4x) || defined (_TMS320C3x)
-#include <va-c4x.h>
-#else
-
 /* Define __gnuc_va_list.  */
 
 #ifndef __GNUC_VA_LIST
 #define __GNUC_VA_LIST
-#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
-typedef char *__gnuc_va_list;
-#else
-typedef void *__gnuc_va_list;
-#endif
+typedef __builtin_va_list __gnuc_va_list;
 #endif
 
 /* Define the standard macros for the user,
    if this invocation was from the user program.  */
 #ifdef _STDARG_H
 
-/* Amount of space required in an argument list for an arg of type TYPE.
-   TYPE may alternatively be an expression whose type is used.  */
-
-#if defined(sysV68)
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (short) - 1) / sizeof (short)) * sizeof (short))
-#elif defined(_AIX)
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (long) - 1) / sizeof (long)) * sizeof (long))
-#else
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
-#endif
-
-#define va_start(AP, LASTARG) 						\
- (AP = ((__gnuc_va_list) __builtin_next_arg (LASTARG)))
-
-#undef va_end
-void va_end (__gnuc_va_list);		/* Defined in libgcc.a */
-#define va_end(AP)	((void)0)
+#define va_start(v,l) __builtin_stdarg_start(&(v),l)
+#define va_end                __builtin_va_end
+#define va_arg                __builtin_va_arg
+#define va_copy(d,s)  __builtin_va_copy(&(d),(s))
 
-/* We cast to void * and then to TYPE * because this avoids
-   a warning about increasing the alignment requirement.  */
 
-#if (defined (__arm__) && ! defined (__ARMEB__)) || defined (__i386__) || defined (__i860__) || defined (__ns32000__) || defined (__vax__)
-/* This is for little-endian machines; small args are padded upward.  */
-#define va_arg(AP, TYPE)						\
- (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)),	\
-  *((TYPE *) (void *) ((char *) (AP) - __va_rounded_size (TYPE))))
-#else /* big-endian */
-/* This is for big-endian machines; small args are padded downward.  */
-#define va_arg(AP, TYPE)						\
- (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)),	\
-  *((TYPE *) (void *) ((char *) (AP)					\
-		       - ((sizeof (TYPE) < __va_rounded_size (char)	\
-			   ? sizeof (TYPE) : __va_rounded_size (TYPE))))))
-#endif /* big-endian */
-
-/* Copy __gnuc_va_list into another variable of this type.  */
-#define __va_copy(dest, src) (dest) = (src)
-
-#endif /* _STDARG_H */
-
-#endif /* not TMS320C3x or TMS320C4x */
-#endif /* not v850 */
-#endif /* not mn10200 */
-#endif /* not mn10300 */
-#endif /* not sh */
-#endif /* not m32r */
-#endif /* not arc */
-#endif /* not powerpc with V.4 calling sequence */
-#endif /* not h8300 */
-#endif /* not alpha */
-#endif /* not i960 */
-#endif /* not sparc */
-#endif /* not mips */
-#endif /* not hppa */
-#endif /* not i860 */
-#endif /* not m88k */
-#endif /* not clipper */
-
-#ifdef _STDARG_H
 /* Define va_list, if desired, from __gnuc_va_list. */
 /* We deliberately do not define va_list when called from
    stdio.h, because ANSI C says that stdio.h is not supposed to define
diff -rup orig/egcs-CVS19990805/gcc/ginclude/varargs.h egcs-CVS19990805/gcc/ginclude/varargs.h
--- orig/egcs-CVS19990805/gcc/ginclude/varargs.h	Wed Jul  7 08:51:29 1999
+++ egcs-CVS19990805/gcc/ginclude/varargs.h	Fri Aug  6 11:43:52 1999
@@ -3,64 +3,6 @@
 #ifndef _VARARGS_H
 #define _VARARGS_H
 
-#ifdef __sparc__
-#include "va-sparc.h"
-#else
-#ifdef __spur__
-#include "va-spur.h"
-#else
-#ifdef __mips__
-#include "va-mips.h"
-#else
-#ifdef __i860__
-#include "va-i860.h"
-#else
-#ifdef __pyr__
-#include "va-pyr.h"
-#else
-#ifdef __clipper__
-#include "va-clipper.h"
-#else
-#ifdef __m88k__
-#include "va-m88k.h"
-#else
-#if defined(__hppa__) || defined(hp800)
-#include "va-pa.h"
-#else
-#ifdef __i960__
-#include "va-i960.h"
-#else
-#ifdef __alpha__
-#include "va-alpha.h"
-#else
-#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__)
-#include "va-h8300.h"
-#else
-#if defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
-#include "va-ppc.h"
-#else
-#ifdef __arc__
-#include "va-arc.h"
-#else
-#ifdef __M32R__
-#include "va-m32r.h"
-#else
-#ifdef __sh__
-#include "va-sh.h"
-#else
-#ifdef __mn10300__
-#include "va-mn10300.h"
-#else
-#ifdef __mn10200__
-#include "va-mn10200.h"
-#else
-#ifdef __v850__
-#include "va-v850.h"
-#else
-#if defined (_TMS320C4x) || defined (_TMS320C3x)
-#include <va-c4x.h>
-#else
-
 #ifdef __NeXT__
 
 /* On Next, erase any vestiges of stdarg.h.  */
@@ -75,91 +17,32 @@
 #undef va_list
 #undef va_start
 #undef va_end
-#undef __va_rounded_size
 #undef va_arg
 #endif  /* __NeXT__ */
 
-/* In GCC version 2, we want an ellipsis at the end of the declaration
-   of the argument list.  GCC version 1 can't parse it.  */
-
-#if __GNUC__ > 1
-#define __va_ellipsis ...
-#else
-#define __va_ellipsis
-#endif
-
 /* These macros implement traditional (non-ANSI) varargs
    for GNU C.  */
 
 #define va_alist  __builtin_va_alist
-/* The ... causes current_function_varargs to be set in cc1.  */
+
 /* ??? We don't process attributes correctly in K&R argument context.  */
 typedef int __builtin_va_alist_t __attribute__((__mode__(__word__)));
-#define va_dcl	__builtin_va_alist_t __builtin_va_alist; __va_ellipsis
 
-/* Define __gnuc_va_list, just as in gstdarg.h.  */
+/* ??? It would be nice to get rid of the ellipsis here.  It causes
+   current_function_varargs to be set in cc1.  */
+#define va_dcl                __builtin_va_alist_t __builtin_va_alist; ...
+
+/* Define __gnuc_va_list, just as in stdarg.h.  */
 
 #ifndef __GNUC_VA_LIST
 #define __GNUC_VA_LIST
-#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX)
-typedef char *__gnuc_va_list;
-#else
-typedef void *__gnuc_va_list;
-#endif
-#endif
-
-#define va_start(AP)  AP=(char *) &__builtin_va_alist
-
-#define va_end(AP)	((void)0)
-
-#if defined(sysV68)
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (short) - 1) / sizeof (short)) * sizeof (short))
-#elif defined(_AIX)
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (long) - 1) / sizeof (long)) * sizeof (long))
-#else
-#define __va_rounded_size(TYPE)  \
-  (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
+typedef __builtin_va_list __gnuc_va_list;
 #endif
 
-#if (defined (__arm__) && ! defined (__ARMEB__)) || defined (__i386__) || defined (__i860__) || defined (__ns32000__) || defined (__vax__)
-/* This is for little-endian machines; small args are padded upward.  */
-#define va_arg(AP, TYPE)						\
- (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)),	\
-  *((TYPE *) (void *) ((char *) (AP) - __va_rounded_size (TYPE))))
-#else /* big-endian */
-/* This is for big-endian machines; small args are padded downward.  */
-#define va_arg(AP, TYPE)						\
- (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)),	\
-  *((TYPE *) (void *) ((char *) (AP)					\
-		       - ((sizeof (TYPE) < __va_rounded_size (char)	\
-			   ? sizeof (TYPE) : __va_rounded_size (TYPE))))))
-#endif /* big-endian */
-
-/* Copy __gnuc_va_list into another variable of this type.  */
-#define __va_copy(dest, src) (dest) = (src)
-
-#endif /* not TMS320C3x or TMS320C4x */
-#endif /* not v850 */
-#endif /* not mn10200 */
-#endif /* not mn10300 */
-#endif /* not sh */
-#endif /* not m32r */
-#endif /* not arc */
-#endif /* not powerpc with V.4 calling sequence */
-#endif /* not h8300 */
-#endif /* not alpha */
-#endif /* not i960 */
-#endif /* not hppa */
-#endif /* not m88k */
-#endif /* not clipper */
-#endif /* not pyr */
-#endif /* not i860 */
-#endif /* not mips */
-#endif /* not spur */
-#endif /* not sparc */
-#endif /* not _VARARGS_H */
+#define va_start(v)   __builtin_varargs_start(&(v))
+#define va_end                __builtin_va_end
+#define va_arg                __builtin_va_arg
+#define __va_copy(d,s)        __builtin_va_copy(&(d),(s))
 
 /* Define va_list from __gnuc_va_list.  */
 
diff -rup orig/egcs-CVS19990805/gcc/config/alpha/x-alpha egcs-CVS19990805/gcc/config/alpha/x-alpha
--- orig/egcs-CVS19990805/gcc/config/alpha/x-alpha	Wed Dec 16 16:01:13 1998
+++ egcs-CVS19990805/gcc/config/alpha/x-alpha	Fri Aug  6 11:31:15 1999
@@ -1,2 +1 @@
 CLIB=-lmld
-EXTRA_HEADERS = $(srcdir)/config/alpha/va_list.h
--
Kaveh R. Ghazi			Engagement Manager / Project Services
ghazi@caip.rutgers.edu		Qwest Internet Solutions
>From osmosis@atfantasy.com Sat Aug 28 10:11:00 1999
From: "Ed Lazor" <osmosis@atfantasy.com>
To: <gcc-bugs@gcc.gnu.org>
Subject: compile error
Date: Sat, 28 Aug 1999 10:11:00 -0000
Message-id: <NCBBLFADKKGFKPCLGFHAAEDMEIAA.osmosis@atfantasy.com>
X-SW-Source: 1999-08/msg01064.html
Content-length: 1734

Hi :)  I tried to compile MySQL on my computer and ran into problems.  Per
the instructions, I'm sending the information to this address in hopes that
you might know a solution.

Thanks for any help you might be able to provide :)

-Ed

ps... I've never posted like this and am not sure if I'm posting all of the
information properly.  Please let me know if there is anything else I can
provide to help out.

----------------------------------------------------------------------------
--
GCC Version = gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
----------------------------------------------------------------------------
--
System Type = RedHat Linux 6.0 on an AMD K6/2-350 with 256mb ram and 26gig
of HD space
----------------------------------------------------------------------------
--
Options passed to the compiler =  I ran the following commnads

	./configure --prefix=/usr/local/mysql
	make
----------------------------------------------------------------------------
--
Here's the out put I received where it displayed the error message

records.cc: In function `int init_rr_cache(struct READ_RECORD *)':
records.cc:168: Internal compiler error.
records.cc:168: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
records.cc:168: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.
make[3]: *** [records.o] Error 1
make[3]: Leaving directory `/opt/mysql/mysql-3.22.25/sql'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/opt/mysql/mysql-3.22.25/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/mysql/mysql-3.22.25'
make: *** [all-recursive-am] Error 2
----------------------------------------------------------------------------
--


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler error
@ 1999-08-27 15:07 Bill Pringlemeir
  1999-08-27 19:12 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Bill Pringlemeir @ 1999-08-27 15:07 UTC (permalink / raw)
  To: gcc-bugs

Hello,

I have an strongARM linux system (Corel Netwinder).
I used the ./configure with the gcc distribution to get the
makefile for the 2.95.1 sources on the arm4vl-linux box.
I have gcc 2.95.1 and was attempting to compile the
gtk 1.2.4 source.  While compiling gtkbutton.c gcc displays:

gtkbutton.c: In function `gtk_button_size_allocate'.
gtkbutton.c:503: Internal compiler error in `purge_addressof_1', at function.c 3172.

I was using ./configure in the gtk directory to complete the
make file.  I then ran the generated make file.  While compiling
gtkbutton.c an error occurred.  This error is repeatable.  I will 
try to compile with the gcc compiler distributed with the Netwinder.

  " http://www.gtk.org/ "
  " ftp://ftp.gtk.org/pub/gtk "

The above URLs have info on the gtk source.  I can pre-process
the source and send that to you if you wish.

Memory looks low when I run `top'.  Can you recommend a way to
determine if the problem is memory related?  

thanks,
Bill



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-08-20  4:19 Loring Holden
  0 siblings, 0 replies; 387+ messages in thread
From: Loring Holden @ 1999-08-20  4:19 UTC (permalink / raw)
  To: gcc-bugs; +Cc: lsh

I have a g++ internal compiler error using g++ built from CVS sources (as of
10:45 EDT Aug 19).   (note that I had to apply a patch mentioned in a
previous email to get g++ to build under Solaris, but the the problem below
should be platform independent).

version: gcc version 2.96 19990819 (experimental)

Options: g++ str_ptr_test.C
response:
str_ptr_test.C:25: sorry, not implemented: `var_decl' not supported by dump_type
str_ptr_test.C: In method `void ARRAY<str_ptr>::realloc(int)':
str_ptr_test.C:34:   instantiated from here
str_ptr_test.C:25: conversion from `str_ptr *' to non-scalar type `' requested
str_ptr_test.C:25: sorry, not implemented: `var_decl' not supported by dump_type
str_ptr_test.C:25: conversion from `unsigned int' to non-scalar type `' requested
str_ptr_test.C:25: Internal compiler error in `expand_expr', at expr.c:7243
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
Thanks,
Loring
PS-

The source:
Template <class T>
class REFptr {
   public:
      virtual ~REFptr();
      REFptr<T> &operator =  (const REFptr<T>& p);
};

class STR { };
class str_ptr : public REFptr<STR> { };

template <class T>
class ARRAY {
 protected:
   T      *_array;         // pointer to the data
   int     _num;           // number of elements in the array
   int     _max;           // max elements for currently allocated array
 public:
   virtual void realloc(int new_max) {
       _max = new_max;
       T *tmp = new T [_max];
       if (tmp == 0) return;
       for (int i=0; i<_num; i++) {
          tmp[i] = _array[i];
       }
       delete [] _array;
       _array = tmp;
   }
};

int
main()
{
   ARRAY<str_ptr> tags;
}

g++  -v --save-temps str_ptr_test.C output:
Reading specs from /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/specs
gcc version 2.96 19990819 (experimental)
 /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) str_ptr_test.C str_ptr_test.ii
GNU CPP version 2.96 19990819 (experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../include/g++-3
 /usr/local/include
 /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../sparc-sun-solaris2.7/include
 /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /u/lsh/space/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cc1plus str_ptr_test.ii -quiet -dumpbase str_ptr_test.cc -version -o str_ptr_test.s
GNU C++ version 2.96 19990819 (experimental) (sparc-sun-solaris2.7) compiled by GNU C version 2.96 19990819 (experimental).
str_ptr_test.C:25: sorry, not implemented: `var_decl' not supported by dump_type
str_ptr_test.C: In method `void ARRAY<str_ptr>::realloc(int)':
str_ptr_test.C:34:   instantiated from here
str_ptr_test.C:25: conversion from `str_ptr *' to non-scalar type `' requested
str_ptr_test.C:25: sorry, not implemented: `var_decl' not supported by dump_type
str_ptr_test.C:25: conversion from `unsigned int' to non-scalar type `' requested
str_ptr_test.C:25: Internal compiler error in `expand_expr', at expr.c:7243
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.


The .ii file is almost the same as the .C file (except the comments are
removed and there is a  # 1 "str_ptr_test.C" line at the top), so it isn't
being sent.
>From jrv@death.mitre.org Fri Aug 20 04:46:00 1999
From: Jim Van Zandt <jrv@death.mitre.org>
To: gcc-bugs@gcc.gnu.org
Subject: g++ from gcc 2.95 on MIPS: Internal compiler error in `output_die', at dwarf2out.c:5421
Date: Fri, 20 Aug 1999 04:46:00 -0000
Message-id: <199908201144.HAA06905@death.mitre.org>
X-SW-Source: 1999-08/msg00770.html
Content-length: 42726

Building of octave 2.0.14 with gcc-2.95 fails on this machine:

  uname -a
  IRIX idun 6.5 05190003 IP20 mips

Command line and printed output appear below.  The .ii file is attached.

		 - Jim Van Zandt


Script started on Fri Aug 20 07:33:10 1999
sh-2.03$ g++ -v --save-temps -c  -I. -I.. -I../liboctave -I../src -I../libcruft/ \rmisc  -I../glob -I../glob -DHAVE_CONFIG_H -fno-rtti -fno-exceptions -fno-implici \rt-templates -g -O2 -Wall sighandlers.cc
Reading specs from /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/specs
gcc version 2.95 19990728 (release)
 /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/cpp -lang-c++ -v -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dunix -Dmips -Dsgi -Dhost_mips -DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix__ -D__mips__ -D__sgi__ -D__host_mips__ -D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__ -D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix -D__mips -D__sgi -D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4) -Acpu(mips) -Amachine(sgi) -D__CHAR_UNSIGNED__ -D__OPTIMIZE__ -g -Wall -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__ -D_SGI_SOURCE -D_MIPS_FPSET=32 -D_MIPS_ISA=_MIPS_ISA_MIPS3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -D_COMPILER_VERSION=601 -U__mips -D__mips=3 -D__mips64 -DHAVE_CONFIG_H sighandlers.cc sighandlers.ii
GNU CPP version 2.95 19990728 (release) [AL 1.1, MM 40] SGI running IRIX 6.x
#include "..." search starts here:
#include <...> search starts here:
 .
 ..
 ../liboctave
 ../src
 ../libcruft/misc
 ../glob
 /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/../../../../include/g++-3
 /usr/gnu/include
 /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/../../../../mips-sgi-irix6.5/include
 /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /usr/gnu/lib/gcc-lib/mips-sgi-irix6.5/2.95/cc1plus sighandlers.ii -quiet -dumpbase sighandlers.cc -g -O2 -Wall -version -fno-rtti -fno-exceptions -fno-implicit-templates -o sighandlers.s
GNU C++ version 2.95 19990728 (release) (mips-sgi-irix6.5) compiled by GNU C version 2.8.1.
sighandlers.cc:631: Internal compiler error in `output_die', at dwarf2out.c:5421
Please submit a full bug report.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.
sh-2.03$ exit

script done on Fri Aug 20 07:33:42 1999


begin 644 sighandlers.ii.gz
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
B%A_0]HZ*M-3B"5O1*/$IF_#UUV,5;(//_P\G*-3X#W4"``Q=
`
end
------- End of forwarded message -------
>From martin@mira.isdn.cs.tu-berlin.de Fri Aug 20 04:51:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: oliva@dcc.unicamp.br
Cc: joseph@itginc.com, gcc-bugs@gcc.gnu.org
Subject: Re: g++ 2.95 bug: template invalidates code
Date: Fri, 20 Aug 1999 04:51:00 -0000
Message-id: <199908201144.NAA00563@mira.isdn.cs.tu-berlin.de>
References: <37BBBDC6.4BA37AB3@itginc.com> <199908200821.KAA00849@mira.isdn.cs.tu-berlin.de> <orpv0i3ku8.fsf@cupuacu.lsd.dcc.unicamp.br>
X-SW-Source: 1999-08/msg00771.html
Content-length: 406

> It is my understanding that it would only be an error if the reference
> was to a non-const type.  Since it is `const T&', a temporary should
> be created [dcl.init.ref]/10.

It seems you are right (except that there is no paragraph 10 in 8.5.3
:-). While we are at it: Shouldn't there also be an builtin operator
!=(T,T), according to [over.built]/15? And shouldn't this win over the
template?

Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-08-20  2:03 Maurizio Loreti
  0 siblings, 0 replies; 387+ messages in thread
From: Maurizio Loreti @ 1999-08-20  2:03 UTC (permalink / raw)
  To: gcc-bugs, bug-gcc

I got an "Internal compiler error", using gcc 2.95.1, when trying to
build the package "ddd 3.1.6" downloaded from ftp.ips.cs.tu-bs.de ,
directory /pub/local/softech/ddd/src , file ddd-3.1.6.tar.gz .  This
happens on a Digital Unix machine running OSF 4.0d
(alphaev56-dec-osf4.0d).

MLO@axcdf4 1 $ uname -a
OSF1 axcdf4.pd.infn.it V4.0 878 alpha alpha
MLO@axcdf4 2 $ gcc --version
2.95.1

What I did:

- gzip -dc ddd-3.1.6.tar.gz | tar -xof -
- cd ddd-3.1.6
- more README INSTALL PROBLEMS
- ./configure alphaev56-dec-osf4.0d
- make

Error I got (the file was in directory ddd-3.1.6/ddd/):

c++  -DHAVE_CONFIG_H -DNDEBUG -O2 -g -W -Wall  -felide-constructors
-fconserve-space -trigraphs -c -I. -I. -I./..  -o HelpCB.o HelpCB.C
HelpCB.C: In function `void PopupTip(void *, XtIntervalId *)':
HelpCB.C:2148: Internal compiler error in `scan_region', at
except.c:2566
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for
instructions.

Attached is the output (compressed with bzip2 -9) of

c++ -v --save-temps  -DHAVE_CONFIG_H -DNDEBUG -O2 -g -W -Wall
-felide-constructors -fconserve-space -trigraphs -c -I. -I./..
HelpCB.C

On the screen this produced:
Reading specs from /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/cpp -lang-c++ -v -I. -I./.. -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -D__EXCEPTIONS -D__OPTIMIZE__ -trigraphs -g -W -Wall -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) -DHAVE_CONFIG_H -DNDEBUG HelpCB.C HelpCB.ii
GNU CPP version 2.95.1 19990816 (release)
#include "..." search starts here:
#include <...> search starts here:
 .
 ..
 /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/../../../../include/g++-3
 /usr/local/include
 /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/../../../../alphaev56-dec-osf4.0d/include
 /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
 /opt/gnu/lib/gcc-lib/alphaev56-dec-osf4.0d/2.95.1/cc1plus HelpCB.ii -quiet -dumpbase HelpCB.cc -g -O2 -W -Wall -version -felide-constructors -fconserve-space -o HelpCB.s
GNU C++ version 2.95.1 19990816 (release) (alphaev56-dec-osf4.0d) compiled by GNU C version 2.95.1 19990816 (release).
HelpCB.C: In function `void PopupTip(void *, XtIntervalId *)':
HelpCB.C:2148: Internal compiler error in `scan_region', at except.c:2566
Please submit a full bug report.

-- 
Maurizio Loreti                      http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          loreti@padova.infn.it
>From lsh@cs.brown.edu Fri Aug 20 03:12:00 1999
From: Loring Holden <lsh@cs.brown.edu>
To: gcc-bugs@gcc.gnu.org
Subject: gcc won't compile from cvs on sparc
Date: Fri, 20 Aug 1999 03:12:00 -0000
Message-id: <199908201012.GAA19075@poplar.cs.brown.edu>
X-SW-Source: 1999-08/msg00767.html
Content-length: 1128

I can't compile egcs from cvs sources (as of 10:45 EDT Aug 19) on sparc.

The compilation of cc1 dies with:
Undefined                       first referenced
 symbol                             in file
emit_float_lib_cmp                  insn-emit.o

It seems as if insn-emit.o is created from gcc/config/sparc/sparc.md, which
still references emit_float_lib_cmp, even though gcc/ChangeLog says:

Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
[..]
	* optabs.c 
[...]
	(prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
	parameters to be pointers; don't emit final compare but modify some of
	the values pointed to by the args so the caller can perform the
	correct comparison.
[...]


So it seems as if egcs won't build on sparc until sparc.md has been changed to
use prepare_float_lib_cmp() instead of emit_float_lib_cmp() and
gcc/optabs.c has been changed to make prepare_float_lib_cmp() non-static.

I have a patch, but it just uses dummy parameters for the new parameters in
prepare_float_lib_cmp() (there should be a better way), so I won't send the
patch unless it is requested.

Loring
>From dlg@jet.msk.su Fri Aug 20 03:25:00 1999
From: Denis Golubev <dlg@jet.msk.su>
To: gcc-bugs@gcc.gnu.org
Subject: gcc-2.95.1 bug ( SPARC 64 bit mode ) 
Date: Fri, 20 Aug 1999 03:25:00 -0000
Message-id: <E11HlrG-0002rZ-00@ax.service.jet.msk.su>
X-SW-Source: 1999-08/msg00768.html
Content-length: 859

 

   Hello. 

  I build gcc-2.95.1 for sparc-sun-solaris7 ( bi-arch 32/64 bit )

  64 bit compiler generate bug :

  $ gcc -m64 -c t3fault.c
t3fault.c: In function `foo':
t3fault.c:6: Internal compiler error in `sparc_emit_set_const32', at 
./config/sparc/sparc.c:1182

  t3fault.c :
      1 void foo(short *q, int *u)
      2 {
      3   short p;
      4   int   c;
      5   c = -2147483648;
      6   p = -32768;
      7   *q = p;
      8   *u = c;
      9 }

 Bug is generated by short int constant -32768   ( -32767 - OK )

 32 bit compiler doesn't generate this bug.

    
  $ gcc -m64 -O -c t3fault.c  - OK

  If any optimization is ON - compliation is OK .

Regards,

Denis


---------------------------------
Denis Golubev, Moscow, Russia
Jet Infosystems Technical Staff
Phone: (+7 095) 973-48-48  E-mail: dlg@jet.msk.su
Fax:   (+7 095) 973-48-42



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-08-05 11:14 Aaron Maxwell
  1999-08-31 22:45 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Aaron Maxwell @ 1999-08-05 11:14 UTC (permalink / raw)
  To: egcs-bugs

Hi.  I tried to compile LyX 1.0.3, using egcs 2.90.29, and received an
internal compiler error.  I've attached a script of the compilation
session ("bug-typescript") and the .C file that the compiler blew
chunks on ("math_macro.C").  The compilation was run as root.
I obtained the LyX source from ftp.lyx.org . My Linux distro is Debian
2.0 ("Hamm").

`uname -a` on my system yields:
Linux leper-messiah 2.2.9 #2 Sun May 16 08:19:25 PDT 1999 i586 unknown

The hardware is an old Cyrix P150 clone, 32mb ram.  I ran the compilation 
in console mode (i.e., not in X).

On my system, the compiler is executed as `gcc` (as opposed to `egcs`);
`gcc --version` yields "2.7.2.3".  From looking in the "specs" file in the
egcs lib directory, egcs' version is "2.90.29".  I'm not super clear on
the relation between egcs and gcc, but hopefully i've given you all the
information you need to figure out which compiler I used.  Good luck, let
me know if i can help more, and thanks much for the free hi-quality (rare
bugs like this notwithstanding) compiler! 

Aaron
>From mark@codesourcery.com Thu Aug 05 12:19:00 1999
From: Mark Mitchell <mark@codesourcery.com>
To: per@bothner.com
Cc: gcc-bugs@egcs.cygnus.com
Subject: Re: g++ -vs Java boolean
Date: Thu, 05 Aug 1999 12:19:00 -0000
Message-id: <19990805122304O.mitchell@codesourcery.com>
References: <m2emhikfnd.fsf@magnus.bothner.com> <19990804222322C.mitchell@codesourcery.com> <m2r9lijgvh.fsf@magnus.bothner.com>
X-SW-Source: 1999-08/msg00240.html
Content-length: 1017

>>>>> "Per" == Per Bothner <per@bothner.com> writes:

    Per> Mark Mitchell <mark@codesourcery.com> writes:

    >> Considering `jboolean' like a bool-like wchar_t, `true' is not
    >> of a matching type.  So, `f(jint)' will be called, which is
    >> probably *not* the semantics you had in mind.

    Per> Maybe: typedef bool jboolean; is the best solution.  Perhaps
    Per> we need a __mode__-attribute, at least until the new abi is
    Per> the default.

This strikes me as the best solution.  I'm not sure the __mode__ thing
will work; I don't know what it means to have a typedef of a different
mode from the type it is typedef'ed to.  But, I do think that typedefs
would be the cleanest solution, and most likely to work in a reliable
way.  You may trade off a bit of convenience for greater
predictability, and fewer bugs, but I think that's probably the right
thing to do in this case.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com
>From tromey@cygnus.com Thu Aug 05 12:30:00 1999
From: Tom Tromey <tromey@cygnus.com>
To: egcs-bugs@egcs.cygnus.com
Subject: Re: g++ -vs Java boolean
Date: Thu, 05 Aug 1999 12:30:00 -0000
Message-id: <87g11y10q3.fsf@cygnus.com>
References: <m2oggof0ma.fsf@magnus.bothner.com> <19990804012227N.mitchell@codesourcery.com> <m2emhikfnd.fsf@magnus.bothner.com> <19990804222322C.mitchell@codesourcery.com> <m2r9lijgvh.fsf@magnus.bothner.com>
X-SW-Source: 1999-08/msg00241.html
Content-length: 311

>>>>> "Per" == Per Bothner <per@bothner.com> writes:

Per> Maybe:
Per>         typedef bool jboolean;
Per> is the best solution.  Perhaps we need a __mode__-attribute, at
Per> least until the new abi is the default.

Is this right?

	typedef bool jboolean __attribute__ ((__mode__ (__byte__)));

Tom
>From oliva@dcc.unicamp.br Thu Aug 05 13:19:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Erik Dick <Erik.Dick@iese.fhg.de>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error
Date: Thu, 05 Aug 1999 13:19:00 -0000
Message-id: <or3dxyouey.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <199908051506.RAA09923@jemez.iese.fhg.de>
X-SW-Source: 1999-08/msg00242.html
Content-length: 586

On Aug  5, 1999, Erik Dick <Erik.Dick@iese.fhg.de> wrote:

> Preprocessed output:

> Has not been generated!

Probably because you didn't add -save-temps?  Or, if you did, it may
be that -pipe is getting in the way, and you might try again omitting
-pipe.  Please do it and post a new, full bug report.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From oliva@dcc.unicamp.br Thu Aug 05 13:21:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Alexander Feigl <Alexander.Feigl@gmx.de>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: gcc 2.95 : internal compiler error with qt 1.44
Date: Thu, 05 Aug 1999 13:21:00 -0000
Message-id: <oryafqnfne.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <20944.933839685@upchuck.cygnus.com> <99080511532900.11665@PowerBox.MysticWorld.de>
X-SW-Source: 1999-08/msg00243.html
Content-length: 563

On Aug  5, 1999, Alexander Feigl <Alexander.Feigl@gmx.de> wrote:

> How can I call the cc1plus compiler directy without frontend. I need
> following compile options:

> gcc -O2 -fPIC qmenubar.ii

Add -v, cut&paste the cc1plus invocation it prints and start it within 
a debugger.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From oliva@dcc.unicamp.br Thu Aug 05 13:25:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Christopher Seawood <cls@seawood.org>
Cc: gcc-bugs@gcc.gnu.org, khan@xraylith.wisc.edu
Subject: Re: Please disregard previous bug report.
Date: Thu, 05 Aug 1999 13:25:00 -0000
Message-id: <oru2qenfh3.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <37A90BDE.14E8B098@seawood.org>
X-SW-Source: 1999-08/msg00244.html
Content-length: 564

On Aug  5, 1999, Christopher Seawood <cls@seawood.org> wrote:

> 30 secs after I click send a thought pops in my head and I find the
> problem...a missing Mozilla-specific define.

Anyway, an ICE is always a bug in the compiler, even if it is
triggered by bugs in the source code.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From oliva@dcc.unicamp.br Thu Aug 05 13:43:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Aaron Maxwell <amaxwell@phy.ucsf.EDU>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: internal compiler error
Date: Thu, 05 Aug 1999 13:43:00 -0000
Message-id: <orpv12nep8.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <Pine.OSF.3.95.990805111235.12643B-300000@phy.ucsf.edu>
X-SW-Source: 1999-08/msg00245.html
Content-length: 712

On Aug  5, 1999, Aaron Maxwell <amaxwell@phy.ucsf.EDU> wrote:

> Hi.  I tried to compile LyX 1.0.3, using egcs 2.90.29, and received an
> internal compiler error.

Lots of C++ ICEs have been fixed since egcs 1.0 series.  I advise you
to try gcc 2.95, that is very likely to fix the problem.  If, for some
reason, you can't do that, please take a look at
http://egcs.cygnus.com/faq.html#bugreport and post a new, full bug
report.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them
>From martin@mira.isdn.cs.tu-berlin.de Thu Aug 05 14:12:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: Luc.Maisonobe@cnes.fr
Cc: gcc-bugs@gcc.gnu.org, Geraldine.Filaire@cnes.fr, Martine.Julien@cisi.cnes.fr, jason@cygnus.com
Subject: Re: parse error using gcc 2.95
Date: Thu, 05 Aug 1999 14:12:00 -0000
Message-id: <199908050928.LAA00931@mira.isdn.cs.tu-berlin.de>
References: <14248.24187.955542.753059@lurien.cst.cnes.fr>
X-SW-Source: 1999-08/msg00247.html
Content-length: 738

>   C c (B (A<double> (-p, -p, q), 0.5));

Thanks for your bug report. This is a known bug; the work around is to
add an additional pair of parentheses:

   C c ((B (A<double> (-p, -p, q), 0.5)));

Jason, I believe this was caused by this change

1999-04-15  Jason Merrill  <jason@yorick.cygnus.com>

	* parse.y (after_type_declarator_intern): New nonterminal.

In the specific case, the parser runs into state 480 (of gcc 2.95),
which is

state 480

    direct_after_type_declarator  ->  '(' after_type_declarator_intern . ')'   (rule 599)

    ')' 	shift, and go to state 755

Now we see the comma, and fail. Is there anything that could be done
about it? It looks like this get a frequently-reported bug for gcc
2.95.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Thu Aug 05 14:12:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: a.puron@physik.tu-chemnitz.de
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Bug in template typefefs
Date: Thu, 05 Aug 1999 14:12:00 -0000
Message-id: <199908050910.LAA00873@mira.isdn.cs.tu-berlin.de>
References: <Pine.LNX.4.10.9908050923410.27581-100000@worf.physik.tu-chemnitz.de>
X-SW-Source: 1999-08/msg00246.html
Content-length: 312

> I hope you can find the problem. I'll try to change it in order to work
> around. Please, reply me if you know the solution. 

Thanks for your bug report. gcc-2.95 compiles this just fine. More
correctly, it issues a warning which is explained in the FAQ. I
recommend to update the compiler.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-08-03  5:28 Thierry Matthey
  0 siblings, 0 replies; 387+ messages in thread
From: Thierry Matthey @ 1999-08-03  5:28 UTC (permalink / raw)
  To: gcc-bugs

------------------+---------------+----------------------------------------
Thierry Matthey   |Para//ab       |work +47 55584167|matthey@ii.uib.no
Ph.D. student     |Dept. of Info. |fax  +47 55584199|www.ii.uib.no/~matthey
Fosswinckels gt 22|Univ. of Bergen|home +47 55563165|ICQ# 23561635
N-5007 Bergen     |Norway         |   'Never ever press this button...'
------------------+---------------+----------------------------------------
>From joel@OARcorp.com Tue Aug 03 05:39:00 1999
From: <joel@OARcorp.com>
To: Jeffrey A Law <law@cygnus.com>
Cc: hartmut.schirmer@arcormail.de, egcs-bugs@egcs.cygnus.com, Ralf Corsepius <corsepiu@faw.uni-ulm.de>
Subject: Re: egcs-19990718 ICE for Hitachi SH target 
Date: Tue, 03 Aug 1999 05:39:00 -0000
Message-id: <Pine.LNX.4.10.9908030739170.16972-100000@oar3remote>
References: <3810.933656252@upchuck.cygnus.com>
X-SW-Source: 1999-08/msg00106.html
Content-length: 2177

On Mon, 2 Aug 1999, Jeffrey A Law wrote:

> 
>   In message < Pine.LNX.4.10.9908021403430.13457-100000@oar3remote >you write:
>   > 
>   > 
>   > 
>   > On Sun, 1 Aug 1999, Jeffrey A Law wrote:
>   > 
>   > > 
>   > >   In message <99072019252700.00333@hallo>you write:
>   > >   > sh23bug1.i: In function `foo':
>   > >   > sh23bug1.i:9: continue statement not within a loop
>   > >   > sh23bug1.i:14: Internal compiler error in `make_edges', at flow.c:967
>   > >   > Please submit a full bug report.
>   > >   > See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions.
>   > > Thanks.  I'm installing a fix for this onto the release branch, so these
>   > > tests should work fine with gcc-2.95.1 when its released.
>   > > 
>   > > The patch should also fix the newlib/RTEMS builds for the sh.
>   > 
>   > I just checked the cvs web interface and did not notice any recent changes
>   > in the gcc/config/sh directory.
>   > 
>   > What did it change?
> Are you sure you were looking on the branch?  The patch has been in the 
> mainline
> tree for a few weeks.  The patch was to sh.c, sh.h & sh.md.

My bad.  I thought based on your comment that I was looking for a VERY
recent change.  Your comment was simply that you merged it onto the
release branch -- the change itself is from June.  I am assuming that this
is the change in question:

        Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
        * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
        (braf_label_ref_operand): Delete.
        * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
        * sh.md (casesi_jump_2): Operand1 is now the inside of a
        label_ref, and has no predicate.
        The patten has a predicate to guard against invalid substitutions.
        (dummy_jump): Delete.
        (casesi): Update use of casesi_jump_2.
Bring over from the mainline tree.

Sorry.  I misread what you said.

--joel
Joel Sherrill, Ph.D.             Director of Research & Development
joel@OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-07-31 23:33 A. Garrido Carrillo
  0 siblings, 0 replies; 387+ messages in thread
From: A. Garrido Carrillo @ 1999-07-31 23:33 UTC (permalink / raw)
  To: egcs-bugs; +Cc: J.M.Benitez

  I found an internal compiler error:

g++ -O2 -Wall -c prueba.cc -o prueba.o -I. 
In file included from prueba.cc:3:
matriz.hh:142: Internal compiler error.
matriz.hh:142: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
matriz.hh:142: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
make: *** [prueba.o] Error 1

when I compile the attached files with 
egcs-2.91.66
(I have Red Hat 6.0 installed)

Please, could you help me?

Thanks in advance,
Antonio.


************************************************************
Antonio Garrido Carrillo
Departamento de Ciencias de la Computacion e I.A.
E.T.S. Ingenieria Informatica
Avda/ Andalucia, 38
Universidad de Granada. 18071 Granada. SPAIN
E-Mail:   A.Garrido@decsai.ugr.es
Fax: +34 958 243317
*************************************************************


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-31 23:33 Tudor Hulubei
  0 siblings, 0 replies; 387+ messages in thread
From: Tudor Hulubei @ 1999-07-31 23:33 UTC (permalink / raw)
  To: egcs-bugs

Hi,

The following program

#include <typeinfo>
#include <iostream>

int
main()
{
    int* p;
    cout << typeid(p).name() << endl;
}

generates an internal compiler error w/ egcs-1.1.2 under RedHat Linux
when compiled with -fno-rtti:

[tudor@hal]:~ $ c++ t.cc -fno-rtti
t.cc: In function `int main()':
t.cc:9: Internal compiler error.
t.cc:9: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
t.cc:9: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Regards,
Tudor

P.S.

[tudor@hal]:~ $ c++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-07-23 12:03 Kavidha Krishnappa
@ 1999-07-31 23:33 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-07-31 23:33 UTC (permalink / raw)
  To: kk425; +Cc: gcc-bugs, kk425, kavitha

> I am encountering an internal compiler error in my main.C
> Attached please find the program files:
> main.C, wabbit.h, wabbit.C, immobile.h, inert.h, grandchild.h
> 
> gcc version egcs-2.90.97 

Thanks for your bug report. I could not reproduce it with egcs 1.1, so
I suggest you update your compiler.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-07-06 12:48 ` Alexandre Oliva
@ 1999-07-31 23:33   ` Thomas Maeder
  1999-07-12 22:20     ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Thomas Maeder @ 1999-07-31 23:33 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: egcs-bugs

Alexandre Oliva schrieb:
> 
> > Here's another one, this time without date.
> 
> > //h/Probase/Source/Geometry/Square/Occupy.cpp:37: Internal compiler > > error.
> 
> Thanks, fixed in the upcoming gcc 2.95.

Again thanks for the quick answer. Is there an further information
available:

What's the problem?
Is there a known simple workaround?
When will gcc 2.95 be released?

Thomas



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-31 23:33 Vitaliy Ababiy
  1999-07-10  1:53 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Vitaliy Ababiy @ 1999-07-31 23:33 UTC (permalink / raw)
  To: egcs-bugs

Hi!
I have just tried to compile ROOT (version 2.22) using g++ 
Linux 2.0.36
Debian 2.0
and got an internal
compiler error when compiling the method 
int TGenerator::ImportParticles(class TClonesArray *, const char * = "")
in EG_Generator.cxx.
I try -O2 -O and etc but it do not work
Is tere any solve of problem?

g77 -g -mcpu=i686 -Wall -fPIC -DR__GLIBC -c EG_Generator.cxx
EG_Generator.cxx: In method `int TGenerator::ImportParticles(class
TClonesArray *, const char * = "")':
EG_Generator.cxx:205: warning: value computed is not used
EG_Generator.cxx:226: warning: value computed is not used
EG_Generator.cxx:230: Internal compiler error.
EG_Generator.cxx:230: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [EG_Generator.o] Error 1

Thanks



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-23 12:46 Internal compiler error dale henderson
  1999-07-25 15:56 ` Mumit Khan
@ 1999-07-31 23:33 ` Alexandre Oliva
  1 sibling, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-31 23:33 UTC (permalink / raw)
  To: dale henderson; +Cc: gcc-bugs

On Jul 23, 1999, "dale henderson" <dalekh@hotmail.com> wrote:

> ../../gcc/toplev.c:3859: Internal compiler error in function 
> rest_of_compilation

http://gcc.gnu.org/faq.html#bugreport

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-31 23:33 Kavidha Krishnappa
  1999-07-21 23:06 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Kavidha Krishnappa @ 1999-07-31 23:33 UTC (permalink / raw)
  To: egcs-bugs; +Cc: kk425

Hi,	
I am encountering an "Internal compiler error" while compiling my
prgrams on ACF5.

I have a class "wabbit" from which are derived 2 classes "immobile" and
"inert". A grandchild class is derived from these 2 derived
classes(immobile and inert). I have created a template for this grandchild
class.
When I try to create an object of the grandchild class, I get an
"Internal Compiler Error" in line 16 of main.C

Attached please find the following 6 files which I have used:
main.C, wabbit.h, wabbit.C, immobile.h, inert.h, grandchild.h  

I hope you will be able to help me fix this error.

Thanks,
Kavitha.

//This file is main.C.

#include <iostream>

#include "grandchild.h"
#include "immobile.h"
#include "inert.h"

using namespace std;

int main(int argc, char **argv)
{

	typedef grandchild<immobile,  inert, 'b'> boulder;
	
 	boulder b(10,10); 
        cout << "End of program";
}
-----------------------------------------------------
//This file is immobile.h

#ifndef IMMOBILEH
#define IMMOBILEH
#include "wabbit.h"

class immobile: public virtual wabbit {
public:
	immobile (char initial_c,
		  int initial_x,
	          int initial_y)  
		 :wabbit(initial_c, initial_x, initial_y) { }
	
	inline bool decide() { move(0,0); return true;}
};

#endif
------------------------------------------------------------------------

//This file is inert.h

#ifndef INERTH
#define INERTH

#include <climits>
#include "wabbit.h"

class inert: public virtual wabbit {
public:
	inert (char initial_c,
		  int initial_x,
	          int initial_y) 
		 :wabbit(initial_c, initial_x, initial_y) { }

	int hungry() const {return INT_MIN;}
	int bitter() const {return INT_MAX;}
};

#endif
----------------------------------------------------------------------------
//This file is wabbit.h.
#ifndef WABBITH
#define WABBITH

#include <list>

class wabbit {
	const char c;	//no longer static
	int x, y;

	static list<wabbit *> wabbits;
	static list<wabbit *>::const_iterator it;

public:
	wabbit (char initial_c,
		int initial_x, int initial_y);
	virtual ~wabbit();

	enum outcome_t {
		eat,	//collided with another wabbit and ate it
		eaten,	//collided with another wabbit and was eaten
		both,	//both of the above: they ate each other
		illegal,	//tried to move off the screen or
			//occupy the same space as another wabbit
		uneventful	//none of the above
	};
	outcome_t move(int dx, int dy);

	virtual int hungry() const = 0;
	virtual int bitter() const = 0;

	virtual bool decide() = 0;

};

#endif
-------------------------------------------------------------
//This file is wabbit.C.
#include <ctype.h>
#include "wabbit.h"
using namespace std;

list<wabbit *> wabbit::wabbits;
list<wabbit *>::const_iterator wabbit::it = wabbits.begin();

wabbit::wabbit(char initial_c,
	int initial_x, int initial_y)
	:c(initial_c)
{
	if (!isprint(c)) {
		cerr << "Invalid character for wabbit."
			"Character should be printable.";
		exit(EXIT_FAILURE);
	}

        x = initial_x;
        y = initial_y;

	wabbits.push_back(this);

}

wabbit::~wabbit()
{

        //If the iterator is pointing to the doomed object,
        //move the iterator to the previous object.
        if (*it == this) {
                --it;
        }
        wabbits.remove(this);

}
	
wabbit::outcome_t wabbit::move (int dx, int dy)
{
	cout << "Inside WABBIT MOVE\n";
		return uneventful;
}

------------------------------------------------------------------
//This file is grandchild.h.
#ifndef GRANDCHILDH
#define GRANDCHILDH
#include "wabbit.h"

template <class MOTION, class RANK, char C>
class grandchild: public MOTION, public RANK {
public:
	grandchild (int initial_x, int initial_y)
		:wabbit (C, initial_x, initial_y),
		 MOTION (C, initial_x, initial_y),
		 RANK   (C, initial_x, initial_y) 
		{ }
};
#endif








^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-07-20  1:17 internal " Gregor Frey
@ 1999-07-31 23:33 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-31 23:33 UTC (permalink / raw)
  To: Gregor Frey; +Cc: egcs-bugs

On Jul 20, 1999, Gregor Frey <gregor.karl.frey@sap-ag.de> wrote:

> got an internal compiler error translating the libstdc++-2.90.5
> using egcs 1.1.2.

You need the upcoming gcc 2.95 for libstdc++ 2.90.5

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
@ 1999-07-31 23:33 N8TM
  0 siblings, 0 replies; 387+ messages in thread
From: N8TM @ 1999-07-31 23:33 UTC (permalink / raw)
  To: haertwig, egcs-bugs

In a message dated 99-07-28 10:04:06 EDT, haertwig@cns.mpg.de writes:

<< We are now replace the gcc 2.7.2
 with egcs. I left my sources untouched and did "make clean; make all". >>

You must run configure and make bootstrap-lean.  The process is described for 
the most part in web pages which you will find from http://egcs.cygnus.com 
(until the name is reconciled with FSF).

Tim
tprince@computer.org


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-28 16:45   ` Henry Sobotka
@ 1999-07-29  1:23     ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-07-29  1:23 UTC (permalink / raw)
  To: sobotka; +Cc: haertwig, egcs-bugs

> and its equivalent in several other headers; and our pgcc (egcs 1.2?)
> dies on the first occurrence with an ICE. A while back I came across two
> reports about that warning/ICE in your archives, one specifically
> referring to the same Mozilla code, but no responses to help me
> understand the problem. I remain baffled, and any explanation would be
> appreciated.


I don't know why the compiler dies; it shouldn't, and gcc 2.95 doesn't.

However, I can explain what the problem is. Given

static const nsIID& GetIID() { static nsIID iid = NS_IREGISTRY_IID;
iid.modify();  // extension of your original code
return iid; }

gcc will generate (in pseudo-asm)

GetIID__Fv:
    test GetIID__Fv.1
    jnz L1
    construct GetIID__Fv.2
    mov 1, GetIID__Fv.1
    ...
L1: push GetIID__Fv.2
    call modify
    ...
    mov GetIID__Fv.2, eax
    ret
...
GetIID__Fv.1: .long 0
GetIID__Fv.2: .long 0

That is, the compiler must meet the following requirements:

1) It must allocate static storage for the local variable iid
2) It must allocate static storage for a variable indicating
   whether iid has been initialized
3) It must make sure that instantiations of the same inline function
   in different object files use the same variables

Since these are local variables, the compiler must find a global name
for them. It does so by appending a number to the function name,
implementing requirement 1).

Inside the function, a flag indicates whether the variable has been
initialized (it must be initialized when the function is called for
the first time). The compiler uses the same approach to implement 2).

Now, since this is an inline function, it may be used in different
object files. The compiler could inline the function code itself, but
it still has to declare the variables. There we have two options

a) declare the variables as global. If the function is called in
   different object files, the compiler will emit the variables twice.
   Then the linker will complain about duplicate symbols.

b) declare the variables as local (to the object file). Then you will
   get multiple instantiations of the variables. If GetIID is invoked
   in one object file, it will modify the static variable. If later
   another object file invokes the same function, it will not see the
   modification, as it operates on a different variable.

As you can see, there is no way to implememt requirement 3), hence the
compiler is sorry.

Of course, on some platforms, there is a twist in option a): The
compiler can implement the function as a "weak" symbol, meaning that
the linker will pick an arbitrary symbol when it sees more than one.
Then, at run-time, all files will use the same copy of the function.
Some systems don't support such a feature; appearently OS/2 is one of
them.

Since the compiler won't inline the function, anyway, it would be
better not to declare it inline.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] ` <199907282305.BAA00821@mira.isdn.cs.tu-berlin.de>
@ 1999-07-28 16:45   ` Henry Sobotka
  1999-07-29  1:23     ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Henry Sobotka @ 1999-07-28 16:45 UTC (permalink / raw)
  To: Martin v. Loewis; +Cc: haertwig, egcs-bugs

When building the Mozilla SeaMonkey on OS/2, we get slews of the
sorry-the-semantics-are-wrong warning with gcc 2.8.1 from this line:

static const nsIID& GetIID() { static nsIID iid = NS_IREGISTRY_IID;
return iid; }

and its equivalent in several other headers; and our pgcc (egcs 1.2?)
dies on the first occurrence with an ICE. A while back I came across two
reports about that warning/ICE in your archives, one specifically
referring to the same Mozilla code, but no responses to help me
understand the problem. I remain baffled, and any explanation would be
appreciated.

Henry
>From bkoz@cygnus.com Wed Jul 28 17:13:00 1999
From: Benjamin Kosnik <bkoz@cygnus.com>
To: gcc-bugs@gcc.gnu.org
Subject: [c++] gcc-2.96/gcc-2_95 -ffunction-sections -fvtable-gc -fPIC bug
Date: Wed, 28 Jul 1999 17:13:00 -0000
Message-id: <Pine.SUN.3.91.990728171301.23496B-100000@rtl.cygnus.com>
X-SW-Source: 1999-07/msg00879.html
Content-length: 1433

-fPIC -ffunction-sections -fvtable-gc doesn't seem to play nice with
 this code, I get:

%g++ -c func-secs.cc -fvtable-gc -ffunction-sections -fPIC
func-secs.cc: In function `void __length_error(const char *)':
func-secs.cc:43: warning: asm operand 0 probably doesn't match constraints
cc1plus: inconsistent operand constraints in an `asm'

-fPIC alone, or -ffunction-sections -fvtable-gc alone work well.

However, the combination is no bueno.

This is for current egcs/gcc-2_95, tested on x86/linux.

-benjamin



namespace std {

  template<typename _CharT>
    class basic_string {
    public:
      basic_string(const _CharT*) { }
      basic_string() { }
    };

  typedef basic_string<char> string;
  
class exception {
public:
  exception () { }
  virtual ~exception () { }
  virtual const char* what () const;
};

class __Named_exception : public exception {
public:
  __Named_exception(const string& __str);
  virtual const char* what() const throw()  { return _M_name; }

private:
  enum { _S_bufsize = 256 };
  char _M_name[_S_bufsize];
};

class logic_error : public __Named_exception {
public:
  logic_error(const string& __s) : __Named_exception(__s) {}
};

class length_error : public logic_error {
public:
  length_error(const string& __arg) : logic_error(__arg) {}
};

  extern void __length_error(const char *__str);

  void 
  __length_error(const char *str)
  { throw length_error(str); }

}  



















^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-28  7:03 Joerg Haertwig
       [not found] ` <199907282305.BAA00821@mira.isdn.cs.tu-berlin.de>
  0 siblings, 1 reply; 387+ messages in thread
From: Joerg Haertwig @ 1999-07-28  7:03 UTC (permalink / raw)
  To: egcs-bugs

Hello,
I have to report the following problem. We are now replace the gcc 2.7.2
with egcs. I left my sources untouched and did "make clean; make all".
Then I was anxiuos to the result. Unfoutunately the compiler stopped on
the function below. 

$ g++ --version
egcs-2.91.66

$ gcc --version
egcs-2.91.66

$ uname -a
OSF1 xxxx.cns.mpg.de V4.0 464 alpha

g++ -o hv.o -c -O2  -D__STDC__  -I../../../.././include
-I/usr/local/share/include -I/usr/include/X11
-I../../../.././src/base/lib  -DSYSV hv.C

inline unsigned char hybridViewer::cube(int x, int y, int z)
{
  static int cbx[] = { 0, 1, 1, 0, 0, 1, 1, 0 };
  static int cby[] = { 0, 0, 1, 1, 0, 0, 1, 1 };
  static int cbz[] = { 0, 0, 0, 0, 1, 1, 1, 1 };

  int val, i;
  unsigned char v;

  for (v = 0, i = 7; i >= 0; i--)  {
    v <<= 1;
    val = intens(x+cbx[i], y+cby[i], z+cbz[i]);
    if (val >= params->llim && val < params->hlim)
      v |= 1;
  };
  return v;
}

hv.C: In method `unsigned char hybridViewer::cube(int, int, int)':
hv.C:1426: warning: sorry: semantics of inline function static data `int
cbx[8]' are wrong (you'll wind up with multiple copies)
hv.C:1426: Internal compiler error.

The gcc-2.7.2 had no problems.


-- 
Joerg Haertwig		
Max-Planck-Institut fuer neuropsychologische Forschung             
    Stephanstr. 1a, 04103 Leipzig  -  Tel.: (0341) 9940 225
mailto:haertwig@cns.mpg.de	    mailto:haertwig@imn.htwk-leipzig.de
>From N8TM@aol.com Wed Jul 28 07:18:00 1999
From: N8TM@aol.com
To: haertwig@cns.mpg.de, egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error
Date: Wed, 28 Jul 1999 07:18:00 -0000
Message-id: <5288580e.24d06aec@aol.com>
X-SW-Source: 1999-07/msg00865.html
Content-length: 405

In a message dated 99-07-28 10:04:06 EDT, haertwig@cns.mpg.de writes:

<< We are now replace the gcc 2.7.2
 with egcs. I left my sources untouched and did "make clean; make all". >>

You must run configure and make bootstrap-lean.  The process is described for 
the most part in web pages which you will find from http://egcs.cygnus.com 
(until the name is reconciled with FSF).

Tim
tprince@computer.org
>From martin.dorey@madge.com Wed Jul 28 08:33:00 1999
From: Martin Dorey <martin.dorey@madge.com>
To: gcc-bugs@gcc.gnu.org
Subject: name mangling bug?
Date: Wed, 28 Jul 1999 08:33:00 -0000
Message-id: <379F22CC.D4151BD8@madge.com>
X-SW-Source: 1999-07/msg00866.html
Content-length: 1170

I think there's a problem with the name mangling method (huh, how many
times have you heard that before?) which can stop valid code compiling
or linking, and can cause it to be linked wrongly.  It's (hopefully)
architecture independent etc.  Source:

#define Mo2 Moo

enum Fu {One = 1, Two = 13};

enum x1 {};
enum Z2x {Bar = 1};

struct Monk
{
  template <Fu, class> void Mo2 () {}
  template <Fu, Z2x> void Moo () {}
  virtual ~Monk ()
  {
    Moo<One, Bar> ();
    Mo2<Two, x1> ();
  }
};

void Goit () { Monk monk; }

Which gives me the attached assembler, which won't assemble.  The
problem is that both the template instantiations mangle to the same
string "Moo__H22Fu13Z2x1_4Monk_v".  As you can see, there's an ambiguity
as to where the value of the first template parameter stops - is it a Fu
of value 1, followed by a value of type length 3 name "Z2x" value 1, or
is it a Fu of value 13, followed by a type length 2 name "x1".

I've tried it with -fnew-abi - no difference.  Perhaps there ought to be
an underscore after the value of the Fu, although it's not just a
problem in the mangling direction - the demangler doesn't cope with this
at the moment?

--


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler error
  1999-07-25 16:17 Internal Compiler error Bruce Eckel
@ 1999-07-25 16:56 ` Mumit Khan
  0 siblings, 0 replies; 387+ messages in thread
From: Mumit Khan @ 1999-07-25 16:56 UTC (permalink / raw)
  To: Bruce Eckel; +Cc: gcc-bugs

"Bruce Eckel" <Bruce@EckelObjects.com> writes:
> This is a multi-part message in MIME format.
> 
> ------=_NextPart_000_0044_01BED6C1.6325B3C0
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> Content-Transfer-Encoding: 7bit
> 
> For the attached file Transform.cpp (which includes Counted.h) and:
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
> gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
> 
> The following error information is produced:
> Transform.cpp: In function `int main()':
> Transform.cpp:19: Internal compiler error 980715.

gcc-2.95-19990715 compiles your code just fine, so I would assume that
the bug is fixed in upcoming gcc-2.95.

Regards,
Mumit


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler error
@ 1999-07-25 16:17 Bruce Eckel
  1999-07-25 16:56 ` Mumit Khan
  0 siblings, 1 reply; 387+ messages in thread
From: Bruce Eckel @ 1999-07-25 16:17 UTC (permalink / raw)
  To: gcc-bugs

For the attached file Transform.cpp (which includes Counted.h) and:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

The following error information is produced:
Transform.cpp: In function `int main()':
Transform.cpp:19: Internal compiler error 980715.

Attached also is the compressed ii file.

===========================================
Bruce Eckel    http://www.BruceEckel.com
Contains free electronic books: "Thinking in Java" & "Thinking in C++ 2e"
Please subscribe to my free newsletter -- just send any email to:
join-eckel-oo-programming@earth.lyris.net
===========================================


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-23 12:46 Internal compiler error dale henderson
@ 1999-07-25 15:56 ` Mumit Khan
  1999-07-31 23:33 ` Alexandre Oliva
  1 sibling, 0 replies; 387+ messages in thread
From: Mumit Khan @ 1999-07-25 15:56 UTC (permalink / raw)
  To: dale henderson; +Cc: gcc-bugs

On Fri, 23 Jul 1999, dale henderson wrote:

> The soure files are from the latest PDFLIB distribution found at:
>     http://www.ifconnection.de/~tm/
> 
> The Error Listing can be found at the bottom.

It would be much easier if you would submit a complete bug report. See
http://egcs.cygnus.com/faq.html#bugreport for more info. You already
provide most of the useful information, except for one thing -- the
preprocessed source file (-save-temps option to gcc will create that).

Regards,
Mumit




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-23 12:46 dale henderson
  1999-07-25 15:56 ` Mumit Khan
  1999-07-31 23:33 ` Alexandre Oliva
  0 siblings, 2 replies; 387+ messages in thread
From: dale henderson @ 1999-07-23 12:46 UTC (permalink / raw)
  To: gcc-bugs

The soure files are from the latest PDFLIB distribution found at:
    http://www.ifconnection.de/~tm/

The Error Listing can be found at the bottom.

VERSION:
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)

SYSTEM TYPE:  Win95 OSR2

OPTIONS PASSED:

# C++ compiler
# For AIX/CSet++: use CC = xlC
# For IRIX: use CC = CC
# CC = gcc-2.6.2
CC = gcc


# C compiler for pure C programs
# Typical: CC=g++ , CCC=gcc
#          CC=cl386 /Tp, CCC=cl386
#
# (Used only for XView, file sb_scrol.c)
#
CCC = $(CC)

# Compiler used for LEX generated C
CCLEX=gcc

MAKE=make

# LEX
LEX=flex # -t -L

# YACC. yacc or bison
# YACC=yacc
YACC=bison

# Settings for Cyginw/Mingw32
RESCOMP=windres.exe
RCINPUTSWITCH=-i
RCOUTPUTSWITCH=-o
RCINCSWITCH=--include-dir
RCDEFSWITCH=--define

RESFLAGS=$(RCINCSWITCH) $(PDFDIR)/include $(RCDEFSWITCH) __WIN32__ 
$(RCDEFSWITCH) __WIN95__ $(RCDEFSWITCH) __GNUWIN32__

########################## Compiler flags #############################

# Miscellaneous compiler options
OPTIONS= -D__EGCS__ -DSTRICT -D__MINGW32__  -H

# Debugging information
# AIX: comment out.
# IRIX: -g3
DEBUGFLAGS = -ggdb

WIN95=1

ifeq ($(WIN95),0)
# With 3.50, Win95 will use your existing icons to show smaller ones.
# With 4.0, you'll have to follow Win95 procedures for icons or you'll get 
the
# default Windows icon.
APPVER=3.50
WINVERSION=-DWINVER=0x0350 -D__GNUWIN32__ -D__WIN32__ # Generic WIN32
else
APPVER=3.50 # 4.0
# This means 'enable Windows 95 features' (in VC++ 4.0).
WINVERSION=-DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__
endif

CPU=i386

# Suffixes
OBJSUFF=o
SRCSUFF=c  # amended for pdflib
LIBPREFIX=lib
LIBSUFF=a
EXESUFF=.exe
RESSUFF=res
RSCSUFF=rsc

# Warnings
#WARN = -Wall

# Which GUI,
GUI =  -D__WINDOWS__

# Optimization
OPT = -O2

# according to Guillermo Rodriguez Garcia <guille@iies.es> this flag is 
needed
# to make the standard div() functio work - otherwise it returns absolutely
# incorrect results and completely breaks the wxImage class (where it's used
# extensively)
#OPT = -fno-pcc-struct-return

# Options for ar archiver
# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4).
AROPTIONS = ruv
RANLIB = ranlib

# Compiler libraries: defaults to GCC libraries
#COMPLIBS=-lg++
#for win95
#COMPLIBS=-lgcc

# Compiler or system-specific include paths
COMPPATHS=

########################## Directories ###############################


WINLIBS=-lstdc++ -lgcc \
	-lwinspool -lwinmm -lshell32 \
	-lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 #  -loldnames

# Shouldn't need to change these...
RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED 
-I$(PDFWIN)\include"

#LIBS = -lctl3d32 $(PDFLIB) $(WINLIBS) $(COMPLIBS)
LIBS =   $(WINLIBS) $(COMPLIBS) $(EXTRALIBS)

WINFLAGS=-D_X86_=1 -DWIN32 -D_WIN32 $(WINVERSION)

#for windows 95
XINCLUDE=$(WINFLAGS)
XLIB=$(LIBS)
LDLIBS = $(LIBS)

# Directory for object files (don't change)
# OBJDIR = objects$(GUISUFFIX)

# You shouldn't need to change these...
CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) 
$(EXTRACPPFLAGS)
CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) 
$(EXTRACFLAGS)
WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows
LDFLAGS = $(WINDOWSLDFLAGS) -L$(PDFDIR)/lib $(EXTRALDFLAGS)

.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .c

.$(SRCSUFF).$(OBJSUFF):
	$(CC) -c $(CPPFLAGS) -o $@ $*.$(SRCSUFF)

.c.o:
	$(CC) -c $(CPPFLAGS) -o $@ $*.c



ERROR LISTING:

*Initialization*:1: warning: `__MINGW32__' redefined
*Initialization*:1: warning: this is the location of the previous definition
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\string.h
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\_mingw.h
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\stddef.h
p_intern.h
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\stdio.h
  
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\stddef.h
pdflib.h
  
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\stdlib.h
   
C:\MINGW32\BIN\..\lib\gcc-lib\i386-mingw32\egcs-2.91.66\..\..\..\..\i386-mingw32\include\stddef.h
p_config.h
../../gcc/toplev.c:3859: Internal compiler error in function 
rest_of_compilation
C:\MINGW32\BIN\MAKE.EXE: *** [p_annots.o] Error 1

include \projects\pdflib-2.0\makeg95.env

all:    $(LIBTARGET) $(EXTRATARGETS)

$(LIBTARGET): $(OBJECTS)
	ar $(AROPTIONS) $@ $(OBJECTS)
	$(RANLIB) $@

clean:
	rm -f $(OBJECTS) $(LIBTARGET) core *.rsc *.res






_______________________________________________________________
Get Free Email and Do More On The Web. Visit http://www.msn.com
>From oliva@dcc.unicamp.br Fri Jul 23 12:56:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: "dale henderson" <dalekh@hotmail.com>
Cc: gcc-bugs@gcc.gnu.org
Subject: Re: Internal compiler error
Date: Fri, 23 Jul 1999 12:56:00 -0000
Message-id: <orso6fp2d6.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <19990723194552.87252.qmail@hotmail.com>
X-SW-Source: 1999-07/msg00765.html
Content-length: 472

On Jul 23, 1999, "dale henderson" <dalekh@hotmail.com> wrote:

> ../../gcc/toplev.c:3859: Internal compiler error in function 
> rest_of_compilation

http://gcc.gnu.org/faq.html#bugreport

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-07-23 12:03 Kavidha Krishnappa
  1999-07-31 23:33 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Kavidha Krishnappa @ 1999-07-23 12:03 UTC (permalink / raw)
  To: gcc-bugs; +Cc: kk425, kavitha

Hi,	
I am encountering an internal compiler error in my main.C
Attached please find the program files:
main.C, wabbit.h, wabbit.C, immobile.h, inert.h, grandchild.h

gcc version egcs-2.90.97 
System is Sun Solaris running on Sun OS.
The code is in C++.
I am using the following options for compilation:
g++ -o game main.C wabbit.C 

I am encountering an internal compiler error in line 16 of main.C
My program has the following: A parent class from which 2 child classes
are derived and a grandchild class which is derived from the 2 child
classes. This grandchild class is a template.
I am getting an internal compiler error while trying to create an object
of the grandchild class.

I hope you will be able to fix this problem for me.

Thanks,
Kavitha.

The following are the 6 program files I used.

//This file is main.C.

#include <iostream>

#include "grandchild.h"
#include "immobile.h"
#include "inert.h"

using namespace std;

int main(int argc, char **argv)
{

	typedef grandchild<immobile,  inert, 'b'> boulder;
	
 	boulder b(10,10);    	//****** INTERNAL COMPILER ERROR 
        cout << "End of program";
}
-----------------------------------------------------------------
//This file is wabbit.h.
#ifndef WABBITH
#define WABBITH

#include <list>

class wabbit {
	const char c;	//no longer static
	int x, y;

	static list<wabbit *> wabbits;
	static list<wabbit *>::const_iterator it;

public:
	wabbit (char initial_c,
		int initial_x, int initial_y);
	virtual ~wabbit();

	enum outcome_t {
		eat,	//collided with another wabbit and ate it
		eaten,	//collided with another wabbit and was eaten
		both,	//both of the above: they ate each other
		illegal,	//tried to move off the screen or
			//occupy the same space as another wabbit
		uneventful	//none of the above
	};
	outcome_t move(int dx, int dy);

	virtual int hungry() const = 0;
	virtual int bitter() const = 0;

	virtual bool decide() = 0;

};

#endif
-------------------------------------------------------------

//This file is wabbit.C.
#include <ctype.h>
#include "wabbit.h"
using namespace std;

list<wabbit *> wabbit::wabbits;
list<wabbit *>::const_iterator wabbit::it = wabbits.begin();

wabbit::wabbit(char initial_c,
	int initial_x, int initial_y)
	:c(initial_c)
{
	if (!isprint(c)) {
		cerr << "Invalid character for wabbit."
			"Character should be printable.";
		exit(EXIT_FAILURE);
	}

        x = initial_x;
        y = initial_y;

	wabbits.push_back(this);

}

wabbit::~wabbit()
{

        //If the iterator is pointing to the doomed object,
        //move the iterator to the previous object.
        if (*it == this) {
                --it;
        }
        wabbits.remove(this);

}
	
wabbit::outcome_t wabbit::move (int dx, int dy)
{
	cout << "Inside WABBIT MOVE\n";
		return uneventful;
}

-----------------------------------------------------------
//This file is immobile.h

#ifndef IMMOBILEH
#define IMMOBILEH
#include "wabbit.h"

class immobile: public virtual wabbit {
public:
	immobile (char initial_c,
		  int initial_x,
	          int initial_y)  
		 :wabbit(initial_c, initial_x, initial_y) { }
	
	inline bool decide() { move(0,0); return true;}
};

#endif
----------------------------------------------------------------
//This file is inert.h

#ifndef INERTH
#define INERTH

#include <climits>
#include "wabbit.h"

class inert: public virtual wabbit {
public:
	inert (char initial_c,
		  int initial_x,
	          int initial_y) 
		 :wabbit(initial_c, initial_x, initial_y) { }

	int hungry() const {return INT_MIN;}
	int bitter() const {return INT_MAX;}
};

#endif
--------------------------------------------------------

//This file is grandchild.h.
#ifndef GRANDCHILDH
#define GRANDCHILDH
#include "wabbit.h"

template <class MOTION, class RANK, char C>
class grandchild: public MOTION, public RANK {
public:
	grandchild (int initial_x, int initial_y)
		:wabbit (C, initial_x, initial_y),
		 MOTION (C, initial_x, initial_y),
		 RANK   (C, initial_x, initial_y) 
		{ }
};
#endif




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-31 23:33 Kavidha Krishnappa
@ 1999-07-21 23:06 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-07-21 23:06 UTC (permalink / raw)
  To: kk425; +Cc: egcs-bugs, kk425

> I am encountering an "Internal compiler error" while compiling my
> prgrams on ACF5.

Thanks for your bug report. Unfortunately, I can't reproduce it with
egcs 1.1.2 or gcc 2.95 19990717. Your report was incomplete; if you
resubmit, please look at http://egcs.cygnus.com/faq.html#bugreport
before.

Thanks,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-07-20  1:17 Gregor Frey
  1999-07-31 23:33 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Gregor Frey @ 1999-07-20  1:17 UTC (permalink / raw)
  To: egcs-bugs

Hi,
got an internal compiler error translating the libstdc++-2.90.5 using
egcs 1.1.2.
Operating-System is SPARC/SOLARIS 2.6.
The error-message was:
c++ -DHAVE_CONFIG_H -I. -I. -I.. -nostdinc++ -I.. -I../stl -I../libio -g
-D_GNU_SOU
RCE -fno-implicit-templates -fimplicit-templates -c  -fPIC -DPIC
misc-inst.cc -o .l
ibs/misc-inst.lo
../bits/std_ostream.h: In function `class
basic_ostream<char,char_traits<char> > &
operator <<<char_traits<char>>(class
basic_ostream<char,char_traits<char> > &, cons
t char *)':
misc-inst.cc:100:   instantiated from here
../bits/std_ostream.h:425: Internal compiler error.
../bits/std_ostream.h:425: Please submit a full bug report to
`egcs-bugs@egcs.cygnu
s.com'.

Gregor Frey
gregor.freyqsap-ag.de
>From oliva@dcc.unicamp.br Tue Jul 20 03:22:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Gregor Frey <gregor.karl.frey@sap-ag.de>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: internal compiler error
Date: Tue, 20 Jul 1999 03:22:00 -0000
Message-id: <or4siz62pb.fsf@cupuacu.lsd.dcc.unicamp.br>
References: <3794308C.42EC937D@sap-ag.de>
X-SW-Source: 1999-07/msg00670.html
Content-length: 489

On Jul 20, 1999, Gregor Frey <gregor.karl.frey@sap-ag.de> wrote:

> got an internal compiler error translating the libstdc++-2.90.5
> using egcs 1.1.2.

You need the upcoming gcc 2.95 for libstdc++ 2.90.5

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <199907101041.FAA28984@cs.atu.edu>
@ 1999-07-12 23:31 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-12 23:31 UTC (permalink / raw)
  To: morell; +Cc: egcs-bugs

On Jul 10, 1999, morell@cs.atu.edu wrote:

> c++  -I../../backend -I../../include -I../../interfaces/libpq -I../../include -I../../backend   -O2 -Wall -Wmissing-prototypes -fpic   -c pgconnection.cc -o pgconnection.oIn file included from /usr/include/g++/iostream.h:31,
> /usr/include/g++/streambuf.h:420: Please submit a full bug report to `egcs-bugs@cygnus.com'.

http://egcs.cygnus.com/faq.html#bugreport

> [postgres@apple src]$ gcc -v
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/specs
> gcc version 2.7.2.3

But the makefile was running c++, not gcc, and c++ is egcs, while gcc
isn't.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-07-31 23:33   ` Thomas Maeder
@ 1999-07-12 22:20     ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-12 22:20 UTC (permalink / raw)
  To: Thomas Maeder; +Cc: egcs-bugs

On Jul  7, 1999, Thomas Maeder <maeder@glue.ch> wrote:

> Alexandre Oliva schrieb:

>> > Here's another one, this time without date.

>> > //h/Probase/Source/Geometry/Square/Occupy.cpp:37: Internal compiler > > error.

>> Thanks, fixed in the upcoming gcc 2.95.

> Again thanks for the quick answer. Is there an further information
> available:

Nope, I just tried to build it with a recent development snapshot and
it worked.

> Is there a known simple workaround?

I haven't saved a copy of your bug report, sorry.

> When will gcc 2.95 be released?

Hopefully, in a few days

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{dcc.unicamp.br,guarana.{org,com}} aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-31 23:33 Vitaliy Ababiy
@ 1999-07-10  1:53 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-10  1:53 UTC (permalink / raw)
  To: Vitaliy Ababiy; +Cc: egcs-bugs

On Jul 10, 1999, Vitaliy Ababiy <vinni@phtd.tpu.edu.ru> wrote:

> EG_Generator.cxx:230: Internal compiler error.

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{guarana.com,{gnu,kaffe,samba}.org,{egcs,sourceware}.cygnus.com}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-07-05 12:40 internal " Georg Bauhaus
@ 1999-07-06 12:49 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-06 12:49 UTC (permalink / raw)
  To: Georg Bauhaus; +Cc: egcs-bugs

On Jul  5, 1999, Georg Bauhaus <sb463ba@unidui.uni-duisburg.de> wrote:

> // NOT including <list> results in an internal compiler error
> struct S { std::list<char> cl; };

Thanks.  The upcoming gcc 2.95 says:

/home/phd/oliva/t.cc:2: syntax error before `;'

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{guarana.com,{gnu,kaffe,samba}.org,{egcs,sourceware}.cygnus.com}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-07-05 11:08 Internal " Thomas Maeder
@ 1999-07-06 12:48 ` Alexandre Oliva
  1999-07-31 23:33   ` Thomas Maeder
  0 siblings, 1 reply; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-06 12:48 UTC (permalink / raw)
  To: Thomas Maeder; +Cc: egcs-bugs

On Jul  5, 1999, Thomas Maeder <maeder@glue.ch> wrote:

> Here's another one, this time without date.

> //h/Probase/Source/Geometry/Square/Occupy.cpp:37: Internal compiler error.

Thanks, fixed in the upcoming gcc 2.95.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{guarana.com,{gnu,kaffe,samba}.org,{egcs,sourceware}.cygnus.com}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-05  6:06 ` Alexandre Oliva
@ 1999-07-06  3:34   ` F. Heitkamp
  0 siblings, 0 replies; 387+ messages in thread
From: F. Heitkamp @ 1999-07-06  3:34 UTC (permalink / raw)
  To: oliva; +Cc: fheitka, egcs-bugs

   Sender: oliva@cupuacu.lsd.dcc.unicamp.br
   Cc: egcs-bugs@egcs.cygnus.com
   From: Alexandre Oliva <oliva@dcc.unicamp.br>
   Date: 05 Jul 1999 10:06:06 -0300
   User-Agent: Gnus/5.070091 (Pterodactyl Gnus v0.91) XEmacs/20.4 (Emerald)
   Content-Type: text/plain; charset=us-ascii

   On Jul  5, 1999, "F. Heitkamp" <fheitka@ibm.net> wrote:

   > Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
		     ^^^^
   > See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

   Please do

I think this attachment takes care of the missing information.

Fred


Message-ID: <944.931182430@pc1.ibm.net>
Mime-Version: 1.0
Subject: egcs-bug.txt
Content-Type: multipart/mixed; boundary="-"

This is a MIME encoded message.  Decode it with "munpack"
or any other MIME reading software.  Mpack/munpack is available
via anonymous FTP in ftp.andrew.cmu.edu:pub/mpack/
---
Content-Type: application/octet-stream; name="e-err.tar"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="e-err.tar"
Content-MD5: HBqcqqdf8jNDqHU1ToAUww==

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
EbTtULyO6UYpoc8z6IEgOh4cD20B2w7+PiYr4r/Dknj72UbXOtKuFysA/toP/1n1BV/1cfHH
VqlZqfxqOo0V9bNYo+tWtEvXtDmsqJnCimL5yau4hbmrqBkixS3MXM3rrMpf7bS1Opqq8lc7
Zd0dzVX5q52t7k+bqvJXO099PW2uyvdPUEXV/FTQe1oKbWIqXPOSgGQTEp0CIDsq1wuHqzPO
xuBulBB/C/4mQajnliyLMHBAnh0bDjV3agG7TdeEGpIhE2G/SXpxCwQqAIpGITxS/KoFApN/
vlW2DFQA4S/d6ga/6/vqzGEqfbLc+f37b8YhLMM7q29d/664yhUGrbMt4h8hNgnP5NFtYfit
Xh+DUTqw43tD/sMvCW6ztXC+BgB9Rw5S9A05SFGACCtY1Y/YbTuQL4vw/Asln0Eh2TcwzRK+
MqrJ7x+Bwxvifp8/+Rde4hohrlmBa1r+mhagzRTIDVgTWKBX8QPKb6GJEFXS2SAcJKYGJEE5
TKKFW1RSCDRvmO58BwgEQHwKxGf2TcCZZLgR02Kf17R6mrWTI7fpEeg+qxcIaSYbHUQFUHNt
D7j1AnOg6m+VcQBkMRg8q9dqiRJyONp2ZKnanRyM79kAFYVWA277/IAnr1sqlAa0vl7CsKD1
b8B5r3VQJuxIL/Wv8MIbYrzQ4cfTP1pwuhsG6xHUIGa1UntMo+qcbouoEmV/aZoldGeyHfTF
FqVpgrP7ogR967TUt1Bk4zd1wJNKSBrQKoAVWH6FFPnKLpFSS2yxFL2jptt2TwkmWLz+dx+N
vgFe1SYhyZxJCog6WmgTtE5irZQ/jZFUh15H3QitjBfgio9L/X4eXVFmYhgOcJRNS+1ADcMR
I60dvIAPsLutb9NuKKitfVmVr6hY161wOH0mW1d/2BvmEHCrMcqK3aPJ10AInT6/tfMVFlkT
N8+QU7fQivrkLZL59K1rT2sCl9neKdza9PRO4vo845/IHVOMfzKfazrnFFRN6XyqdU3rrom9
fmqvn9y1OusneJVBzSd50fimE71WzUKTvWu6tyd815Svzt7atO8iylcJL/55zai3aftlNS4K
FbTs6+c1PUEZs4ZBYA1lyyRQOa4bBYZZ4DFFWEttw9iacKDxMA3/O0zDNDyhDzd0eDSyVyHz
OchWy/NoZUklbvj8+ANrtGKK53k7GI3aQa/XVRLbcPxATSEU5hH7fbgXjPrs+4fDvZ+j8Swu
SNKlZlyPIIbmw14eR2V8uLdOG8NDhv9OoPm8kUMQkxLSxJJHIy15xJJ7PS2Z02jgYBqOHWmg
+HR0CoRArWNWIHgtH87i8lWWxzSsmrVp1G8z4aXxqL24KAFDloeTCIKDIST17zk0mvzX2+Dt
1m0a2eEuywbZj2FmTFzJ3HgFQVR6nwc//hhsqzaTIVXSwcqkivw7hq+IH0SMDzomVop0bXFa
PgDSN0kaq31KmCCNBjdykc1mPmNmb/uKj68a4+Ak6pKQ51YydP9oZCVDn4uBIEK/ebtf5bGU
5FFf2j2K/ajEFEuLmX2rii7mIHOHGMvt3PoQYwW2iXtaB68JMVbpWEWIsdauLxJirFDQLMRY
Y8EGDTGW/aoYj9rA0KFMW5KFHo+v9LSLwG1mmzHIPFkEItvzm8tol/PGKm12NkxcFnuNwW7M
xZmyKFUiMvWAf+avE9GfAQu/1kJCB/Ewmo3Lf6qJ6pVIq2v+n2vOplc2XJ6WYQcJoVM/r/3/
i39T0vCGBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

-----

   -- 
   Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
   {oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
   oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
   *** E-mail about software projects will be forwarded to mailing lists



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-07-05 12:40 Georg Bauhaus
  1999-07-06 12:49 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Georg Bauhaus @ 1999-07-05 12:40 UTC (permalink / raw)
  To: egcs-bugs

// NOT including <list> results in an internal compiler error
// #include<list>

struct S {
  std::list<char> cl;
};

/* * *
Linux sonnenregen 2.2.1 #3 SMP Fri Apr 23 06:04:04 CEST 1999 i586 unknown

g++ -c bug.cc    # this file

bug.cc:4: Internal compiler error 980711.
bug.cc:4: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
bug.cc:4: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

g++ -v:
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release)

(the same happens on a different machine operated by RedHat Linux:

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

Linux zorro.uni-duisburg.de 2.2.5-15smp #1 SMP Mon Apr 19 22:43:28 EDT 1999 i686 unknown

)

-# georg

* * */


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-07-05 11:08 Thomas Maeder
  1999-07-06 12:48 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Thomas Maeder @ 1999-07-05 11:08 UTC (permalink / raw)
  To: egcs-bugs

Here's another one, this time without date.

g++ -I//h/Probase/Source -c
//h/Probase/Source/Geometry/Square/Occupy.cpp -o
//g/Probase99/Geometry/Square/Occupy.o
//h/Probase/Source/Geometry/Square/Occupy.cpp: In method `void
::Geometry::Square::Occupy::execute()':
//h/Probase/Source/Geometry/Square/Occupy.cpp:37: Internal compiler
error.
//h/Probase/Source/Geometry/Square/Occupy.cpp:37: Please submit a full
bug report to `egcs-bugs@egcs.cygnus.com'.
//h/Probase/Source/Geometry/Square/Occupy.cpp:37: See
<URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
Occupy.zip


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-05  6:00 F. Heitkamp
  1999-07-05  6:06 ` Alexandre Oliva
@ 1999-07-05  7:18 ` Franz Sirl
  1 sibling, 0 replies; 387+ messages in thread
From: Franz Sirl @ 1999-07-05  7:18 UTC (permalink / raw)
  To: F. Heitkamp; +Cc: egcs-bugs

At 15:01 05.07.99 , F. Heitkamp wrote:

>This is a result of using egcs-19990626, binutils-2.9.4.0.7, glibc-2.1.1
>(also compiled with egcs-19990629), and Linux-2.2.8d on a PowerPC (APUS)
>PowerUP on Amiga.  I was compiling enlightenment from a recent CVS pull.

This bug is known, there is also a patch for it which will hopefully be 
accepted for 2.95.1, but didn't make it into 2.95.

Search the egcs-patches archives for gen_add2_insn and take the latest 
patch from me you find.

Franz.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-07-05  6:00 F. Heitkamp
@ 1999-07-05  6:06 ` Alexandre Oliva
  1999-07-06  3:34   ` F. Heitkamp
  1999-07-05  7:18 ` Franz Sirl
  1 sibling, 1 reply; 387+ messages in thread
From: Alexandre Oliva @ 1999-07-05  6:06 UTC (permalink / raw)
  To: F. Heitkamp; +Cc: egcs-bugs

On Jul  5, 1999, "F. Heitkamp" <fheitka@ibm.net> wrote:

> Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
                  ^^^^
> See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Please do

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-07-05  6:00 F. Heitkamp
  1999-07-05  6:06 ` Alexandre Oliva
  1999-07-05  7:18 ` Franz Sirl
  0 siblings, 2 replies; 387+ messages in thread
From: F. Heitkamp @ 1999-07-05  6:00 UTC (permalink / raw)
  To: egcs-bugs

This is a result of using egcs-19990626, binutils-2.9.4.0.7, glibc-2.1.1
(also compiled with egcs-19990629), and Linux-2.2.8d on a PowerPC (APUS)
PowerUP on Amiga.  I was compiling enlightenment from a recent CVS pull.

Making clean in epp
make[1]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/epp'
test -z "epp" || rm -f epp
rm -f *.o core *.core
make[1]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/epp'
Making clean in eesh
make[1]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/eesh'
test -z "eesh" || rm -f eesh
rm -f *.o core *.core
make[1]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/eesh'
Making clean in dox
make[1]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
Making clean in .
make[2]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
test -z "dox" || rm -f dox
rm -f *.o core *.core
make[2]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
Making clean in E-docs
make[2]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox/E-docs'
make[2]: Nothing to be done for `clean'.
make[2]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox/E-docs'
make[1]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
make  all-recursive
make[1]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e'
Making all in dox
make[2]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
Making all in E-docs
make[3]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox/E-docs'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox/E-docs'
make[3]: Entering directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
/usr/egcs-19990629/bin/gcc -DENLIGHTENMENT_ROOT=\"/usr/local/enlightenment\" -I.. -I/usr/local/include -I/usr/local/include -I..    -g -O2 -c format.c
format.c: In function `RenderPage':
format.c:775: Internal compiler error in `gen_add2_insn', at optabs.c:3681
Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
make[3]: *** [format.o] Error 1
make[3]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e/dox'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/drives/work1/src/gnome-src/enlightenment/e'
make: *** [all-recursive-am] Error 2


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-06-14 10:57 Internal compiler error Yehoshua Shoshan
@ 1999-06-30 23:07 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-06-30 23:07 UTC (permalink / raw)
  To: Yehoshua Shoshan; +Cc: egcs-bugs

On Jun 14, 1999, Yehoshua Shoshan <y-shoshan@ti.com> wrote:

> klocale.cpp:311: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Please do

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-06-30 23:07 Stefan Ring
  0 siblings, 0 replies; 387+ messages in thread
From: Stefan Ring @ 1999-06-30 23:07 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 2239 bytes --]

c++ -o queue.o -g -O0  -Wall -c queue.cc
queue.cc: In function `int main()':
queue.cc:6: Internal compiler error.
queue.cc:6: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
queue.cc:6: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.

You asked for a bug report .. here you go

This is an Intel i586 based system running glibc 2.1.1, Linux 2.2.9,
almost
stock egcs-1.1.2
The only patch made to egcs is egcs-1.1.2-davem.patch from RedHat

Options given to configure: --enable-shared --enable-threads
--prefix=/usr/egcs-1.1.2

The same happens on stock RedHat 6.0

Attached is the source file, the afforementioned patch and the
preprocessor output
--- egcs-1.1.2/gcc/ChangeLog~	Sat Mar 13 18:38:18 1999
+++ egcs-1.1.2/gcc/ChangeLog	Wed Mar 17 00:08:26 1999
@@ -1,3 +1,8 @@
+Wed Mar 17 00:05:41 1999  David S. Miller  <davem@redhat.com>
+
+	* jump.c (jump_optimize): Verify that registers used by jumps are
+	not clobbered by instructions being moved.
+
 Sun Mar 14 02:38:07 PST 1999 Jeff Law  (law@cygnus.com)
 
 	* egcs-1.1.2 Released.
--- egcs-1.1.2/gcc/jump.c.~1~	Mon Feb 15 14:10:23 1999
+++ egcs-1.1.2/gcc/jump.c	Wed Mar 17 00:11:46 1999
@@ -862,7 +862,11 @@
 		  && ! reg_referenced_between_p (temp1, p, NEXT_INSN (temp3))
 		  && ! reg_set_between_p (temp1, p, temp3)
 		  && (GET_CODE (SET_SRC (temp4)) == CONST_INT
-		      || ! modified_between_p (SET_SRC (temp4), p, temp2)))
+		      || ! modified_between_p (SET_SRC (temp4), p, temp2))
+		  /* Verify that registers used by the jump are not clobbered
+		     by the instruction being moved.  */
+		  && ! modified_between_p (PATTERN (temp), temp2,
+					   NEXT_INSN (temp2)))
 		{
 		  emit_insn_after_with_line_notes (PATTERN (temp2), p, temp2);
 		  delete_insn (temp2);
@@ -960,6 +964,10 @@
 						 NEXT_INSN (temp2))
 		  && ! reg_set_between_p (temp1, insert_after, temp)
 		  && ! modified_between_p (SET_SRC (temp4), insert_after, temp)
+		  /* Verify that registers used by the jump are not clobbered
+		     by the instruction being moved.  */
+		  && ! modified_between_p (PATTERN (temp), temp3,
+					   NEXT_INSN (temp3))
 		  && invert_jump (temp, JUMP_LABEL (insn)))
 		{
 		  emit_insn_after_with_line_notes (PATTERN (temp3),


[-- Attachment #2: queue.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 27911 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-06-30 23:07 Brett W Vasconcellos
  0 siblings, 0 replies; 387+ messages in thread
From: Brett W Vasconcellos @ 1999-06-30 23:07 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 2084 bytes --]

I got an internal compiler error.  Here is the command line, output and .ii 
file (let me know if the attachment works ok...)

Brett

g++ -v --save-temps -Wall -Wno-unused -g -D_REENTRANT -DPARANOID -DPERFMON 
-DSTATS -DCACHESIZE=32768 -DENABLE_MMX  perftest.cc -o perftest.debug 
../lib/libspectra.a ../lib/fftw/src/libfftw.a -lpthread  -I../lib/vr 
-I../lib/vrio -I../lib/vrp -I../lib/vrvoice -I../lib/vrgui -I../lib/fftw/src 
-I../lib/libpperf

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -I../lib/vr 
-I../lib/vrio -I../lib/vrp -I../lib/vrvoice -I../lib/vrgui -I../lib/fftw/src 
-I../lib/libpperf -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus 
-D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ 
-D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux 
-Asystem(posix) -D__EXCEPTIONS -g -Wall -Wno-unused -Asystem(unix) -Acpu(i386) 
-Amachine(i386) -Di386 -D__i386 -D__i386__ -D_REENTRANT -DPARANOID -DPERFMON 
-DSTATS -DCACHESIZE=32768 -DENABLE_MMX perftest.cc perftest.ii
GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 
Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 ../lib/vr
 ../lib/vrio
 ../lib/vrp
 ../lib/vrvoice
 ../lib/fftw/src
 ../lib/libpperf
 /usr/include/g++-2
 /usr/local/include
 /usr/i386-redhat-linux/include
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus perftest.ii -quiet 
-dumpbase perftest.cc -g -Wall -Wno-unused -version -o perftest.s
GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) 
(i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux 
(egcs-1.1.2 release).
perftest.cc:0: Internal compiler error.
perftest.cc:0: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
perftest.cc:0: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.


[-- Attachment #2: perftest.ii.gz --]
[-- Type: application/x-gzip, Size: 41487 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-06-30 23:07 Internal Compiler Error Jose Santiago
  1999-06-11 13:03 ` Alexandre Oliva
@ 1999-06-30 23:07 ` Martin v. Loewis
  1 sibling, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-06-30 23:07 UTC (permalink / raw)
  To: jose; +Cc: egcs-bugs

> ../include/mico/sysexc.h:24: See
> <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Please do. Sending just the header file does not help.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-06-30 23:07 Brad P. Crochet
  0 siblings, 0 replies; 387+ messages in thread
From: Brad P. Crochet @ 1999-06-30 23:07 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 172 bytes --]

Same code (almost). This time, I have zstring.* in ../newcommon, and I
get an internal compiler error.

Thanks.

Command line is:

g++ -o foo -I ../newcommon foo.cpp

Brad

[-- Attachment #2: bug.tar.bz2 --]
[-- Type: application/x-bzip2, Size: 13523 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-06-30 23:07 Jose Santiago
  1999-06-11 13:03 ` Alexandre Oliva
  1999-06-30 23:07 ` Martin v. Loewis
  0 siblings, 2 replies; 387+ messages in thread
From: Jose Santiago @ 1999-06-30 23:07 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1230 bytes --]

I was attempting to compile mico-2.2.7 on an HPUX 10.20 box using egcs
1.1.2 and the following error occurred:
c++ -frepo -I../include -I/usr/src/mico-2.2.7/./include/ministl 
-O   -fno-exceptions -I/appl/netapps/qt/include -I/appl/netapps/gtk/include
-I/appl/netapps/tcltk/include  -fexceptions -c except2.cc -o except2.o
../include/mico/sysexc.h: In function `static class TCUNKNOWN * TCUNKNOWN::instance()':
In file included from except2.cc:260:
../include/mico/sysexc.h:24: warning: sorry: semantics of inline function
static data `class TCUNKNOWN * p' are wrong (you'll wind up with multiple
copies)
../include/mico/sysexc.h:24: Internal compiler error.
../include/mico/sysexc.h:24: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
../include/mico/sysexc.h:24: See <URL: http://egcs.cygnus.com/faq.html#bugreport >
for details.
make[1]: *** [except2.o] Error 1
make[1]: Leaving directory `/usr/src/mico-2.2.7/orb'
make: *** [system] Error 1
 
 
-- 
Jose Santiago

Senior Systems Analyst - Scientific Systems
Komatsu Mining Systems - Peoria Operations
2300 N.E. Adams Street
P.O. Box 240
Peoria, IL 61650-0240

Voice:309-672-7325  Fax:309-672-7753
mailto:jose@haulpak.com
 
sysexc.h


[-- Attachment #2: sysexc.h --]
[-- Type: text/plain, Size: 1593 bytes --]

// -*- c++ -*-
/*
 *  MICO --- a free CORBA implementation
 *  Copyright (C) 1997-98 Kay Roemer & Arno Puder
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public
 *  License along with this library; if not, write to the Free
 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *  Send comments and/or bug reports to:
 *                 mico@informatik.uni-frankfurt.de
 */

SYSEXC (UNKNOWN)
SYSEXC (BAD_PARAM)
SYSEXC (NO_MEMORY)
SYSEXC (IMP_LIMIT)
SYSEXC (COMM_FAILURE)
SYSEXC (INV_OBJREF)
SYSEXC (NO_PERMISSION)
SYSEXC (INTERNAL)
SYSEXC (MARSHAL)
SYSEXC (INITIALIZE)
SYSEXC (NO_IMPLEMENT)
SYSEXC (BAD_TYPECODE)
SYSEXC (BAD_OPERATION)
SYSEXC (NO_RESOURCES)
SYSEXC (NO_RESPONSE)
SYSEXC (PERSIST_STORE)
SYSEXC (BAD_INV_ORDER)
SYSEXC (TRANSIENT)
SYSEXC (FREE_MEM)
SYSEXC (INV_IDENT)
SYSEXC (INV_FLAG)
SYSEXC (INTF_REPOS)
SYSEXC (BAD_CONTEXT)
SYSEXC (OBJ_ADAPTER)
SYSEXC (DATA_CONVERSION)
SYSEXC (OBJECT_NOT_EXIST)
SYSEXC (TRANSACTION_REQUIRED)
SYSEXC (TRANSACTION_ROLLEDBACK)
SYSEXC (INVALID_TRANSACTION)
SYSEXC (INV_POLICY)

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-02-28 23:30 internal " Kim Sebo
@ 1999-06-25  7:04 ` Jeffrey A Law
  0 siblings, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1999-06-25  7:04 UTC (permalink / raw)
  To: Kim Sebo; +Cc: egcs-bugs

  In message <rhiudfhuep.fsf@mso.anu.edu.au>you write:
  > 
  > The following short piece of code produces an internal compiler error
  > with the latest CVS sources, if compiled with any optimization.
  > Platform is Solaris 2.6 sparc. egcs-1.1.1, egcs-1.1 and
  > gcc-2.8.1 all compile it OK.
  > 
  > int main() {
  >     int i, j, maxval = 255;
  >     float foo=1.0;
  > 
  >         for(i=0;i<10;i++)
  >         for(j=0;i<10;j++) 
  >             printf(" %3d",(int)maxval*foo);  
  >     }
[ ... ]
This seems to be working fine now.  Presumably it was a transient problems in
the egcs sources.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-06-24  0:46 Ludger Kunz
  0 siblings, 0 replies; 387+ messages in thread
From: Ludger Kunz @ 1999-06-24  0:46 UTC (permalink / raw)
  To: egcs-bugs

Hello,

i tried to compile egcs-19990623 on a DEC-Alpha workstation xp1000 with
DigitalUNIX 4.0E.
While building libgcc2 the following error was reported:

_muldi3
./libgcc2.c: In function `__muldi3':
./libgcc2.c:305: Internal compiler error in `float_signal', at
toplev.c:2418
Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

I hope the informations are sufficient.

Regards,

L. Kunz
-- 
*******************************************
* Ludger Kunz                             *
* T-Mobil                                 *
* Planung und Management TMN T343         *
* Landgrabenweg 151                       *
* D-53227 Bonn                            *
*                                         *
* Phone:  +49 228 936 6893                *
* Fax:    +49 228 936 886893              *
* Mobile: +49 171 20 20 717               *
* Email:  kunz@bndiux04.dcnv.detemobil.de *
*******************************************
>From law@cygnus.com Thu Jun 24 01:04:00 1999
From: Jeffrey A Law <law@cygnus.com>
To: kthomas@gwdg.de (Philipp Thomas)
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: egcs-1.1.2: gcc seems to use direcory "ld" as linker 
Date: Thu, 24 Jun 1999 01:04:00 -0000
Message-id: <3160.930211415@upchuck.cygnus.com>
References: <377fb24a.44902203@mailer.gwdg.de>
X-SW-Source: 1999-06/msg00775.html
Content-length: 459

  In message < 377fb24a.44902203@mailer.gwdg.de >you write:
  > On Wed, 23 Jun 1999 14:22:47 -0600, Jeffrey A Law <law@cygnus.com>
  > Yep, major error to do so. But isn't it still an error that egcs
  > doesn't check whether it's a directory it found ?
Yes.

  > Speaking of which, I
  > now seem to remember that a fix for this went in, no ?
A patch was submitted.  We'll deal with it after gcc-2.95 since it is not
critical for the gcc-2.95 release.
jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-06-21  7:02 Ian Miller
  0 siblings, 0 replies; 387+ messages in thread
From: Ian Miller @ 1999-06-21  7:02 UTC (permalink / raw)
  To: egcs-bugs

As requested by the compiler, I am reporting an internal error.  I encountered this while trying to build libstdc++-2.90.5 on Solaris 7.

I am using "gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)"
It is running on a Sun Ultra-5 under Solaris 7 (SunOS 5.7; unpatched)
The full options (as generated by make) are:-
c++ -DHAVE_CONFIG_H -I. -I. -I.. -nostdinc++ -I.. -I../stl -I../libio -g -D_GNU_SOURCE -fno-implicit-templates -fimplicit-templates -c  -fPIC -DPIC misc-inst.cc -o .libs/misc-inst.lo

The preprocessor output (gzip format) is attached.

Ian
misc-inst.ii.gz


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1999-06-14  6:36 Volker Dobler P945 <volker.dobler@uni-konstanz.de>
@ 1999-06-14 15:55 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-06-14 15:55 UTC (permalink / raw)
  To: volker; +Cc: egcs-bugs

> the following code produces an internal compiler error.

Thanks for your bug report. gcc-2.95 19990606 compiles your code just
fine, so it appears that the bug has been fixed.

Regards,
Martin
>From craig@jcb-sc.com Mon Jun 14 16:22:00 1999
From: craig@jcb-sc.com
To: oliva@dcc.unicamp.br
Cc: craig@jcb-sc.com
Subject: Re: Results for gcc-2.95 19990608 (prerelease) testsuite on sparc-sun-sunos4.1.3
Date: Mon, 14 Jun 1999 16:22:00 -0000
Message-id: <19990614230418.10402.qmail@deer>
References: <199906142151.SAA21986@araguaia.dcc.unicamp.br> <199906142151.SAA21986@araguaia.dcc.unicamp.br>
X-SW-Source: 1999-06/msg00384.html
Content-length: 164

>FAIL: g77.f-torture/compile/980310-3.f,  -O2 -fomit-frame-pointer -finline-functions -funroll-loops  

Has this failure been looked into?

        tq vm, (burley)
>From chris@classnet.med.miami.edu Mon Jun 14 16:43:00 1999
From: Christopher C Chimelis <chris@classnet.med.miami.edu>
To: egcs-bugs@egcs.cygnus.com
Subject: Internal compiler error on Alpha Linux (glibc 2.1.1)
Date: Mon, 14 Jun 1999 16:43:00 -0000
Message-id: <Pine.LNX.3.96.990614193613.13528A-101000@beezer.med.miami.edu>
X-SW-Source: 1999-06/msg00385.html
Content-length: 563

egcs version: 1.1.2
system type: Alpha (linux)
command line: (from xspread 3.1.1c source)
  gcc -I. -I. -c -O2 -g -Wall -L/usr/X11R6/lib interp.c

I get this:
  ../../gcc/reload1.c:2060: Internal compiler error in function reload

This appears to be an optimiser bug on the Alphas (running Linux).  If I
compile with -O1, it compiles without an error, but give and internal
compiler error with -O2.  I've attached the preprocessed file in question.

FYI, I'll be reporting alot of Alpha bugs in the next few weeks relating
to the optimiser, so be prepared :-)

C
>From chris@classnet.med.miami.edu Mon Jun 14 16:58:00 1999
From: Christopher C Chimelis <chris@classnet.med.miami.edu>
To: egcs-bugs@egcs.cygnus.com
Subject: Another Internal compiler error on Alpha Linux (glibc 2.1.1)
Date: Mon, 14 Jun 1999 16:58:00 -0000
Message-id: <Pine.LNX.3.96.990614195126.14274A-101000@beezer.med.miami.edu>
X-SW-Source: 1999-06/msg00386.html
Content-length: 638

egcs version: 1.1.2
system type: Alpha (linux)
command line: (from r-base 0.64.1 source)
  gcc -mieee -Wall -O2 -I../include -I../../src/include  -c dotcode.c \
      -o dotcode.o
 (ignore the slash...my mailer wraps the text and I wanted to keep it
  together)

I get this:
../../gcc/reload1.c:2649: Internal compiler error in function
verify_initial_elim_offsets

This appears to be an optimiser bug on the Alphas (running Linux).  If I
compile with -O1, it compiles without an error, but gives an internal
compiler error with -O2.  I've attached the preprocessed file in question.

One more for today...so expect one more email :-)

C
>From Barrie.Treloar@camtech.com.au Mon Jun 14 17:07:00 1999
From: Barrie Treloar <Barrie.Treloar@camtech.com.au>
To: Barrie Treloar <Barrie.Treloar@camtech.com.au>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: cpp macro expansion bug/query boundary="------------32D99FAAC36ABE0FE8FB5C3E"
Date: Mon, 14 Jun 1999 17:07:00 -0000
Message-id: <Pine.GSO.4.05.9906150934020.27884-100000@tarkin>
References: <373E781C.54BED0AA@camtech.com.au>
X-SW-Source: 1999-06/msg00387.html
Content-length: 1665

On Sun, 16 May 1999, Barrie Treloar wrote:

I have not received any confirmation that this message has been
received.  Should I be expecting any such message?  

I'm not really after an answer, but one would not hurt, as I already
have a work around.

regards,                                   

> Hi,
> When using gcc -E, or cpp, I find that an argument to a macro
> is expanded with a single leading and a single trailing space.
> 
> This is not what I expected.  I'm not sure if this is what is meant
> to happen (at least it doesn't make any sense).
> 
> If you use the option -traditional then the macro is expanded correctly,
> that is, there are no leading or trailing spaces.
> 
> If you use the option -ansi (or no options) then the macro is expanded
> incorrectly.
> 
> I have attached the test file (foo), with the output from both the
> -traditional (foo.traditional) and -ansi (foo.ansi) options.
> 
> I am running this in the following environment:
> 	Windows 98 (4.10.1998)
> 	Cygwin toolset (gcc --version: egcs-2.91.57)
> 	
> Command invoked:
> 	gcc -E -x c -ansi foo
> 	gcc -E -x c -traditional foo
> 
> Any suggestions appreciated.
> 
> Thanks
> 
> Barrie.

Barrie
--
Barrie Treloar
____________________________________________________________________

  Barrie Treloar                      Phone: +61 8 8303 3300
  Senior Analyst/Programmer           Fax:   +61 8 8303 4403 
  Electronic Commerce Division        Email: barrie@camtech.com.au
  Camtech (SA) Pty Ltd                http://www.camtech.com.au
 --- Level 8, 10 Pulteney Street, Adelaide SA 5000, Australia. ---
____________________________________________________________________



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-06-14 10:57 Yehoshua Shoshan
  1999-06-30 23:07 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Yehoshua Shoshan @ 1999-06-14 10:57 UTC (permalink / raw)
  To: egcs-bugs

During compilation of kdelibs on Solaris2.6 with qt2.0beta1
I got the following:


/bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kdeui
-I/sw/tools/solaris/5.6/beta/kde/include -I/usr/openwin/include      -O2 -Wall -c klocale.cpp
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kdeui -I/sw/tools/solaris/5.6/beta/kde/include -I/usr/openwin/include
-O2 -Wall -c  -fPIC -DPIC klocale.cpp -o klocale.lo
klocale.cpp: In method `KLocale::KLocale(class QString = QString::null)':
klocale.cpp:311: Internal compiler error.
klocale.cpp:311: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
klocale.cpp:311: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
gmake[2]: *** [klocale.lo] Error 1

Yehoshua
>From jonpryor@vt.edu Mon Jun 14 12:28:00 1999
From: "Jonathan Pryor" <jonpryor@vt.edu>
To: <egcs-bugs@egcs.cygnus.com>
Subject: BUG: gcc-2.95 19990609 - namespaces and explicit template specializations
Date: Mon, 14 Jun 1999 12:28:00 -0000
Message-id: <07aa01beb69c$1b1e5a40$e63d2509@jonpryor.raleigh.ibm.com>
X-SW-Source: 1999-06/msg00374.html
Content-length: 3747

I've experienced a bug with the gcc-2.95 regarding explicit
template specializations in namespaces.

In a nutshell, if I declare/define a template class within
a namespace, then try to specialize that class using the
`namespace-name::class-name' syntax, the compiler gives
an error.  Sample code and an more in-depth explanation
follow the compiler information.

    gcc version: gcc-2.95 19990609 (prerelease)

    OS Version: Windows NT 4.0 SP4

    compiler binary available at:

ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygb20/snapshots/gcc-2.95-199
90609/

    compiler patches:
        Available from the compiler location.
        gcc-2.95-anon-struct-union.diff ... Anonymous structs/unions in C.
        gcc-2.95-c++-anon-struct.diff   ... Anonymous structs in C++.
        gcc-2.95-c++-com1.diff ............ Jason's COM patch.
        gcc-2.95-c++-com2.diff ............ Mumit Khan's tweak for COM.
        gcc-2.95-c++-memfn-refs.diff ...... Jason's VC++ memfn compat.
        gcc-2.95-c++-tidy.diff ............ Jason's C++ "tidying" patch.
        gcc-2.95-libf2c-sysclock.diff ..... Support SYSTEM_CLOCK in WIN32
        gcc-2.95-libgcc2.diff ............. Cross-compilation support.
        gcc-2.95-pragma-pack.diff ......... Mumit Khan's pragma pack patch.
        gcc-2.95-relative-path.diff ....... Cygnus relative pathname patch +
my
                                            tweak.
        gcc-2.95-setasmop.diff ............ Support alias for x86-win32.
        gcc-2.95-stdcall-fix.diff  ........ Fix stdcall FP stack popping
bug.
        gcc-2.95-winnt.diff ............... Hack to support entire classes
from
                                            DLLs in C++.

    patches available from:

ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygb20/snapshots/gcc-2.95-199
90609/patches/

    compile line: g++ ns.cpp

Sample Code:

    // ns.cpp - namespace problems?

    namespace foo {
        void bar ();
        template <typename T>
            struct qux {};
    }


    void foo::bar ()
    {
    }


    template<> struct foo::qux<int> {
        static void argh ();
    };


    void foo::qux<int>::argh ()
    {
    }


    int main ()
    {
        return 0;
    }

After trying to compile the sample program, the compiler
generates an error on the line:

    template<> struct foo::qux <int>

The error message reads:

    ns.cpp:15: specializing `struct foo::qux<int>' in different namespace
    ns.cpp:6:   from definition of `template <class T> struct foo::qux<T>'

However, the namespace *is* provided as part of the structure name.

Furthermore, the code in the example is standard-conforming:
>From the standard, section 14.7.3 paragraph 9:

    A template explicit specialization is in the scope of the
    namespace in which the template was defined.
    [Example:
        namespace N {
            template<class T> class X { /* ... */ };
            template<class T> class Y { /* ... */ };

            template<> class X<int> { /* ... */ };  // OK: specialization
                                                    //  in same namespace
            template<> class Y<double>;             // forward declare
intent to
                                                    // specialize for double
        }

        template<> class N::Y<double> { /* ... */ }; // OK: specialization
                                                     //  in same namespace
    --end example]

Workaround: wrap the template specialization with a namespace declaration.
For example, change this:

    template<> struct foo::qux<int> {
        static void argh ();
    };

Into this:

    namespace foo {
        template<> struct foo::qux<int> {
            static void argh ();
        };
    }

 - Jon


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-06-14  6:36 Volker Dobler P945 <volker.dobler@uni-konstanz.de>
  1999-06-14 15:55 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Volker Dobler P945 <volker.dobler@uni-konstanz.de> @ 1999-06-14  6:36 UTC (permalink / raw)
  To: egcs-bugs

Hello,

the following code produces an internal compiler error.
I tried the two newest releases of egcs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
on a Linux box
Linux hugo 2.2.7 #2 SMP Tue May 11 16:47:11 MEST 1999 i686 unknown
when compiled without any options/flags.

I must admit I'm unsure if the code is correct C++.
If the struct bar is declared outside the function f
it works fine.

I hope this will help you

Bye

Volker Dobler




template< class T >
struct foo 
{
  void f() {
    struct bar {
      bar() { }
    };
  }

  foo()  { }
};

int main()
{
  foo<int> f;
}






^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-06-30 23:07 Internal Compiler Error Jose Santiago
@ 1999-06-11 13:03 ` Alexandre Oliva
  1999-06-30 23:07 ` Martin v. Loewis
  1 sibling, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-06-11 13:03 UTC (permalink / raw)
  To: Jose Santiago; +Cc: egcs-bugs

On Jun 11, 1999, Jose Santiago <jose@haulpak.com> wrote:

> ../include/mico/sysexc.h:24: See
> <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Please do.  The header file you posted does not make any sense at all
without the rest of the sources.  And please avoid posting HTML to
this list, you're just wasting bandwidth :-)

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
       [not found] <3735BE50.41C6@etl.go.jp>
@ 1999-05-31 21:06 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-05-31 21:06 UTC (permalink / raw)
  To: tmasuda; +Cc: egcs-bugs

> This is an internal compiler error which occured while building
> libstdc++-2.90.4/src by egcs-1.1.2 compiler on mips-sgi-irix6.3.

Thanks for your bug report.  egcs-2.93.21 compiles this without
problems (on i586-pc-linux-gnu), so it appears that the bug is fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-05-31 21:06 Lin Tzy Li
  0 siblings, 0 replies; 387+ messages in thread
From: Lin Tzy Li @ 1999-05-31 21:06 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 2286 bytes --]

	Hi! I was testing std::findif (I'm beginner in STL) to fit to my
problem when error occurred in my last compilation. I'll try to do
anything else to solve my problem now. I don't know how yet...
	I attached mysources.tar.gz (to allow you compile the code as I
did), vertice.ii.gz and vertice.s.gz (as asked for in your bugreport
page), which were the output corresponding to:  

 cd /home/msc98/940932/lin/OSS/scaffold/
 g++ -v --save-temps  -g -I/p/onsona/users/lin/OSS/scaffold -c vertice.cpp
-o /p/onsona/users/lin/OSS/scaffold/obj/vertice.o
IC .env v 971102.1
Reading specs from
/n/gnu/egcs-1.1.2-gpc-19980830/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)

/n/gnu/egcs-1.1.2-gpc-19980830/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.66/cpp
-lang-c++ -v -I/p/onsona/users/lin/OSS/scaffold -undef -D__GNUC__=2
-D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dsparc -Dsun -Dunix
-D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4
-D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -g
-D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) vertice.cpp vertice.ii
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /p/onsona/users/lin/OSS/scaffold
 /n/gnu/egcs-1.1.2-gpc-19980830/include/g++
 /n/gnu/egcs-1.1.2-gpc-19980830/sparc-sun-solaris2.6/include

/n/gnu/egcs-1.1.2-gpc-19980830/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.66/include
 /usr/include
End of search list.

/n/gnu/egcs-1.1.2-gpc-19980830/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.66/cc1plus
vertice.ii -quiet -dumpbase vertice.cc -g -version -o vertice.s
GNU C++ version egcs-2.91.66 19990314 (egcs-1.1.2 release)
(sparc-sun-solaris2.6) compiled by GNU C version egcs-2.91.66 19990314
(egcs-1.1.2 release).
vertice.cpp: In method `class Aresta * Vertice::get1Aresta(class Vertice
*)':
vertice.cpp:83: warning: assuming pointer to member function is
non-virtual
vertice.cpp:83: Internal compiler error.
vertice.cpp:83: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
vertice.cpp:83: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details.

Compilation exited abnormally with code 1 at Thu May  6 22:06:23


[-- Attachment #2: mycodes.tar.gz --]
[-- Type: application/x-gzip, Size: 2613 bytes --]

[-- Attachment #3: vertice.ii.gz --]
[-- Type: application/x-gzip, Size: 30428 bytes --]

[-- Attachment #4: vertice.s.gz --]
[-- Type: application/x-gzip, Size: 7727 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-04-30 23:15 internal " Manush Dodunekov
@ 1999-05-31 21:06 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-05-31 21:06 UTC (permalink / raw)
  To: manush; +Cc: egcs-bugs

> The attached source causes an internal compiler error 382.

Thanks for your bug report. gcc-2.95 19990523 compiles it without
problems, so it seems the bug has been fixed.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-05-31 21:06 Gregory Hosler
  1999-05-17  0:16 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Gregory Hosler @ 1999-05-31 21:06 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I just got the following:

g++  -DLINUX -Di386 -I/usr/include/g++ -I/usr/local/include -DINGRES -DESQL -c -
o obfdir-Linux/OutletConfig.o -s -I/usr/X11R6/include  -I/usr/X11R6/include -I/u
sr/include -Iinclude                        -I/usr/local/include -I/usr/local/in
clude/bx   -Isrc -DMI                        -IEZRPC-Linux -I/usr/local/flexlm/s
ources/machind   -USCCS_ID_H_FILE -DMAXISYS src/OutletConfig.cpp
In file included from /usr/local/include/nih/String.h:96,
                 from include/OutletConfig.h:64,
                 from src/OutletConfig.cpp:48:
/usr/local/include/nih/Object.h:165: warning: abstract declarator used as declar
ation
In file included from include/erc.h:43,
                 from include/hil.h:39,
                 from include/NetUtility.h:502,
                 from src/OutletConfig.cpp:49:
include/grc.h:85: Internal compiler error.
include/grc.h:85: Please submit a full bug report to `egcs-bugs@cygnus.com'.

=========

# g++ --version
egcs-2.90.29 980515 (egcs-1.0.3 release)

===================================

I realize that the above is not sufficient for your needs. I would like
to know what info you might desire, so that I can provide it to you.

Thanks, and regards,

-Greg

----------------------------------
E-Mail: Gregory Hosler <gregory.hosler@eno.ericsson.se>
Date: 07-May-99
Time: 08:52:219

  "We've heard that a million monkeys at a million keyboards could produce
   the Complete Works of Shakespeare; now, thanks to the Internet, we know
   this is not true."            Robert Wilensky, University of California


----------------------------------


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-05-31 21:06 Benjamin Pflugmann
  1999-05-23  1:29 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Benjamin Pflugmann @ 1999-05-31 21:06 UTC (permalink / raw)
  To: egcs-bugs

Hi.

Sorry, but my english is not very good.

I encountered an "internal compiler error" when I tried to compile the
source given below. 

------------------------------------------------------------
src> c++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
src> uname -a
Linux noclue.hq.spin.de 2.0.36 #1 Tue Oct 13 22:17:11 EDT 1998 i586 unknown
src> cat replace.cc
# 1 "replace.cc"
typedef const char *(func_type)();

class
{
public:
  func_type *Function;
  const func_type* function(void) { return Function; }
} action;

void work(const char *source)
{
  work( action.function()() );
}
src> c++ -O -c replace.cc
replace.cc: In function `void work(const char *)':
replace.cc:13: Internal compiler error.
replace.cc:13: Please submit a full bug report to `egcs-bugs@cygnus.com'.
src> rpm -qfi `which c++`
Name        : egcs-c++                    Distribution: Manhattan 
Version     : 1.0.3a                            Vendor: Red Hat Software
Release     : 14                            Build Date: Wed Oct 14 13:24:14 1998
Install date: Fri Jan 30 13:46:38 1998      Build Host: porky.redhat.com
Group       : Development/Languages         Source RPM: egcs-1.0.3a-14.src.rpm
Size        : 1823424                          License: GPL
Packager    : Red Hat Software <bugs@redhat.com>
URL         : http://egcs.cygnus.com/
Summary     : C++ support for gcc
Description :
This package adds C++ support to the GNU C compiler. It includes support
for most of the current C++ specification, including templates and
exception handling. It does not include a standard C++ library, which
is available separately.
------------------------------------------------------------

Without '-O', the error does not show up.

I don't know how to find out the options given to configure, since I
did not compile egcs myself (it's a RedHat 5.2 installation, I guess).

If you need further information, let me know.

Bye,

	Benjamin.

-- 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v0.9.5 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE3PetMmTjUS0P7KdYRAYvOAJ9Rbu32V0SN33vnXII8nwylouov2QCfZjcO
Lvr7DFTK2zVehOvZwVNYcC4=
=ecXg
-----END PGP SIGNATURE-----
>From Theodore.Papadopoulo@sophia.inria.fr Mon May 31 21:06:00 1999
From: Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
To: egcs-bugs@egcs.cygnus.com
Subject: C++ bug with combination of templates, friends and namespaces
Date: Mon, 31 May 1999 21:06:00 -0000
Message-id: <199905062004.WAA16616@mururoa.inria.fr>
X-SW-Source: 1999-05n/msg00131.html
Content-length: 1441

The following piece of code demonstrates a g++ bug (I believe) in the 
handling of friend when used in conjunction of namespaces and 
templates. This is with:

mururoa->g++ -v
Reading specs from /u/corse/2/robotvis/gnu/bin/egcs/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.20/specs
gcc version egcs-2.93.20 19990502 (gcc2 ss-980929 experimental)


cat TempNSFriend.C
// Build don't link:
// Origin: Theo Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

namespace Bname {
  class B;
}

template <class T>
class A {
  friend class Bname::B;
  static const int a = 1;
public:
  A() { }
};

namespace Bname {
  class B {
  	int a;
  public:
  	template<class T>
  	B(const T&):a(T::a) { }
  };
}

int
main()
{
  A<int> a;
  Bname::B b(a);
}

mururoa->g++ TempNSFriend.C
TempNSFriend.C: In method `Bname::B::B<A<int> >(const A<int> &)':
TempNSFriend.C:29:   instantiated from here
TempNSFriend.C:11: `const int A<int>::a' is private
TempNSFriend.C:21: within this context

If the template or the namespace is removed then the code is accepted.
I cannot believe the standard mandates such a strange rule (and have 
not found anything saying this in the public draft). This must 
be a bug...

	Thank's

	Theo.

 --------------------------------------------------------------------
 Theodore Papadopoulo
 Email: Theodore.Papadopoulo@sophia.inria.fr Tel: (33) 04 92 38 76 01
 --------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-05-31 21:06 Internal Compiler Error Benjamin Pflugmann
@ 1999-05-23  1:29 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-05-23  1:29 UTC (permalink / raw)
  To: philemon; +Cc: egcs-bugs

> I encountered an "internal compiler error" when I tried to compile the
> source given below.

Thanks for your bug report. I just tried it with egcs 1.1.2, and it
compiles fine; I suggest you upgrade your compiler.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:29:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: alexander.vinokur@telrad.co.il
Cc: egcs-bugs@cygnus.com
Subject: Re: Internal compiler error 892
Date: Sun, 23 May 1999 01:29:00 -0000
Message-id: <199905230826.KAA00638@mira.isdn.cs.tu-berlin.de>
References: <373EAED7.39C4F27C@tibam.elex.co.il> <373EAED7.39C4F27C@tibam.elex.co.il>
X-SW-Source: 1999-05/msg00527.html
Content-length: 532

> Here is bug report.

Thanks for your bug report. egcs-2.93.21 says

a.cc:8: warning: all member functions in class `X_two<T1,T2>' are private
a.cc:17: warning: all member functions in class `X_two<T1,int>' are private
a.cc:23: prototype for `void X_two<T1,int>::f()' does not match any in class `X_two<T1,int>'
a.cc:19: candidate is: void X_two<T1,int>::f<T1>()
a.cc: In method `void X_two<T1,int>::f()':
a.cc:23: template definition of non-template `void X_two<T1,int>::f()'

so it seems the bug has been fixed.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:34:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: dsb@cs.duke.edu
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error 980521
Date: Sun, 23 May 1999 01:34:00 -0000
Message-id: <199905230830.KAA00655@mira.isdn.cs.tu-berlin.de>
References: <Pine.LNX.4.10.9905201608410.19482-101000@rover> <Pine.LNX.4.10.9905201608410.19482-101000@rover>
X-SW-Source: 1999-05/msg00528.html
Content-length: 536

> Attached is a code sample which triggers the error when compiled with
> g++ -g -c.  I apologize for the size of the code sample, but I couldn't
> find any smaller fragment that reproduced the error.

Thanks for your bug report. It is perfectly fine to send large pieces
of code. egcs-2.93.21 reports (among other things)

In file included from map.cc:8:
pline.h: At top level:
pline.h:41: explicit specialization in non-namespace scope `PlineStream'

and doesn't crash later, so it seems that the bug has been fixed.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:38:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: Helmut.Swaczinna@wmd.de
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error 980711
Date: Sun, 23 May 1999 01:38:00 -0000
Message-id: <199905230834.KAA00672@mira.isdn.cs.tu-berlin.de>
References: <3.0.5.32.19990521230855.00c22cf0@wmdhh> <3.0.5.32.19990521230855.00c22cf0@wmdhh>
X-SW-Source: 1999-05/msg00530.html
Content-length: 287

Thanks for your bug report. egcs-2.93.21 reports a number of errors;
among them

logmgr.cpp: At top level:
logmgr.cpp:57: syntax error before `;'

where the problem apparently is that CORBA::sequence is not a template
type.

Anyway, the bug appears to be fixed.

Hope this helps,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:38:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: cjames@opensite.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error 980711
Date: Sun, 23 May 1999 01:38:00 -0000
Message-id: <199905230839.KAA00691@mira.isdn.cs.tu-berlin.de>
References: <000301bea23b$f4235900$3609000a@cjames.corp.opensite.com> <000301bea23b$f4235900$3609000a@cjames.corp.opensite.com>
X-SW-Source: 1999-05/msg00529.html
Content-length: 310

Thanks for your bug report. egcs-2.93.21 reports

In file included from bug.cpp:3:
OSStdIncludes.h: At top level:
OSStdIncludes.h:7: syntax error before `;'
OSStdIncludes.h:8: syntax error before `::'

which is caused by a missing include of <list>. Anyway, the bug seems
to be fixed.

Hope this helps,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:44:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: scarlet@ctpmspiggy.mit.edu
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error on rare kind of name clash.
Date: Sun, 23 May 1999 01:44:00 -0000
Message-id: <199905230842.KAA00717@mira.isdn.cs.tu-berlin.de>
References: <199905181414.KAA29250@ctpmspiggy.mit.edu> <199905181414.KAA29250@ctpmspiggy.mit.edu>
X-SW-Source: 1999-05/msg00531.html
Content-length: 171

> I just came across this internal compiler error:

Thanks for your bug report. egcs-2.93.21 compiles it fine, so it
appears that the bug has been fixed.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:44:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: johanb@DoCS.UU.SE
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error in C++ compiler.
Date: Sun, 23 May 1999 01:44:00 -0000
Message-id: <199905230841.KAA00706@mira.isdn.cs.tu-berlin.de>
References: <14149.2405.599138.455574@Toker.DoCS.UU.SE> <14149.2405.599138.455574@Toker.DoCS.UU.SE>
X-SW-Source: 1999-05/msg00532.html
Content-length: 674

> The attached c++-file generates an internal compiler error.
> This was actually encountered using a compiler patched to pgcc, so I
> don't know if this bug occurs in your code, but I thought you might be 
> interested.

Thanks for your bug report. egcs-2.93.21 says

In file included from blockAllocator.cc:16:
blockAllocator.hh:35: invalid use of member `BlockAllocator<T>::size'
blockAllocator.hh:35: template argument 1 is invalid
blockAllocator.hh:35: template argument 1 is invalid
blockAllocator.hh:35: template argument 3 is invalid
blockAllocator.hh:35: ANSI C++ forbids declaration `allocators' with no type

so it appears that the bug is fixed.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:48:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: grahamg@cst.ca
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error with egcs
Date: Sun, 23 May 1999 01:48:00 -0000
Message-id: <199905230844.KAA00725@mira.isdn.cs.tu-berlin.de>
References: <l03130304b35661e84953@[193.77.49.62]> <l03130304b35661e84953@[193.77.49.62]>
X-SW-Source: 1999-05/msg00534.html
Content-length: 546

> 	While compiling some source code the compiler reported an internal
> compiler error.  I saw that the code in question had an obvious syntax
> error, so I managed to isolate the offending code & create a sample that
> generates the error.

Thanks for your bug report. egcs-2.93.21 reports

error.cpp:21: `Bar<long int>' specified as declarator-id
error.cpp:21: syntax error before `;'
error.cpp: In function `int main()':
error.cpp:25: `LongBar' undeclared (first use this function)

so it appears that the bug has been fixed.

Regards,
Martin
>From martin@mira.isdn.cs.tu-berlin.de Sun May 23 01:48:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: leob@mailcom.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Internal compiler error with no number
Date: Sun, 23 May 1999 01:48:00 -0000
Message-id: <199905230846.KAA00734@mira.isdn.cs.tu-berlin.de>
References: <37448B43.30402246@mailcom.com> <37448B43.30402246@mailcom.com>
X-SW-Source: 1999-05/msg00533.html
Content-length: 126

Thanks for your bug report. egcs-2.93.21 compiles it just fine, so it
appears that the bug has been fixed.

Regards,
Martin



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-05-13  5:46 Jon Cline
@ 1999-05-17  0:24 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-05-17  0:24 UTC (permalink / raw)
  To: Jon Cline; +Cc: egcs-bugs

On May 12, 1999, Jon Cline <jccline@Princeton.EDU> wrote:

> priority_queue<deque<SimEvent*>,earlier_than> eventQueue;

> SimClock.hh:71: Internal compiler error.
> SimClock.hh:71: Please submit...

Fixed in the latest snapshot.  It will complain about invalid template
arguments; in fact, you're missing the first argument, that should be
`SimEvent*', and you can't just use a pointer-to-function where a
compare *class* is expected.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-05-31 21:06 Gregory Hosler
@ 1999-05-17  0:16 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-05-17  0:16 UTC (permalink / raw)
  To: Gregory Hosler; +Cc: egcs-bugs

On May  6, 1999, Gregory Hosler <gregory.hosler@eno.ericsson.se> wrote:

> I realize that the above is not sufficient for your needs. I would like
> to know what info you might desire, so that I can provide it to you.

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-05-13  8:16 Volker Dobler P945 <volker.dobler@uni-konstanz.de>
  0 siblings, 0 replies; 387+ messages in thread
From: Volker Dobler P945 <volker.dobler@uni-konstanz.de> @ 1999-05-13  8:16 UTC (permalink / raw)
  To: egcs-bugs

  Hello,

  egcs asked me to report the following compiler error:

volker > uname -a
Linux hugo 2.2.7 #2 SMP Tue May 11 16:47:11 MEST 1999 i686 unknown

volker > gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)

volker > g++ bsp.C
data-file.H: In function `void read_data<pair<int,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >, Read_two_functor<int,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >>(class vector<pair<int,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,__default_alloc_template<true,0> > &, class istream &, class Read_two_functor<int,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > > &, class basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > = "#", enum BlankLineMode = ignoreLeadingBlank, int = 1)':
data-file.H:173:   instantiated from `read_two_data<int, string>(vector<pair<int,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> > >,__default_alloc_template<true,0> > &, istream &, int, int, basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >, BlankLineMode, int)'
bsp.C:21:   instantiated from here
data-file.H:41: Internal compiler error.
data-file.H:41: Please submit a full bug report to `egcs-bugs@cygnus.com'.
data-file.H:41: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.


  You will find the preprocessed source file attached, I hope it will
  help you.

  Bye

  Volker



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-05-13  5:46 Jon Cline
  1999-05-17  0:24 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Jon Cline @ 1999-05-13  5:46 UTC (permalink / raw)
  To: egcs-bugs

from SimClock.hh:

...
#include <deque.h>
#include <queue>

class SimEvent;
bool earlier_than( SimEvent*, SimEvent* );

class SimClock {
...
[line 71]  priority_queue<deque<SimEvent*>,earlier_than> eventQueue;
}

from make attempt:

SimClock.hh:71: Internal compiler error.
SimClock.hh:71: Please submit...
>From Franz.Sirl-kernel@lauterbach.com Thu May 13 06:13:00 1999
From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
To: Maarten ter Huurne <mth@stack.nl>, egcs-bugs@egcs.cygnus.com
Subject: Re: egcs-1.1.2 and glibc-2.1: egcs build problem (__sigset_t)
Date: Thu, 13 May 1999 06:13:00 -0000
Message-id: <99051315174100.01268@ns1102.munich.netsurf.de>
References: <3.0.1.32.19990513143056.009457e0@popserver.tue.nl>
X-SW-Source: 1999-05/msg00287.html
Content-length: 730

Am Thu, 13 May 1999 schrieb Maarten ter Huurne:
>Hello,
>
>I think I found a bug in the building process of egcs 1.1.2. By the way, my
>system descriptor is 'i586-pc-linux-gnulibc2'.
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

There is no such target as i586-pc-linux-gnulibc2! I'm quite sure egcs-1.1.2
didn't detect this, instead you tried to give this configuration to configure,
am I right?

There's either *-linux-gnulibc1 for libc5 or *-linux-gnu for glibc-2.x based
systems. But the best thing for native builds is to give either nothing or
only a target alias to configure, like:

cd objectdir
../egcs-1.1.2/configure i586-pc-linux

The rest of the configuration will be detected by configure then.

Franz.
>From harper@scar.utoronto.ca Thu May 13 07:05:00 1999
From: John Harper <harper@scar.utoronto.ca>
To: egcs-bugs@egcs.cygnus.com
Subject: Solaris 7 assembler patch breaks egcs
Date: Thu, 13 May 1999 07:05:00 -0000
Message-id: <199905131404.KAA07540@banks.scar>
X-SW-Source: 1999-05/msg00288.html
Content-length: 1199

After fighting with gcc 2.8.1 for a while trying to compile X11R6.4 on
Solaris7, someone suggested I use egcs instead - I have, and a similar
problem occurs. 

As far as I can tell, if the Solaris7 assembler patch 107058 is
installed, then the compiler built using that version of as is badly
broken. The C compiler isn't too bad, it will compile many things ok,
but not X11R6.4. The C++ compiler is bust - it can't even compile a
hello world program, and the testsuite had 653 unexpected errors.

If I revert to the original Solaris7 assembler, everything seems to
work ok when I recompile the compiler. If the patched assembler is
used with a working compiler, the programs seem to work, but you'll
get burned if you try to install a new compiler version.

I'm guessing this has to do with some 64 bit mess-up, and I gather
egcs isn't quite ready to do 64bit compiles on Solaris, so you might
want to be careful with this patch. It unfortunately also makes me
afraid of any other patches to loaders/libraries etc that might break
things unexpectedly.

John Harper
------------------------------------
Academic Computing Coordinator
University of Toronto at Scarborough
harper@scar.utoronto.ca





^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-04-30 23:15 Manush Dodunekov
  1999-05-31 21:06 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Manush Dodunekov @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 337 bytes --]

The attached source causes an internal compiler error 382.

Compile command: c++ -c test.cc (eg no special flags)

Version: 
Reading specs from
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release) 

Egcs configured with --enable-threads --enable-shared

regards,
Manush

[-- Attachment #2: test.ii.gz --]
[-- Type: application/x-gzip, Size: 24891 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-04-30 23:15 Christoph Kern
  1999-04-30 23:15 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Christoph Kern @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 0 bytes --]



[-- Attachment #2: bug-E.cc.gz --]
[-- Type: application/x-gzip, Size: 30156 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-04-30 23:15 Alexander Usachev
  0 siblings, 0 replies; 387+ messages in thread
From: Alexander Usachev @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

#include <iostream.h>

struct User {
    char * name;
    char * id;
    int    dept;
  };

int cmp1(const void * p, const void * q) {
  return strcmp(static_cast<const User*>(p)->name, static_cast<const
User*>(q)->name);
}


main() {

  User heads[] = {
    "F.",    "d",     1,
    "E.",    "r",     2,
    "D.",    "t",     3,
    "C.",    "s",     4,
    "B.",    "n",     5,
    "A.",    "b",     6};

  // Error ?
  cout << cmp1(static_cast<const void *>(heads[0]), static_cast<const void
*>(heads[1]))
 << endl;
}



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-04-30 23:15 Peter Mattis
  0 siblings, 0 replies; 387+ messages in thread
From: Peter Mattis @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs


I encountered an internal compiler error while trying to templatize
some code. I narrowed the test case for the bug down to the following
code:

template <class T>
class A
{
  typedef enum
  {
    foo
  } B;

  A (B b);
};

template <class T>
A<T>::A (B b)
{
}

Compiling (with "g++ -o test.o -c test.cc") gives the following error:

test.cc:14: Internal compiler error.
test.cc:14: Please submit a full bug report to `bug-g++@prep.ai.mit.edu'.

This is under linux 2.0.28 using glibc 2.0.4, egcs-2.90.00 970814. The
relevant points seem to be the typedef enum, the template and that
the enum is defined within the class. 

I've changed my code to using "enum B" which is a work around, but I
thought I'd report this and also query as to whether this bug should
be sent to the "bug-g++" list as well or whether that error message
should be changed to tell people to report bugs to "egcs-bug".

Peter


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-04-30 23:15 Internal " Christoph Kern
@ 1999-04-30 23:15 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-04-30 23:15 UTC (permalink / raw)
  To: ckern; +Cc: egcs-bugs

> ok, after posting a spurious bug report yesterday, I chanced upon a genuine
> one today (Internal compiler error).  Note though that the input that
> triggers the error is non-sensical (in particular, involves the phrase
>    template <>
>    namespace tralala {
> which I happened to compile while further toying with templates). 
> Nevertheless, I figure you might like to know about internal errors no
> matter what.

Thanks for your report.  egcs-2.93.19 reports

bug-E.cc:9818: parse error before `namespace'
bug-E.cc:9874: confused by earlier errors, bailing out

So this appears to be fixed.

Regards,
Martin

P.S. Maybe you wonder when egcs 1.2 will be actually appear; please
have a look at http://egcs.cygnus.com/egcs-1.2/schedule.html . After
the branch is made, snapshots will be 'release candidates', to use the
terminology of a large software company :-) I'd encourage you to test
these snapshots, to make sure they don't break your code.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-04-30 23:15 Karl Gierach
  0 siblings, 0 replies; 387+ messages in thread
From: Karl Gierach @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 0 bytes --]



[-- Attachment #2: mx_db_client.ii.gz --]
[-- Type: application/x-gzip, Size: 60308 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-04-30 23:15 Jody Hagins
  0 siblings, 0 replies; 387+ messages in thread
From: Jody Hagins @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

The following code generates an internal compiler error...




template <bool CONDITION>
struct CompileTimeAssertion
{
  typedef int x[CONDITION?1:-1];
};

CompileTimeAssertion<(12 < 13)> cta1;
CompileTimeAssertion<(12 > 13)> cta2;



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
       [not found] <m10crjQ-000EvYC@spb.sterling.ru>
@ 1999-04-30 23:15 ` Michael Ivanov
  0 siblings, 0 replies; 387+ messages in thread
From: Michael Ivanov @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 5279 bytes --]

> Command line: gcc -o tst t.cc
> Version:
> Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
> gcc version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release)
>
> System: Linux island 2.2.4 #6 Sat Mar 27 01:57:15 MSK 1999 i586 unknown
> (Debian potato unstable elease)
>
> Source: see attachement.
>
> Diagnostics:
> List.h: In instantiation of `sListNode<int>':
> List.h:135:   instantiated from `sList<int>::Next<int>()'
> tst.cc:8:   instantiated from here
> List.h:135: Internal compiler error.
> List.h:135: Please submit a full bug report to
> `egcs-bugs@egcs.cygnus.com'.
> List.h:135: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
> details.
>
> Best regards!
>
> --
> é×ÁÎÏ× íÉÈÁÉÌ.
>     Voice:  +7 (812) 219-9237. E-mail: ivans@spb.sterling.ru
>
> --------------7E165A0FF0BED34C14A1A0FD
> Content-Type: text/html; charset=koi8-r
> Content-Transfer-Encoding: 8bit
>
> <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
> <html>
> Command line: <tt>gcc -o tst t.cc</tt>
> <br>Version:
> <br><tt>Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs<br>
> gcc version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release)</tt><br>
> <BR>
> <br>System:<tt> Linux island 2.2.4 #6 Sat Mar 27 01:57:15 MSK 1999 i586
> unknown</tt>
> <br>(Debian potato unstable elease)
> <p>Source: see attachement.
> <p>Diagnostics:
> <br><tt>List.h: In instantiation of `sListNode&lt;int>':</tt>
> <br><tt>List.h:135:&nbsp;&nbsp; instantiated from `sList&lt;int>::Next&lt;int>()'</tt>
> <br><tt>tst.cc:8:&nbsp;&nbsp; instantiated from here</tt>
> <br><tt>List.h:135: Internal compiler error.</tt>
> <br><tt>List.h:135: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.</tt>
> <br><tt>List.h:135: See &lt;URL:<A HREF=" http://egcs.cygnus.com/faq.html#bugreport "> http://egcs.cygnus.com/faq.html#bugreport </A>>
> for details.</tt>
> <p>Best regards!
> <pre>--
> é×ÁÎÏ× íÉÈÁÉÌ.
> &nbsp;&nbsp;&nbsp; Voice:&nbsp; +7 (812) 219-9237. E-mail: ivans@spb.sterling.ru</pre>
> &nbsp;</html>
>
> --------------7E165A0FF0BED34C14A1A0FD--
>
> --------------4186B7485AC078E84CBA18AD
> Content-Type: text/plain; charset=koi8-r;
>  name="t.cc"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
>  filename="t.cc"
>
> # 1 "tst.cc"
> # 1 "List.h" 1
>
>
>
>
>
>
> template <class B> class sListNode : public B {
>
>
>
>     sListNode       *forw;
>     sListNode       *back;
>
> public:
>     sListNode(const B &p) : B (p) {
>         forw = back = 0;
>     }
>
>
>
>
>
>
>
>     sListNode &operator= (sListNode &p) {
>         *(B *)this = *(B *)&p;
>         return *this;
>     }
> };
>
>
>
>
> template <class Body> class sList {
>     sListNode<Body>      *head;
>     sListNode<Body>      *tail;
>     sListNode<Body>      *current;
>     int                  count;
>
> public:
>     sList() {
>         head = current = 0;
>         count = 0;
>     }
>     ~sList() {
>         for (sListNode<Body> *cp = head; cp; cp = head) {
>             head = cp->forw;
>             delete cp;
>         }
>     }
>
>
>
>
>     sList &insert (sListNode<Body> *sp) {
>         sp->back = 0;
>         if (head) {
>             sp->forw = head;
>             head->back = sp;
>         }
>         else {
>             sp->forw = 0;
>             tail = sp;
>         }
>         head = sp;
>         count++;
>
>         return *this;
>     }
>
>
>
>
>     sList &append (sListNode<Body> *sp) {
>         sp->forw = 0;
>         if (head) {
>             sp->back = tail;
>             tail->forw = sp;
>         }
>         else {
>             sp->back = 0;
>             head = sp;
>         }
>         tail = sp;
>         count++;
>
>         return *this;
>     }
>
>
>
>
>     sList &remove (sListNode<Body> *sp) {
>         if (sp->forw)
>             sp->forw->back = sp->back;
>         if (sp->back)
>             sp->back->forw = sp->forw;
>         if (head == sp)
>             head = sp->forw;
>         if (tail == sp)
>             tail = sp->back;
>         count--;
>
>         return *this;
>     }
>
>
>
>
>
>
>     sList &flush() {
>         sListNode<Body> *sp;
>
>         for (Rewind(); (sp = Next()) != 0; ) {
>             remove(sp);
>             delete sp;
>         }
>         return *this;
>     }
>
>
>
>
>     void Rewind() { current = head; }
>
>
>
>     sListNode<Body> *Next() {
>         sListNode<Body> *p = current;
>
>         if (p) {
>             if ((current = p->forw) == head)
>                 current = 0;
>         }
>         return p;
>     }
>
>
>
>
>     sListNode<Body> *RmNext() {
>         sListNode<Body> *p = current;
>
>         if (p) {
>             if ((current = p->forw) == head)
>                 current = 0;
>             remove(p);
>         }
>         return p;
>     }
>
>
>
>
>     int size() { return count; }
>     int IsEmpty() { return count == 0; }
> };
>
> # 1 "tst.cc" 2
>
> sList<int>  l;
>
> main() {
>     sListNode<int>  *n;
>
>     for (l.Rewind(); (n = l.Next()) != 0; )
>         printf ("%d\n", n);
> }
>
> --------------4186B7485AC078E84CBA18AD--

--
é×ÁÎÏ× íÉÈÁÉÌ.
    Voice:  +7 (812) 219-9237. E-mail: ivans@spb.sterling.ru





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-04-22  6:17 Alexander Mai
  0 siblings, 0 replies; 387+ messages in thread
From: Alexander Mai @ 1999-04-22  6:17 UTC (permalink / raw)
  To: egcs-bugs

I have a reproducible crash in
gcc version egcs-2.93.18 19990412 (gcc2 ss-980929 experimental)
on  Linux 2.0.36, pentium.
It happens compiling hacks/rorschach.c from xscreensaver.c
by calling:

 gcc -Wall -Wstrict-prototypes -Wnested-externs -Wno-format -c -I. -I./../utils -I..
-I/home/mai/include -DSTANDALONE -DHAVE_CONFIG_H -g -O2
-I/usr/X11R6/include rorschach.c
gcc: Internal compiler error: program cc1 got fatal signal 11

Upon request/interest I could also supply the .i output, but perhaps
someone has it already on the disk and can check whether it's a 'non-local'
bug ?

-- 
Alexander Mai
st002279@hrzpub.tu-darmstadt.de
>From oliva@dcc.unicamp.br Thu Apr 22 06:17:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: Edward_C_Morgan <ecmorgan@lucent.com>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Function declared returning something returns nothing
Date: Thu, 22 Apr 1999 06:17:00 -0000
Message-id: <orbtgg7q29.fsf@lua.lbi.dcc.unicamp.br>
References: <371F1FAD.AEF74DA9@lucent.com>
X-SW-Source: 1999-04/msg00616.html
Content-length: 670

On Apr 22, 1999, Edward_C_Morgan <ecmorgan@lucent.com> wrote:

> My question is: Shouldn't the compiler warned about functions not
> returning anything, or at least not returning what it says it
> returns?

It warns with -Wall.  According to the standard, falling off the end
of a function that does not return void produces undefined
results. (except for main(), that implicitly returns 0)

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Brasil
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-04-20  0:59 Marcus Brito
  0 siblings, 0 replies; 387+ messages in thread
From: Marcus Brito @ 1999-04-20  0:59 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 570 bytes --]

Here is a brief bug report.

egcs version is egcs-2.91.63 running on Linux 2.2.1, i386 (Pentium).
Everything installed from Debian packages. The preprocessed output goes
attached. It's an example from Bruce Eckel's "Thinking in C++" (So I think
I'm not the only only one reporting this bug -- perhaps you should mention
it in the "bugs" file?)

-- 
Ja ne,
   Marcus Brito
   Mailto: pazu@linuxbr.com.br

"Que o amor não seja imortal, posto que é chama,
 Mas que seja infinito enquanto dure."
                           -- Vinicius de Moraes
StreamTokenizer.ii.gz


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-03-31 23:54 jle
  1999-03-19  8:05 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: jle @ 1999-03-31 23:54 UTC (permalink / raw)
  To: egcs-bugs

I successfully installed and ran egcs-1.1.2 on several UNIX workstations,
including hppa1.1-hp-hpux9.01, hppa1.1-hp-hpux9.03, powerpc-ibm-aix4.1.5.0,
sparc-sun-solaris2.2

on config  mips-sgi-irix5.2 (--with-gnu-as), I encounter the following
problem:

(insn 954 953 268 (set (reg:SI 159)
               (plus:SI (reg/v:SI 80)
                      (const_int 105240))) -1 (nil)
  (nil))

../../egcs-1.1.2/gcc/toplev.c:1367: Internal compiler error in function
fatal_insn

I can't show you the source (too many .h files, types and macros, ...)

NOTE: the problem is also present in egcs-1.1.1, but not in gcc-2.8.1

 gcc-ly yours,
 Jacques Leroy





^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-03-31 23:54 Paul Fox
  1999-03-05  8:25 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Paul Fox @ 1999-03-31 23:54 UTC (permalink / raw)
  To: egcs-bugs

hi -- i was building the Festival speech synthesis system,
specifically the speech_tools subdirectory, with my brand new egcs
compiler (egcs-2.90.29 980515 (egcs-1.0.3 release)), and my brand new
glibc (2.0.7pre6), and i got an internal compiler error.  (the
if you need it, the original source for Festival that i'm using (which
compiled successfully with gcc 2.7.2.1, btw) is version 1.2.1, and it
came from http://www.cstr.ed.ac.uk/projects/festival.html .

anyway, i ran the offending file through with -E, and am attaching
the resulting source and error output.

actually, i _would_ attach the source, but i just tried sending that,
and it bounced, since it's over 100000 bytes.  i'll attach the compiler
output, and the source file is available in:
    ftp://ftp.foxharp.boston.ma.us/pub/pgf/junk/egcs-err-file.cc

please let me know when i can delete that source file -- thanks!  and
many thanks for many fine products!

paul
=---------------------
  paul fox, pgf@foxharp.boston.ma.us (arlington, ma, where it's 27.1 degrees)


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-03-31 23:54 bruce
  0 siblings, 0 replies; 387+ messages in thread
From: bruce @ 1999-03-31 23:54 UTC (permalink / raw)
  To: egcs-bugs

I sent Email yesterday about an Internal compiler error with my source file
\"Monitored.i\".  I downloaded and build egdc-1.1.2 today, and I still get the
error.  Now \"g++ --version\" returns:

egcs-2.91.66

                                       -- Bruce Edwards
                                          bruce@octree.com


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-03-31 23:54 John Wiegley
  0 siblings, 0 replies; 387+ messages in thread
From: John Wiegley @ 1999-03-31 23:54 UTC (permalink / raw)
  To: egcs-bugs

#include <string>
std::template basic_string<char> x;

Using EGCS-1.1.2 for cygwin-b20.1 on WinNT 4.0 SP4.

-- 
John Wiegley <johnw@oneworld.new-era.com>



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-03-24  6:30 jaffe
  0 siblings, 0 replies; 387+ messages in thread
From: jaffe @ 1999-03-24  6:30 UTC (permalink / raw)
  To: egcs-bugs

------------- Begin Forwarded Message -------------

>From jaffe Wed Mar 24 08:09 CST 1999
Date: Wed, 24 Mar 1999 08:09:43 -0600 (CST)
From: jaffe
To: egcs-bugs@egcs.cygnus.com\b\b
Subject: internal compiler error
Cc: jaffe
Mime-Version: 1.0

I got an internal compiler error.

using egcs-1.1.2 (egcs-2.91.66)

on an alpha 21264 ("ev6") from DCG systems, under Linux (RedHat 5.2)

my original command:
g++ -v --save-temps -c cc/simplex.cc  -pipe -Iinc -ICLN/cln/include -I. -O1

attached:

simplex.ii.bz2
simplex.out.bz2 (output of my original command)

Best regards,

David Jaffe
Dept. of Math. and Stat.
University of Nebraska - Lincoln
e-mail: jaffe@cpthree.unl.edu
------------- End Forwarded Message -------------
>From Gilles.Zunino@hei.fupl.asso.fr Wed Mar 24 06:46:00 1999
From: Gilles Zunino <Gilles.Zunino@hei.fupl.asso.fr>
To: egcs-bugs@egcs.cygnus.com
Subject: egcs-2.91.66 mips-sgi-irix6.5 Internal error
Date: Wed, 24 Mar 1999 06:46:00 -0000
Message-id: <36F8FA76.F5E0373@hei.fupl.asso.fr>
X-SW-Source: 1999-03/msg00776.html
Content-length: 3466

	Hi,
	Compiling the latest snapshot of libstdc++-2.90.4
	on a mips-sgi-irix6.5 system leads to an internal
	compiler error :

../../gcc/emit-rtl.c:1480: Internal compiler error in function change_address

	I was unable to reproduce this on a 
	Sun/sparc/solaris 2.5 host with the same version of 
	egcs. I would like to know if this pb is related to
	my installation on my IRIX box.

	Version of c++ :

c++ -v
Reading specs from /usr/local/lib/gcc-lib/mips-sgi-irix6.5/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)

	Attached to this mail, you will find the preprocessed
	output of the source file that caused the compiler 
	error. Here is the command line used to invoque c++ :

c++ -v --save-temps -DHAVE_CONFIG_H -I. -I../../libstdc++-2.90.4/src -I..
-nostdinc++ -I../../libstdc++-2.90.4 -I../../libstdc++-2.90.4/stl
-I../../libstdc++-2.90.4/libio -g -O2 -fvtable-thunks -D_GNU_SOURCE
-fno-implicit-templates -c -DPIC ../../libstdc++-2.90.4/src/complex.cc -o
complex.lo
Reading specs from /usr/local/lib/gcc-lib/mips-sgi-irix6.5/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
 /usr/local/lib/gcc-lib/mips-sgi-irix6.5/egcs-2.91.66/cpp -lang-c++ -nostdinc++
-v -I. -I../../libstdc++-2.90.4/src -I.. -I../../libstdc++-2.90.4
-I../../libstdc++-2.90.4/stl -I../../libstdc++-2.90.4/libio -undef -D__GNUC__=2
-D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -Dmips -Dsgi -Dhost_mips
-DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C
-D__DSO__ -D__unix__ -D__mips__ -D__sgi__ -D__host_mips__ -D__MIPSEB__ -D_MIPSEB
-D__SYSTYPE_SVR4__ -D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix
-D__mips -D__sgi -D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix)
-Asystem(svr4) -Acpu(mips) -Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__
-D__OPTIMIZE__ -g -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS
-D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__
-D_SGI_SOURCE -D_MIPS_FPSET=32 -D_MIPS_ISA=_MIPS_ISA_MIPS3 -D_ABIN32=2
-D_MIPS_SIM=_ABIN32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32
-D_COMPILER_VERSION=601 -U__mips -D__mips=3 -D__mips64 -DHAVE_CONFIG_H
-D_GNU_SOURCE -DPIC ../../libstdc++-2.90.4/src/complex.cc complex.ii
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) [AL 1.1, MM 40] SGI
running IRIX 6.x
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../libstdc++-2.90.4/src
 ..
 ../../libstdc++-2.90.4
 ../../libstdc++-2.90.4/stl
 ../../libstdc++-2.90.4/libio
 /usr/local/include
 /usr/local/mips-sgi-irix6.5/include
 /usr/local/lib/gcc-lib/mips-sgi-irix6.5/egcs-2.91.66/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/mips-sgi-irix6.5/egcs-2.91.66/cc1plus complex.ii -quiet
-dumpbase complex.cc -g -O2 -version -fvtable-thunks -fno-implicit-templates -o
complex.s
GNU C++ version egcs-2.91.66 19990314 (egcs-1.1.2 release) (mips-sgi-irix6.5)
compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release).
../../gcc/emit-rtl.c:1480: Internal compiler error in function change_address
make[2]: *** [complex.lo] Error 1

	Apologies in advance, if I am simply bothering you
	due to lack of understanding.
______________________________________________________________
Gilles Zunino - (Gilles.Zunino@hei.fupl.asso.fr)  (A 506)

HEI, 13 rue de Toul, 59 046 LILLE CEDEX FRANCE
Phone : (+33) 3 28.38.48.58  Fax : (+33) 3 28.38.48.04
internal-err.tar.gz
S/MIME Cryptographic Signature


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1999-03-22 11:20 Thomas Maeder
  0 siblings, 0 replies; 387+ messages in thread
From: Thomas Maeder @ 1999-03-22 11:20 UTC (permalink / raw)
  To: egcs-bugs

Hi

I have found another Internal compiler error. And I'm no longer sure
that the one I found yesterday is the same I had already reported; if
not: sorry.

When compiling the attached file, I get:

Lines/Straight/Line.h: In instantiation of
::Iterator::::Iterator::RandomAccess<::Boards::Square
*,int>::::Iterator::::Iterator::RandomAccess<::Boards::Square
*,int>::auto_ptr<RandomAccess<::Boards::Square *,int>::Representation>':
Lines/Straight/Line.h:43:   instantiated from
`RandomAccess<::Boards::Square *, int>'
Lines/Straight/Line.h:43:   instantiated from
`::Iterator::::Iterator::RandomAccess<::Boards::Square *,int>'
Lines/Straight/Line.h:43:   instantiated from here
In file included from Queen/Queen.cpp:22:
Lines/Straight/Line.h:43: Internal compiler error.
Lines/Straight/Line.h:43: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
Lines/Straight/Line.h:43: See
<URL: http://egcs.cygnus.com/faq.html#bugreport > for details.


I am using Windows NT 4.0 SP4 and egcs version 1.1.2 (egcs-2.91.66).

Thanks
Thomas Maeder
Queen.zip


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-03-22  5:50 Rasmus Andersen
  0 siblings, 0 replies; 387+ messages in thread
From: Rasmus Andersen @ 1999-03-22  5:50 UTC (permalink / raw)
  To: egcs-bugs

Hi there.

Im getting an Internal error when I try to compile a cvs snapshot of
mozilla on my HPUX machine. Below is your requested information. Please
feel free to ask if you need further information.


egcs: 1.1.2
system: HP-UX ask B.10.20 A 9000/777
options to egcs: c++ -o nsCOMPtr.o -c   -fno-rtti -fno-exceptions -Wall -include ../../config-defs.h -O -fPIC  -D_IMPL_NS_COM -DUSE_NSREG -UDEBUG -DNDEBUG -DTRIMMED -DOSTYPE=\"HP-UXB.10\"  -I../../dist/./include -I../../dist/include -I/net/urd/vol/dikunix
/work/test/mozilla/include -I/net/urd/vol/dikunix/work/test/obj-hppa1.1-hp-hpux10.20/nspr/include
preprocessed: see attachment.



        Rasmus(rasmus@diku.dk)

Question: If you could live forever, would you and why?  
Answer: I would not live forever, because we should not live forever,
because if we were supposed to live forever, then we would live forever,
but we cannot live forever, which is why I would not live forever.  
-Miss Alabama in the 1994 Miss Universe contest
>From N8TM@aol.com Mon Mar 22 06:04:00 1999
From: N8TM@aol.com
To: Kevin.Hughes@icl.com, egcs-bugs@egcs.cygnus.com
Subject: Re: x86 generated code
Date: Mon, 22 Mar 1999 06:04:00 -0000
Message-id: <ddfea113.36f64d6a@aol.com>
X-SW-Source: 1999-03/msg00678.html
Content-length: 518

In a message dated 3/22/99 12:07:09 AM Pacific Standard Time,
Kevin.Hughes@icl.com writes:

> could anyone tell me the best compiler options to
>  set for maximum performance on x86 - under cygwin?
You ask us to go out on a limb without knowing anything about your
application, or even which compiler.  For the egcs release compilers (1.1.x),
I use '-Os -malign-double -funroll-loops', adding -march=pentiumpro
occasionally.  The experimental compilers benefit from -O2 but of course that
often generates larger code.
>From wolf@gaia.IWR.Uni-Heidelberg.De Mon Mar 22 07:24:00 1999
From: Wolfgang Bangerth <wolf@gaia.IWR.Uni-Heidelberg.De>
To: egcs-bugs@cygnus.com
Subject: Template constructor and 'explicit' keyword
Date: Mon, 22 Mar 1999 07:24:00 -0000
Message-id: <Pine.SOL.4.05.9903221614230.1157-100000@atlas>
X-SW-Source: 1999-03/msg00679.html
Content-length: 677

Hi there,

the following compiles without an error or warning:
-------------------------------------
class X 
{
  public:
    template <class T>
    explicit X (const T &) {};
};


void g(const X &x) {};


int main() 
{
  g (3);       // g(X(3));
  return 0;
};
-----------------------------------------
I have no copy of the standard, so I can't judge whether it is right or
wrong, it just made me wonder why it compiles.

Best regards,
  Wolfgang



-------------------------------------------------------------------------
Wolfgang Bangerth            email:       wolf@gaia.iwr.uni-heidelberg.de
                             www: http://gaia.iwr.uni-heidelberg.de/~wolf




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-03-31 23:54 jle
@ 1999-03-19  8:05 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-03-19  8:05 UTC (permalink / raw)
  To: jle; +Cc: egcs-bugs

On Mar 19, 1999, jle@star.be wrote:

> ../../egcs-1.1.2/gcc/toplev.c:1367: Internal compiler error in function
> fatal_insn

> I can't show you the source (too many .h files, types and macros, ...)

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Brazil
{oliva,Alexandre.Oliva}@dcc.unicamp.br  aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,egcs.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-03-08 15:42 Peter Simons
  0 siblings, 0 replies; 387+ messages in thread
From: Peter Simons @ 1999-03-08 15:42 UTC (permalink / raw)
  To: egcs-bugs

Hi,

while compiling the current egcs snapshot taken from the CVS
repository on a "SunOS 5.6 Generic_105181-05 sun4u sparc
SUNW,UltraSPARC-IIi-Engine" machine using egcs-2.91.57, I got the
following internal compiler error:

stage1/xgcc -Bstage1/ -B/usr/local/egcs/sparc-sun-solaris2.6/bin/ -c  -DIN_GCC  -DSVR4  -W -Wall -O2 -g -O2  -W -Wall    -I. -I.. -I../../../gcc/f -I../../../gcc/f/.. -I../../../gcc/f/../config -I../../../gcc/f/../../include ../../../gcc/f/com.c
../../gcc/local-alloc.c:1942: Internal compiler error in function find_free_reg
Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.

	-peter
>From martin@mira.isdn.cs.tu-berlin.de Mon Mar 08 16:29:00 1999
From: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>
To: lalle@sics.se
Cc: egcs-bugs@cygnus.com
Subject: Re: using std containers without including header files
Date: Mon, 08 Mar 1999 16:29:00 -0000
Message-id: <199903090024.BAA00756@mira.isdn.cs.tu-berlin.de>
In-reply-to: < u6ziuccfen2.fsf@saruman.sics.se > (message from Lars Albertssonon 08 Mar 1999 11:40:33 +0100)
References: <u6ziuccfen2.fsf@saruman.sics.se> <u6ziuccfen2.fsf@saruman.sics.se>
X-SW-Source: 1999-03/msg00257.html
Content-length: 374

> Hi. The following one-line program causes an internal error. Other
> standard containers show the same problem. 

Thanks for your bug report. This is fixed in the current development
snapshots (e.g. egcs-2.93.10); the compiler now reports a syntax
error.

If you find that the compiler crashes on valid code as well, please
resubmit this as a new report.

Regards,
Martin
>From N8TM@aol.com Mon Mar 08 20:06:00 1999
From: N8TM@aol.com
To: law@cygnus.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: egcs-2.93.10 ICEs in emit_swap_insn on x86 at -Os -funroll-lloops
Date: Mon, 08 Mar 1999 20:06:00 -0000
Message-id: <a06c19ac.36e49dbe@aol.com>
X-SW-Source: 1999-03/msg00258.html
Content-length: 390

In a message dated 3/8/99 2:04:11 PM Pacific Standard Time,
law@hurl.cygnus.com writes:

<< I'm testing a fix for this buglet.
  >>
Thanks.  BTW, the same bug remains in 2.93.11, but otherwise, the latest
snapshots appear to contain a good g77.   I have a case (LFK #8) where
-march=pentiumpro results in fewer spilled pointers than without the
-march=pentiumpro if that's of any interest.
>From law@hurl.cygnus.com Mon Mar 08 22:01:00 1999
From: Jeffrey A Law <law@hurl.cygnus.com>
To: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Testsuite regression in CVS for powerpc-linux-gnu 
Date: Mon, 08 Mar 1999 22:01:00 -0000
Message-id: <24301.920959245@hurl.cygnus.com>
In-reply-to: Your message of Fri, 05 Mar 1999 01:01:54 MST.            < 99030501130900.00803@ns1102.munich.netsurf.de > 
References: <99030501130900.00803@ns1102.munich.netsurf.de>
X-SW-Source: 1999-03/msg00259.html
Content-length: 440

  In message < 99030501130900.00803@ns1102.munich.netsurf.de >you write:
  > The testcase is execute/980205.c out of the testsuite. The problem seems
  > to be that the compiler chooses different alternatives for some stuff, as
  > you can see below.
[ ... ]
I believe this should be fixed now.  I've also enabled HOST_BITS_PER_LONGLONG
in xm-sysv4.h.  So if you could test the ppc-linux port it would be greatly
appreciated.

Thanks,
jeff
>From law@hurl.cygnus.com Mon Mar 08 22:04:00 1999
From: Jeffrey A Law <law@hurl.cygnus.com>
To: rth@cygnus.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: flow bug
Date: Mon, 08 Mar 1999 22:04:00 -0000
Message-id: <24317.920959442@hurl.cygnus.com>
X-SW-Source: 1999-03/msg00260.html
Content-length: 1881

This is a bug in the new flow code.

We blow up trying to dereference a null pointer inside tidy_fallthru_edge.


debug_rtx_list (NEXT_INSN (b->end), 100) shows:

(code_label 10 9 20 3 ("101"))

(note 20 10 15 [bb 1] NOTE_INSN_BASIC_BLOCK)

(note 15 20 0 0 NOTE_INSN_BLOCK_END)

So next_nonnote_insn (q) returns null.  Then we try to examine the code
of Q, which causes the segfault.

------- Forwarded Message

Sender:   owner-egcs-bugs@egcs.cygnus.com
From:     craig@jcb-sc.com
To:       egcs-bugs@egcs.cygnus.com
cc:       craig@jcb-sc.com
Date:     1 Mar 1999 21:12:39 -0000
Subject:  flow/edge changes broke this on x86?

Here's a simple Fortran test case (which I'll later add to the test suite)
that just started failing with the most recent snapshot (19960228):

      SUBROUTINE QUICK
      SAVE
C
      ASSIGN 101 TO JUMP
  101 Continue
C
      RETURN
      END

I stripped out the commentary from the file actually compiled in the
shell output below:

/develop/egcs/19990228/bin/g77 -v -W -Wall -O 960317-1.f
g77 version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental) (from FSF-g77 v
ersion 0.5.24-19990219)
Driving: /develop/egcs/19990228/bin/g77 -v -W -Wall -O 960317-1.f -lg2c -lm
Reading specs from /develop/egcs/19990228/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.
93.10/specs
gcc version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental)
 /develop/egcs/19990228/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.93.10/f771 960317-
1.f -quiet -dumpbase 960317-1.f -O -W -Wall -version -fversion -o /tmp/ccQiiaaa
.s
GNU F77 version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental) (i686-pc-li
nux-gnu) compiled by GNU C version egcs-2.93.10 19990228 (gcc2 ss-980929 experi
mental).
GNU Fortran Front End version 0.5.24-19990219
g77: Internal compiler error: program f771 got fatal signal 11
[craig@deer g77-test]$

        tq vm, (burley)

------- End of Forwarded Message


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1999-03-31 23:54 internal " Paul Fox
@ 1999-03-05  8:25 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-03-05  8:25 UTC (permalink / raw)
  To: Paul Fox; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 772 bytes --]

On Mar  5, 1999, Paul Fox <pgf@foxharp.boston.ma.us> wrote:

> actually, i _would_ attach the source, but i just tried sending that,
> and it bounced, since it's over 100000 bytes.

After compression with `bzip2 -9' (as recommended in
http://egcs.cygnus.com/faq.html#bugreport ) it went down to 40Kb; large
uncompressed attachments are manually rejected; compressed ones are
not.

>     ftp://ftp.foxharp.boston.ma.us/pub/pgf/junk/egcs-err-file.cc

> please let me know when i can delete that source file

Go ahead, the problem's fixed in release 1.1.1

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
       [not found] <Pine.LNX.4.10.9903022329290.11308-100000@ci1002641-a.ruthfd1.tn.home.com>
@ 1999-03-02 22:49 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-03-02 22:49 UTC (permalink / raw)
  To: Kevin Smith; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1060 bytes --]

On Mar  3, 1999, Kevin Smith <kevin@mtsu.edu> wrote:

> In file included from ola3.cc:23:
> dataType.h:170: Internal compiler error.
> dataType.h:170: Please submit a full bug report to `egcs-bugs@cygnus.com'.

> And the source it is crashing on:

We usually need a complete a complete code snippet to try to reproduce
the problem (see http://egcs.cygnus.com/faq.html#bugreport for
details), but I was able to reproduce the problem with egcs 1.0.3 on
sparc, but not with egcs 1.1.1, so you'd better upgrade (but you may
want to wait for 1.1.2, that should be out soon).  egcs 1.1.1 says:

t.cc:154: template-id `operator >><>' in declaration of primary template
t.cc:164: template-id `operator <<<>' in declaration of primary template

(line numbers may be a bit offset, because I stripped the initial comments)

Thanks for your bug report.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-02-28 23:30 Thomas Boggs
  1999-02-28 23:30 ` Jeffrey A Law
@ 1999-02-28 23:30 ` Nathan Sidwell
  1 sibling, 0 replies; 387+ messages in thread
From: Nathan Sidwell @ 1999-02-28 23:30 UTC (permalink / raw)
  To: Thomas Boggs; +Cc: egcs-bugs

Thomas Boggs wrote:
> $ egcs -o foo foo.cpp
> foo.cpp: In function `int main()':
> foo.cpp:7: Internal compiler error.
> foo.cpp:7: Please submit a full bug report to `egcs-bugs@cygnus.com'.
> 
> Removing 'const' from line 6 or removing line 7 completely lets it
> compile.  I'm on a P166 running Redhat 5.2.  Let me know if you need
You don't specify the version of egcs (g++ -v), but it looks like the 1.0.3 release.

The 1.1 release and the current snapshot compile this without error,

nathan@manao:203>g++ -v
Reading specs from /usr/local/egcs/sparc-SunOS_5/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
g++: No input files
nathan@manao:204>g++ -c foo.cc
foo.cc: In function `int main()':
foo.cc:6: warning: initialization to `char *' from `const char *' discards const
nathan@manao:205>ss-g++ -v    
Reading specs from /local/nathan/ss/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.06/specs
gcc version egcs-2.93.06 19990208 (gcc2 ss-980929 experimental)
nathan@manao:206>ss-g++ -c foo.cc 

I suggest upgrading

nathan
-- 
Dr Nathan Sidwell :: Computer Science Department :: Bristol University
      You can up the bandwidth, but you can't up the speed of light      
nathan@acm.org  http://www.cs.bris.ac.uk/~nathan/  nathan@cs.bris.ac.uk


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-02-28 23:30 Per Boussard
@ 1999-02-28 23:30 ` Martin v. Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin v. Loewis @ 1999-02-28 23:30 UTC (permalink / raw)
  To: per; +Cc: egcs-bugs

> Now.. I know there is at least 1.1.1 out, but it's 11 meg, which is
> forever over 28k8, and I doubt that I'll get around to updating any time
> soon unless I have a c-problem (I really hate to code in c++, and it
> shows), but I figured you may want to look at this since it's an internal
> problem. There's no doubt that the shere intensity of hidiousness of my
> code triggered this, but it's non the less advertised as an internal
> problem, so...

With the current development branch, I get

a.cc: In function `int main(int, char **)':
a.cc:30: no matches converting function `handler1' to type `void (Handler::*)()'
a.cc:15: candidates are: void One::handler1()
a.cc:32: no matches converting function `handler2' to type `void (Handler::*)()'
a.cc:16: candidates are: void One::handler2()
a.cc: In method `void One::callHandler()':
a.cc:53: pointer-to-member function One::theFunction cannot be called
a.cc:53: without an object; consider using .* or ->*

Please note that 'pointer to member' is written as
'&klasse::funktion'.

You should really update the compiler sometime.

Regards,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-02-28 23:30 David Stern
  0 siblings, 0 replies; 387+ messages in thread
From: David Stern @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

[david@lookout framework]$ g++ -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
[david@lookout framework]$ uname -a
Linux 2.0.36 #1 Tue Oct 13 22:17:11 EDT 1998 i686 unknown
[david@lookout framework]$ cat t2.C
template<class T>
class B {
};

class A {
};

A& operator<<(A& c, const B<int>& m)
{
  c.operator<< <int>(m);
}
[david@lookout framework]$ g++ t2.C
t2.C: In function `class A & operator <<(class A &, const class B<int> &)':
t2.C:10: Internal compiler error.
t2.C:10: Please submit a full bug report to `egcs-bugs@cygnus.com'.
t2.C:10: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-02-02 19:30 Internal Compiler Error mdavies
@ 1999-02-28 23:30 ` Jeffrey A Law
  0 siblings, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1999-02-28 23:30 UTC (permalink / raw)
  To: mdavies; +Cc: egcs-bugs

  In message < 36B7C279.6E32AA28@dial.pipex.com >you write:
  > Source:
  > typedef unsigned long int __fd_mask;
  >  
  > typedef struct
  >   {
  >     __fd_mask __fds_bits[1024  / (8 * sizeof (__fd_mask)) ];
  >   } __fd_set;
  > 
  > typedef struct _IO_FILE FILE;
  > 
  > extern FILE *stdin;              
  > 
  > typedef __fd_set fd_set;
  > 
  > int vga_getkey(void)
  > {
  >     fd_set fds;
  >     int fd = fileno(stdin);
  >     char c;
  > 
  >     do {        int __d0, __d1; __asm__ __volatile__ ("cld; rep; stosl"
  > : "=m" (((   &fds   )->__fds_bits) [(( 1024  ) / (8 * sizeof
  > (__fd_mask)) ) ]), "=c" (__d0), "=D" (__d1)        : "a" (0), "1"
  > (sizeof (__fd_set)       / sizeof (__fd_mask)),  "2" (& ((   &fds  
  > )->__fds_bits) [0])  : "memory");    } while (0)  ;
  > 
  >     return 0;
  > }
  > 
  > Response:
  > /usr2/src/egcs-19990131/gcc/function.c:3657: Internal compiler error in
  > function instantiate_virtual_regs_1
  > Please submit a full bug report to `egcs-bugs@cygnus.com'.
  > See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
Thanks.  I believe this bug has been fixed.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-02-28 23:30 Kim Sebo
  1999-06-25  7:04 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: Kim Sebo @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

The following short piece of code produces an internal compiler error
with the latest CVS sources, if compiled with any optimization.
Platform is Solaris 2.6 sparc. egcs-1.1.1, egcs-1.1 and
gcc-2.8.1 all compile it OK.

int main() {
    int i, j, maxval = 255;
    float foo=1.0;

        for(i=0;i<10;i++)
        for(j=0;i<10;j++) 
            printf(" %3d",(int)maxval*foo);  
    }



$ uname -a
SunOS maddog 5.6 Generic_105181-11 sun4u sparc SUNW,Ultra-2
$ gcc -v -O -c bug.c
Reading specs from /data/maestro/kim/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.04/specs
gcc version egcs-2.93.04 19990206 (gcc2 ss-980929 experimental)
 /data/maestro/kim/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.04/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=93 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__OPTIMIZE__ -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) bug.c /tmp/ccvOSTSy.i
GNU CPP version egcs-2.93.04 19990206 (gcc2 ss-980929 experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /data/maestro/kim/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.04/../../../../sparc-sun-solaris2.6/include
 /data/maestro/kim/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.04/include
 /usr/include
End of search list.
 /data/maestro/kim/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.04/cc1 /tmp/ccvOSTSy.i -quiet -dumpbase bug.c -O -version -o /tmp/ccQw3ID0.s
GNU C version egcs-2.93.04 19990206 (gcc2 ss-980929 experimental) (sparc-sun-solaris2.6) compiled by GNU C version egcs-2.93.04 19990206 (gcc2 ss-980929 experimental).
bug.c: In function `main':
bug.c:9: internal error--insn does not satisfy its constraints:
(insn 95 92 87 (set (reg:SI 35 %f3)
        (reg/v:SI 108)) 105 {*movsi_insn} (nil)
    (nil))
../../egcs/gcc/toplev.c:1447: Internal compiler error in function fatal_insn
Please submit a full bug report to `egcs-bugs@cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

-- 
Kim Sebo		kim@mso.anu.edu.au
Mount Stromlo and Siding Spring Observatories
Australian National University, Canberra
"This is an unusual telephone - it's got no feathers." - Hugo.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-02-28 23:30 Per Boussard
  1999-02-28 23:30 ` Martin v. Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Per Boussard @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

Hello heroes,

I got a dreaded 'Internal compiler error' while doing something probably
pretty stupid with egcs-1.0.3 (it's what comes with redhat-5.2). If this
is a clear you-got-what-you-deserve-and-I-don't-wanna-hear-'bout-it
category problem, feel free to feed /dev/null with this email.

If you don't... I tried to do something which is pretty straight-forward
in c, but not quite so much so in c++ -- to use a function-pointer as a
'pluggable function' entry. I'm sure I did it wrong too, and I know now
that it can't really be done easily, but...

Here's the c-example to show you what I want to do..
----
#include <unistd.h>
#include <stdio.h>

void (*f)();

void f1(){fprintf(stderr,"Running f1\n");}

void f2(){fprintf(stderr,"Running f2\n");}

void Register(void(*g)()){f=g;}

int main(int argc, char **argv)
{
	Register(f1);
	f();
	Register(f2);
	f();
}
-----
running this yields
%./c-example
Running f1
Running f2

Now, writing (well.. trying to) the same/similar thing in c++, this
('this' contains the same letter as 'shit') happens.
%make
g++ -o one One.cc
One.cc: In method `void One::callHandler()':
One.cc:53: Internal compiler error.
One.cc:53: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [all] Error 1
%g++ --version
egcs-2.90.29 980515 (egcs-1.0.3 release)

To give you the whole story...
%cat One.cc
#include <unistd.h>
#include <stdio.h>

// Handler is just something we cast to.
class Handler
{
};

class One: public Handler
{
public:
	One();
	void doRegister(void(Handler::*)(void));
	void callHandler();
	void handler1(void);
	void handler2(void);
	void (Handler::*theFunction)();
};

int main(int argc, char **argv)
{
	One *one;

	one = new One();
	if (one == NULL)
	{
		fprintf(stderr,"Can't create One\n");
		exit(1);
	}
	one->doRegister((void(Handler::*)())&one->handler1);
	one->callHandler();
	one->doRegister((void(Handler::*)())&one->handler2);
	one->callHandler();
}

One::One(){}
void One::doRegister(void(Handler::*f)(void))
{
	theFunction = f;
}
void One::handler1()
{
	fprintf(stderr,"This is handler 1\n");
}

void One::handler2()
{
	fprintf(stderr,"This is handler 2\n");
}

void One::callHandler()
{
	this->theFunction();
}
-----

Now.. I know there is at least 1.1.1 out, but it's 11 meg, which is
forever over 28k8, and I doubt that I'll get around to updating any time
soon unless I have a c-problem (I really hate to code in c++, and it
shows), but I figured you may want to look at this since it's an internal
problem. There's no doubt that the shere intensity of hidiousness of my
code triggered this, but it's non the less advertised as an internal
problem, so...

Best regards, and thanks
//Per

PS: I promise to stay away from c++, but if this leads anywhere I'd be
interested to hear.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-02-28 23:30 Kazutaka Hirata
  0 siblings, 0 replies; 387+ messages in thread
From: Kazutaka Hirata @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

To Whom It May Concern:

g++ gave me the following error:

--- pq.cce --
#include <queue>

typedef std::priority_queue<int, std::vector> p;

int main()
{
  return 0;
}

---shell ---
[kazu@brisbane ~/pq]$ g++ pq.cc
pq.cc:3: Internal compiler error.
pq.cc:3: Please submit a full bug report to `egcs-bugs@cygnus.com'.

--- g++ version ---
[kazu@brisbane ~/pq]$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

If you need any additional information, please let me know.

Sincerely,

Kazu Hirata




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1999-02-28 23:30 Thomas Boggs
@ 1999-02-28 23:30 ` Jeffrey A Law
  1999-02-28 23:30 ` Nathan Sidwell
  1 sibling, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1999-02-28 23:30 UTC (permalink / raw)
  To: Thomas Boggs; +Cc: egcs-bugs

  In message < 36C32B03.9F952CC4@symmetron.com >you write:
  > egcs asked me to send you a bug report.  Here's the problem - I tried to
  > compile this program:
  > 
  > // foo.cpp
  > #include <stdio.h>
  > 
  > int main()
  > {
  >         char * const ptr = "string";
  >         *ptr = 'x';
  >         return 0;
  > }
  > 
  > Here's what happened:
  > 
  > $ egcs -o foo foo.cpp
  > foo.cpp: In function `int main()':
  > foo.cpp:7: Internal compiler error.
  > foo.cpp:7: Please submit a full bug report to `egcs-bugs@cygnus.com'.
  > 
  > Removing 'const' from line 6 or removing line 7 completely lets it
  > compile.  I'm on a P166 running Redhat 5.2.  Let me know if you need
  > more info.
You don't mention what version of gcc you are using.  egcs -v will give you
this info.  I suspect egcs-1.0.2 or egcs-1.0.3 since this looks like  a bug
we fixed a long time ago.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-02-28 23:30 M.T.Averill
  1999-02-20 17:04 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: M.T.Averill @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

[ Section: 1/1 File: Bug.txt UUencoded by: Turnpike Version 4.01  ]

begin 644 Bug.txt
M6W)O;W1`=&AE+6)E87(M<&ET(&MD96QI8G,M,2XP72,@;6%K90IM86ME(&%L
M;"UR96-U<G-I=F4*;6%K95LQ73H@16YT97)I;F<@9&ER96-T;W)Y(&`O=7-R
M+VQO8V%L+VMD92]K9&5L:6)S+3$N,"<*36%K:6YG(&%L;"!I;B!K9&5C;W)E
M"FUA:V5;,ETZ($5N=&5R:6YG(&1I<F5C=&]R>2!@+W5S<B]L;V-A;"]K9&4O
M:V1E;&EB<RTQ+C`O:V1E8V]R92<*+W5S<B]L;V-A;"]Q="]B:6XO;6]C(&MC
M;VYF:6<N:"`M;R!K8V]N9FEG+FUO8PHO8FEN+W-H("XN+VQI8G1O;VP@+2UM
M;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@
M+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@
M("U/,B`M5V%L;"`M8R!K8V]N9FEG+F-P<`IG*RL@+41(059%7T-/3D9)1U](
M("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O
M6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+69024,@+41024,@:V-O;F9I
M9RYC<'`*;78@+68@:V-O;F9I9RYO(&MC;VYF:6<N;&\*+W5S<B]L;V-A;"]Q
M="]B:6XO;6]C(&MC;VYF:6=B87-E+F@@+6\@:V-O;F9I9V)A<V4N;6]C"B]B
M:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/
M3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M
M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MC;VYF:6=B87-E
M+F-P<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O
M;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A
M;&P@+6,@+69024,@+41024,@:V-O;F9I9V)A<V4N8W!P"FUV("UF(&MC;VYF
M:6=B87-E+F\@:V-O;F9I9V)A<V4N;&\*+W5S<B]L;V-A;"]Q="]B:6XO;6]C
M(&MS:6UP;&5C;VYF:6<N:"`M;R!K<VEM<&QE8V]N9FEG+FUO8PHO8FEN+W-H
M("XN+VQI8G1O;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&24=?
M2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R
M+U@Q,5(V+VEN8VQU9&4@("U/,B`M5V%L;"`M8R!K<VEM<&QE8V]N9FEG+F-P
M<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C
M86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@
M+6,@+69024,@+41024,@:W-I;7!L96-O;F9I9RYC<'`*;78@+68@:W-I;7!L
M96-O;F9I9RYO(&MS:6UP;&5C;VYF:6<N;&\*+V)I;B]S:"`N+B]L:6)T;V]L
M("TM;6]D93UC;VUP:6QE(&<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M
M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L
M=61E("`M3S(@+5=A;&P@+6,@:V-O;&]R9W)O=7`N8W!P"F<K*R`M1$A!5D5?
M0T].1DE'7T@@+4DN("U)+B`M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E
M("U)+W5S<B]8,3%2-B]I;F-L=61E("U/,B`M5V%L;"`M8R`M9E!)0R`M1%!)
M0R!K8V]L;W)G<F]U<"YC<'`*;78@+68@:V-O;&]R9W)O=7`N;R!K8V]L;W)G
M<F]U<"YL;PHO=7-R+VQO8V%L+W%T+V)I;B]M;V,@:V%P<"YH("UO(&MA<'`N
M;6]C"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(
M059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC
M;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MA<'`N
M8W!P"F<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M22XN("U)+W5S<B]L
M;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("U/,B`M5V%L
M;"`M8R`M9E!)0R`M1%!)0R!K87!P+F-P<`IM=B`M9B!K87!P+F\@:V%P<"YL
M;PHO8FEN+W-H("XN+VQI8G1O;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%6
M15]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU
M9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@("U/,B`M5V%L;"`M8R!K=7)L+F-P
M<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C
M86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@
M+6,@+69024,@+41024,@:W5R;"YC<'`*;78@+68@:W5R;"YO(&MU<FPN;&\*
M+W5S<B]L;V-A;"]Q="]B:6XO;6]C(&MS;V-K+F@@+6\@:W-O8VLN;6]C"B]B
M:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/
M3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M
M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MS;V-K+F-P<`IG
M*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO
M<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@
M+69024,@+41024,@:W-O8VLN8W!P"FUV("UF(&MS;V-K+F\@:W-O8VLN;&\*
M+W5S<B]L;V-A;"]Q="]B:6XO;6]C(&1R86<N:"`M;R!D<F%G+FUO8PHO8FEN
M+W-H("XN+VQI8G1O;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&
M24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO
M=7-R+U@Q,5(V+VEN8VQU9&4@("U/,B`M5V%L;"`M8R!D<F%G+F-P<`IG*RL@
M+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O
M:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+690
M24,@+41024,@9')A9RYC<'`*;78@+68@9')A9RYO(&1R86<N;&\*+W5S<B]L
M;V-A;"]Q="]B:6XO;6]C(&MK97ED871A+F@@+6\@:VME>61A=&$N;6]C"B]B
M:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/
M3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M
M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MK97EC;VYF+F-P
M<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C
M86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@
M+6,@+69024,@+41024,@:VME>6-O;F8N8W!P"FUV("UF(&MK97EC;VYF+F\@
M:VME>6-O;F8N;&\*+W5S<B]L;V-A;"]Q="]B:6XO;6]C(&MP<F]C97-S+F@@
M+6\@:W!R;V-E<W,N;6]C"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M
M<&EL92!G*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O
M;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U7
M86QL("UC(&MP<F]C97-S+F-P<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M
M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O
M:6YC;'5D92`M3S(@+5=A;&P@+6,@+69024,@+41024,@:W!R;V-E<W,N8W!P
M"FUV("UF(&MP<F]C97-S+F\@:W!R;V-E<W,N;&\*+W5S<B]L;V-A;"]Q="]B
M:6XO;6]C(&MP<F]C8W1R;"YH("UO(&MP<F]C8W1R;"YM;V,*+V)I;B]S:"`N
M+B]L:6)T;V]L("TM;6]D93UC;VUP:6QE(&<K*R`M1$A!5D5?0T].1DE'7T@@
M+4DN("U)+B`M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8
M,3%2-B]I;F-L=61E("`M3S(@+5=A;&P@+6,@:W!R;V-C=')L+F-P<`IG*RL@
M+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O
M:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+690
M24,@+41024,@:W!R;V-C=')L+F-P<`IM=B`M9B!K<')O8V-T<FPN;R!K<')O
M8V-T<FPN;&\*+V)I;B]S:"`N+B]L:6)T;V]L("TM;6]D93UC;VUP:6QE(&<K
M*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M22XN("U)+W5S<B]L;V-A;"]Q
M="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("`M3S(@+5=A;&P@+6,@
M:VQO8V%L92YC<'`*9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@
M+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@
M+4\R("U786QL("UC("UF4$E#("U$4$E#(&ML;V-A;&4N8W!P"FUV("UF(&ML
M;V-A;&4N;R!K;&]C86QE+FQO"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]
M8V]M<&EL92!G*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U
M<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R
M("U786QL("UC(&QI8FEN=&PN8W!P"F<K*R`M1$A!5D5?0T].1DE'7T@@+4DN
M("U)+B`M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2
M-B]I;F-L=61E("U/,B`M5V%L;"`M8R`M9E!)0R`M1%!)0R!L:6)I;G1L+F-P
M<`IM=B`M9B!L:6)I;G1L+F\@;&EB:6YT;"YL;PHO8FEN+W-H("XN+VQI8G1O
M;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN
M("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN
M8VQU9&4@("U/,B`M5V%L;"`M8R!F86ME<RYC<'`*9RLK("U$2$%615]#3TY&
M24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO
M=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL("UC("UF4$E#("U$4$E#(&9A
M:V5S+F-P<`IM=B`M9B!F86ME<RYO(&9A:V5S+FQO"B]U<W(O;&]C86PO<70O
M8FEN+VUO8R!K:6-O;FQO861E<BYH("UO(&MI8V]N;&]A9&5R+FUO8PHO8FEN
M+W-H("XN+VQI8G1O;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&
M24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO
M=7-R+U@Q,5(V+VEN8VQU9&4@("U/,B`M5V%L;"`M8R!K:6-O;FQO861E<BYC
M<'`*9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO
M8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL
M("UC("UF4$E#("U$4$E#(&MI8V]N;&]A9&5R+F-P<`IM=B`M9B!K:6-O;FQO
M861E<BYO(&MI8V]N;&]A9&5R+FQO"B]U<W(O;&]C86PO<70O8FEN+VUO8R!K
M9&5B=6=D:6%L;V<N:"`M;R!K9&5B=6=D:6%L;V<N;6]C"B]B:6XO<V@@+BXO
M;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/3D9)1U](("U)
M+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q
M4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MD96)U9RYC<'`*9RLK("U$2$%6
M15]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU
M9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL("UC("UF4$E#("U$
M4$E#(&MD96)U9RYC<'`*;78@+68@:V1E8G5G+F\@:V1E8G5G+FQO"B]B:6XO
M<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/3D9)
M1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U
M<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MS=&1A8V-E;"YC<'`*
M9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L
M+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL("UC
M("UF4$E#("U$4$E#(&MS=&1A8V-E;"YC<'`*;78@+68@:W-T9&%C8V5L+F\@
M:W-T9&%C8V5L+FQO"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL
M92!G*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C
M86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL
M("UC(&MW;2YC<'`*9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@
M+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@
M+4\R("U786QL("UC("UF4$E#("U$4$E#(&MW;2YC<'`*;78@+68@:W=M+F\@
M:W=M+FQO"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@
M+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O
M:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MR
M;V]T<')O<"YC<'`*9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@
M+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@
M+4\R("U786QL("UC("UF4$E#("U$4$E#(&MR;V]T<')O<"YC<'`*;78@+68@
M:W)O;W1P<F]P+F\@:W)O;W1P<F]P+FQO"B]B:6XO<V@@+BXO;&EB=&]O;"`M
M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN
M+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D
M92`@+4\R("U786QL("UC(&MC:&%R<V5T<RYC<'`*9RLK("U$2$%615]#3TY&
M24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO
M=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL("UC("UF4$E#("U$4$E#(&MC
M:&%R<V5T<RYC<'`*;78@+68@:V-H87)S971S+F\@:V-H87)S971S+FQO"B]B
M:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL92!G*RL@+41(059%7T-/
M3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M
M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL("UC(&MC:&%R<V5T<V1A
M=&$N8W!P"F<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M22XN("U)+W5S
M<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("U/,B`M
M5V%L;"`M8R`M9E!)0R`M1%!)0R!K8VAA<G-E='-D871A+F-P<`IM=B`M9B!K
M8VAA<G-E='-D871A+F\@:V-H87)S971S9&%T82YL;PHO8FEN+W-H("XN+VQI
M8G1O;VP@+2UM;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&24=?2"`M22X@
M+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V
M+VEN8VQU9&4@("U/,B`M5V%L;"`M8R!K8VAA<G1A8FQE<RYC<'`*9RLK("U$
M2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DO=7-R+VQO8V%L+W%T+VEN
M8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@+4\R("U786QL("UC("UF4$E#
M("U$4$E#(&MC:&%R=&%B;&5S+F-P<`IM=B`M9B!K8VAA<G1A8FQE<RYO(&MC
M:&%R=&%B;&5S+FQO"B]B:6XO<V@@+BXO;&EB=&]O;"`M+6UO9&4]8V]M<&EL
M92!G*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C
M86PO<70O:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`@+4\R("U786QL
M("UC(&MS=')I;F<N8W!P"F<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M
M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L
M=61E("U/,B`M5V%L;"`M8R`M9E!)0R`M1%!)0R!K<W1R:6YG+F-P<`IM=B`M
M9B!K<W1R:6YG+F\@:W-T<FEN9RYL;PHO8FEN+W-H("XN+VQI8G1O;VP@+2UM
M;V1E/6-O;7!I;&4@9RLK("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@
M+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V+VEN8VQU9&4@
M("U/,B`M5V%L;"`M8R!K<&EX;6%P+F-P<`IG*RL@+41(059%7T-/3D9)1U](
M("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D92`M22]U<W(O
M6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+69024,@+41024,@:W!I>&UA
M<"YC<'`*;78@+68@:W!I>&UA<"YO(&MP:7AM87`N;&\*+V)I;B]S:"`N+B]L
M:6)T;V]L("TM;6]D93UC;VUP:6QE(&<K*R`M1$A!5D5?0T].1DE'7T@@+4DN
M("U)+B`M22XN("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2
M-B]I;F-L=61E("`M3S(@+5=A;&P@+6,@9&ET:&5R+F-P<`IG*RL@+41(059%
M7T-/3D9)1U](("U)+B`M22X@+4DN+B`M22]U<W(O;&]C86PO<70O:6YC;'5D
M92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+69024,@+410
M24,@9&ET:&5R+F-P<`IM=B`M9B!D:71H97(N;R!D:71H97(N;&\*+V)I;B]S
M:"`N+B]L:6)T;V]L("TM;6]D93UL:6YK(&<K*R`M3S(@+5=A;&P@+7,@+6\@
M;&EB:V1E8V]R92YL82`M<G!A=&@@+W5S<B]L;V-A;"]K9&4O;&EB("UV97)S
M:6]N+6EN9F\@,3HP(&MC;VYF:6<N;&\@:V-O;F9I9V)A<V4N;&\@:W-I;7!L
M96-O;F9I9RYL;R!K8V]L;W)G<F]U<"YL;R!K87!P+FQO(&MU<FPN;&\@:W-O
M8VLN;&\@9')A9RYL;R!K:V5Y8V]N9BYL;R!K<')O8V5S<RYL;R!K<')O8V-T
M<FPN;&\@:VQO8V%L92YL;R!L:6)I;G1L+FQO(&9A:V5S+FQO(&MI8V]N;&]A
M9&5R+FQO(&MD96)U9RYL;R!K<W1D86-C96PN;&\@:W=M+FQO(&MR;V]T<')O
M<"YL;R!K8VAA<G-E=',N;&\@:V-H87)S971S9&%T82YL;R!K8VAA<G1A8FQE
M<RYL;R!K<W1R:6YG+FQO(&MP:7AM87`N;&\@9&ET:&5R+FQO("`*;6MD:7(@
M+FQI8G,*9RLK("US:&%R960@+5=L+"US;VYA;64@+5=L+&QI8FMD96-O<F4N
M<V\N,2`M;R`N;&EB<R]L:6)K9&5C;W)E+G-O+C$N,"XP(&MC;VYF:6<N;&\@
M:V-O;F9I9V)A<V4N;&\@:W-I;7!L96-O;F9I9RYL;R!K8V]L;W)G<F]U<"YL
M;R!K87!P+FQO(&MU<FPN;&\@:W-O8VLN;&\@9')A9RYL;R!K:V5Y8V]N9BYL
M;R!K<')O8V5S<RYL;R!K<')O8V-T<FPN;&\@:VQO8V%L92YL;R!L:6)I;G1L
M+FQO(&9A:V5S+FQO(&MI8V]N;&]A9&5R+FQO(&MD96)U9RYL;R!K<W1D86-C
M96PN;&\@:W=M+FQO(&MR;V]T<')O<"YL;R!K8VAA<G-E=',N;&\@:V-H87)S
M971S9&%T82YL;R!K8VAA<G1A8FQE<RYL;R!K<W1R:6YG+FQO(&MP:7AM87`N
M;&\@9&ET:&5R+FQO"BAC9"`N;&EB<R`F)B!L;B`M<R!L:6)K9&5C;W)E+G-O
M+C$N,"XP(&QI8FMD96-O<F4N<V\N,2D**&-D("YL:6)S("8F(&QN("US(&QI
M8FMD96-O<F4N<V\N,2XP+C`@;&EB:V1E8V]R92YS;RD*8W)E871I;F<@;&EB
M:V1E8V]R92YL80HH8V0@+FQI8G,@)B8@;&X@+7,@+BXO;&EB:V1E8V]R92YL
M82!L:6)K9&5C;W)E+FQA*0IM86ME6S)=.B!,96%V:6YG(&1I<F5C=&]R>2!@
M+W5S<B]L;V-A;"]K9&4O:V1E;&EB<RTQ+C`O:V1E8V]R92<*36%K:6YG(&%L
M;"!I;B!K9&5U:0IM86ME6S)=.B!%;G1E<FEN9R!D:7)E8W1O<GD@8"]U<W(O
M;&]C86PO:V1E+VMD96QI8G,M,2XP+VMD975I)PHO=7-R+VQO8V%L+W%T+V)I
M;B]M;V,@:VQE9&QA;7`N:"`M;R!K;&5D;&%M<"YM;V,*+V)I;B]S:"`N+B]L
M:6)T;V]L("TM;6]D93UC;VUP:6QE(&<K*R`M1$A!5D5?0T].1DE'7T@@+4DN
M("U)+B`M22XN("U)+BXO:V1E8V]R92`M22XN+VMF:6QE("U)+W5S<B]L;V-A
M;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("`@+4\R("U786QL
M("UC(&ML961L86UP+F-P<`IG*RL@+41(059%7T-/3D9)1U](("U)+B`M22X@
M+4DN+B`M22XN+VMD96-O<F4@+4DN+B]K9FEL92`M22]U<W(O;&]C86PO<70O
M:6YC;'5D92`M22]U<W(O6#$Q4C8O:6YC;'5D92`M3S(@+5=A;&P@+6,@+690
M24,@+41024,@:VQE9&QA;7`N8W!P"FUV("UF(&ML961L86UP+F\@:VQE9&QA
M;7`N;&\*+W5S<B]L;V-A;"]Q="]B:6XO;6]C(&MP<F]G<F5S<RYH("UO(&MP
M<F]G<F5S<RYM;V,*+V)I;B]S:"`N+B]L:6)T;V]L("TM;6]D93UC;VUP:6QE
M(&<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)+B`M22XN("U)+BXO:V1E8V]R
M92`M22XN+VMF:6QE("U)+W5S<B]L;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8
M,3%2-B]I;F-L=61E("`@+4\R("U786QL("UC(&MP<F]G<F5S<RYC<'`*9RLK
M("U$2$%615]#3TY&24=?2"`M22X@+4DN("U)+BX@+4DN+B]K9&5C;W)E("U)
M+BXO:V9I;&4@+4DO=7-R+VQO8V%L+W%T+VEN8VQU9&4@+4DO=7-R+U@Q,5(V
M+VEN8VQU9&4@+4\R("U786QL("UC("UF4$E#("U$4$E#(&MP<F]G<F5S<RYC
M<'`*;78@+68@:W!R;V=R97-S+F\@:W!R;V=R97-S+FQO"B]U<W(O;&]C86PO
M<70O8FEN+VUO8R!K<&%N;F5R+F@@+6\@:W!A;FYE<BYM;V,*+V)I;B]S:"`N
M+B]L:6)T;V]L("TM;6]D93UC;VUP:6QE(&<K*R`M1$A!5D5?0T].1DE'7T@@
M+4DN("U)+B`M22XN("U)+BXO:V1E8V]R92`M22XN+VMF:6QE("U)+W5S<B]L
M;V-A;"]Q="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("`@+4\R("U7
M86QL("UC(&MP86YN97(N8W!P"F<K*R`M1$A!5D5?0T].1DE'7T@@+4DN("U)
M+B`M22XN("U)+BXO:V1E8V]R92`M22XN+VMF:6QE("U)+W5S<B]L;V-A;"]Q
M="]I;F-L=61E("U)+W5S<B]8,3%2-B]I;F-L=61E("U/,B`M5V%L;"`M8R`M
M9E!)0R`M1%!)0R!K<&%N;F5R+F-P<`HO=7-R+VQO8V%L+W%T+VEN8VQU9&4O
M<69O;G1I;F9O+F@Z($EN(&UE=&AO9"!@=F]I9"!11F]N=$EN9F\Z.G-E=%-T
M<FEK94]U=$9L86<H*2<Z"DEN(&9I;&4@:6YC;'5D960@9G)O;2`O=7-R+VQO
M8V%L+W%T+VEN8VQU9&4O<7!A:6YT97(N:#HS,BP*("`@("`@("`@("`@("`@
M("!F<F]M(&MP86YN97(N8W!P.C8W.@HO=7-R+VQO8V%L+W%T+VEN8VQU9&4O
M<69O;G1I;F9O+F@Z.#(Z($EN=&5R;F%L(&-O;7!I;&5R(&5R<F]R+@HO=7-R
M+VQO8V%L+W%T+VEN8VQU9&4O<69O;G1I;F9O+F@Z.#(Z(%!L96%S92!S=6)M
M:70@82!F=6QL(&)U9R!R97!O<G0@=&\@8&5G8W,M8G5G<T!C>6=N=7,N8V]M
M)RX*;6%K95LR73H@*BHJ(%MK<&%N;F5R+FQO72!%<G)O<B`Q"FUA:V5;,ETZ
M($QE879I;F<@9&ER96-T;W)Y(&`O=7-R+VQO8V%L+VMD92]K9&5L:6)S+3$N
M,"]K9&5U:2<*;6%K95LQ73H@*BHJ(%MA;&PM<F5C=7)S:79E72!%<G)O<B`Q
M"FUA:V5;,5TZ($QE879I;F<@9&ER96-T;W)Y(&`O=7-R+VQO8V%L+VMD92]K
M9&5L:6)S+3$N,"<*;6%K93H@*BHJ(%MA;&PM<F5C=7)S:79E+6%M72!%<G)O
F<B`R"EMR;V]T0'1H92UB96%R+7!I="!K9&5L:6)S+3$N,%TC(`H`
`
end

sum -r/size 8541/14710 section (from "begin" to "end")
sum -r/size 44201/10658 entire input file
Attached is the output generated whilst compiling libraries for KDE.
My system is running Redhat Linux 5.1. At the time of this problem I had
just built and installed QT for X11 version 1.42, followed by the KDE
support libraries and was building the main KDE libraries when this came
up.

If you can tell me who to fix this I'd be most grateful.



Regards
Michael T Averill  and the bears . . . 

{~._.~}      {~._.~}      {~._.~}
 ( Y )        ( Y )        ( Y )
()~*~()      ()~*~()      ()~*~()
(_)-(_)      (_)-(_)      (_)-(_)


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
       [not found] <9902012345.AA04942@physics.div111.lucent.com>
@ 1999-02-28 23:30 ` Gerald Pfeifer
  0 siblings, 0 replies; 387+ messages in thread
From: Gerald Pfeifer @ 1999-02-28 23:30 UTC (permalink / raw)
  To: Srinivasa SA; +Cc: egcs-bugs, sas

On Mon, 1 Feb 1999, Srinivasa SA wrote:
>     egcs-2.90.29 980515 (egcs-1.0.3 release)
> 
> Error message:
>     t.C: In function `const class type_info & __tf?()':
>     t.C:42: Internal compiler error 252.
>     t.C:42: Please submit a full bug report to `egcs-bugs@cygnus.com'.

egcs 1.1 complains
  t.C: In method `Class1::Class1(int, char *)':
  t.C:35: warning: throwing NULL
instead.

Please consider updating to a current release...

Gerald
-- 
Gerald Pfeifer (Jerry)      Vienna University of Technology
pfeifer@dbai.tuwien.ac.at   http://www.dbai.tuwien.ac.at/~pfeifer/



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-02-28 23:30 Thomas Boggs
  1999-02-28 23:30 ` Jeffrey A Law
  1999-02-28 23:30 ` Nathan Sidwell
  0 siblings, 2 replies; 387+ messages in thread
From: Thomas Boggs @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

egcs asked me to send you a bug report.  Here's the problem - I tried to
compile this program:

// foo.cpp
#include <stdio.h>

int main()
{
        char * const ptr = "string";
        *ptr = 'x';
        return 0;
}

Here's what happened:

$ egcs -o foo foo.cpp
foo.cpp: In function `int main()':
foo.cpp:7: Internal compiler error.
foo.cpp:7: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Removing 'const' from line 6 or removing line 7 completely lets it
compile.  I'm on a P166 running Redhat 5.2.  Let me know if you need
more info.

-thomas





^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-02-28 23:30 Miniussi
  0 siblings, 0 replies; 387+ messages in thread
From: Miniussi @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

I have an internal compiler error that can be reproduced with a small piece of
code:

template<class H>
struct reader {
  template<void (*m)(H)> struct S {};
};

Alain

miniussi@nice > inf : g++ test.cpp -c -v
Reading specs from
/nfs/home5/miniussi/egcs/solaris/111/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)

/nfs/home5/miniussi/egcs/solaris/111/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.60/cpp
-lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91
-Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__
-D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4)
-D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) test.cpp
/var/tmp/ccfkADGZ.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /nfs/home5/miniussi/egcs/solaris/111/include/g++
 /usr/local/include
 /nfs/home5/miniussi/egcs/solaris/111/sparc-sun-solaris2.5.1/include

/nfs/home5/miniussi/egcs/solaris/111/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.60/include
 /usr/include
End of search list.

/nfs/home5/miniussi/egcs/solaris/111/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.60/cc1plus
/var/tmp/ccfkADGZ.ii -quiet -dumpbase test.cc -version -o /var/tmp/ccUmjJeS.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release)
(sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.91.60 19981201
(egcs-1.1.1 release).
test.cpp:6: Internal compiler error.
test.cpp:6: Please submit a full bug report to `egcs-bugs@cygnus.com'.
test.cpp:6: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
miniussi@nice > inf : more test.cpp 


template<class H>
struct reader {
  template<void (*m)(H)>
  struct S {};
};

miniussi@nice > inf :


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-02-28 23:30 Kurt Starsinic
  0 siblings, 0 replies; 387+ messages in thread
From: Kurt Starsinic @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 726 bytes --]

Hi,

    I received an internal compiler error from egcs.

egcs version:
    gcc version egcs-2.91.61 19990216 (egcs-1.1.2 pre-release-1)

system type:
    Debian `potato' release
    Linux gil 2.0.34 #2 Thu Jul 9 10:57:48 EST 1998 i686 unknown

command line options:
    g++ -Wall -g   -c Query.cpp -o Query.o

    I'll be happy to answer any additional questions.  Query.ii.gz attached.

    Peace,
* Kurt Starsinic (kstar@isinet.com) ------------------ Technical Specialist *
|  `Any sufficiently advanced technology is indistinguishable from magic.'  |
|                            -- Arthur C. Clarke                            |
Institute for Scientific Information                   http://www.isinet.com/
Query.ii.gz


[-- Attachment #2: Query.ii.gz --]
[-- Type: application/x-gzip, Size: 34116 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-02-28 23:30 Internal compiler error M.T.Averill
@ 1999-02-20 17:04 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-02-20 17:04 UTC (permalink / raw)
  To: M.T.Averill; +Cc: egcs-bugs

On Feb 14, 1999, "M.T.Averill" <mike@the-bear-pit.demon.co.uk> wrote:

> /usr/local/qt/include/qfontinfo.h:82: Internal compiler error.
> /usr/local/qt/include/qfontinfo.h:82: Please submit a full bug report to `egcs-bugs@cygnus.com'.

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
@ 1999-02-17 15:13 Mike Stump
  0 siblings, 0 replies; 387+ messages in thread
From: Mike Stump @ 1999-02-17 15:13 UTC (permalink / raw)
  To: per; +Cc: egcs-bugs

> Date: Fri, 15 Jan 1999 21:11:29 +0000 (WET)
> From: Per Boussard <per@era-t.ericsson.se>

> I got a dreaded 'Internal compiler error' while doing something
> probably Now.. I know there is at least 1.1.1 out, but it's 11 meg,
> which is forever over 28k8

One hour (if things go well).  If you don't want support, then egcs
1.0.3 is fine, if you want support, it helps us it you can report bugs
against the latest version, though it isn't really necessary.

	this->theFunction();

this should be:

        (this->*theFunction)();

and a newer compiler gives:

t.c: In method `void One::callHandler()':
t.c:53: pointer-to-member function One::theFunction cannot be called
t.c:53: without an object; consider using .* or ->*

instead of core dumping, so I think this bug is fixed.
>From iv@1play4.es Wed Feb 17 15:18:00 1999
From: iv@1play4.es
To: <tiemann@cygnus.com>
Subject: Ways to the future
Date: Wed, 17 Feb 1999 15:18:00 -0000
Message-id: <199902172318.PAA22792@cygnus.com>
X-SW-Source: 1999-02/msg00548.html
Content-length: 3457

   LET US DO YOUR BULK E-MAIL ADVERTISING!!!

TIRED OF THE "IN YOUR FACE ADS" (BANNERS)  STATISTICS SHOW 
THEY ARE NOT WORKING.  PEOPLE ARE TIRED OF THE FORCEFUL ADS
EACH AND EVERYTIME THEY CLICK ONTO A SITE.  PUT YOUR AD 
DIRECTLY INTO THEIR MAILBOX, WHERE THEY CAN READ IT AT THEIR
LEISURE.  OUR CLIENTS FIND THAT INDIVIDUAL ADS WORK AND BRING
TRAFFIC TO THEIR SITE MORE THAN BANNERS.

THE WAY OF THE FUTURE FOR SUCCESS IN YOUR BUSINESS TODAY!

     **BEST BUY**NON-TARGETED MAILINGS** (WORLD-WIDE)
        	  1/2 million - $450
	       
Let our company do mailing for your product/service, 
newsletter/report, seminar, convention or client list.

If your ISP will not let you do bulk mailing, then you
extract your own addresses, we will do your personal
bulk mailing $200 per month - 50,000 addresses a week.
MUST supply us with addresses.  

Addresses are extracted 24 hours a day 7 days a week, 
scanning the net for new addresses.  Estimated 
500-700,000 addresses extracted daily.  They are fresh!  
Over 67 million addresses on file and NONE were purchased
from other CD's.  

No more than 2 pages (50 lines).  Each ad must be no 
more than 50 characters wide by 50 lines deep.

     ***Targeted mailings: ***
Why pay $.01 per addresses save LOTS OF $$$, we will mail 
your ad or you can purchase the addresses: 

$250 - 50,000 addresses extracted
$150 - 25,000 addresses extracted

***SPECIAL*** FEBRUARY ONLY 1/2 million mailed to .net and 
.com $500.  A savings of $2000.  Don't let this pass you
by, call today.

Only fresh addresses are sent.  We extract when an order 
is placed.  We DO NOT use addresses extracted over a 
period of time.

We can extract by country, occupation, organizations, 
associations, product, website/domain, state or megatags 
(keywords).  If we can not search and extract what 
you need, then nobody can.  No one can target your 
mailing for less. 

Do your own mailing.  Buy addresses for any country extention, 
cost up to 1 million addresses only $500, a savings of $4,500.  
World wide addresses, non-targeted addresses extracted at random, 
$200 per million.  Buying a CD of addresses will only produce old
addresses up to 2 years old.  More than 90% will be out of date
and undeliverable.

Your mailing can be done in a matter of hours, instead 
of days.  We do not send to .edu, .gov or .mil.  If you
would like to send to any of these, we will be glad to
to sell the addresses and you can send your ad to the
.edu, .gov and .mil.  We have hundreds of thousands on
file.  AOL, Prodigy and Compuserve addresses offered for sale.  
All addresses are no older than 4 months, which also includes 
recent extractions.  $100 per million sent via. internet.

For the fastest service, cheapest prices and cleanest
mailings call our processing and new accounts department
at 904-282-0945, Monday - Friday.  If the line is busy or 
no answer, please keep trying, as bulk mailing is growing 
fast.  We do want to work with you to advertise your product.
Check out our prices and compare with other bulk emailers, 
you will find we have the BEST prices anywhere.  In fact, 
we do bulk mailings for many other bulk emailers also.  We 
have been serving our clients since February, 1997.

We can only remove usersname@domain, not an entire domain. 
To be remove email mackey14@hotmail.com.

Sender does not accept registered mail.
GWH 
950-23 Blanding Boulevard, Suite 113
Orange Park, Florida 32065
 
 
 
 
 
 
 
 
 
 
 
>From law@hurl.cygnus.com Wed Feb 17 15:46:00 1999
From: Jeffrey A Law <law@hurl.cygnus.com>
To: Giuliano Procida <GProcida@Madge.com>
Cc: "'egcs-bugs@cygnus.com'" <egcs-bugs@cygnus.com>
Subject: Re: Tail recursion unoptimised 
Date: Wed, 17 Feb 1999 15:46:00 -0000
Message-id: <26734.919295126@hurl.cygnus.com>
In-reply-to: Your message of Wed, 17 Feb 1999 22:49:56 MST.            < 4110BC526A58D211B56C0000F6B9636D8CBB05@ws-exch01.dev.madge.com > 
References: <4110BC526A58D211B56C0000F6B9636D8CBB05@ws-exch01.dev.madge.com>
X-SW-Source: 1999-02/msg00549.html
Content-length: 1458

  In message < 4110BC526A58D211B56C0000F6B9636D8CBB05@ws-exch01.dev.madge.com >yo
u write:
  > egcc/s fails to detect several possibilities for tail-call optimisation. I
  > have included one example here and given a sketch of the case that bit me.
Yup.  GCC's ability to detect tail recursive calls is quite limited.

In short, if the tail recursion does not appear as part of a return statement,
then it will not be recognized as tail recursion.  There's a number of other
conditions, but this is the one that most commonly defeats tail recursion
optimizations for gcc.

This is a side effect of our statement-at-a-time high level internal format --
at the time we expand the call we typically do not know whether or not the
current function will immediately8 return after the tail recursive call
returns.

If you look back in the egcs-patches archive for a message from me you'll
see an early review copy of code to beef up tail recursion detection.  It's
not prefect by any means, but it's a major improvement over what currently
exists in the compiler.  [ I'd look in the January egcs & egcs-patches mail
archive. ]


On a higher level engineering note, writing tail-recursive code in the
kernel is generally a bad idea unless you know the recursion will break
quickly.  You're going to be better off writing an iterative form of the
code to avoid any dependency on precisely how and when the compiler optimizes
tail recursive calls.

jeff














^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-02-05 11:35 Christian Stoeckl
  0 siblings, 0 replies; 387+ messages in thread
From: Christian Stoeckl @ 1999-02-05 11:35 UTC (permalink / raw)
  To: egcs-bugs

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 2

gcc version egcs-2.93.04 19990131 (gcc2 ss-980929 experimental)
SunOS xxxxx 5.6 Generic_105181-03 sun4u sparc SUNW,Ultra-60 
----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: fixed.ii.bz2
X-Sun-Encoding-Info: uuencode
X-Sun-Content-Lines: 1239

begin 600 fixed.ii.bz2
M0EIH.3%!62936=0CG2  NQ+_@'_______________K____]A3MX^?86L5>V%
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
B:V-?'*B^=R45_H3>>4OKJN;ZXG=,+__%W)%.%"0U".=( )6C
 
end
>From dooling@piglet.chem-eng.nwu.edu Fri Feb 05 12:43:00 1999
From: "David J. Dooling" <dooling@piglet.chem-eng.nwu.edu>
To: nathan@cs.bris.ac.uk
Cc: egcs-bugs@cygnus.com
Subject: Re: friends inside namespace (non-members)
Date: Fri, 05 Feb 1999 12:43:00 -0000
Message-id: <19990205204026.17171.qmail@piglet.chem-eng.nwu.edu>
In-reply-to: < 36BB1A45.1DF76738@acm.org > (message from Nathan Sidwell on Fri,05 Feb 1999 16:20:21 +0000)
References: <19990205152650.11638.qmail@piglet.chem-eng.nwu.edu> <36BB1A45.1DF76738@acm.org> <36BB1A45.1DF76738@acm.org>
X-SW-Source: 1999-02/msg00159.html
Content-length: 3801

I apologize if the does not strictly qualify as a bug.

Dr Nathan Sidwell wrote:
   David J. Dooling wrote:
   > 
   > Brief description: declaring a friend function/operator inside a
   > namespace and defining it outside the namespace (after a ``using''
   > directive) causes the compiler to think two functions with the same
   > signature have been created, one inside the namespace and one outside,
   > leading to an ambiguity.  If you do not use a using directive and
   > fully qualify all functions/operators/classes, it compiles without
   > error.

   > friend.cc: In function `int main()':
   > friend.cc:22: ambiguous overload for `_IO_ostream_withassign & << ::N::X &'
   > friend.cc:15: candidates are: operator <<(ostream &, const ::N::X &)
   > friend.cc:9:                 operator <<(ostream &, const ::N::X &)
   The compiler is correct in issuing a diagnostic, but unfortunately removes
   information from it which shows that lines 15 and 9 declare/define
   different functions. the 19990131 snapshot provides the more informative
   diagnostic,
   foo.cc: In function `class ostream & operator <<(class ostream &, const class N::X &)':
   foo.cc:16: member `i' is a private member of class `N::X'
   foo.cc: In function `int main()':
   foo.cc:22: ambiguous overload for `_IO_ostream_withassign & << N::X &'
   foo.cc:15: candidates are: operator <<(ostream &, const N::X &)
   foo.cc:9:                 N::operator <<(ostream &, const N::X &)

   You are confused about the meaning of the using directive.
   A friend declaration introduces a name into the namespace scope enclosing the
   current class declaration (unless the name is qualified). So line 9 introduces
   'N::operator<<'. The using declaration applies to name lookup, not name
   declaration or definition. Therefore line 15 is defining a new function
   '::operator<<', which is not a friend of N::X. Hence the diagnostic about 
   line 16. I am puzzled as to why you didn't get such a diagnostic too.

   You need to change line 15 from unqualified 'operator<<' 'to `N::operator<<'.

   nathan
   -- 
   Dr Nathan Sidwell :: Computer Science Department :: Bristol University
	 You can up the bandwidth, but you can't up the speed of light      
   nathan@acm.org  http://www.cs.bris.ac.uk/~nathan/  nathan@cs.bris.ac.uk


If that is the case, then why does the compiler not complain about
member functions handled the same way (i.e., it only complains about
non-member functions declared in namespaces):

=== member.cc ===
// test friend declaration in namespace
#include <iostream>

namespace N {
    class X {
	int i;
    public:
	X(int i_i);
        ~X();
        void foo();
    };
    void bar();
}

using namespace N;
X::X(int i_i) : i(i_i) {}
X::~X() {}
void X::foo() {
    std::cout << "in X::foo(), X::i = " << X::i << std::endl;
}
void bar() { std::cout << "in bar()" << std::endl; }

main()
{
    X x(7);
    x.foo();
    bar();
}
=== end ===

This does not compile unless you change the definition of void bar()
to void N::bar().  If you do this, it compiles without a complaint
about the member functions.  Are then the declarations of member
funtions inside classes which are inside namespaces treated
differently than declarations of non-member functions inside
namespaces?  Are the member function declarations actual declarations
while the non-member function ``declarations'' are simple
introductions of function names?  I can understand where a friend
declaration could and should be treated differently.  But what about
non-member functions?

DAVID.
~~~~~~
David J. Dooling                        d-dooling@nwu.edu
Dept. of Chemical Engineering           phone 847 467-1402
Northwestern University                 fax   847 491-3728
http://winnie.chem-eng.nwu.edu/students/dooling.html
>From ajh8@doc.ic.ac.uk Fri Feb 05 13:50:00 1999
From: "Alastair J. Houghton" <ajh8@doc.ic.ac.uk>
To: "Leonid A. Broukhis" <leob@best.com>, EGCS-bugs <egcs-bugs@cygnus.com>
Subject: Re: Enum is a class?
Date: Fri, 05 Feb 1999 13:50:00 -0000
Message-id: <36BB67A9.4F6A7352@doc.ic.ac.uk>
References: <199902051926.LAA12672@shell7.ba.best.com>
X-SW-Source: 1999-02/msg00160.html
Content-length: 2917

Leonid A. Broukhis wrote:
> 
> >Leonid A. Broukhis wrote:
> [snip]
>
> >Are you even allowed references to bitfield members? I
> 
> No, references to bitfields are not allowed, and they never were.
> 
> >don't think that your program is valid C++ - even if it
> >works on Sun's compiler, I think you should have written
> >
> >   template <class T> bool operator!= (T a, T b)
> >   {
> >      return !(a == b);
> >   }
> 
> STL does it with reference arguments, and it makes sense, otherwise
> it will be extremely inefficient or plain wrong (e.g. if a copy constructor
> inserts unique numbers somewhere).

Granted that it is inefficient if the function isn't expanded
inline, or the copy constructor is too complex for the
compiler to inline and simplify.

> >And in any case such a definition is dangerous; you'd be
> >better specifically defining your != operator for your
> >type.
> 
> Tell it to the STL authors. :-)

I would if I saw them ;-) ;-). I didn't think that they'd
defined such an operator... maybe I'd better have a good look
at the STL.
 
> >The trouble is that the type of "z.a" is "x", not "x:10";
> >so the function that gets instantiated will be
> >
> >   bool operator != (x &a, x &b)
> >   {
> >      return !(a == b);
> >   }
> 
> The trouble is that the operator!= must not have been instantiated
> in the first place. It doesn't get instantiated for int comparison,
> why are enums any different?

Ah - I see what you mean. What you're saying is that the
compiler shouldn't instantiate your != operator in the first
place, because the type can't be matched. Hmmm. 

> >I'll be interested to hear what the C++ standard says.
> 
> Me too, but if it says that enums are classes, it is a
> major bummer.

I wouldn't be too surprised. Besides I think that the
compiler should attempt to instantiate the operator, as
you've defined it for all types - that is what
template<class T> is supposed to mean, isn't it? And it
would be bad to have behaviour defined for an enum half
of the time. You're right though - it is a bit strange
that it does one thing for "int" and another for "enum x"
types.

Maybe you should simply define a more specific operator
for the "x" type; after all, it's only an integer, so
you don't really need to use a reference...

OK. I just checked in the EGCS source. Your problem is
caused by a piece of code written by Jason Merrill
(jason@cygnus.com). It appears that the C++ standard
does specify that enums are subject to operator
overloading, though they aren't full class types.
The change, for your interest, was made in '94, so
any EGCS version later than that will not compile
your code.

Bitfields are, of course, allowed to use any integral
type.

Hope this helps,

Alastair.

____________________________________________________________
Alastair Houghton                              ajh8@ic.ac.uk
(ISE 3)                             Imperial College, London
>From ajenkins@netway.com Fri Feb 05 14:14:00 1999
From: "Adam P. Jenkins" <ajenkins@netway.com>
To: egcs-bugs@cygnus.com
Subject: Internal Error 71
Date: Fri, 05 Feb 1999 14:14:00 -0000
Message-id: <199902052214.RAA00854@xcom-78-84.mdc.net>
X-SW-Source: 1999-02/msg00161.html
Content-length: 1934

I get an internal compiler error with the following program.  I'm
using egcs-1.1.1 on Linux, Pentium 200, 96 megs ram.

----- tmp.cc ----
extern const char myName[] = "Adam";

template <const char* Name>
class N {
public:
  const char* getName() const { return Name; }
};

int main()
{
  N<myName> n;
  const char *name = n.getName();
  return return 0;
}
---- end tmp.cc ----

uname -a:
Linux xcom-78-84 2.0.32 #3 Thu Dec 25 21:13:23 EST 1997 i586 unknown

g++ -Wall -v tmp.cc
Reading specs from /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.60/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Wall -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di586 -Dpentium -D__i586 -D__i586__ -D__pentium -D__pentium__ tmp.cc /tmp/ccpzsWMM.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/egcs/include/g++
 /usr/local/include
 /usr/local/egcs/i586-pc-linux-gnu/include
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.60/include
 /usr/include
End of search list.
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.60/cc1plus /tmp/ccpzsWMM.ii -quiet -dumpbase tmp.cc -Wall -version -o /tmp/cck8uHDp.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i586-pc-linux-gnu) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release).
tmp.cc: In function `int main()':
tmp.cc:11: Internal compiler error 71.
tmp.cc:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.
tmp.cc:11: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
>From leob@best.com Fri Feb 05 14:34:00 1999
From: "Leonid A. Broukhis" <leob@best.com>
To: ajh8@doc.ic.ac.uk, egcs-bugs@cygnus.com, leob@best.com
Subject: Re: Enum is a class?
Date: Fri, 05 Feb 1999 14:34:00 -0000
Message-id: <199902052233.OAA25454@shell7.ba.best.com>
In-reply-to: < 36BB67A9.4F6A7352@doc.ic.ac.uk >
References: <36BB67A9.4F6A7352@doc.ic.ac.uk>
X-SW-Source: 1999-02/msg00162.html
Content-length: 2008

To recapitulate the subject:

enum x {
        x1, x2, x3
};

struct elem_t {
  x  a  :10;
  x  b  :10;
};

template <class T> bool operator!= (const T& x, const T & y)
{
        return !(x == y);
}

bool f(elem_t z) {

// replace a with b and watch the error disappear
// Explicit cast of z.a to x also helps!!!

         return ( x1 != z.a);
}

>> >I'll be interested to hear what the C++ standard says.
>> 
>> Me too, but if it says that enums are classes, it is a
>> major bummer.
>
>I wouldn't be too surprised. Besides I think that the
>compiler should attempt to instantiate the operator, as
>you've defined it for all types - that is what
>template<class T> is supposed to mean, isn't it? And it
>would be bad to have behaviour defined for an enum half
>of the time. You're right though - it is a bit strange
>that it does one thing for "int" and another for "enum x"
>types.
>
>Maybe you should simply define a more specific operator
>for the "x" type; after all, it's only an integer, so
>you don't really need to use a reference...

That's not me, that's stl_relop.h. I was using bitfield enums
happily until I touched the inequality operator.

>OK. I just checked in the EGCS source. Your problem is
>caused by a piece of code written by Jason Merrill
>(jason@cygnus.com). It appears that the C++ standard
>does specify that enums are subject to operator
>overloading, though they aren't full class types.
>The change, for your interest, was made in '94, so
>any EGCS version later than that will not compile
>your code.

Right; and the bug went unnoticed until STL came.

In any case, the fact that an explicit casting helps demonstrates
that something is wrong inside EGCS. The template requires the
two operands to be of the same type. The first one, x1, is of type x;
if the second one, from egcs' point of view, is of the same type
for all purposes, then the casting should not have helped; if it
is of a different type (e.g. x:10), 
then an implicit cast operation must be performed.

	Leo
>From espie@quatramaran.ens.fr Fri Feb 05 15:57:00 1999
From: Marc Espie <espie@quatramaran.ens.fr>
To: cpeignot@disam.upm.es
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: egcs bug
Date: Fri, 05 Feb 1999 15:57:00 -0000
Message-id: <199902052356.AAA06300@quatramaran.ens.fr>
In-reply-to: < 9902041313.AA01004@borges.upm.es >
References: <9902041313.AA01004@borges.upm.es>
X-SW-Source: 1999-02/msg00163.html
Content-length: 537

In article < 9902041313.AA01004@borges.upm.es > you write:
>
>// begin code
>#include <vector>
>
>class foo {};
>
>main() {
>    vector<foo> foo_vector;
>    unsigned int size=foo_vector->size();
>}
>// end code
>
>g++ -v:
>gcc version egcs-2.91.14 980315 (gcc-2.8.0 release)
>
>g++ test.cc:
>test.cc: In function 'int main()':
>test.cc:7: Internal compiler error.

Fixed in recent snapshots, where egcs correctly says:
test.C: In function `int main()':
test.C:8: base operand of '->' has non-pointer type `vector<foo,allocator<foo> >'


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-02-05  4:44 root
  0 siblings, 0 replies; 387+ messages in thread
From: root @ 1999-02-05  4:44 UTC (permalink / raw)
  To: egcs-bugs

 <<bug_report.gz>> invalid code in example but causes internal compiler error none the less!
>From jochen@uni-duesseldorf.de Fri Feb 05 05:35:00 1999
From: Jochen Kuepper <jochen@uni-duesseldorf.de>
To: lyx-devel@lists.lyx.org
Cc: egcs bugs mailing list <egcs-bugs@cygnus.com>
Subject: Re: lyx + egcs + Linux/AXP
Date: Fri, 05 Feb 1999 05:35:00 -0000
Message-id: <99020514350603.23914@bacchus.pc1.uni-duesseldorf.de>
References: <19990205124551.12570.qmail@wierdlmpc.msci.memphis.edu>
X-SW-Source: 1999-02/msg00143.html
Content-length: 1422

On Fre, 05 Feb 1999 Mate Wierdl wrote:

>I see, so the problem occurs only on alpha not intel.

Exactly.

To state it once more:
LyX-1.0 does not work correctly on Linux/AXP - that is Linux running on Digital
Alpha CPU systems - if compiled by egcs-1.1.1.
The crash can be triggered by opening the Tutorial !

Actually I never heard of anybody succesfully running LyX-1.0 on any Linux/AXP
system. Some older versions worked fine for me, though.

The easiest workaround is to compile completely without optimization. That is
achieved by doing (inside the lyx build dir)
  CXXFLAGS=" -O0 " path_to_configure/configure ; make

The best workaround is to manually compile the file math_iter.C without
optimization. Only that single file math_iter.o causes the trouble.

LyX-people: Please add it to the BUGS.

egcs-people: Do you have any idea about what might cause the trouble. Anybody
             interested to look into ?

Greetings,
Jochen
-----------------------------------------------------------------------
  Jochen K"upper

  Heinrich-Heine-Universit"at D"usseldorf   jochen@uni-duesseldorf.de
  Institut f"ur Physikalische Chemie I
  Universit"atsstr. 1, Geb 26.43 Raum 02.29    phone ++49-211-8113681
  40225 D"usseldorf                            fax   ++49-211-8115195
  Germany             http://www-public.rz.uni-duesseldorf.de/~jochen
-----------------------------------------------------------------------
>From Jean-Marc.Lasgouttes@inria.fr Fri Feb 05 06:04:00 1999
From: Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
To: jochen@uni-duesseldorf.de
Cc: lyx-devel@lists.lyx.org, egcs-bugs@cygnus.com
Subject: Re: lyx + egcs + Linux/AXP
Date: Fri, 05 Feb 1999 06:04:00 -0000
Message-id: <199902051404.PAA30801@fantomas.inria.fr>
In-reply-to: < 99020514350603.23914@bacchus.pc1.uni-duesseldorf.de > (messagefrom Jochen Kuepper on Fri, 5 Feb 1999 14:26:41 +0100)
References: <99020514350603.23914@bacchus.pc1.uni-duesseldorf.de>
X-SW-Source: 1999-02/msg00144.html
Content-length: 1041

>>>>> "Jochen" == Jochen Kuepper <jochen@uni-duesseldorf.de> writes:

Jochen> On Fre, 05 Feb 1999 Mate Wierdl wrote:
>> I see, so the problem occurs only on alpha not intel.

Jochen> Exactly.

Jochen> To state it once more: 

I added the following blurb in the 'Problems' section of INSTALL.

  o LyX-1.0 does not work correctly on Linux/AXP - that is Linux
    running on Digital Alpha CPU systems - if compiled by egcs-1.1.1.
    The crash can be triggered by opening the Tutorial !

    Actually I never heard of anybody succesfully running LyX-1.0 on
    any Linux/AXP system. Some older versions worked fine for me, though.

    The easiest workaround is to compile completely without
    optimization. That is achieved by doing (inside the lyx build dir)
        CXXFLAGS=" -O0 " path_to_configure/configure ; make

    The best workaround is to manually compile the file math_iter.C without
    optimization. Only that single file math_iter.o causes the trouble.

    It is not clear yet whether the problem is in LyX or egcs.

JMarc
>From toon@moene.indiv.nluug.nl Fri Feb 05 06:41:00 1999
From: Toon Moene <toon@moene.indiv.nluug.nl>
To: egcs-bugs@cygnus.com
Subject: Unroll bug in egcs-2.93.04 19990205
Date: Fri, 05 Feb 1999 06:41:00 -0000
Message-id: <36BB0256.5FFBF14C@moene.indiv.nluug.nl>
X-SW-Source: 1999-02/msg00145.html
Content-length: 14497

Using the Fortran source below, I get:

[hirlam@moene grdy32]$ /usr/snp/bin/g77 -c -v -O2 -funroll-loops h.f
g77 version egcs-2.93.04 19990205 (gcc2 ss-980929 experimental) (from
FSF-g77 version 0.5.24-19980804)
Reading specs from
/usr/snp/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.93.04/specs
gcc version egcs-2.93.04 19990205 (gcc2 ss-980929 experimental)
 /usr/snp/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.93.04/f771 h.f -quiet
-dumpbase h.f -O2 -version -fversion -funroll-loops -o /tmp/ccRaiaaa.s
GNU F77 version egcs-2.93.04 19990205 (gcc2 ss-980929 experimental)
(i686-pc-linux-gnu) compiled by GNU C version egcs-2.93.04 19990205
(gcc2 ss-980929 experimental).
GNU Fortran Front End version 0.5.24-19980804
../../egcs/gcc/unroll.c:1548: Internal compiler error in function
calculate_giv_inc
Please submit a full bug report to `egcs-bugs@cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

The Source:

      SUBROUTINE GETDAT (
     I   KLON   , KLAT   , KLEV
     I , KUNIT  , KLUDIR , FTYPE  , FSUB
     I , KYEAR  , KMONTH , KDAY   , KHOUR
     R , PTWODT , PACRIT
     R , PPSZ   , PLNPSZ
     R , PUZ    , PVZ    , PTZ    , PQZ    , PSZ    , PEDOTZ
     R , PTSZ   , PSWZ   , PSNZ   , PTSD
     R , PSWD   , PROU   , PTSS   , PTSC
     R , PSWC   , PSNC   , PROC   , PALB   , PFRF
     R , PFRL   , PFRI   , PALN   , PSLT   , PCLT
     + , PSVARZ , KSVAR  , KWMOSV
     L , LGRIB  , LHUMC  , LSLAN  , LSIMP  , LRDCW  )
      CHARACTER FTYPE*(*), FSUB*(*)
      REAL
     *    PPSZ(KLON*KLAT), PLNPSZ(KLON*KLAT),
     *     PUZ(KLON*KLAT,KLEV),    PVZ(KLON*KLAT,KLEV),
     *     PTZ(KLON*KLAT,KLEV),    PQZ(KLON*KLAT,KLEV),
     *     PSZ(KLON*KLAT,KLEV), PEDOTZ(KLON*KLAT,KLEV+1),
     *    PTSZ(KLON*KLAT), PSWZ(KLON*KLAT), PSNZ(KLON*KLAT),
     *    PTSD(KLON*KLAT), PSWD(KLON*KLAT), PROU(KLON*KLAT),
     *    PTSS(KLON*KLAT), PTSC(KLON*KLAT), PSWC(KLON*KLAT),
     *    PSNC(KLON*KLAT), PROC(KLON*KLAT), PALB(KLON*KLAT),
     *      PFRF(KLON*KLAT),
     *    PFRL(KLON*KLAT), PFRI(KLON*KLAT), PALN(KLON*KLAT),
     *    PSLT(KLON*KLAT), PCLT(KLON*KLAT)
     *, PSVARZ(KLON*KLAT,KLEV,*)
      LOGICAL LGRIB , LHUMC , LSLAN , LSIMP
      LOGICAL LRDCW    ! indicator whether to read cloud water
      LOGICAL LOCW     ! indicator of cloud water in file
      LOGICAL LOROU    ! indicator of roughness over sea in file
      INTEGER KWMOSV(*)
               PARAMETER ( MLON=110, MLAT=100, MLEV = 31 )
               INTEGER MLATLONX
               PARAMETER ( MLATLONX=110 )
               PARAMETER ( MBDPTS = 8+2, MMLFLD = 6 )
               PARAMETER ( MMODES = 4 )
               PARAMETER ( MTASK  = 82 )
               PARAMETER ( MLNLT  = MLON*MLAT )
               PARAMETER ( MSVAR  = 0)
               INTEGER MTYP
               PARAMETER ( MTYP = 5 )

      REAL
     +   ZWORK(MLNLT)
      REAL  ZRHUC(KLEV),ZRELF0,ZRELF1,ZRELF2,
     +      ZDRELF,ZPDPS,ZCLOUD,ZPI,ZEARTH,ZRHU,ZMEPSI,
     +      ZDIST,ZRELFH,ZQSAT,
     +      ZCVAL1,ZCVAL2
      REAL ZESATD,ZC2,ZC4,ZES,
     +     ZC1ES,ZC2ES,ZC2IS,ZC3ES,ZC4ES,ZC4IS
      LOGICAL
     +   LOSV(MSVAR+1) ! indicator of extra scalars in file
      COMMON / COMMAP /
     R   ANORTH , WEST   , SOUTH  , EAST   , APLON  , APLAT
     R , DLAMDA , DTHETA , RDLAM  , RDTH   , RA
     R , AHYB(MLEV+1), BHYB(MLEV+1)
     R , RHXU(MLNLT) , RHYV(MLNLT) , HXV(MLNLT) ,HYU(MLNLT)
     R , PHIS(MLNLT) , FPAR(MLNLT)
     R , HYBI(MLEV+1), HYBK(MLEV)

      COMMON / COMBDY /
     I   LUBFI1 , LUBFI2 , NBDNUM , NBDPTS , NBHOUR(100)
     I , NBDDIF , NBDTIM
     I , NMLFLD , NBDPTR(2)
     R , TIMRAT , BDFUNC(100), WEIGHT(MLNLT,3)
     L , NLTANH , NLPWEI , NLBDUV
      LOGICAL
     *   NLTANH , NLPWEI , NLBDUV

      PARAMETER ( MLNLTB = MLNLT-(MLON-2*MBDPTS-1)*(MLAT-2*MBDPTS-1) )
      COMMON / COMIBV / BNDVAL(MLNLTB,1+MMLFLD*MLEV,2)
     +                , BNDVSV(MLNLTB,MLEV,2,MSVAR+1)
     L ,      LCW(2)
     + ,      LSV(MSVAR+1,2)
      LOGICAL LCW        !  indicator of cloud water in boundary data
     +      , LSV        !  indicator of extra scalars in boundary data

      COMMON / COMEXT /
     I   NEXTRD , NEXTRX(40) , NEXTRY(40)

      COMMON /COMDDR/
     1 NCODHL,NLDRHL,NLNXHL,MRCLHL,MDRLHL,NTYPHL,NEXPHL,NMDIHL
     1,NIDFHL(12)
     2,NDTVHL,NSCVHL,NDTBHL,NSCBHL,NFLHHL,NFLSHL,NDORHL
     2,NIDTHL(13)
     3,NPRJHL,NPRCHL,NLONHL,NLATHL

     4,NLTPHL,NLEVHL,NPPLHL,NRFLHL
     4,NLPTHL(40)
     5,NMLFHL,NWMMHL(40),NMPTHL(40)
     6,NSLFHL,NWMSHL(40),NSPTHL(40),NSLTHL(40)
     C,APLOHL,APLAHL,AWESHL,AEASHL,ALALHL,ALAFHL,DLONHL,DLATHL
     C,GRIDHL(28)
     D,ALEVHL(40,4),RLEVHL(4)
     E,STMXHL(40),STMYHL(40),STMZHL(40)
     F,STSXHL(40),STSYHL(40),SLEVHL(40,4)
     G,RSRVHL(150)
      DIMENSION DDRHL(1000),NDDRHL(1000)
      EQUIVALENCE (DDRHL,NDDRHL,NCODHL),(NMDIHL,AMDIHL)

      real  pi,latvap,rair,cpair,ccpq,epsilo,gravit,tmelt,latice,
     +              rhos,rhoh2o,solar,stebol,carman,rearth,omega
      common/confys/pi,latvap,rair,cpair,ccpq,epsilo,gravit,tmelt,
     +             latice,rhos,rhoh2o,solar,stebol,carman,rearth,omega

      LOGICAL ILPHYS
      ILNLT = KLON*KLAT
      ILPHYS = .FALSE.
      IF (NBDNUM.EQ.1) ILPHYS = .TRUE.
      CALL GETGRB (
     I   KLEV,KLON,KLAT,
     R   PHIS(1),PPSZ(1),PUZ(1,1),PVZ(1,1),PTZ(1,1),PQZ(1,1),PSZ(1,1),
     R   PTSZ(1),PTSD(1),PTSC(1),PSWZ(1),PSWD(1),PSWC(1),
     R   PSNZ(1),PTSS(1),PFRL(1),PFRI(1),
     R   PALB(1),PFRF(1),PROC(1),PROU(1),
     I   IYEAR,IMONTH,IDAY,IHOUR,ILNGTH,
     R   WEST,SOUTH,DLAMDA,DTHETA,APLON,APLAT,
     C   FTYPE,FSUB,
     +   PSVARZ(1,1,1),KSVAR,KWMOSV(1),LOSV(1),
     R   KUNIT,KLUDIR,.FALSE.,ILPHYS,LRDCW,
     L   LOCW,LOROU)
      IF (ILPHYS) THEN
         DO JL=1,ILNLT
            PSNC(JL) = PSNZ(JL)
            IF (.NOT. LOROU) PROU(JL) = PROC(JL)
         ENDDO
      ENDIF
      IF (KLON.NE.NLONHL.OR.KLAT.NE.NLATHL.OR.KLEV.NE.NLEVHL) THEN
          WRITE(6,'(/,1X,A,I4)')'WRONG DIMENSIONS IN FILE',KUNIT
          WRITE(6,'(1X,''NLONHL,NLATHL,NLEVHL='',3I10)')
     +                   NLONHL,NLATHL,NLEVHL
          WRITE(6,'(1X,''KLON  ,KLAT  ,KLEV  ='',3I10)')
     +                   KLON  ,KLAT  ,KLEV
          CALL ABORT
      ENDIF
      IF (NBDNUM.EQ.1) THEN
         WRITE(6,'(/,1X,''DATE/TIME FOR START DATA:'',I8.8,a,i6.6)')
     +          NDTVHL,'/',NSCVHL
      ELSE
         WRITE(6,'(/,1X,''DATE/TIME FOR BOUNDARY DATA:'',I8.8,a,i6.6)')
     +          NDTVHL,'/',NSCVHL
      ENDIF
      NBHOUR(NBDNUM) = NSCVHL/10000
      WRITE(6,'(1X,''NBHOUR('',I2,'') ='',I10)')NBDNUM,NBHOUR(NBDNUM)
      IF (NBDNUM.EQ.1) THEN
      KYEAR  = NDTVHL/10000
      KMONTH = NDTVHL/100  -KYEAR*100
      KDAY   = NDTVHL    -KYEAR*10000  -KMONTH*100
      KHOUR  = NSCVHL/10000
      IF (DLATHL.LT.0.) THEN
          ANORTH = ALAFHL
          SOUTH  = ALALHL
          DTHETA =-DLATHL
      ELSEIF (DLATHL.GT.0.) THEN
          ANORTH = ALALHL
          SOUTH  = ALAFHL
          DTHETA = DLATHL
      ELSE
          WRITE (6,'(/,1X,''DLATHL IS NOT DEFINED IN SDFILE'')')
          CALL ABORT
      END IF
      WEST   = AWESHL
      EAST   = AEASHL
      APLON  = APLOHL
      APLAT  = APLAHL
      DLAMDA = DLONHL
      WRITE(6,'(/,1X,''GENERATED FROM START DATA FILE:'')')
      WRITE(6,'(  1X,''-------------------------------'')')
      WRITE(6,'(1X,''WEST   = '',F15.7)') WEST
      WRITE(6,'(1X,''EAST   = '',F15.7)') EAST
      WRITE(6,'(1X,''SOUTH  = '',F15.7)') SOUTH
      WRITE(6,'(1X,''ANORTH = '',F15.7)') ANORTH
      WRITE(6,'(1X,''DLAMDA = '',F15.7)') DLAMDA
      WRITE(6,'(1X,''DTHETA = '',F15.7)') DTHETA
      WRITE(6,'(1X,''APLON  = '',F15.7)') APLON
      WRITE(6,'(1X,''APLAT  = '',F15.7)') APLAT
      AHYB(KLEV+1) = 0.
      BHYB(KLEV+1) = 1.
      DO 200 JK=KLEV,2,-1
         AHYB(JK) = 2.0*ALEVHL(JK,1) - AHYB(JK+1)
         BHYB(JK) = 2.0*ALEVHL(JK,2) - BHYB(JK+1)
         IF ( AHYB(JK).LT.1.0E-7 ) AHYB(JK) = 0.0
         IF ( BHYB(JK).LT.1.0E-7 ) BHYB(JK) = 0.0
 200  CONTINUE
      AHYB(1) = 0.
      BHYB(1) = 0.
      DO 210 JK=1,KLEV+1
         HYBI(JK) = AHYB(JK)/101325.0 + BHYB(JK)
 210  CONTINUE
      DO 220 JK=1,KLEV
         HYBK(JK) = (HYBI(JK) + HYBI(JK+1))/2.0
 220  CONTINUE
      WRITE(6,'(/,1X,''FULL LEVELS:'')')
      WRITE(6,'(1X,''FIRST PARAMETER ='')')
      WRITE(6,'(3X,5F14.7,20(/,3X,5F14.7))')(ALEVHL(J,1),J=1,KLEV)
      WRITE(6,'(1X,''SECOND PARAMETER ='')')
      WRITE(6,'(3X,5F14.7,20(/,3X,5F14.7))')(ALEVHL(J,2),J=1,KLEV)
      WRITE(6,'(/,1X,''HALF LEVELS:'')')
      WRITE(6,'(1X,''FIRST PARAMETER ='')')
      WRITE(6,'(3X,5F14.7,20(/,3X,5F14.7))')(AHYB(J),J=1,KLEV+1)
      WRITE(6,'(1X,''SECOND PARAMETER ='')')
      WRITE(6,'(3X,5F14.7,20(/,3X,5F14.7))')(BHYB(J),J=1,KLEV+1)
      CALL MAPFAC (
     I   KLON,KLAT,KLEV,
     R   PALN(1),PSLT(1),PCLT(1) )
      ENDIF
      DO 250 JL=1,ILNLT
         PLNPSZ(JL) = ALOG( PPSZ(JL) )
 250  CONTINUE
      IF ( NEXTRD.GT.0 ) THEN
      WRITE(6,'(/,1X,''GRIDPOINT EXAMPLES:'')')
      WRITE(6,'(  1X,''-------------------'')')
      DO 320 J=1,NEXTRD
      CALL EXTRDA (
     I   KLON,KLAT,KLEV,NEXTRX(J),NEXTRY(J),
     R   PTZ(1,1),PUZ(1,1),PVZ(1,1),PQZ(1,1),PSZ(1,1) )
      IPOINT = (NEXTRY(J)-1)*KLON + NEXTRX(J)
      WRITE(6,'(3X,''PS    = '',F15.7)') PPSZ(IPOINT)
 320  CONTINUE
      END IF
      IF (LHUMC)
     *    CALL CRIHUM (
     I       KLON,KLAT,KLEV,
     R       AHYB(1),BHYB(1),PACRIT,
     R       PPSZ(1),PTZ(1,1),PQZ(1,1),ZWORK(1) )
      IF (LSLAN)
     *    CALL COMPED (
     I       KLON,KLAT,KLEV,
     R       PPSZ(1),PUZ(1,1),PVZ(1,1),PEDOTZ(1,1) )
      IF( .NOT.LOCW ) THEN
        ZMEPSI=1. -EPSILO
        ZPI=PI
        ZEARTH=REARTH
        ZDIST=SQRT( ZEARTH*ZPI*0.20/180. )
        ZRELF0=0.0200
        ZRELF1=0.3000
        ZRELF2=0.0030
        ZDRELF=0.0300
        ZRELFH=ZRELF1*(1. -EXP( -ZRELF2*ZDIST ))
        ZC1ES=610.78
        ZC2ES=17.269
        ZC2IS=21.875
        ZC3ES=273.16
        ZC4ES=35.86
        ZC4IS=7.66
        DO JK=1,KLEV
          ZPDPS=MIN( HYBK(JK), 1.0 )
          ZRHUC(JK)=ZRELFH*
     +    ( ZRELF0 +ZDRELF*(1. -ZPDPS*ZPDPS*ZPDPS ) )/
     +    ( ZRELF0 +ZDRELF )
        ENDDO
        DO JK=1,KLEV
          DO JL=1,ILNLT
          ZC2=ZC2IS + min(1.,max(0.,(PTZ(JL,JK) -ZC3ES +15.)/15.))*
     +           ( ZC2ES-ZC2IS )
          ZC4=ZC4IS + min(1.,max(0.,(PTZ(JL,JK) -ZC3ES +15.)/15.))*
     +           ( ZC4ES-ZC4IS )
          ZES=ZC2*(PTZ(JL,JK) -ZC3ES)/(PTZ(JL,JK) -ZC4)
          ZESATD=ZC1ES*EXP(ZES)
          ZWORK(JL)=1./( ALEVHL(JK,1) +ALEVHL(JK,2)*PPSZ(JL) -
     +              ZMEPSI*ZESATD )
          ZQSAT=EPSILO*ZESATD*ZWORK(JL)
          IF (PQZ(JL,JK).GT.ZQSAT)  PQZ(JL,JK) = ZQSAT
          IF (PQZ(JL,JK).LT.0.    ) PQZ(JL,JK) = 1.E-7
          ZRHU=MAX( PQZ(JL,JK)/ZQSAT, ZRHUC(JK) )
          ZCLOUD=1. -SQRT( (1.-ZRHU)/(1.-ZRHUC(JK)) )
           PSZ(JL,JK)=0.   ! it was not on the file, remember!
           ZCVAL1=(PQZ(JL,JK) +PSZ(JL,JK))*(1.-ZRHUC(JK))
           ZCVAL2=(PQZ(JL,JK) +PSZ(JL,JK))*(1.+ZRHUC(JK))
           IF( ZCVAL1.GT.ZQSAT ) THEN
             PSZ(JL,JK)=ZQSAT*ZRHUC(JK)/(1.-ZRHUC(JK))
           ENDIF
           IF( (ZCVAL1.LE.ZQSAT).AND.(ZCVAL2.GT.ZQSAT) ) THEN
             PSZ(JL,JK)=ZQSAT/
     +       ( 1. +ZRHUC(JK) -2.*ZRHUC(JK)*ZCLOUD ) -PQZ(JL,JK)
           ENDIF
        ENDDO
      ENDDO
      ENDIF
      CALL STATIS (
     I   KLON,KLAT,KLEV,0,
     R   PTWODT,
     R   PPSZ(1),PUZ(1,1),PVZ(1,1),PTZ(1,1),PQZ(1,1),PSZ(1,1),
     R   PPSZ(1) )
      WRITE(6,'(/,1X,''STATISTICS FROM FILE'',I4)') KUNIT
      WRITE(6,'(  1X,''------------------------'')')
      CALL PRSTAT
      IF (NBDNUM.EQ.1) THEN
      ILNLTB1=0
      ILNLTB2=0
      ILNLTB3=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.) ILNLTB1=ILNLTB1+1
         IF (WEIGHT(JL,2).NE.0.) ILNLTB2=ILNLTB2+1
         IF (WEIGHT(JL,3).NE.0.) ILNLTB3=ILNLTB3+1
      ENDDO
      ILNLTB=MAX(ILNLTB1,ILNLTB2,ILNLTB3)
      IF (ILNLTB.GT.MLNLTB) THEN
         WRITE(6,'(1X,''IN *GETDAT*:'')')
         WRITE(6,'(1X,''INCREASE *MBDPTS* IN PARAMETER *PARAMM*'')')
         WRITE(6,'(1X,''MLNLTB,ILNLTB='',2I9)') MLNLTB,' ',ILNLTB
         WRITE(6,'(1X,''MBDPTS='',I5)') MBDPTS
         CALL ABORT
      ENDIF
      ENDIF
      IF (NBDNUM.LE.2) THEN
         NBDPTR(NBDNUM) = NBDNUM
         NBNEXT = NBDNUM
      ELSE
         ISAVE = NBDPTR(1)
         NBDPTR(1) = NBDPTR(2)
         NBDPTR(2) = ISAVE
         NBNEXT = NBDPTR(2)
      ENDIF


      LCW(NBNEXT)=LOCW
      IF (LSLAN) THEN
      IF (.NOT.LCW(NBNEXT)) THEN
      DO JK=1,KLEV
      DO JL=1,ILNLT
         PSZ(JL,JK)=0.
      ENDDO
      ENDDO
      ENDIF
      LCW(NBNEXT)=.TRUE.
      ENDIF
      DO L=1,KSVAR
      LSV(L,NBNEXT)=LOSV(L)
      IF (LSLAN) THEN
      IF (.NOT.LSV(L,NBNEXT)) THEN
      DO JK=1,KLEV
      DO JL=1,ILNLT
         PSVARZ(JL,JK,L)=0.
      ENDDO
      ENDDO
      ENDIF
      LSV(L,NBNEXT)=.TRUE.

      ENDIF
      ENDDO
      IF (LSIMP) THEN
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1,NBNEXT)=PLNPSZ(JL)
         ENDIF
      ENDDO
      ELSE
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1,NBNEXT)=PPSZ(JL)
         ENDIF
      ENDDO
      ENDIF
      DO JK=1,KLEV
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1+JK+2*KLEV,NBNEXT)=PTZ(JL,JK)
         BNDVAL(IP,1+JK+3*KLEV,NBNEXT)=PQZ(JL,JK)
         BNDVAL(IP,1+JK+4*KLEV,NBNEXT)=PSZ(JL,JK)
         ENDIF
      ENDDO
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,2).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1+JK,NBNEXT)=PUZ(JL,JK)
         ENDIF
      ENDDO
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,3).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1+JK+KLEV,NBNEXT)=PVZ(JL,JK)
         ENDIF
      ENDDO
      IF (LSLAN) THEN
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.0) THEN
         IP=IP+1
         BNDVAL(IP,1+JK+5*KLEV,NBNEXT)=PEDOTZ(JL,JK)
         ENDIF
      ENDDO
      ENDIF
      ENDDO
      DO L=1,KSVAR
      DO JK=1,KLEV
      IP=0
      DO JL=1,ILNLT
         IF (WEIGHT(JL,1).NE.0.0) THEN
         IP=IP+1
         BNDVSV(IP,JK,NBNEXT,L)=PSVARZ(JL,JK,L)
         ENDIF
      ENDDO
      ENDDO
      ENDDO
      RETURN
      END

-- 
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
g77 Support: fortran@gnu.org; egcs: egcs-bugs@cygnus.com
>From hoffman@albirio.crd.ge.com Fri Feb 05 06:51:00 1999
From: "William A. Hoffman" <hoffman@albirio.crd.ge.com>
To: egcs-bugs@egcs.cygnus.com
Cc: leei@ai.sri.com
Subject: VTABLE Thunks broken on linux egcs 1.1.1 and earlier versions
Date: Fri, 05 Feb 1999 06:51:00 -0000
Message-id: <14011.735.623916.805591@albirio>
X-SW-Source: 1999-02/msg00146.html
Content-length: 3209

I have a rather complex program using Fresco that segfaults when compiled with
egcs on linux.   I think the problem is due to an incorrect vtable thunk
function.   Is there a flag to turn off thunks for egcs?

I have found a small example that shows a problem very close to what I have
seen in the larger program.



#include <iostream.h>
 
class super
{
public:
  int s[4];
  virtual void doit(const char* message) =0;
};
 
class top : virtual public super
{
public:
  top() { s[0] = s[1] = s[2] = 1; }
  int s[3];
  void doit(const char* message);
};
 
class mid : public top
{
public:
  int s[2];
  mid();
};
 
class leaf : public mid
{
public:
  leaf();
  int i;
};
 
 
 
void top::doit(const char* message)
{
  cout << s[0] << s[1] << s[2] << endl;
  cout << "top::doit " << this << " " << message << endl;
}
 
mid::mid ()
{
  cout << "mid " << this << endl;
  top::doit("top::doit called from mid::mid ");
  top* hackptr = this;
  cout << "hackptr = " << hackptr << endl;
  hackptr->doit("called like this top* hackptr = this; hackptr->doit()");
// <<<<<******** incorrectly adjusts "this" by size of leaf
  this->doit("called from mid::mid   this->doit");
}
 
leaf::leaf()
{
  cout << "leaf " << this << endl;
}
 
int main ()
{
  leaf* l = new leaf();
  return 0;
}

Here is the output from the program:

mid 0x8057878
111
top::doit 0x8057878 top::doit called from mid::mid
hackptr = 0x8057878
110
top::doit 0x805787c called like this top* hackptr = this; hackptr->doit()
111
top::doit 0x8057878 called from mid::mid   this->doit
leaf 0x8057878


As you can see doit should never print 110, and you can see that
the hackptr is getting changed by a thunk when it should not be.

If anyone has a patch for this it would be a big help.
It seems only to be a problem on linux.


Here is the version information:

$ c++ --version
egcs-2.91.60
$ c++ -c -v /tmp/e.cc 
Reading specs from /usr/gnu/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/gnu/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ /tmp/e.cc /tmp/ccM3MPvh.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/gnu/include/g++
 /usr/local/include
 /usr/gnu/i686-pc-linux-gnu/include
 /usr/gnu/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/include
 /usr/include
End of search list.
 /usr/gnu/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/cc1plus /tmp/ccM3MPvh.ii -quiet -dumpbase e.cc -version -o /tmp/ccoVaIZz.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i686-pc-linux-gnu) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release).
 as -V -Qy -o e.o /tmp/ccoVaIZz.s
GNU assembler version 2.9.1 (i686-pc-linux-gnu), using BFD version 2.9.1.0.4




-Bill Hoffman (hoffman@crd.ge.com)
>From dooling@piglet.chem-eng.nwu.edu Fri Feb 05 07:29:00 1999
From: "David J. Dooling" <dooling@piglet.chem-eng.nwu.edu>
To: egcs-bugs@cygnus.com
Subject: friends inside namespace
Date: Fri, 05 Feb 1999 07:29:00 -0000
Message-id: <19990205152650.11638.qmail@piglet.chem-eng.nwu.edu>
X-SW-Source: 1999-02/msg00147.html
Content-length: 36701

Brief description: declaring a friend function/operator inside a
namespace and defining it outside the namespace (after a ``using''
directive) causes the compiler to think two functions with the same
signature have been created, one inside the namespace and one outside,
leading to an ambiguity.  If you do not use a using directive and
fully qualify all functions/operators/classes, it compiles without
error.

Note: I am not 100% positive this is an error in the compiler since my
DEC C++ compiler (cxx 6.0-010) also got confused by this sequence of
events.

egcs version: gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)

architecture: alphaev56-dec-osf4.0d

configure options: --prefix=/usr/local/egcs

command line and output:

g++ -v --save-temps -g friend.cc
Reading specs from /usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD -D_SYSTYPE_BSD -D__unix__ -D__osf__ -D_LONGLONG -D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -D__EXCEPTIONS -g -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) friend.cc friend.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/egcs/include/g++
 /usr/local/include
 /usr/local/egcs/alphaev56-dec-osf4.0d/include
 /usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include
 /usr/include
End of search list.
 /usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/cc1plus friend.ii -quiet -dumpbase friend.cc -g -version -o friend.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (alphaev56-dec-osf4.0d) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release).
friend.cc: In function `int main()':
friend.cc:22: ambiguous overload for `_IO_ostream_withassign & << ::N::X &'
friend.cc:15: candidates are: operator <<(ostream &, const ::N::X &)
friend.cc:9:                 operator <<(ostream &, const ::N::X &)
--- end output ---

here are the files (search ``==='' to get to next file)
files included (in order): friend.cc, friend.ii, friend.s

=== friend.cc ===
// test friend declaration in namespace
#include <iostream>

namespace N {
    class X {
	int i;
    public:
	X(int i_i) : i(i_i) {}
	friend std::ostream& operator<<(std::ostream& os, const X& x);
    };
}

using namespace N;
std::ostream& operator<<(std::ostream& os, const X& x)
{
    return os << x.i;
}

main()
{
    X x(7);
    std::cout << x << std::endl;
}

=== friend.ii ===
# 1 "friend.cc"
 
# 1 "/usr/local/egcs/include/g++/iostream" 1 3
 
 



# 1 "/usr/local/egcs/include/g++/iostream.h" 1 3
 

























#pragma interface



# 1 "/usr/local/egcs/include/g++/streambuf.h" 1 3
 


























#pragma interface


   



extern "C" {
# 1 "/usr/local/egcs/include/g++/libio.h" 1 3
 




























# 1 "/usr/local/egcs/alphaev56-dec-osf4.0d/include/_G_config.h" 1 3
  










typedef          int   _G_int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int  _G_uint8_t __attribute__((__mode__(__QI__)));
typedef          int  _G_int16_t __attribute__((__mode__(__HI__)));
typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__)));
typedef          int  _G_int32_t __attribute__((__mode__(__SI__)));
typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__)));
typedef          int  _G_int64_t __attribute__((__mode__(__DI__)));
typedef unsigned int _G_uint64_t __attribute__((__mode__(__DI__)));

__extension__ typedef long long _G_llong;
__extension__ typedef unsigned long long _G_ullong;








typedef int _G_clock_t;
typedef int _G_dev_t;
typedef long _G_fpos_t;
typedef unsigned int _G_gid_t;
typedef unsigned int _G_ino_t;
typedef unsigned int _G_mode_t;
typedef unsigned short _G_nlink_t;
typedef long _G_off_t;
typedef int _G_pid_t;



typedef long int _G_ptrdiff_t;
typedef unsigned long _G_sigset_t;



typedef long unsigned int _G_size_t;
typedef int _G_time_t;
typedef unsigned int _G_uid_t;
typedef unsigned int _G_wchar_t;















typedef long _G_ssize_t;
typedef unsigned int _G_wint_t;



















# 1 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 1 3






 


# 19 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3



 


 





 


# 61 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3


 

 

# 190 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3



 




 

# 271 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3


# 283 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3


 

 

# 317 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stddef.h" 3




 





















# 88 "/usr/local/egcs/alphaev56-dec-osf4.0d/include/_G_config.h" 2 3


# 30 "/usr/local/egcs/include/g++/libio.h" 2 3


















 

# 1 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 1 3
 


































# 1 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/va-alpha.h" 1 3
 

 




 





 





typedef struct {
  char *__base;			 
  int __offset;			 
} __gnuc_va_list;




 

# 130 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/va-alpha.h" 3


# 36 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 2 3

# 126 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 3









# 202 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 3




# 50 "/usr/local/egcs/include/g++/libio.h" 2 3



























 















# 104 "/usr/local/egcs/include/g++/libio.h" 3











 
























 



















struct _IO_jump_t;  struct _IO_FILE;

 
# 174 "/usr/local/egcs/include/g++/libio.h" 3









    typedef void _IO_lock_t;





 

struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;
   

   
  int _pos;
# 207 "/usr/local/egcs/include/g++/libio.h" 3

};

struct _IO_FILE {
  int _flags;		 


   
   
  char* _IO_read_ptr;	 
  char* _IO_read_end;	 
  char* _IO_read_base;	 
  char* _IO_write_base;	 
  char* _IO_write_ptr;	 
  char* _IO_write_end;	 
  char* _IO_buf_base;	 
  char* _IO_buf_end;	 
   
  char *_IO_save_base;  
  char *_IO_backup_base;   
  char *_IO_save_end;  

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;



  _G_off_t  _offset;



   
  unsigned short _cur_column;
  char _unused;
  char _shortbuf[1];

   








};











struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_stdin_, _IO_stdout_, _IO_stderr_;





 
typedef struct
{
  _G_ssize_t  (*read)  (struct _IO_FILE *, void *, _G_ssize_t )  ;
  _G_ssize_t  (*write)  (struct _IO_FILE *, const void *, _G_ssize_t )  ;
  _G_fpos_t  (*seek)  (struct _IO_FILE *, _G_off_t , int)  ;
  int (*close)  (struct _IO_FILE *)  ;
} _IO_cookie_io_functions_t;

 
struct _IO_cookie_file
{
  struct _IO_FILE file;
  const void *vtable;
  void *cookie;
  _IO_cookie_io_functions_t io_functions;
};



extern "C" {


extern int __underflow  (_IO_FILE *)  ;
extern int __uflow  (_IO_FILE *)  ;
extern int __overflow  (_IO_FILE *, int)  ;

















extern int _IO_getc  (_IO_FILE *__fp)  ;
extern int _IO_putc  (int __c, _IO_FILE *__fp)  ;
extern int _IO_feof  (_IO_FILE *__fp)  ;
extern int _IO_ferror  (_IO_FILE *__fp)  ;

extern int _IO_peekc_locked  (_IO_FILE *__fp)  ;

 



extern void _IO_flockfile  (_IO_FILE *)  ;
extern void _IO_funlockfile  (_IO_FILE *)  ;
extern int _IO_ftrylockfile  (_IO_FILE *)  ;













extern int _IO_vfscanf  (_IO_FILE *, const char *, __gnuc_va_list , int *)  ;
extern int _IO_vfprintf  (_IO_FILE *, const char *, __gnuc_va_list )  ;
extern _G_ssize_t  _IO_padn  (_IO_FILE *, int, _G_ssize_t )  ;
extern _G_size_t  _IO_sgetn  (_IO_FILE *, void *, _G_size_t )  ;





extern _G_fpos_t  _IO_seekoff  (_IO_FILE *, _G_off_t , int, int)  ;
extern _G_fpos_t  _IO_seekpos  (_IO_FILE *, _G_fpos_t , int)  ;


extern void _IO_free_backup_area  (_IO_FILE *)  ;


}



# 36 "/usr/local/egcs/include/g++/streambuf.h" 2 3

}
 

# 1 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 1 3
 


































# 1 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/va-alpha.h" 1 3
 

 




 

# 26 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/va-alpha.h" 3


 







# 47 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/va-alpha.h" 3


 

 


















 

enum {
  __no_type_class = -1,
  __void_type_class,
  __integer_type_class,
  __char_type_class,
  __enumeral_type_class,
  __boolean_type_class,
  __pointer_type_class,
  __reference_type_class,
  __offset_type_class,
  __real_type_class,
  __complex_type_class,
  __function_type_class,
  __method_type_class,
  __record_type_class,
  __union_type_class,
  __array_type_class,
  __string_type_class,
  __set_type_class,
  __file_type_class,
  __lang_type_class
};



 


 




 





















 




# 36 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 2 3

# 126 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 3










 
 













# 168 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 3


 



# 198 "/usr/local/egcs/lib/gcc-lib/alphaev56-dec-osf4.0d/egcs-2.91.60/include/stdarg.h" 3








# 40 "/usr/local/egcs/include/g++/streambuf.h" 2 3

























extern "C++" {
class istream;  
class ostream; class streambuf;

 







typedef _G_off_t  streamoff;
typedef _G_fpos_t  streampos;

typedef _G_ssize_t  streamsize;

typedef unsigned long __fmtflags;
typedef unsigned char __iostate;

struct _ios_fields
{  
    streambuf *_strbuf;
    ostream* _tie;
    int _width;
    __fmtflags _flags;
    short  _fill;
    __iostate _state;
    __iostate _exceptions;
    int _precision;

    void *_arrays;  
};















# 124 "/usr/local/egcs/include/g++/streambuf.h" 3


class ios : public _ios_fields {
  ios& operator=(ios&);   
  ios (const ios&);  
  public:
    typedef __fmtflags fmtflags;
    typedef int iostate;
    typedef int openmode;
    typedef int streamsize;
    enum io_state {
	goodbit = 0 ,
	eofbit = 1 ,
	failbit = 2 ,
	badbit = 4  };
    enum open_mode {
	in = 1 ,
	out = 2 ,
	ate = 4 ,
	app = 8 ,
	trunc = 16 ,
	nocreate = 32 ,
	noreplace = 64 ,
	bin = 128 ,  
	binary = 128  };
    enum seek_dir { beg, cur, end};
    typedef enum seek_dir seekdir;
     
    enum { skipws= 01 ,
	   left= 02 , right= 04 , internal= 010 ,
	   dec= 020 , oct= 040 , hex= 0100 ,
	   showbase= 0200 , showpoint= 0400 ,
	   uppercase= 01000 , showpos= 02000 ,
	   scientific= 04000 , fixed= 010000 ,
	   unitbuf= 020000 , stdio= 040000 



	   };
    enum {  
	basefield=dec+oct+hex,
	floatfield = scientific+fixed,
	adjustfield = left+right+internal
    };

# 177 "/usr/local/egcs/include/g++/streambuf.h" 3


    ostream* tie() const { return _tie; }
    ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; }

     
    short  fill() const { return _fill; }
    short  fill(short  newf)
	{short  oldf = _fill; _fill = newf; return oldf;}
    fmtflags flags() const { return _flags; }
    fmtflags flags(fmtflags new_val) {
	fmtflags old_val = _flags; _flags = new_val; return old_val; }
    int precision() const { return _precision; }
    int precision(int newp) {
	unsigned short oldp = _precision; _precision = (unsigned short)newp;
	return oldp; }
    fmtflags setf(fmtflags val) {
	fmtflags oldbits = _flags;
	_flags |= val; return oldbits; }
    fmtflags setf(fmtflags val, fmtflags mask) {
	fmtflags oldbits = _flags;
	_flags = (_flags & ~mask) | (val & mask); return oldbits; }
    fmtflags unsetf(fmtflags mask) {
	fmtflags oldbits = _flags;
	_flags &= ~mask; return oldbits; }
    int width() const { return _width; }
    int width(int val) { int save = _width; _width = val; return save; }




    void _throw_failure() const { }

    void clear(iostate state = 0) {
	_state = _strbuf ? state : state|badbit;
	if (_state & _exceptions) _throw_failure(); }
    void set(iostate flag) { _state |= flag;
	if (_state & _exceptions) _throw_failure(); }
    void setstate(iostate flag) { _state |= flag;  
	if (_state & _exceptions) _throw_failure(); }
    int good() const { return _state == 0; }
    int eof() const { return _state & ios::eofbit; }
    int fail() const { return _state & (ios::badbit|ios::failbit); }
    int bad() const { return _state & ios::badbit; }
    iostate rdstate() const { return _state; }
    operator void*() const { return fail() ? (void*)0 : (void*)(-1); }
    int operator!() const { return fail(); }
    iostate exceptions() const { return _exceptions; }
    void exceptions(iostate enable) {
	_exceptions = enable;
	if (_state & _exceptions) _throw_failure(); }

    streambuf* rdbuf() const { return _strbuf; }
    streambuf* rdbuf(streambuf *_s) {
      streambuf *_old = _strbuf; _strbuf = _s; clear (); return _old; }

    static int sync_with_stdio(int on);
    static void sync_with_stdio() { sync_with_stdio(1); }
    static fmtflags bitalloc();
    static int xalloc();
    void*& pword(int);
    void* pword(int) const;
    long& iword(int);
    long iword(int) const;









     
    class Init {
    public:
      Init () { }
    };

  protected:
    inline ios(streambuf* sb = 0, ostream* tie_to = 0);
    inline virtual ~ios();
    inline void init(streambuf* sb, ostream* tie = 0);
};




typedef ios::seek_dir _seek_dir;


 
 
 
 
 

 
 
class streammarker : private _IO_marker {
    friend class streambuf;
    void set_offset(int offset) { _pos = offset; }
  public:
    streammarker(streambuf *sb);
    ~streammarker();
    int saving() { return  1; }
    int delta(streammarker&);
    int delta();
};

struct streambuf : public _IO_FILE {  
    friend class ios;
    friend class istream;
    friend class ostream;
    friend class streammarker;
    const void *&_vtable() { return *(const void**)((_IO_FILE*)this + 1); }
  protected:
    static streambuf* _list_all;  
    _IO_FILE*& xchain() { return _chain; }
    void _un_link();
    void _link_in();
    char* gptr() const
      { return _flags  & 0x100  ? _IO_save_base : _IO_read_ptr; }
    char* pptr() const { return _IO_write_ptr; }
    char* egptr() const
      { return _flags  & 0x100  ? _IO_save_end : _IO_read_end; }
    char* epptr() const { return _IO_write_end; }
    char* pbase() const { return _IO_write_base; }
    char* eback() const
      { return _flags  & 0x100  ? _IO_save_base : _IO_read_base;}
    char* base() const { return _IO_buf_base; }
    char* ebuf() const { return _IO_buf_end; }
    int blen() const { return _IO_buf_end - _IO_buf_base; }
    void xput_char(char c) { *_IO_write_ptr++ = c; }
    int xflags() { return _flags ; }
    int xflags(int f) {int fl = _flags ; _flags  = f; return fl;}
    void xsetflags(int f) { _flags  |= f; }
    void xsetflags(int f, int mask)
      { _flags  = (_flags  & ~mask) | (f & mask); }
    void gbump(int n)
      { _flags  & 0x100  ? (_IO_save_base+=n):(_IO_read_ptr+=n);}
    void pbump(int n) { _IO_write_ptr += n; }
    void setb(char* b, char* eb, int a=0);
    void setp(char* p, char* ep)
      { _IO_write_base=_IO_write_ptr=p; _IO_write_end=ep; }
    void setg(char* eb, char* g, char *eg) {
      if (_flags  & 0x100 ) _IO_free_backup_area(this); 
      _IO_read_base = eb; _IO_read_ptr = g; _IO_read_end = eg; }
    char *shortbuf() { return _shortbuf; }

    int in_backup() { return _flags & 0x100 ; }
     
    char *Gbase() { return in_backup() ? _IO_save_base : _IO_read_base; }
     
    char *eGptr() { return in_backup() ? _IO_save_end : _IO_read_end; }
     
    char *Bbase() { return in_backup() ? _IO_read_base : _IO_save_base; }
    char *Bptr() { return _IO_backup_base; }
     
    char *eBptr() { return in_backup() ? _IO_read_end : _IO_save_end; }
    char *Nbase() { return _IO_save_base; }
    char *eNptr() { return _IO_save_end; }
    int have_backup() { return _IO_save_base != __null ; }
    int have_markers() { return _markers != __null ; }
    void free_backup_area();
    void unsave_markers();  
    int put_mode() { return _flags & 0x800 ; }
    int switch_to_get_mode();
    
    streambuf(int flags=0);
  public:
    static int flush_all();
    static void flush_all_linebuffered();  
    virtual ~streambuf();
    virtual int overflow(int c = (-1) );  
    virtual int underflow();  
    virtual int uflow();  
    virtual int pbackfail(int c);
 
    virtual streamsize xsputn(const char* s, streamsize n);
    virtual streamsize xsgetn(char* s, streamsize n);
    virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out);

    streampos pubseekoff(streamoff o, _seek_dir d, int mode=ios::in|ios::out)
      { return _IO_seekoff (this, o, d, mode); }
    streampos pubseekpos(streampos pos, int mode = ios::in|ios::out)
      { return _IO_seekpos (this, pos, mode); }
    streampos sseekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    streampos sseekpos(streampos pos, int mode = ios::in|ios::out);
    virtual streambuf* setbuf(char* p, int len);
    virtual int sync();
    virtual int doallocate();

    int seekmark(streammarker& mark, int delta = 0);
    int sputbackc(char c);
    int sungetc();
    int unbuffered() { return _flags & 2  ? 1 : 0; }
    int linebuffered() { return _flags & 0x200  ? 1 : 0; }
    void unbuffered(int i)
	{ if (i) _flags |= 2 ; else _flags &= ~2 ; }
    void linebuffered(int i)
	{ if (i) _flags |= 0x200 ; else _flags &= ~0x200 ; }
    int allocate() {  
	if (base() || unbuffered()) return 0;
	else return doallocate(); }
     
    void allocbuf() { if (base() == __null ) doallocbuf(); }
    void doallocbuf();
    int in_avail() { return _IO_read_end - _IO_read_ptr; }
    int out_waiting() { return _IO_write_ptr - _IO_write_base; }
    streamsize sputn(const char* s, streamsize n) { return xsputn(s, n); }
    streamsize padn(char pad, streamsize n) { return _IO_padn(this, pad, n); }
    streamsize sgetn(char* s, streamsize n) { return _IO_sgetn(this, s, n); }
    int ignore(int);
    int get_column();
    int set_column(int);
    long sgetline(char* buf, _G_size_t  n, char delim, int putback_delim);
    int sputc(int c) { return _IO_putc(c, this); }
    int sbumpc() { return _IO_getc(this); }
    int sgetc() { return ((  this  )->_IO_read_ptr >= (  this  )->_IO_read_end && __underflow (  this  ) == (-1)  ? (-1)  : *(unsigned char *) (  this  )->_IO_read_ptr)  ; }
    int snextc() {
	if (_IO_read_ptr >= _IO_read_end && __underflow(this) == (-1) )
	  return (-1) ;
	else return _IO_read_ptr++, sgetc(); }
    void stossc() { if (_IO_read_ptr < _IO_read_end) _IO_read_ptr++; }
    int vscan(char const *fmt0, __gnuc_va_list  ap, ios* stream = __null );
    int scan(char const *fmt0 ...);
    int vform(char const *fmt0, __gnuc_va_list  ap);
    int form(char const *fmt0 ...);




    virtual streamsize sys_read(char* buf, streamsize size);
    virtual streamsize sys_write(const char*, streamsize);
    virtual streampos sys_seek(streamoff, _seek_dir);
    virtual int sys_close();
    virtual int sys_stat(void*);  




};

 
 

class filebuf : public streambuf {
  protected:
    void init();
  public:
    static const int openprot;  
    filebuf();
    filebuf(int fd);
    filebuf(int fd, char* p, int len);



    ~filebuf();
    filebuf* attach(int fd);
    filebuf* open(const char *filename, const char *mode);
    filebuf* open(const char *filename, ios::openmode mode, int prot = 0664);
    virtual int underflow();
    virtual int overflow(int c = (-1) );
    int is_open() const { return _fileno >= 0; }
    int fd() const { return is_open() ? _fileno : (-1) ; }
    filebuf* close();
    virtual int doallocate();
    virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    virtual streambuf* setbuf(char* p, int len);
    streamsize xsputn(const char* s, streamsize n);
    streamsize xsgetn(char* s, streamsize n);
    virtual int sync();
  protected:  
 
    int is_reading() { return eback() != egptr(); }
    char* cur_ptr() { return is_reading() ?  gptr() : pptr(); }
     
    char* file_ptr() { return eGptr(); }
     
    virtual streamsize sys_read(char* buf, streamsize size);
    virtual streampos sys_seek(streamoff, _seek_dir);
    virtual streamsize sys_write(const char*, streamsize);
    virtual int sys_stat(void*);  
    virtual int sys_close();




};

inline void ios::init(streambuf* sb, ostream* tie_to) {
		_state = sb ? ios::goodbit : ios::badbit; _exceptions=0;
		_strbuf=sb; _tie = tie_to; _width=0; _fill=' ';

		_flags=ios::skipws|ios::dec;



		_precision=6; _arrays = 0; }

inline ios::ios(streambuf* sb, ostream* tie_to) { init(sb, tie_to); }

inline ios::~ios() {



    if (_arrays) delete [] _arrays;
}
}  

# 31 "/usr/local/egcs/include/g++/iostream.h" 2 3


extern "C++" {
class istream; class ostream;
typedef ios& (*__manip)(ios&);
typedef istream& (*__imanip)(istream&);
typedef ostream& (*__omanip)(ostream&);

extern istream& ws(istream& ins);
extern ostream& flush(ostream& outs);
extern ostream& endl(ostream& outs);
extern ostream& ends(ostream& outs);

class ostream : virtual public ios
{
     
    void do_osfx();
  public:
    ostream() { }
    ostream(streambuf* sb, ostream* tied= __null );
    int opfx() {
	if (!good()) return 0;
	else { if (_tie) _tie->flush();  ; return 1;} }
    void osfx() {  ;
		  if (flags() & (ios::unitbuf|ios::stdio))
		      do_osfx(); }
    ostream& flush();
    ostream& put(char c) { _strbuf->sputc(c); return *this; }





    ostream& write(const char *s, streamsize n);
    ostream& write(const unsigned char *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& write(const signed char *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& write(const void *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& seekp(streampos);
    ostream& seekp(streamoff, _seek_dir);
    streampos tellp();
    ostream& form(const char *format ...);
    ostream& vform(const char *format, __gnuc_va_list  args);

    ostream& operator<<(char c);
    ostream& operator<<(unsigned char c) { return (*this) << (char)c; }
    ostream& operator<<(signed char c) { return (*this) << (char)c; }
    ostream& operator<<(const char *s);
    ostream& operator<<(const unsigned char *s)
	{ return (*this) << (const char*)s; }
    ostream& operator<<(const signed char *s)
	{ return (*this) << (const char*)s; }
    ostream& operator<<(const void *p);
    ostream& operator<<(int n);
    ostream& operator<<(unsigned int n);
    ostream& operator<<(long n);
    ostream& operator<<(unsigned long n);

    __extension__ ostream& operator<<(long long n);
    __extension__ ostream& operator<<(unsigned long long n);

    ostream& operator<<(short n) {return operator<<((int)n);}
    ostream& operator<<(unsigned short n) {return operator<<((unsigned int)n);}

    ostream& operator<<(bool b) { return operator<<((int)b); }

    ostream& operator<<(double n);
    ostream& operator<<(float n) { return operator<<((double)n); }



    ostream& operator<<(long double n) { return operator<<((double)n); }

    ostream& operator<<(__omanip func) { return (*func)(*this); }
    ostream& operator<<(__manip func) {(*func)(*this); return *this;}
    ostream& operator<<(streambuf*);



};

class istream : virtual public ios
{
     
protected:
    _G_size_t  _gcount;

    int _skip_ws();
  public:
    istream(): _gcount (0) { }
    istream(streambuf* sb, ostream*tied= __null );
    istream& get(char* ptr, int len, char delim = '\n');
    istream& get(unsigned char* ptr, int len, char delim = '\n')
	{ return get((char*)ptr, len, delim); }
    istream& get(char& c);
    istream& get(unsigned char& c) { return get((char&)c); }
    istream& getline(char* ptr, int len, char delim = '\n');
    istream& getline(unsigned char* ptr, int len, char delim = '\n')
	{ return getline((char*)ptr, len, delim); }
    istream& get(signed char& c)  { return get((char&)c); }
    istream& get(signed char* ptr, int len, char delim = '\n')
	{ return get((char*)ptr, len, delim); }
    istream& getline(signed char* ptr, int len, char delim = '\n')
	{ return getline((char*)ptr, len, delim); }
    istream& read(char *ptr, streamsize n);
    istream& read(unsigned char *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& read(signed char *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& read(void *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& get(streambuf& sb, char delim = '\n');
    istream& gets(char **s, char delim = '\n');
    int ipfx(int need = 0) {
	if (!good()) { set(ios::failbit); return 0; }
	else {
	   ;
	  if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush();
	  if (!need && (flags() & ios::skipws)) return _skip_ws();
	  else return 1;
	}
    }
    int ipfx0() {  
	if (!good()) { set(ios::failbit); return 0; }
	else {
	   ;
	  if (_tie) _tie->flush();
	  if (flags() & ios::skipws) return _skip_ws();
	  else return 1;
	}
    }
    int ipfx1() {  
	if (!good()) { set(ios::failbit); return 0; }
	else {
	   ;
	  if (_tie && rdbuf()->in_avail() == 0) _tie->flush();
	  return 1;
	}
    }
    void isfx() {  ; }
    int get() { if (!ipfx1()) return (-1) ;
		else { int ch = _strbuf->sbumpc();
		       if (ch == (-1) ) set(ios::eofbit);
		       return ch;
		     } }
    int peek();
    _G_size_t  gcount() { return _gcount; }
    istream& ignore(int n=1, int delim = (-1) );
    int sync ();
    istream& seekg(streampos);
    istream& seekg(streamoff, _seek_dir);
    streampos tellg();
    istream& putback(char ch) {
	if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit);
	return *this;}
    istream& unget() {
	if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit);
	return *this;}
    istream& scan(const char *format ...);
    istream& vscan(const char *format, __gnuc_va_list  args);






    istream& operator>>(char*);
    istream& operator>>(unsigned char* p) { return operator>>((char*)p); }
    istream& operator>>(signed char*p) { return operator>>((char*)p); }
    istream& operator>>(char& c);
    istream& operator>>(unsigned char& c) {return operator>>((char&)c);}
    istream& operator>>(signed char& c) {return operator>>((char&)c);}
    istream& operator>>(int&);
    istream& operator>>(long&);

    __extension__ istream& operator>>(long long&);
    __extension__ istream& operator>>(unsigned long long&);

    istream& operator>>(short&);
    istream& operator>>(unsigned int&);
    istream& operator>>(unsigned long&);
    istream& operator>>(unsigned short&);

    istream& operator>>(bool&);

    istream& operator>>(float&);
    istream& operator>>(double&);
    istream& operator>>(long double&);
    istream& operator>>( __manip func) {(*func)(*this); return *this;}
    istream& operator>>(__imanip func) { return (*func)(*this); }
    istream& operator>>(streambuf*);
};

class iostream : public istream, public ostream
{
  public:
    iostream() { }
    iostream(streambuf* sb, ostream*tied= __null );
};

class _IO_istream_withassign : public istream {
public:
  _IO_istream_withassign& operator=(istream&);
  _IO_istream_withassign& operator=(_IO_istream_withassign& rhs)
    { return operator= (static_cast<istream&> (rhs)); }
};

class _IO_ostream_withassign : public ostream {
public:
  _IO_ostream_withassign& operator=(ostream&);
  _IO_ostream_withassign& operator=(_IO_ostream_withassign& rhs)
    { return operator= (static_cast<ostream&> (rhs)); }
};

extern _IO_istream_withassign cin;
 
extern _IO_ostream_withassign cout, cerr;

extern _IO_ostream_withassign clog

__asm__ ("__IO_clog")

;

extern istream& lock(istream& ins);
extern istream& unlock(istream& ins);
extern ostream& lock(ostream& outs);
extern ostream& unlock(ostream& outs);

struct Iostream_init { } ;   

inline ios& dec(ios& i)
{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; }
inline ios& hex(ios& i)
{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; }
inline ios& oct(ios& i)
{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; }
}  


# 6 "/usr/local/egcs/include/g++/iostream" 2 3


# 2 "friend.cc" 2


namespace N {
    class X {
	int i;
    public:
	X(int i_i) : i(i_i) {}
	friend std::ostream& operator<<(std::ostream& os, const X& x);
    };
}

using namespace N;
std::ostream& operator<<(std::ostream& os, const X& x)
{
    return os << x.i;
}

main()
{
    X x(7);
    std::cout << x << std::endl;
}

=== friend.s ===
	.verstamp 3 11
	.set noreorder
	.set volatile
	.set noat
	.arch ev56
	.file	1 "friend.cc"
	#@stabs
 #.stabs "/carol/home/dooling/progs/c++/",100,0,0,$Ltext0
 #.stabs "friend.cc",100,0,0,$Ltext0
.text
$Ltext0:
 #.stabs "int:t1=r1;-2147483648;2147483647;",128,0,0,0
 #.stabs "char:t2=r2;0;127;",128,0,0,0
 #.stabs "long int:t3=r1;001000000000000000000000;000777777777777777777777;",128,0,0,0
 #.stabs "unsigned int:t4=r4;0;4294967295;",128,0,0,0
 #.stabs "long unsigned int:t5=r1;000000000000000000000000;001777777777777777777777;",128,0,0,0
 #.stabs "long long int:t6=r1;001000000000000000000000;000777777777777777777777;",128,0,0,0
 #.stabs "long long unsigned int:t7=r1;000000000000000000000000;001777777777777777777777;",128,0,0,0
 #.stabs "short int:t8=r8;-32768;32767;",128,0,0,0
 #.stabs "short unsigned int:t9=r9;0;65535;",128,0,0,0
 #.stabs "signed char:t10=r10;-128;127;",128,0,0,0
 #.stabs "unsigned char:t11=r11;0;255;",128,0,0,0
 #.stabs "float:t12=r1;4;0;",128,0,0,0
 #.stabs "double:t13=r1;8;0;",128,0,0,0
 #.stabs "long double:t14=r1;8;0;",128,0,0,0
 #.stabs "complex int:t15=s8real:1,0,32;imag:1,32,32;;",128,0,0,0
 #.stabs "complex float:t16=r16;4;0;",128,0,0,0
 #.stabs "complex double:t17=r17;8;0;",128,0,0,0
 #.stabs "complex long double:t18=r18;8;0;",128,0,0,0
 #.stabs "bool:t19=@s64;-16;",128,0,0,0
 #.stabs "void:t20=20",128,0,0,0
 #.stabs "__wchar_t:t21=r21;0;4294967295;",128,0,0,0
 #.stabs "__vtbl_ptr_type:t22=s16__delta:8,0,16;__index:8,16,16;__pfn:23=*20,64,64;__delta2:8,64,16;;",128,0,0,0
 #.stabs "_G_int8_t:t24=10",128,0,12,0
 #.stabs "_G_uint8_t:t25=11",128,0,13,0
 #.stabs "_G_int16_t:t26=8",128,0,14,0
 #.stabs "_G_uint16_t:t27=9",128,0,15,0
 #.stabs "_G_int32_t:t28=1",128,0,16,0
 #.stabs "_G_uint32_t:t29=4",128,0,17,0
 #.stabs "_G_int64_t:t30=3",128,0,18,0
 #.stabs "_G_uint64_t:t31=5",128,0,19,0
 #.stabs "_G_llong:t32=6",128,0,21,0
 #.stabs "_G_ullong:t33=7",128,0,22,0
 #.stabs "_G_clock_t:t34=1",128,0,31,0
 #.stabs "_G_dev_t:t35=1",128,0,32,0
 #.stabs "_G_fpos_t:t36=3",128,0,33,0
 #.stabs "_G_gid_t:t37=4",128,0,34,0
 #.stabs "_G_ino_t:t38=4",128,0,35,0
 #.stabs "_G_mode_t:t39=4",128,0,36,0
 #.stabs "_G_nlink_t:t40=9",128,0,37,0
 #.stabs "_G_off_t:t41=3",128,0,38,0
 #.stabs "_G_pid_t:t42=1",128,0,39,0
 #.stabs "_G_ptrdiff_t:t43=3",128,0,43,0
 #.stabs "_G_sigset_t:t44=5",128,0,44,0
 #.stabs "_G_size_t:t45=5",128,0,48,0
 #.stabs "_G_time_t:t46=1",128,0,49,0
 #.stabs "_G_uid_t:t47=4",128,0,50,0
 #.stabs "_G_wchar_t:t48=4",128,0,51,0
 #.stabs "_G_ssize_t:t49=3",128,0,67,0
 #.stabs "_G_wint_t:t50=4",128,0,68,0
 #.stabs "__gnuc_va_list:t51=s16__base:52=*2,0,64;__offset:1,64,32;__as::53=#51,54=&51,55=*51,56=&57=s16__base:52,0,64;__offset:1,64,32;__as::53:__as__3$_0RC3$_0;2A.;$_0::58=#51,55,55,56,20;:__3$_0RC3$_0;2A.59=#51,55,55,20;:__3$_0;2A.;;,20;:__as__3$_0RC3$_0;2A.;$_0::58:__3$_0RC3$_0;2A.59:__3$_0;2A.;;",128,0,23,0
 #.stabs "_IO_lock_t:t60=20",128,0,183,0
 #.stabs "_IO_marker:Tt61=s24_next:62=*61,0,64;_sbuf:63=*64=xs_IO_FILE:,64,64;_pos:1,128,32;__as::65=##66=&61;:RC10_IO_marker;2A.;_IO_marker::67=##62;:RC10_IO_marker;2A.68=##62;:;2A.;;",128,0,208,0
 #.stabs "_IO_FILE:Tt64=s136_flags:1,0,32;_IO_read_ptr:52,64,64;_IO_read_end:52,128,64;_IO_read_base:52,192,64;_IO_write_base:52,256,64;_IO_write_ptr:52,320,64;_IO_write_end:52,384,64;_IO_buf_base:52,448,64;_IO_buf_end:52,512,64;_IO_save_base:52,576,64;_IO_backup_base:52,640,64;_IO_save_end:52,704,64;_markers:62,768,64;_chain:63,832,64;_fileno:1,896,32;_blksize:1,928,32;_offset:41,960,64;_cur_column:9,1024,16;_unused:2,1040,8;_shortbuf:69=ar1;0;0;2,1048,8;__as::70=##71=&64;:RC8_IO_FILE;2A.;_IO_FILE::72=##63;:RC8_IO_FILE;2A.73=##63;:;2A.;;",128,0,256,0
 #.stabs "_IO_cookie_io_functions_t:t74=s32read:75=*76=f49,0,64;write:77=*78=f49,64,64;seek:79=*80=f36,128,64;close:81=*82=f1,192,64;__as::83=#74,84=&74,85=*74,86=&87=s32read:75,0,64;write:77,64,64;seek:79,128,64;close:81,192,64;__as::83:__as__3$_1RC3$_1;2A.;$_1::88=#74,85,85,86,20;:__3$_1RC3$_1;2A.89=#74,85,85,20;:__3$_1;2A.;;,20;:__as__3$_1RC3$_1;2A.;$_1::88:__3$_1RC3$_1;2A.89:__3$_1;2A.;;",128,0,282,0
 #.stabs "_IO_cookie_file:Tt90=s184file:64,0,1088;vtable:91=*20,1088,64;cookie:23,1152,64;io_functions:74,1216,256;__as::92=##93=&90;:RC15_IO_cookie_file;2A.;_IO_cookie_file::94=##95=*90;:RC15_IO_cookie_file;2A.96=##95;:;2A.;;",128,0,291,0
 #.stabs "streamoff:t97=41",128,0,77,0
 #.stabs "streampos:t98=36",128,0,78,0
 #.stabs "streamsize:t99=49",128,0,80,0
 #.stabs "__fmtflags:t100=5",128,0,82,0
 #.stabs "__iostate:t101=11",128,0,83,0
 #.stabs "io_state:t102=egoodbit:0,eofbit:1,failbit:2,badbit:4,;",128,0,135,0
 #.stabs "open_mode:t103=ein:1,out:2,ate:4,app:8,trunc:16,nocreate:32,noreplace:64,bin:128,binary:128,;",128,0,140,0
 #.stabs "seek_dir:t104=ebeg:0,cur:1,end:2,;",128,0,149,0
 #.stabs "_seek_dir:t105=104",128,0,265,0
 #.stabs "__manip:t106=107=*108=f109=&110=xsios:",128,0,35,0
 #.stabs "__imanip:t111=112=*113=f114=&115=xsistream:",128,0,36,0
 #.stabs "__omanip:t116=117=*118=f119=&120=xsostream:",128,0,37,0
 #.stabs "X:Tt121=s4i:/01,0,32;__as::122=##123=&121;:Q21N1XRCQ21N1X;2A.;X::124=##125=*121;:__Q21N1XRCQ21N1X;2A.126=##125;:__Q21N1Xi;2A.;;",128,0,10,0
	.align 5
	.globl __ls__FR7ostreamRCQ21N1X
	.ent __ls__FR7ostreamRCQ21N1X
__ls__FR7ostreamRCQ21N1X:
	.frame $15,32,$26,0
	.mask 0x4008000,-32
	ldgp $29,0($27)
$__ls__FR7ostreamRCQ21N1X..ng:
$LM1:
	 #.stabn 68,0,15,$LM1
	subq $30,32,$30
	stq $26,0($30)
	stq $15,8($30)
	bis $30,$30,$15
	.prologue 1
	stq $16,16($15)
	stq $17,24($15)
$LM2:
	 #.stabn 68,0,15,$LM2
$LBB2:
$LM3:
	 #.stabn 68,0,16,$LM3
	ldq $1,24($15)
	ldl $2,0($1)
	ldq $16,16($15)
	bis $2,$2,$17
	jsr $26,__ls__7ostreami
	ldgp $29,0($26)
	bis $0,$0,$1
	bis $1,$1,$0
	br $31,$L288
$LBE2:
$LM4:
	 #.stabn 68,0,17,$LM4
$L288:
	bis $15,$15,$30
	ldq $26,0($30)
	ldq $15,8($30)
	addq $30,32,$30
	ret $31,($26),1
	.end __ls__FR7ostreamRCQ21N1X
 #.stabs "__ls__FR7ostreamRCQ21N1X:F119",36,0,15,__ls__FR7ostreamRCQ21N1X
 #.stabs "os:p119",160,0,15,32
 #.stabs "x:p127=&121",160,0,15,40
 #.stabn 192,0,0,$LBB2
 #.stabn 224,0,0,$LBE2
	.align 5
	.globl main
	.ent main
main:
	.frame $15,32,$26,0
	.mask 0x4008000,-32
	ldgp $29,0($27)
$main..ng:
$LM5:
	 #.stabn 68,0,20,$LM5
	subq $30,32,$30
	stq $26,0($30)
	stq $15,8($30)
	bis $30,$30,$15
	.prologue 1
$LM6:
	 #.stabn 68,0,20,$LM6
$LBB3:
$LM7:
	 #.stabn 68,0,21,$LM7
	addq $15,16,$16
	bis $31,7,$17
	jsr $26,__Q21N1Xi
	ldgp $29,0($26)
$LM8:
	 #.stabn 68,0,22,$LM8
$LBE3:
	bis $31,$31,$0
	br $31,$L289
$LM9:
	 #.stabn 68,0,23,$LM9
$L289:
	bis $15,$15,$30
	ldq $26,0($30)
	ldq $15,8($30)
	addq $30,32,$30
	ret $31,($26),1
	.end main
 #.stabs "main:F1",36,0,20,main
 #.stabs "x:121",128,0,21,-16
 #.stabn 192,0,0,$LBB3
 #.stabn 224,0,0,$LBE3
	.align 5
	.ent __Q21N1Xi
__Q21N1Xi:
	.frame $15,16,$26,0
	.mask 0x4008000,-16
$__Q21N1Xi..ng:
$LM10:
	 #.stabn 68,0,8,$LM10
	subq $30,16,$30
	stq $26,0($30)
	stq $15,8($30)
	bis $30,$30,$15
	.prologue 0
	bis $16,$16,$2
	bis $17,$17,$1
$LM11:
	 #.stabn 68,0,8,$LM11
	stl $1,0($2)
$LBB4:
$LBE4:
$L287:
	bis $2,$2,$0
	br $31,$L286
$LM12:
	 #.stabn 68,0,8,$LM12
$L286:
	bis $15,$15,$30
	ldq $26,0($30)
	ldq $15,8($30)
	addq $30,16,$30
	ret $31,($26),1
	.end __Q21N1Xi
 #.stabs "__Q21N1Xi:f125",36,0,8,__Q21N1Xi
 #.stabs "this:P125",64,0,8,2
 #.stabs "i_i:P1",64,0,8,1
 #.stabn 192,0,0,$LBB4
 #.stabn 224,0,0,$LBE4
>From nathan@acm.org Fri Feb 05 08:21:00 1999
From: Nathan Sidwell <nathan@acm.org>
To: d-dooling@nwu.edu
Cc: egcs-bugs@cygnus.com
Subject: Re: friends inside namespace
Date: Fri, 05 Feb 1999 08:21:00 -0000
Message-id: <36BB1A45.1DF76738@acm.org>
References: <19990205152650.11638.qmail@piglet.chem-eng.nwu.edu>
X-SW-Source: 1999-02/msg00148.html
Content-length: 2133

David J. Dooling wrote:
> 
> Brief description: declaring a friend function/operator inside a
> namespace and defining it outside the namespace (after a ``using''
> directive) causes the compiler to think two functions with the same
> signature have been created, one inside the namespace and one outside,
> leading to an ambiguity.  If you do not use a using directive and
> fully qualify all functions/operators/classes, it compiles without
> error.

> friend.cc: In function `int main()':
> friend.cc:22: ambiguous overload for `_IO_ostream_withassign & << ::N::X &'
> friend.cc:15: candidates are: operator <<(ostream &, const ::N::X &)
> friend.cc:9:                 operator <<(ostream &, const ::N::X &)
The compiler is correct in issuing a diagnostic, but unfortunately removes
information from it which shows that lines 15 and 9 declare/define
different functions. the 19990131 snapshot provides the more informative
diagnostic,
foo.cc: In function `class ostream & operator <<(class ostream &, const class N::X &)':
foo.cc:16: member `i' is a private member of class `N::X'
foo.cc: In function `int main()':
foo.cc:22: ambiguous overload for `_IO_ostream_withassign & << N::X &'
foo.cc:15: candidates are: operator <<(ostream &, const N::X &)
foo.cc:9:                 N::operator <<(ostream &, const N::X &)

You are confused about the meaning of the using directive.
A friend declaration introduces a name into the namespace scope enclosing the
current class declaration (unless the name is qualified). So line 9 introduces
'N::operator<<'. The using declaration applies to name lookup, not name
declaration or definition. Therefore line 15 is defining a new function
'::operator<<', which is not a friend of N::X. Hence the diagnostic about 
line 16. I am puzzled as to why you didn't get such a diagnostic too.

You need to change line 15 from unqualified 'operator<<' 'to `N::operator<<'.

nathan
-- 
Dr Nathan Sidwell :: Computer Science Department :: Bristol University
      You can up the bandwidth, but you can't up the speed of light      
nathan@acm.org  http://www.cs.bris.ac.uk/~nathan/  nathan@cs.bris.ac.uk
>From Maurizio.de.Cecco@ircam.fr Fri Feb 05 08:46:00 1999
From: Maurizio de Cecco <Maurizio.de.Cecco@ircam.fr>
To: egcs-bugs@egcs.cygnus.com
Subject: Problems With egcs/gcc
Date: Fri, 05 Feb 1999 08:46:00 -0000
Message-id: <199902051646.RAA37332@astor.ircam.fr>
X-SW-Source: 1999-02/msg00149.html
Content-length: 1964

Configurations where we reproduce the problem: Linux Red Hat 5.0 and
5.1, Pentium Pro and Pentium II, gcc 2.7., gcc 2.8.1 egcs 1.1.1

So, the problem is probabily no unique to egcs, but may be somebody
can help.

We have two kind of problems: the first is that under some, quite
frequent, situation, double to float conversion produce Nan.

The other is that we got a quite inconsistent behaviour of code
compiled with anything different then -g: a function like

static void
foo(sigline_t *this, float target)
{
  ... do something ....

  if (this->time > 0.0f)
    {

	... do something for the "then" ...
	.. do no touch this ...	

	fprintf(stderr, "Then %f\n", this->time);
    }
  else
    {
	... do something for the "else" ...
	.. do no touch this ...
	
	fprintf(stderr, "Else %f\n", this->time);
    }

 .....
}

called with this->time == 10., execute, "in some situation", the else
branch and print "Else 10."; quite puzzling.  Removing the prints get
the same result, but moving them before the "do something" code, or
before the if, get the good behaviour.

"in some situation" means in a given system state that can be
reproduced easily, but not in all the possible system state.

We think to have excluded all the trivial cause for the behaviour,
including things like memory or stack corruption, and all the data
structure are in a consistent state at the printing place.

The same code run ok compiled with -g, and compiled on other
platforms; also, the complete application is tested under Purify and
show no problems at all.

Of course, we cannot exclude a bug in our code; we havn't been able to
reproduce the problem in a small code fragment, we need to complete
application to reproduce it.

So the question is if this vaguely correspond to some known bug ...

Thanks,
	Maurizio



-- 
No Matter Who You Are, Most Of The Smartest People Work For Someone Else (Bill Joy).

Maurizio De Cecco, Real Time System Team, IRCAM, Centre Georges Pompidou
>From martin.kahlert@mchp.siemens.de Fri Feb 05 09:06:00 1999
From: Martin Kahlert <martin.kahlert@mchp.siemens.de>
To: Maurizio de Cecco <Maurizio.de.Cecco@ircam.fr>
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Problems With egcs/gcc
Date: Fri, 05 Feb 1999 09:06:00 -0000
Message-id: <19990205180559.A5775@keksy.mchp.siemens.de>
In-reply-to: < 199902051646.RAA37332@astor.ircam.fr >; from Maurizio de Cecco on Fri, Feb 05, 1999 at 05:46:16PM +0100
References: <199902051646.RAA37332@astor.ircam.fr> <199902051646.RAA37332@astor.ircam.fr>
X-SW-Source: 1999-02/msg00150.html
Content-length: 490

Whenever i got things you described it was a memory corruption 
problem or a problem using freed memory or something like that.

Try linking your program with libefence. This helps sometimes.
(If you don't corrupt stack values)

Sorry, but i have to add: Whenever i got things you described,
there was a very long and unsatisfying debugging session in 
front of me...

Hope that helps,
Martin.

-- 
Your mouse has moved. Windows must be restarted for the change
to take effect. Reboot now?
>From Maurizio.de.Cecco@ircam.fr Fri Feb 05 09:24:00 1999
From: Maurizio de Cecco <Maurizio.de.Cecco@ircam.fr>
To: egcs-bugs@egcs.cygnus.com
Subject: Re: Problems With egcs/gcc
Date: Fri, 05 Feb 1999 09:24:00 -0000
Message-id: <199902051724.SAA40246@astor.ircam.fr>
In-reply-to: < 19990205180559.A5775@keksy.mchp.siemens.de >
References: <199902051646.RAA37332@astor.ircam.fr> <19990205180559.A5775@keksy.mchp.siemens.de> <19990205180559.A5775@keksy.mchp.siemens.de>
X-SW-Source: 1999-02/msg00151.html
Content-length: 1161

Martin Kahlert writes:
 > Whenever i got things you described it was a memory corruption 
 > problem or a problem using freed memory or something like that.

Usually, this happens also to me :->

But: the "working" state and "not working" state are perfectly
deterministic; when i say easy to reproduce  i don't mean
thru a long but know sequence of steps, but really with 
a single operation on the system that can be switched back;
we where also able to make the system switch between the two
state 100 times a second, and we got a completely deterministic
behaviour, and no crash at all.

If you consider that the state switch include quite a lot of
malloc/free, and we never got crashes, this make the memory corruption
case quite difficult (but, of course, not 100% impossible).

Anyway, what about the double to float problem: ever head about
anything like this ? We read in comp.os.linux.developement.system that
some fellow had similar problems in Red Hat 5.1, and solved it
converting the all program to using doubles (i.e. removed float from
all the prototypes); of course, also here, no real prove that the two
things have any relation ...

Maurizio
>From oliva@dcc.unicamp.br Fri Feb 05 09:37:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: "GTRyS - C.N.S.N.S." <cnsns1@servidor.unam.mx>
Cc: egcs-bugs@cygnus.com
Subject: Re: What I doing?
Date: Fri, 05 Feb 1999 09:37:00 -0000
Message-id: <oriudgvjpb.fsf@araguaia.dcc.unicamp.br>
In-reply-to: "GTRyS  - C.N.S.N.S."'s message of "Thu, 04 Feb 1999 17:50:05 -0600"
References: <3.0.6.32.19990204175005.00794a90@servidor.unam.mx>
X-SW-Source: 1999-02/msg00152.html
Content-length: 359

On Feb  4, 1999, "GTRyS  - C.N.S.N.S." <cnsns1@servidor.unam.mx> wrote:

> and say " internal compiler error en line  756 in file opal.cc 

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1999-02-02 19:30 mdavies
  1999-02-28 23:30 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: mdavies @ 1999-02-02 19:30 UTC (permalink / raw)
  To: egcs-bugs

Source:
typedef unsigned long int __fd_mask;
 
typedef struct
  {
    __fd_mask __fds_bits[1024  / (8 * sizeof (__fd_mask)) ];
  } __fd_set;

typedef struct _IO_FILE FILE;

extern FILE *stdin;              

typedef __fd_set fd_set;

int vga_getkey(void)
{
    fd_set fds;
    int fd = fileno(stdin);
    char c;

    do {        int __d0, __d1; __asm__ __volatile__ ("cld; rep; stosl"
: "=m" (((   &fds   )->__fds_bits) [(( 1024  ) / (8 * sizeof
(__fd_mask)) ) ]), "=c" (__d0), "=D" (__d1)        : "a" (0), "1"
(sizeof (__fd_set)       / sizeof (__fd_mask)),  "2" (& ((   &fds  
)->__fds_bits) [0])  : "memory");    } while (0)  ;

    return 0;
}

Response:
/usr2/src/egcs-19990131/gcc/function.c:3657: Internal compiler error in
function instantiate_virtual_regs_1
Please submit a full bug report to `egcs-bugs@cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

Compiler:
Reading specs from
/usr/i586-pc-linux-gnulibc2/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.93.04/specs
gcc version egcs-2.93.04 19990131 (gcc2 ss-980929 experimental)
>From osken393@student.liu.se Tue Feb 02 19:56:00 1999
From: Oskar Enoksson <osken393@student.liu.se>
To: egcs-bugs@cygnus.com
Subject: Template static member bug
Date: Tue, 02 Feb 1999 19:56:00 -0000
Message-id: <Pine.GSO.3.96.990203043827.2897F-100000@lystra.lysator.liu.se>
X-SW-Source: 1999-02/msg00047.html
Content-length: 654

I have found another template class static member bug (I don't think it
has been reported before, but I'm not sure). 

The bug is in both egcs 1.1.1 and in egcs-2.93.03. My platform is
alphaev56-dec-osf4.0d

Regards.
/Oskar Enoksson

//////// Begin test.cpp ////////
template<int N>
class A {
public:
  static const char * classname;
};

template<int N>
const char * A<N>::classname="Foo";

const char *test() {
  return A<3>::classname;
}
//////// End test.cpp /////////

> c++ -o foo foo.cpp
  /usr/bin/ld:
  Unresolved:
  A<3>::classname  
  collect2: ld returned 1 exit status


*/              Oskar Enoksson, Linkoping, Sweden                  /*


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-30  3:20 Patrick MERISSERT-COFFINIERES
  0 siblings, 0 replies; 387+ messages in thread
From: Patrick MERISSERT-COFFINIERES @ 1999-01-30  3:20 UTC (permalink / raw)
  To: egcs-bugs

With egcs-1.1.1, who display its version as egcs-2.91.60, both under
cygwin for nt, and under Linux Redhat 5.2 (Leeloo), the following
program:

/=============================================================
template <int I>
class outer {
public:
  template<int J>
  class inner {
  public:
    static inline int value();
  };
};

template<int I> template <int J>
inline int outer<I>::inner<J>::value()
{return I/J;}

template<int I> template <>
class outer<I>::inner<0>
{                                                 // <= error
  public:
    static inline int value(){return 0;}
  };
}
/=============================================================

raises an "Internal compiler error" on the "inner<0>" line. I am not
sure whether it SHOULD compiler or not. I am trying explicit
specialization of a template class member of a template class! I also
tried partial specification, but it raised a different error:

/=============================================================
template <int I>
class outer {
public:
  template<typename X,int J>
  class inner {
  public:
    static inline int value(X);
  };
};

template<int I> template <typename X,int J>
inline int outer<I>::inner<X,J>::value(X x)
{return x*I/J;}

template<int I> template <typename X>
class outer<I>::inner<X,0> {
// <= error
  public:
    static inline int value(X){return 0;}
  };
}
/=============================================================

got:

  tst.cc:16: got 1 template parameters for `class
outer<I>::outer<I>::inner<X,0>'
  tst.cc:16:   but 2 required

but again, I do not know whether this should compile or not.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-19  7:06 K Efstathiou
  0 siblings, 0 replies; 387+ messages in thread
From: K Efstathiou @ 1999-01-19  7:06 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

When trying to compile the attached file (bug.cpp) I get the
message:
bug.cpp:16: Internal compiler error.
bug.cpp:16: Please submit a full bug report to `egcs-bugs@cygnus.com'.

The version of egcs I am using is:
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (i386 Linux/ELF)

Konstantinos Efstathiou

[-- Attachment #2: bug.cpp --]
[-- Type: text/x-c++, Size: 210 bytes --]

class A
{
public:
  static const int x = 5;
};


template <int n> class B {};


template <typename E>
class C
{
public:
  void apply(B<E::x-2> b)
  {
    return;
  }
};


int main()
{
  C<A> var;
  return 0;
}

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-18 18:04 Geert-Jan Giezeman
  0 siblings, 0 replies; 387+ messages in thread
From: Geert-Jan Giezeman @ 1999-01-18 18:04 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 471 bytes --]

The attached program, when compiled under egcs 1.1.1 (egcs-2.91.60) with
> g++ -c RT1.C

reports:
> g++: Internal compiler error: program cc1plus got fatal signal 11

This particular compilation was done on an SGI Indigo 2 running IRIX 5.3,
but the same effect is observed on Linux-2.0.35 and SunOS-5.6 (egcs-2.91.57
on the Sun).

The problem does not occur under egcs-2.90.29.


Keep up the good work!

Geert-Jan Giezeman
Dept. of Computer Science,  Utrecht University


[-- Attachment #2: RT1.C.gz --]
[-- Type: application/x-gzip, Size: 49972 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1999-01-15 13:36 Pwitko71
@ 1999-01-16 15:14 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1999-01-16 15:14 UTC (permalink / raw)
  To: Pwitko71; +Cc: egcs-bugs, pwitkop

On Jan 15, 1999, Pwitko71@maine.maine.edu wrote:

> nurbsS.cc:3189: Internal compiler error.
> nurbsS.cc:3189: Please submit a full bug report to `egcs-bugs@cygnus.com'.

I'd usually ask you to re-submit a new bug report along the lines
stated in http://egcs.cygnus.com/faq.html#bugreport , but we're already 
aware of this problem.  Not sure if it was already fixed, though.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-15 13:36 Pwitko71
  1999-01-16 15:14 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Pwitko71 @ 1999-01-15 13:36 UTC (permalink / raw)
  To: egcs-bugs; +Cc: pwitkop

When trying to compile nurbs-2.1.1, which I downloaded from
" ftp://ftp.cs.umn.edu/users/mein/mindseye/extra/nurbs-2.1.1.tar.gz " I
 get an interanl compiler error. The compiler output is as follows:

make[1]: Entering directory `/home/pwitko71/nurbs-2.1.1/tst'
rm -f   core *.o tnurbs tnlength tnurbsS thnurbsS tnsSweep tmatrixRT tdrawAa tnInterp tnApprox tnMovePoint tnsMovePoint tngl tleastS tnurbs_sp tnurbsS_sp 
make[1]: Leaving directory `/home/pwitko71/nurbs-2.1.1/tst'
[pwitko71@PWITKO71 nurbs-2.1.1]$ make
(cd src;make)
make[1]: Entering directory `/home/pwitko71/nurbs-2.1.1/src'
c++ -c -g -O2 -fno-implicit-templates  -I/usr/local/include   -I../../matrix/include  -I/usr/local/include -I../include nurbs.cc
c++ -c -g -O2 -fno-implicit-templates  -I/usr/local/include   -I../../matrix/include  -I/usr/local/include -I../include nurbsS.cc
nurbsS.cc: In method `int PlNurbsSurface::writePOVRAY(const char *, const class Color & = Color(250, 250, 250), const class Point3D & = Point3D(0x000000000000000000000000, 0x00000000000000000080ff3f, 0x000000000000000000000000), const class Point3D & = Point3D(0x000000000000000000000000, 0x000000000000000000000000, 0x00000000000000000080ff3f), int = 1, double = 0x000000d8a3703d0ad7a3f83f, int = 8, int = 8) const':
nurbsS.cc:3189: Internal compiler error.
nurbsS.cc:3189: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [nurbsS.o] Error 1
make[1]: Leaving directory `/home/pwitko71/nurbs-2.1.1/src'
make: *** [all] Error 2

My system is P5-166, with 64 Meg of ram, 128 meg of swap, running RH
5.2, with no upgrades to the compilers, or the included libraries.  The
error does seem reproducable, at least on my system. I've tried
unpacking the tar ball again, and starting from scratch, with the same
results.  If you have any further questions, the compiler output is in
sufficient, or there is something you'd like me to try, please email
me.  Thank you very much

Peter Witkop

-- 
+-----------------------------------------------------------------------+
|          Peter Witkop - USM student, GEB publicity chair.             |
+-----------------------------------------------------------------------+
|     "I can only please one person a day, today is not your day.       |
|              Tomarow doesn't look good either" Unknown                |
+-----------------------------------------------------------------------+




^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-01-15  8:18 Kasper Peeters
  0 siblings, 0 replies; 387+ messages in thread
From: Kasper Peeters @ 1999-01-15  8:18 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1850 bytes --]

egcs version:  gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
system      :  linux-2.0.30, i586
options     :  -v
output      :

Reading specs from /home/quark/kp229/arch/i586/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /home/quark/kp229/arch/i586/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.60/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di586 -Dpentium -D__i586 -D__i586__ -D__pentium -D__pentium__ tst.cc /tmp/cc9tEaqN.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /home/quark/kp229/arch/i586/include
 /home/quark/kp229/arch/i586/include/g++
 /home/quark/kp229/arch/i586/i586-pc-linux-gnulibc1/include
 /home/quark/kp229/arch/i586/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.60/include
 /usr/include
End of search list.
 /home/quark/kp229/arch/i586/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.60/cc1plus /tmp/cc9tEaqN.ii -quiet -dumpbase tst.cc -version -o /tmp/ccdkzTvV.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i586-pc-linux-gnulibc1) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
tst.cc: In instantiation of `foo_base::foo_base::const_base_iterator<base>':
tst.cc:28:   instantiated from here
tst.cc:28: Internal compiler error.
tst.cc:28: Please submit a full bug report to `egcs-bugs@cygnus.com'.
tst.cc:28: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.


Program 'tst.cc' and C++ preprocessor output is attached.


Best,
Kasper


[-- Attachment #2: tst.cc.gz --]
[-- Type: application/x-gzip, Size: 728 bytes --]

[-- Attachment #3: tst.ii.gz --]
[-- Type: application/x-gzip, Size: 20277 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-08  5:00 Jody Hagins
  0 siblings, 0 replies; 387+ messages in thread
From: Jody Hagins @ 1999-01-08  5:00 UTC (permalink / raw)
  To: 'egcs-bugs@cygnus.com'

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)



The following program generates the following internal compiler error.



uzi.atdesk.com:jody> cat a.cpp
typedef std::list<int> Readers;

main()
{
}
uzi.atdesk.com:jody> g++ -c a.cpp
a.cpp:1: Internal compiler error 980711.
a.cpp:1: Please submit a full bug report to `egcs-bugs@cygnus.com'.



Note that adding the following line allows the compilation to succeed.

#include <list>



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1999-01-07  0:02 Bruce Eckel
  0 siblings, 0 replies; 387+ messages in thread
From: Bruce Eckel @ 1999-01-07  0:02 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 285 bytes --]

My installation is:
gcc version egcs-2.92.33 19981226 (gcc2 ss-980609 experimental) 

The attached file causes an internal compiler error.
=============================
Bruce Eckel    http://www.BruceEckel.com
Contains free electronic books: "Thinking in Java" & "Thinking in C++ 2e"


[-- Attachment #2: Replace.cpp --]
[-- Type: text/x-c++, Size: 839 bytes --]

//: C17:Replace.cpp
// From Thinking in C++, 2nd Edition
// at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
#include <string>
#include <iostream>
using namespace std;

void replaceChars(string& modifyMe, 
  string findMe, string newChars){
  // Look in modifyMe for the "find string"
  // starting at position 0
  int i = modifyMe.find(findMe, 0);
  // Did we find the string to replace?
  if(i != string::npos)
    // Replace the find string with newChars
    modifyMe.replace(i,newChars.size(),newChars);
}

int main() {
  string bigNews = 
   "I thought I saw Elvis in a UFO. "
   "I have been working too hard.";
  string replacement("wig");
  string findMe("UFO");
  // Find "UFO" in bigNews and overwrite it:
  replaceChars(bigNews, findMe,  replacement);
  cout << bigNews << endl;
} ///:~

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-01-05 12:22 A. F. Cano
  0 siblings, 0 replies; 387+ messages in thread
From: A. F. Cano @ 1999-01-05 12:22 UTC (permalink / raw)
  To: egcs-bugs

Hi,

Got this while compiling one of the files in Bruce Watson's FIRE (FInite
Automata and Regular Expressions) Engine (available at ftp.win.tue.nl)

Script started on Tue Jan  5 11:16:32 1999
speedy:0:c++frameworks/fsa-lib/src> c++ -c -fguiding-decls sig-rfa.cpp
In file included from trans.h:12,
                 from rfa.h:11,
                 from sig-rfa.cpp:5:
tr-impl.h:27: warning: discarding `const' applied to a reference
sig-rfa.cpp:9: Internal compiler error.
sig-rfa.cpp:9: Please submit a full bug report to `egcs-bugs@cygnus.com'.
speedy:1:c++frameworks/fsa-lib/src> ^D

Script done on Tue Jan  5 11:16:56 1999

This is the file that caused it:


/* (c) Copyright 1994 by Bruce W. Watson */
// $Revision: 1.1 $
// $Date: 1994/05/02 15:59:33 $
#include "charrang.h"
#include "rfa.h"
#include "sigma.h"

// Implement the Sigma-algebra operators (Definition 4.29 of the Taxonomy).
Reg<RFA>& Reg<RFA>::epsilon() {
	// This RFA may have been something in a previous life.
	// Wipe out all previous info in this structure.
	reincarnate();

	Nullable = 1;

        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::empty() {
	// See epsilon case.
        reincarnate();

	assert( Nullable == 0 );

        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::symbol( const CharRange r ) {
	// See epsilon case.
	reincarnate();

	auto State q( Q.allocate() );

	first.set_domain( Q.size() );
        first.add( q );

	last.set_domain( Q.size() );
        last.add( q );

	Qmap_inverse.set_range( Q.size() );
        Qmap_inverse.add_transition( r, q );

	follow.set_domain( Q.size() );
        // Nothing to add to follow.

	Nullable = 0;

	current.set_domain( Q.size() );

	assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::or( const Reg<RFA>& r ) {
	assert( class_invariant() );
	assert( r.class_invariant() );
	// All state-related stuff in r must be adjusted.

        Q.incorporate( r.Q );

	first.disjointing_union( r.first );

	last.disjointing_union( r.last );

	Qmap_inverse.disjointing_union( r.Qmap_inverse );

	follow.disjointing_union( r.follow );

	Nullable = Nullable || r.Nullable;

	current.set_domain( Q.size() );
        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::concat( const Reg<RFA>& r ) {
	assert( class_invariant() );
	assert( r.class_invariant() );
	// See the or operator.
	// All state-related stuff in r must be adjusted.
	// First, incorporate the follow sets.

	follow.disjointing_union( r.follow );
	// Rename the incoming StateSet's first and last StateSets.
	auto StateSet fi1( r.first );
	fi1.st_rename( Q.size() );
	auto StateSet la1( r.last );
	la1.st_rename( Q.size() );

	Q.incorporate( r.Q );
	// Adjust last as well.
	last.set_domain( Q.size() );
	follow.union_cross( last, fi1 );

	first.set_domain( Q.size() );
	if( Nullable ) {
        	first.set_union( fi1 );
	};

	if( r.Nullable ) {
        	last.set_union( la1 );
        } else {
        	last = la1;
	}

	Qmap_inverse.disjointing_union( r.Qmap_inverse );

	Nullable = Nullable && r.Nullable;

        current.set_domain( Q.size() );
        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::star() {
	assert( class_invariant() );

	// Nothing to do to Q, first, last, Qmap_inverse.
        follow.union_cross( last, first );
	Nullable = 1;
        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::plus() {
	assert( class_invariant() );

	// Don't change Q, first, last, Qmap_inverse, Nullable.
	follow.union_cross( last, first );
        assert( class_invariant() );
	return( *this );
}

Reg<RFA>& Reg<RFA>::question() {
	assert( class_invariant() );

	// Don't change Q, first, last, Qmap_inverse, follow.
	Nullable = 1;
        assert( class_invariant() );
	return( *this );
}



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1999-01-05  8:36 A. F. Cano
  0 siblings, 0 replies; 387+ messages in thread
From: A. F. Cano @ 1999-01-05  8:36 UTC (permalink / raw)
  To: egcs-bugs

Oops...

Forgot to mention that the internal compiler error previously sent is on
a Red Hat 5.1 system with egcs-1.0.2-12 (per rpm -q egcs).


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-12-22 10:48 John Apostol
  0 siblings, 0 replies; 387+ messages in thread
From: John Apostol @ 1998-12-22 10:48 UTC (permalink / raw)
  To: egcs-bugs; +Cc: johna

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 44

Bug Report
 
EGCS Version
============
 
     snapshot egcs-19981220.tar.gzz
 
System Info
===========
 
     Manufacturer is          Sun (Sun Microsystems)
     System Model is          Ultra 2 Model 2296
     Main Memory is           512 MB
     Virtual Memory is        3.5 GB
     ROM Version is           OBP 3.7.0 1997/01/09 13:06
     Number of CPUs is        2
     CPU Type is              sparc
     App Architecture is      sparc
     Kernel Architecture is   sun4u
     OS Name is               SunOS
     OS Version is            5.5.1
     Kernel Version is        SunOS Release 5.5.1 Version Generic_103640-24 [UNIX(R) System V Release 4.0]
 
Options passed to egcs
======================
 
     No options passed to configure system for makefile to
     build egcs gcc etc.
 
     No options passed to compile example bug.
 
Preprocessed output of the source file that caused the compiler error
=====================================================================
 
     Output of g++ x.cc -o x
 
       x.cc: In function `void f(class basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> >)':
       x.cc:6: Internal compiler error.
       x.cc:6: Please submit a full bug report to `egcs-bugs@cygnus.com'.
       x.cc:6: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
 
     See attachment below for output (gzip) of

        g++ -v --save-temps x.cc
----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: x.ii.gz
X-Sun-Encoding-Info: uuencode
X-Sun-Content-Lines: 376

begin 600 x.ii.gz
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
-EKS@_P?V$CSH!Y,! +:;
 
end


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1998-12-17 21:22 Chris Tracy
  0 siblings, 0 replies; 387+ messages in thread
From: Chris Tracy @ 1998-12-17 21:22 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]

Hello,

	Umm...well I'm not really much more than a recreational programmer, so 
I don't really know if this is a real bug, or simply something stupid that I've 
done.  Nevertheless, I figure you may want to have a look at it.  I've included all 
the code that you'll need to compile and recreate the problem.  (However, I'm 
not quite sure how to write up a full bug report, so here's the best I can do)  

	I'm running egcs-version 2.91.57 on Red Hat 5.2 (Linux 2.1.131) on an 
AMD K6-2 333 with 128 Mb RAM.  I'm using JX 1.1.18 as my IDE.  This code is 
just a high school computer science extra-credit assignment.  The exact error 
message is:

linkbak.h:295: Internal compiler error.  Please submit a full bug report to
	'egcs-bugs@cygnus.com'

	Unfortunately, I'm not experienced enough with compilers in general to 
know what to look for.  However, if there's anything else I can give you, please 
let me know.

	Basically I'm trying to write a function that returns the head (a pointer to 
another templated class) for use in the LinkedList copy-constructor.  The 
program is supposed to print the song, "The Twelve Days of Christmas."  
Admittedly, the code is quite hideous, but I'm no C++ wizard.

	Oh, the exact compile line is:

g++ -g -o song song.cpp

	Thank you,

	Chris

-------------------------------
Chris Tracy
Email/Network Administrator (and Senior)
Broad Run High School
"Wherever you go, there you are"

[-- Attachment #2: apstring.cpp --]
[-- Type: text/x-c, Size: 11582 bytes --]

//****************************************************************
//
// apstring class implementation.
// See apstring.h for complete documentation of functions
//
//****************************************************************

#include <string.h>
#include <assert.h>
#include "apstring.h"

const int npos = -1;
const int MAX_LENGTH = 1024;   // Maximum size of input string

//****************************************************************
//********           Constructors / destructor         ***********
//****************************************************************

apstring::apstring()

// Constructor: builds an empty string.

{
    mLength = 0;    
    mCapacity = 1;
    mCstring = new char[mCapacity];
    mCstring[0] = '\0';  // String consists only of the null terminator.
}

//****************************************************************

apstring::apstring(const char *s)

// Constructor: builds a string from a null-terminated string.

{
    assert (s != 0);
    mLength = strlen(s);
    mCapacity = mLength + 1;     // +1 for the terminating null
    mCstring = new char[mCapacity];  
    strcpy(mCstring, s);
}   

//****************************************************************

apstring::apstring(const apstring &str)

// Copy constructor: builds a string equal to a given string str.

{
    mLength = str.length();
    mCapacity = mLength + 1;
    mCstring = new char[mCapacity];
    strcpy(mCstring, str.mCstring);
}

//****************************************************************

apstring::~apstring()

// Destructor.

{
    delete[] mCstring;
}

//****************************************************************
//********                 Assignment                  ***********
//****************************************************************

const apstring &apstring::operator= (const apstring &str)

// Assignment operator from another apstring.

{
    if (this != &str) {

        // If not enough room, reallocate the buffer:
        if (mCapacity < str.length() + 1) {
            delete[] mCstring;
            mCapacity = str.length() + 1;
            mCstring = new char[mCapacity];
        }

        // Copy the string:
        mLength = str.length();
        strcpy(mCstring, str.mCstring);
    }
    return *this;   
}

//****************************************************************

const apstring& apstring::operator= (const char *s)

// Assignment operator from a null-terminated string.

{
    assert(s != 0);
    int len = strlen(s);
    
    // If not enough room, reallocate the buffer:
    if (mCapacity < len + 1) {
        delete[] mCstring;
        mCapacity = len + 1;
        mCstring = new char[mCapacity];       
    }
    mLength = len;
    strcpy(mCstring, s);

    return *this;
}

//****************************************************************

const apstring& apstring::operator= (char ch)

// Assignment operator from a char.

{
    // If not enough room, reallocate the buffer:
    if (mCapacity < 2) {
        delete [] mCstring;
        mCapacity = 2;
        mCstring = new char[mCapacity];
    }
    mLength = 1;
    mCstring[0] = ch;
    mCstring[1] = '\0';  // Terminating null.
    return *this;
}

//****************************************************************
//********                  Subscripting               ***********
//****************************************************************

char apstring::operator[](int k) const

// Overloaded subscript operator.  Verifies that 0 <= k <= mLength - 1.
// Returns a character (to be used as an rvalue).

{
    if (k < 0 || k >= mLength) {
        cerr << "index out of range: " << k << " string: "
             << mCstring << endl;
        assert (0 <= k && k < mLength);
    }
    return mCstring[k];
}

//****************************************************************

char &apstring::operator[] (int k)

// Overloaded subscript operator.  Verifies that 0 <= k <= mLength - 1.
// Returns a reference to a char (to be used as an lvalue).

{
    if (k < 0 || k >= mLength) {
        cerr << "index out of range: " << k << " string: "
             << mCstring << endl;
        assert(0 <= k && k < mLength);
    }
    return mCstring[k];
}     

//****************************************************************
//********              Append operators +=            ***********
//****************************************************************

const apstring &apstring::operator+= (const apstring &str)

// Concatenates a copy of str to this string

{
    // Make a copy of str to avoid aliasing problems:
    apstring copyStr = str;
    
    int newLength = mLength + str.length();
    int lastLocation = mLength;
    
    // If not enough room, reallocate the buffer:
    if (newLength >= mCapacity) {
        mCapacity = newLength + 1;
        char *newBuffer = new char[mCapacity];
        strcpy(newBuffer, mCstring);
        delete [] mCstring;
        mCstring = newBuffer;
    }
    
    // Concatenate copyStr to the end of mCstring
    //   (pointer arithmetic in action):
    strcpy(mCstring + lastLocation, copyStr.c_str());
    mLength = newLength;

    return *this;
}

//****************************************************************

const apstring &apstring::operator+= (char ch)

// Concatenates a char to this string.
//   (short, but inefficient).

{
    apstring temp;

    temp = ch;
    *this += temp;
    return *this;
}

//****************************************************************
//**********           Other member functions         ************
//****************************************************************

int apstring::length() const

// Returns the length of the string.

{
    return mLength;
}

//****************************************************************

int apstring::find(const apstring &str) const

// Finds the first occurrence of the substring str in this string.
// Returns the index of the first character, or npos, if not found.

{
    int len = str.length();
    int lastIndex = mLength - len;
    int k;

    for (k = 0;   k <= lastIndex;   k++)
        if (strncmp(mCstring + k, str.c_str(), len) == 0)
            return k;

    return npos;
}

//****************************************************************

int apstring::find(char ch) const

// Finds the first occurrence of the char ch this string.
// Returns its index, or npos, if not found.

{
    int k;

    for (k = 0;   k < mLength;   k++)
        if (mCstring[k] == ch)
            return k;

    return npos;
}

//****************************************************************

apstring apstring::substr(int pos, int len) const

// Builds and returns the substring of length
//   len starting from pos.

{
    if (pos < 0)
        pos = 0;
    
    if (pos >= mLength)
        return "";             // Return empty string
    
    int lastIndex = pos + len - 1;
    if (lastIndex >= mLength)
        lastIndex = mLength-1;
    
    // Allocate as much space as in this string:
    apstring result(*this);
       // (This is a kluge.  The class does not have a
       //   constructor that would allocate a string buffer
       //   of the specified capacity, and there is no resize function.)

    int j, k;
    for (j = 0, k = pos;   k <= lastIndex;   j++, k++)
        result.mCstring[j] = mCstring[k];

    result.mCstring[j] = '\0';     // Append the terminatig null.
    result.mLength = j;

    return result;
}

//****************************************************************

const char *apstring::c_str() const

// Returns a pointer to the null-terminated string in storage
//   buffer for this apstring.

{
    return mCstring;    
}

//****************************************************************
//****************************************************************
//********   Free-standing functions and operators   *************
//****************************************************************
//****************************************************************

//****************************************************************
//********             I/O functions                 *************
//****************************************************************

ostream &operator<< (ostream &os, const apstring &str)

// Inserts the string into os and returns os.

{
    return os << str.c_str();
}

//****************************************************************

istream &operator>> (istream &is, apstring &str)

// Skips all white space and reads one word from is and returns is.

{
    char buf[MAX_LENGTH];

    is >> buf;
    str = buf;
    return is;
}

//****************************************************************

istream &getline(istream &is, apstring &str)

// Reads a line from input stream is into the string str
{
    char buf[MAX_LENGTH];

    is.getline(buf, MAX_LENGTH);
    str = buf;
    return is;
}

//****************************************************************
//********          Concatenation operators +        *************
//****************************************************************

apstring operator+ (const apstring &str1, const apstring &str2)

// Builds and returns a new string that is concatenation of str1 with str2     
//   (short, but very inefficient).

{
    apstring result = str1;
    result += str2;
    return result;
}

//****************************************************************

apstring operator+ (char ch, const apstring &str)

// Builds and returns a new string that is concatenation of ch with str     

{
    apstring result;

    result = ch;
    result += str;
    return result;
}

//****************************************************************

apstring operator+ (const apstring &str, char ch)

// Builds and returns a new string that is concatenation of str and ch    

{
    apstring result = str;
    result += ch;
    return result;
}

//****************************************************************
//********          Relational operators             *************
//****************************************************************

bool operator== (const apstring &str1, const apstring &str2)
{
    return strcmp(str1.c_str(), str2.c_str()) == 0;
}

//****************************************************************

bool operator!= (const apstring &str1, const apstring &str2)
{
    return !(str1 == str2);
}

//****************************************************************

bool operator< (const apstring &str1, const apstring &str2)
{
    return strcmp(str1.c_str(), str2.c_str()) < 0;
}

//****************************************************************

bool operator<= (const apstring &str1, const apstring &str2)
{
    return strcmp(str1.c_str(), str2.c_str()) <= 0;
}

//****************************************************************

bool operator> (const apstring &str1, const apstring &str2)
{
    return strcmp(str1.c_str(), str2.c_str()) > 0;
}

//****************************************************************

bool operator>= (const apstring &str1, const apstring &str2)
{
    return strcmp(str1.c_str(), str2.c_str()) >= 0;
}

//****************************************************************

[-- Attachment #3: apstring.h --]
[-- Type: text/x-c++, Size: 3650 bytes --]

#ifndef _APSTRING_H
#define _APSTRING_H

#include <iostream.h>
#ifndef LINUX
#include "bool.h"
#endif

//****************************************************************
//
// apstring class
//
//****************************************************************

extern const int npos;  // Returned by the find function if
                        //   the target char or substring is not found

class apstring {

  public:

  // Constructors/destructor:

    apstring();           // Default constructor: builds an
                          //   empty string (of 0 length and capacity)
    apstring(const char * s);
                          // Builds a string from a null-terminated
                          //   string (e.g., a literal string)

    apstring(const apstring &str);
                          // Copy constructor: builds a string equal to
                          //  a given string

    ~apstring();          // Destructor

  // Assignment:

    const apstring &operator= (const apstring &str);
                          // str1 = str2;
    const apstring &operator= (const char *s);
                          // str = "Hello";
    const apstring &operator= (char ch);
                          // str = ch;

  // Overloaded subscripting operators (perform subscript range checking):

    char operator[] (int k) const;   // for use as an rvalue
    char &operator[] (int k);        // for use as lvalue

  // Append operators:

    const apstring &operator+= (const apstring &str);
                          // str1 += str2;
    const apstring &operator+= (char ch);
                          // str += ch;
        
  // Other member functions:

    int length() const;       // Returns the current length of the string
    int find(const apstring &str) const;
                              // Returns index of first occurrence of str
    int find(char ch) const;  // Returns index of first occurrence of ch
    apstring substr(int pos, int len) const;
                              // Builds and returns a substring of len chars,
                              //   starting at pos
    const char *c_str() const;
                              // Returns const pointer to the
                              //   null-terminated string in storage buffer

  private:

      int mLength;    // Current length of the string (number of characters)
      int mCapacity;  // The size of the string buffer
      char *mCstring; // Pointer to a null-terminated string
                      //   in the storage buffer
};

//****************************************************************
//*********     Free-standing operators and functions    *********
//****************************************************************

// I/O functions:

ostream &operator<< (ostream &os, const apstring &str);
istream &operator>> (istream &is, apstring &str); 
istream &getline(istream &is, apstring &str);  
          
// Concatenation operators:

apstring operator+ (const apstring &str1, const apstring &str2);
apstring operator+ (char ch, const apstring &str);
apstring operator+ (const apstring &str, char ch);

// Relational operators:

bool operator== (const apstring &str1, const apstring &str2);  
bool operator!= (const apstring &str1, const apstring &str2);  
bool operator<  (const apstring &str1, const apstring &str2);  
bool operator<= (const apstring &str1, const apstring &str2);  
bool operator>  (const apstring &str1, const apstring &str2);  
bool operator>= (const apstring &str1, const apstring &str2);  

#endif // _APSTRING_H


[-- Attachment #4: linkbak.h --]
[-- Type: text/x-c++, Size: 4578 bytes --]

//Chris Tracy
//Linked List Class header and definition

#include <iostream.h>
#include "apstring.h"

#include "node.h"

const apstring __NOFILL = "__NOFILL";
const apstring __FILL = "__FILL";
const int OVERFLOW = 101;
const int OK = 0;

template<class itemType>
class LinkedList
{
	public:
		LinkedList();
		~LinkedList();
		LinkedList(const LinkedList &);
		void OrderedInsert(const apstring &);
		void Before(const apstring &);
		void After(const apstring &);
		void DeleteNode();
		void DeleteAll();	
		void PrintAll();
		apstring PrintNode(int);
		int SetNode(int, const apstring &);	
		itemType &GetHead();
		
	private:
		itemType *head;		
};

template<class itemType>
LinkedList<itemType>::LinkedList()
{
	head = 0;
}

template<class itemType>
LinkedList<itemType>::LinkedList(const LinkedList<itemType> &other)
{
	
}

template<class itemType>
LinkedList<itemType>::~LinkedList()
{
	DeleteAll();
	#ifdef H_DEBUG
	cout << "Bye bye cruel world..." << endl;
	#endif
}

template<class itemType>
void LinkedList<itemType>::Before(const apstring &string)
{
	itemType *old;
	old = head;
	head = new itemType;
	head->next = old;
	if(string == __FILL)
	{
		apstring temp;
		cout << "data: ";
		#ifndef LINUX
		cin.seekg(ios::end);
		#endif
		getline(cin, temp);
		head->data = temp;
	}
	else if(string == __NOFILL)
	{
		//do nothing
	}
	else
	{
		head->data = string;
	}
}

template<class itemType>
void LinkedList<itemType>::After(const apstring &string)
{
	apstring temp;
	if(head == 0)
	{
		head = new itemType;
		head->next = 0;
		if(string == __FILL)
		{
			cout << "data: ";
			#ifndef LINUX
			cin.seekg(ios::end);
			#endif
			getline(cin, temp);
			head->data = temp;
		}
		else if(string == __NOFILL)
		{
			//do nothing
		}
		else
		{
			head->data = string;
		}
	}
	else
	{
		itemType *old, *current;
		for(old=head;old->next;old=old->next){}
		current = new itemType;
		old->next = current;
		current->next = 0;
		if(string == __FILL)
		{
     		cout << "data: ";
     		#ifndef LINUX
			cin.seekg(ios::end);
			#endif
			getline(cin, temp);
			current->data = temp;
		}
		else if(string == __NOFILL)
		{
			//do nothing
		}
		else
		{
			current->data = string;
		}
	}
}

template<class itemType>
void LinkedList<itemType>::DeleteAll()
{
	#ifdef H_DEBUG
	cout << "Deleting..." << endl;
	#endif
	itemType *current, *temp;
	for(current=head; current;)
	{
		#ifdef H_DEBUG
		cout << current->data << endl;
		#endif
		temp = current;
		current = current->next;
		delete temp;
	}
	head = 0;
}

template<class itemType>
void LinkedList<itemType>::PrintAll()
{
	itemType *current;
	for(current=head; current;)
	{
		cout << current->data << endl;
		current = current->next;
	}
}

template<class itemType>
void LinkedList<itemType>::OrderedInsert(const apstring &string)
{
	apstring temp;
	if(string == __FILL)
	{
		cout << "data: ";
		#ifndef LINUX
		cin.seekg(ios::end);
		#endif
		getline(cin, temp);
	}
	if(head == 0)
	{
		head = new itemType;
		if(string == __FILL)
		{
			head->data = temp;
		}
		else if(string == __NOFILL)
		{
			//do nothing
		}
		else
		{
			head->data = string;
		}
		head->next = 0;
	}
	else
	{
		itemType *create, *current, *prev;
		create = new itemType;
		if(string == __FILL)
		{
			create->data = temp;
		}
		else if(string == __NOFILL)
		{
			//do nothing
		}
		else
		{
			current->data = string;
		}
		current = head;
		prev = head;
		while(current)
		{
			if(create->data > current->data)
			{
				prev = current;
				current = current->next;
			}
			else
			{
				break;
			}
		}
		create->next = current;
		if(current == head)
		{
			head = create;
		}
		else
		{
			prev->next = create;
		}
	}
}

template<class itemType>
apstring LinkedList<itemType>::PrintNode(int number)
{
	itemType *current = head;
	for(int q = 0; q < number; q++)
	{
		if(current->next)
		{
			current = current->next;
		}		
		else
		{
			#ifdef H_DEBUG
			cout << "Overflow, using tail..." << endl;
			#endif
			break;
		}
	}
	return current->data;
}

template<class itemType>
int LinkedList<itemType>::SetNode(int number, const apstring &string)
{
	itemType *current = head;
	for(int q = 0; q < number; q++)
	{
		if(current->next)
		{
			current = current->next;
		}		
		else
		{
			#ifdef H_DEBUG
			cout << "Overflow, breaking..." << endl;
			#endif
			return OVERFLOW;
		}
	}
	if(string == __FILL)
	{
		cout << "data: ";
		#ifndef LINUX
		cin.seekg(ios::end);
		#endif
		getline(cin, current->data);	
	}
	else if(string == __NOFILL)
	{
		//do nothing
	}
	else
	{
		current->data = string;
	}
	return OK;
}

itemType &LinkedList::GetHead()
{
	return head;
}

[-- Attachment #5: node.h --]
[-- Type: text/x-c++, Size: 118 bytes --]

#ifndef _NODE_H
#define _NODE_H

template<class test>
class NODE
{
	public:
	test data;
	NODE *next;
};

#else
#endif

[-- Attachment #6: song.cpp --]
[-- Type: text/x-c++, Size: 2400 bytes --]

//Chris Tracy
//The Twelve Days of Christmas
//using my linked list class to see just how useful it really is
//maybe with a bit of file i/o

#define LINUX

#include <iostream.h>
#include "apstring.h"
//#include "link.h"
#include "linkbak.h"

#include "apstring.cpp"

const int DAYS = 12;
const apstring FIRST = "On the ";
const apstring SECOND = " day of Christmas, my true love gave to me,";

void FillStuff(LinkedList<NODE<apstring> > &);

template<class temp>
void FillList(LinkedList<NODE<temp> > &);

void FillDays(LinkedList<NODE<apstring> > &);

void main()
{
	LinkedList<NODE<apstring> > stuff, days;
	//LinkedList<NODE<int> > counter;
	FillList(stuff);
	FillList(days);
	//FillList(counter);
	FillStuff(stuff);
	FillDays(days);

	for(int q = 0; q < DAYS; q++)
	{
		cout << FIRST << days.PrintNode(q) << SECOND << endl;
		for(int z=q; z >= 0; z--)
		{
			if(q > 0 && z == 0)
			{
				cout << "And a";
			}
			else if(z == 0)
			{
				cout << "A";
			}
      		cout << stuff.PrintNode(z) << endl;
		}
      	cout << endl;
	}

	cout << endl << endl;
	cout << "Merry Christmas...and happy hacking.  :-)" << endl;
}

void FillStuff(LinkedList<NODE<apstring> > &list)
{
	list.SetNode(0, " partridge in a pear tree.");
	list.SetNode(1, "Two turtle doves,");
	list.SetNode(2, "Three french hens,");
	list.SetNode(3, "Four calling birds,");
	list.SetNode(4, "FIVE GOLDEN RINGS,");
	list.SetNode(5, "Six geese a laying,");
	list.SetNode(6, "Seven swans a swimming,");
	list.SetNode(7, "Eight maids a milking,");
	list.SetNode(8, "Nine ladies dancing,");
	list.SetNode(9, "Ten lords a leaping,");
	list.SetNode(10, "Eleven pipers piping,");
	list.SetNode(11, "Twelve drummers drumming,");
}

template<class test>
void FillList(LinkedList<NODE<test> > &list)
{
	for(int q = 0; q < DAYS; q++)
	{
		#ifdef DEBUG
		static int count = 0;
		count++;
		cout << count << endl;
		#endif
		list.After(__NOFILL);
	}
}

void FillDays(LinkedList<NODE<apstring> > &list)
{
	list.SetNode(0, "first");
	list.SetNode(1, "second");
	list.SetNode(2, "third");
	list.SetNode(3, "fourth");
	list.SetNode(4, "fifth");
	list.SetNode(5, "sixth");
	list.SetNode(6, "seventh");
	list.SetNode(7, "eighth");
	list.SetNode(8, "ninth");
	list.SetNode(9, "tenth");
	list.SetNode(10, "eleventh");
	list.SetNode(11, "twelfth");
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-12-15 20:31 Tony Willis
  0 siblings, 0 replies; 387+ messages in thread
From: Tony Willis @ 1998-12-15 20:31 UTC (permalink / raw)
  To: egcs-bugs

OS = redhat 5.1

[jcmtdual 2:35pm] [aipsview]> c++ -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
[jcmtdual 2:35pm] [aipsview]> gmake AvFitsDataSet.o

Updating dependencies for AvFitsDataSet.cc

/usr/local/bin/c++ -D__cplusplus    -DTCL    -DGLISH -DPGPLOT -DUSE_UNAME -DAIPSPLUSPLUS -DTCL -DAIPS_LINUX -DAIPS_LITTLE_ENDIAN -DF2C  -I. -I/aips++/code/trial/apps/aipsview -I/virgo1/twillis/aips_devel/code/include -I/aips++/code/include -I/aips++/code/aips/glish/include -I/usr/local/include -I/usr/include -I/usr/local/include -I/usr/X11R6/include -I/aips++/code/aips -c -O2 -pipe -fno-for-scope -fno-implicit-templates -Wreturn-type -fguiding-decls -DNATIVE_EXCP -Wall --save-temps  -o AvFitsDataSet.o AvFitsDataSet.cc
c++: Warning: -pipe ignored since -save-temps specified
AvFitsDataSet.cc: In method `Boolean AvFitsDataSet::attach_(const char *)':
AvFitsDataSet.cc:1407: Internal compiler error.
AvFitsDataSet.cc:1407: Please submit a full bug report to `egcs-bugs@cygnus.com'.
AvFitsDataSet.cc:1407: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

A uuencoded compressed file with .ii file is appended
-- 
Tony Willis

Internet  :   Tony.Willis@hia.nrc.ca    obsolete: twillis@drao.nrc.ca
Snailnet  :   Dominion Radio Astrophysical Observatory
              P.O. Box 248, Penticton, BC, Canada V2A 6K3
BC Tel net:   (250) 493-2277    Faxnet    :   (250) 493-7767
voicemailnet: (250) 490-4343    Localnet  :   ext 343           
----------------------------------------------------
begin 644 gmake.log.gz
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
+E?\/^7^%RVO$!```
`
end


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-12-14 18:47 Peter Ludemann
  0 siblings, 0 replies; 387+ messages in thread
From: Peter Ludemann @ 1998-12-14 18:47 UTC (permalink / raw)
  To: egcs-bugs

gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
SunOS wistaria 5.5.1 Generic_103640-12 sun4u sparc SUNW,Ultra-1
g++ -Wall -c zzz.cc

And here's zzz.cc:

#include <string>
#include <map>

template < class Type = int, Type Init = 0 >
class InitializedNumber {

public:

  InitializedNumber(const Type& init = Init) : value(init) { }

  operator const Type& () const { return value; }

  operator Type& () { return value; }

private:

  Type value;
}

typedef std::map < std::string, InitializedNumber < unsigned int, 0 > > Counter;


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-12-11  9:57 Bruce Eckel
  0 siblings, 0 replies; 387+ messages in thread
From: Bruce Eckel @ 1998-12-11  9:57 UTC (permalink / raw)
  To: egcs-bugs

The following file gives me, for egcs-2.91.60 :
ForEach.cpp: In function `int main()':
ForEach.cpp:49: Internal compiler error 980715.
ForEach.cpp:49: Please submit a full bug report to `egcs-bugs@cygnus.com'.
ForEach.cpp:49: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details

//: C21:ForEach.cpp
// Use of STL for_each() algorithm
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class Counted {
  static int count;
  char * id;
public:
  Counted(char * ID) : id(ID) { count++; }
  ~Counted()

    cout << id << " count = " << --count << endl;
  }
};

int Counted::count = 0;

class CountedVector : public vector<Counted*> {
public:
  CountedVector(char* ID) {
    for(int i = 0; i < 5; i++)
      push_back(new Counted(ID));
  }
};

// Simple function
void Destroy(Counted* fp) { delete fp; }

// Template class w/ operator()()
template<class T>
class DestroyT {
public:
  void operator()(T x) { delete x; }
};

// Template function
template <class T>
void wipe(T* x) { delete x; }

int main() {
  CountedVector A("one");
  for_each(A.begin(), A.end(), Destroy);
  CountedVector B("two");
  for_each(B.begin(), B.end(),
    DestroyT<Counted*>());
  CountedVector C("three");
  for_each(C.begin(), C.end(), wipe<Counted*>);
  // Also compiles correctly:
  CountedVector D("four");
  for_each(D.begin(), D.end(), wipe);
} ///:~

=============================
Bruce Eckel    http://www.BruceEckel.com
Contains free electronic books: "Thinking in Java" & "Thinking in C++ 2e"




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error...
@ 1998-12-03 16:32 Steve Tate
  0 siblings, 0 replies; 387+ messages in thread
From: Steve Tate @ 1998-12-03 16:32 UTC (permalink / raw)
  To: egcs-bugs

I got the following error message trying to compile the KDE library
package.  Here's the full information on the versions of everything:

   Machine:  DEC Alpha running OSF/1 V3.2
   Compiler: egcs-2.91.57  (1.1b)
   Compiling:  kdelibs-1.0 standard distribution
               with QT library version 1.41

I can send any source that you want to see, but those are standard
packages, so you may even have them yourself.  Here's the error message:

=============

g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kfile -I/usr/local/qt/include -O2 -Wall -c -DPIC kpopmenu.cpp
/usr/local/qt/include/qtextstream.h: In function `class QTSManip setw(int)':
In file included from /usr/local/qt/include/qtstream.h:3,
                 from ../kdecore/kconfigdata.h:35,
                 from ../kdecore/kconfigbase.h:71,
                 from ../kdecore/kconfig.h:53,
                 from ../kdecore/kapp.h:173,
                 from kpopmenu.cpp:5:
/usr/local/qt/include/qtextstream.h:215: Internal compiler error 980331.
/usr/local/qt/include/qtextstream.h:215: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[2]: *** [kpopmenu.lo] Error 1
make[2]: Leaving directory `/usr/local/home/srt/download/kde/kdelibs-1.0/kdeui'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/home/srt/download/kde/kdelibs-1.0'
make: *** [all-recursive-am] Error 2

==============

For quick reference, in case you don't have those packages handy,
here's the source code that it choked on:

+ Q_EXPORT inline QTSManip setw( int w )
+ {
*         QTSMFI func = &QTextStream::width;
+         return QTSManip(func,w);
+ }

where the line marked with the * is line 215.  Of course, that doesn't
show the type definitions -- let me know if you need anything more.

Incidentally, I've gotten the same error message a couple of other
times.  Sometimes I can make it go away just by re-arranging the order
of some statements.  However, there's no way to re-arrange the code
above...

--

Steve Tate
srt@cs.unt.edu




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-11-30 20:51 ` Jeffrey A Law
@ 1998-12-01 10:49   ` Thomas Matelich
  0 siblings, 0 replies; 387+ messages in thread
From: Thomas Matelich @ 1998-12-01 10:49 UTC (permalink / raw)
  To: law; +Cc: egcs mailing list

Jeffrey A Law wrote:

>   In message <3663285B.83582F6@slip-stream.net>you write:
>   > Could someone point me to a way to debug this error?
>   >
>   > tom> g++ -v
>   > Reading specs from
>   > /opt/gnu/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.57/specs
>   > gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
>   >
>   > tom> make
>   >         g++  -DDEVELOPMENT_ONLY -Wall -W -Wno-return-type -Winline
>   > -Wcast-qual -frepo -finline-functions -D_NO_GLOBALS_ -D_HPUX_SOURCE
>   > -I/home/tom/local/eddy_dev/include -I/opt/gnu/include
>   > -I/opt/gnu/include/g++ -I/home/tom/local/eddy_dev/lib/utility_class_lib
>   > -L/opt/gnu/lib -c channels.cc
>   > ../../egcs/gcc/emit-rtl.c:2463: Internal compiler error in function
>   > add_insn_before
>   > *** Error exit code 1
> You need to first get the cpp output for this file.  The easiest way to do that
> is to add "-save-temps" to the command line usually used to build hat file.
>
> That will create a .i or .ii file which can be directly read by the compiler.
>
> Start up the compiler under the control of gdb (gdb cc1plus in this case)
>
> run it with the appropriate options (note -D -I and other cpp options are not
> necessary).  Debug as you would any other complex program.
>
> jeff

Is there a problem with using exception handling in the following format?

void func()
try
{
    //code that may throw exception
}
catch (exception& e)
{
    throw;
}

Because enclosing the try-catch block within another set of parentheses eliminated
my error.  One possible note of interest, this was in a template function.

--
Thomas O Matelich
Senior Programmer
Zetec, Inc.
tmatelich@zetec.com
tomsara@slip-stream.net





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-11-30 16:05 Thomas Matelich
@ 1998-11-30 20:51 ` Jeffrey A Law
  1998-12-01 10:49   ` Thomas Matelich
  0 siblings, 1 reply; 387+ messages in thread
From: Jeffrey A Law @ 1998-11-30 20:51 UTC (permalink / raw)
  To: Thomas Matelich; +Cc: egcs mailing list

  In message < 3663285B.83582F6@slip-stream.net >you write:
  > Could someone point me to a way to debug this error?
  > 
  > tom> g++ -v
  > Reading specs from
  > /opt/gnu/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.57/specs
  > gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
  > 
  > tom> make
  >         g++  -DDEVELOPMENT_ONLY -Wall -W -Wno-return-type -Winline
  > -Wcast-qual -frepo -finline-functions -D_NO_GLOBALS_ -D_HPUX_SOURCE
  > -I/home/tom/local/eddy_dev/include -I/opt/gnu/include
  > -I/opt/gnu/include/g++ -I/home/tom/local/eddy_dev/lib/utility_class_lib
  > -L/opt/gnu/lib -c channels.cc
  > ../../egcs/gcc/emit-rtl.c:2463: Internal compiler error in function
  > add_insn_before
  > *** Error exit code 1
You need to first get the cpp output for this file.  The easiest way to do that
is to add "-save-temps" to the command line usually used to build hat file.

That will create a .i or .ii file which can be directly read by the compiler.

Start up the compiler under the control of gdb (gdb cc1plus in this case)

run it with the appropriate options (note -D -I and other cpp options are not
necessary).  Debug as you would any other complex program.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-30 16:05 Thomas Matelich
  1998-11-30 20:51 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: Thomas Matelich @ 1998-11-30 16:05 UTC (permalink / raw)
  To: egcs mailing list; +Cc: tomsara

Could someone point me to a way to debug this error?

tom> g++ -v
Reading specs from
/opt/gnu/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

tom> make
        g++  -DDEVELOPMENT_ONLY -Wall -W -Wno-return-type -Winline
-Wcast-qual -frepo -finline-functions -D_NO_GLOBALS_ -D_HPUX_SOURCE
-I/home/tom/local/eddy_dev/include -I/opt/gnu/include
-I/opt/gnu/include/g++ -I/home/tom/local/eddy_dev/lib/utility_class_lib
-L/opt/gnu/lib -c channels.cc
../../egcs/gcc/emit-rtl.c:2463: Internal compiler error in function
add_insn_before
*** Error exit code 1

Stop.


--
Thomas O Matelich
Senior Programmer
Zetec, Inc.
tmatelich@zetec.com
tomsara@slip-stream.net





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-27 22:20 Tim Vanderhoek
  0 siblings, 0 replies; 387+ messages in thread
From: Tim Vanderhoek @ 1998-11-27 22:20 UTC (permalink / raw)
  To: egcs-bugs

sh-2.02$ eg++ junk.C
junk.C: In function `int x()':
junk.C:10: Internal compiler error.
junk.C:10: Please submit a full bug report to `egcs-bugs@cygnus.com'.
sh-2.02$ eg++ --version
egcs-2.92.07
sh-2.02$ uname -rs
FreeBSD 2.2.7-19980913-SNAP
sh-2.02$ cat junk.C
#include <map.h>

class cls {
	map<int,int> a;
	friend x();
};

x() {
	cls cls;
	cls.map = 1;
}

main() {}
sh-2.02$ exit


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-27 13:09 Scott Bigham
  0 siblings, 0 replies; 387+ messages in thread
From: Scott Bigham @ 1998-11-27 13:09 UTC (permalink / raw)
  To: egcs-bugs

I have encountered an internal compiler error in:

  Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.90.29/specs
  gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

Attached is a sample code fragment that triggers the error.  Note that the
error goes away if a template declaration for f() is added before the
template declaration of Struct; the Standard is not clear on whether it is
necessary to do this, so this may be a bug in my code rather than the
compiler.

Thank you.

						-sbigham
>From espie@quatramaran.ens.fr Fri Nov 27 16:41:00 1998
From: Marc Espie <espie@quatramaran.ens.fr>
To: schwab@issan.informatik.uni-dortmund.de
Cc: egcs-bugs@cygnus.com
Subject: Re: Results for egcs-2.92.23 19981122 (gcc2 ss-980609 experimental) testsuite on i386-unknown-openbsd2.4
Date: Fri, 27 Nov 1998 16:41:00 -0000
Message-id: <199811280041.BAA04479@quatramaran.ens.fr>
References: <199811251748.SAA00413@quatramaran.ens.fr> <vyz90gxxy76.fsf@issan.cs.uni-dortmund.de>
X-SW-Source: 1998-11/msg00776.html
Content-length: 1003

In article < vyz90gxxy76.fsf@issan.cs.uni-dortmund.de > you write:
>Marc Espie <espie@quatramaran.ens.fr> writes:

>|> I should add that I STILL can't give you any results for 
>|> m68k-unknown-openbsd2.4 as I am still running into the same wall:

>|> compilation of libgcc2 by xgcc for _bb ends up with an ICE
>|> in expmed.c: 2594: Internal compiler error in function choose_multiplier

>This is a bug in reload, it kills the REG_UNUSED notes, which cannot be
>recomputed accurately.  As a result the second stage compiler is
>miscompiled (more exactly the function div_and_round_double which is
>called by choose_multiplier).  Here is a patch:

some 7 hours of compilation later...

Somewhat better. It goes past the point where it crashed last time, and I get 
another ICE: in tinfo2.cc, tinfo.h, line #36.

I don't want to bitch, as you are doing what you can to help (and I appreciate
that), but it's one of those days where I feel like shutting the amiga 
in a closet and use only the laptop...


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-27  1:03 Bruce Eckel
  0 siblings, 0 replies; 387+ messages in thread
From: Bruce Eckel @ 1998-11-27  1:03 UTC (permalink / raw)
  To: egcs-bugs

This is an attempt to use a template-template, which caused an internal
compiler error with the latest snapshot.

//: C20:BasicSequenceOperations.cpp
// The operations available for all the
// basic sequence Containers.
#include <iostream>
#include <vector>
#include <deque>
#include <list>
using namespace std;

template<class Container>
void print(Container& c, char* s = "") {
  cout << s << ":" << endl;
  if(c.empty()) {
    cout << "(empty)" << endl;
    return;
  }
  typename Container::iterator it;
  for(it = c.begin(); it != c.end(); it++)
    cout << *it << " ";
  cout << endl;
  cout << "size() " << c.size()
    << " max_size() "<< c.max_size()
    << " front() " << c.front()
    << " back() " << c.back() << endl;
}

// Using a template-template
template<template<class> class Container>
void basicOps(char* s) {
  cout << "------- " << s << " -------" << endl;
  typedef Container<int> Ci;
  Ci c;
  print(c, "c after default constructor");
  Ci c2(10, 1); // 10 elements, values all 1
  print(c2, "c2 after constructor(10,1)");
  int ia[] = { 1, 3, 5, 7, 9 };
  const int iasz = sizeof(ia)/sizeof(*ia);
  // Initialize with begin & end iterators:
  Ci c3(ia, ia + iasz);
  print(c3, "c3 after constructor(iter,iter)");
  Ci c4(c2); // Copy-constructor
  print(c4, "c4 after copy-constructor(c2)");
  c = c2; // Assignment operator
  print(c, "c after operator=c2");
  c.assign(10, 2); // 10 elements, values all 2
  print(c, "c after assign(10, 2)");
  // Assign with begin & end iterators:
  c.assign(ia, ia + iasz);
  print(c, "c after assign(iter, iter)");
  cout << "c using reverse iterators:" << endl;
  typename Ci::reverse_iterator rit = c.rbegin();
  while(rit != c.rend())
    cout << *rit++ << " ";
  cout << endl;
  c.resize(4);
  print(c, "c after resize(4)");
  c.push_back(47);
  print(c, "c after push_back(47)");
  c.pop_back();
  print(c, "c after pop_back()");
  typename Ci::iterator it = c.begin();
  it++; it++;
  c.insert(it, 74);
  print(c, "c after insert(it, 74)");
  it = c.begin();
  it++;
  c.insert(it, 3, 96);
  print(c, "c after insert(it, 3, 96)");
  it = c.begin();
  it++;
  c.insert(it, c3.begin(), c3.end());
  print(c, "c after insert("
    "it, c3.begin(), c3.end())");
  it = c.begin();
  it++;
  c.erase(it);
  print(c, "c after erase(it)");
  typename Ci::iterator it2 = it = c.begin();
  it++;
  it2++; it2++; it2++; it2++; it2++;
  c.erase(it, it2);
  print(c, "c after erase(it, it2)");
  c.swap(c2);
  print(c, "c after swap(c2)");
  c.clear();
  print(c, "c after clear()");
}

int main() {
  basicOps<vector>("vector");
  basicOps<deque>("deque");
  basicOps<list>("list");
} ///:~

=============================
Bruce Eckel    http://www.BruceEckel.com
Contains free electronic books: "Thinking in Java" & "Thinking in C++ 2e"




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <3632F1C4.2F4EFA75@glue.ch>
@ 1998-11-25 18:37 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:37 UTC (permalink / raw)
  To: Thomas Maeder; +Cc: egcs-bugs

On Oct 25, 1998, Thomas Maeder <maeder@glue.ch> wrote:

> Geometry/Square/Occupy.cpp: In method `void
> ::Geometry::Square::Occupy::execute()':
> Geometry/Square/Occupy.cpp:35: Internal compiler error.
> Geometry/Square/Occupy.cpp:35: Please submit a full bug report to
> `egcs-bugs@cygnus.com'.

Thanks for your report.  This problem is fixed in the latest
development snapshot of egcs.  Unfortunately, the upcoming egcs 1.1.1
fails to compile your program :-(

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-11-20  7:55 Christophe Boyanique
@ 1998-11-25 18:37 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:37 UTC (permalink / raw)
  To: Christophe Boyanique; +Cc: egcs-bugs

On Nov 20, 1998, Christophe Boyanique <boyan@imac.u-paris2.fr> wrote:

> Of course the correct syntax is perfectly working :)
>   template<class T> T & vecteur<T>::operator[](int n)

So what was the code snippet that actually produced an error?  I could 
not reproduce any ICE with the code snippet you posted, using an
identical platform.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-11-23  6:54 internal " Matthias Zobel
@ 1998-11-25 18:37 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:37 UTC (permalink / raw)
  To: Matthias Zobel; +Cc: egcs-bugs

On Nov 20, 1998, Matthias Zobel <zobel@informatik.uni-erlangen.de> wrote:

> My egcs says 'Internal compiler error':

Thanks for your report.  Note that pgcc is a separate compiler based
on egcs, so you should probably have submitted a bug report to the
maintainers of pgcc.

Anyway, the problem shows up with egcs 1.1 and in the egcs 1.1.1
pre-release too, but not in the latest egcs snapshot, so it will
hopefully be fixed in the next major release of egcs.

Next time, please send us the complete error message from the
compiler; it helps us make sure we're really reproducing the problem
you've got, and not some other problem.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <Pine.LNX.3.96.981023100046.608A-200000@rover>
@ 1998-11-25 18:30 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:30 UTC (permalink / raw)
  To: Scott Bigham; +Cc: egcs-bugs

On Oct 23, 1998, Scott Bigham <dsb@cs.duke.edu> wrote:

> I have encountered an internal compiler error in:
>   Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.90.29/specs
>   gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

thanks for your report.  This bug is fixed in egcs 1.1

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-10-22  2:40 Volker Dobler
@ 1998-11-25 18:28 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:28 UTC (permalink / raw)
  To: Volker Dobler; +Cc: egcs-bugs

On Oct 22, 1998, Volker Dobler <volker@hugo.physik.uni-konstanz.de> wrote:

> template< class T > class A { public: friend int ice<>( int k=0 ); };

Thanks for your report, I installed your testcase in the testsuite.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-10-14 11:18 Paris Smaragdis
@ 1998-11-25 18:28 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-11-25 18:28 UTC (permalink / raw)
  To: Paris Smaragdis; +Cc: egcs-bugs

On Oct 14, 1998, Paris Smaragdis <paris@media.mit.edu> wrote:

> #include <vector>
> class foo{};
> main() { foo f; f.vector(); }

Thanks, I installed your testcase in the testsuite.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-11-23  6:54 Matthias Zobel
  1998-11-25 18:37 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Matthias Zobel @ 1998-11-23  6:54 UTC (permalink / raw)
  To: egcs-bugs; +Cc: zobel

[-- Attachment #1: Type: text/plain, Size: 2893 bytes --]

Hi,

My egcs says 'Internal compiler error':


1) egcs: gcc version pgcc-2.91.57 19980901 (egcs-1.1 release)
2) system: Linux 2.1.108 #2 SMP Wed Jul 22 16:09:53 MEST 1998 i686 unknown
3) options: 
    -fpcc-struct-return  \
    -O  \
    -DNEWVERSION   \
    -I/net/puma/ANIMALS/Calib/include  \
    -I/net/puma/MOBSY/VISION/include  \
    -I/net/puma/MOBSY/PLATTFORM/include  \
    -I/proj/puma/src/ANIMALS/include \
    -I/proj/puma/src/GENERAL/include \
    -I/proj/puma/src/GENERAL/src/Arrays/include \
    -I/proj/puma/src/HIPPOS/include \
    -I/proj/puma/src/NONHIPPOS/include \
    -I/proj/puma/src/NONHIPPOS/include/generic \
    -I/proj/puma/src/OPERATOR/include \
    -I/proj/puma/src/BRONTO/include \
    -I/proj/puma/src/RGB \
    -I/proj/puma/src/TYPES/include \
    -I/proj/puma/src/XDR/include \
    -I/proj/puma/src/ANIMALS/PTVdev/include  \
    -I/proj/puma/src/NONHIPPOS/include/generic   \
    -I/usr/fau/lib/include  \
    -I/proj/puma/src/NIHCL/nihcl-3.1.5/lib  \
    -I/proj/puma/src/NIHCL/nihcl-3.1.5/errfac \
    -I/proj/puma/src/NIHCL/nihcl-3.1.5/nihcl  \
    -I/proj/puma/src/NIHCL/nihcl-3.1.5  \
    -I/proj/puma/src/NIHCL-EXT  \
    -DNIHCL_3_1_5  \
    -DNIHCLVERS=30105   \
    -DFAU  \
    -DLINUX  \
    -DBSP_available  \
    -DEXTERNALNIHCLINIT  \
    -DWITH_XDR  \
    -DNESTED_TYPES  \
    -DHIPPOS_NIHCL   \
    -o /usr/fau/bin/puma/CalibVergence CalibVergence.C  \
    -L/usr/fau/lib/puma-nih-3.1.5  \
    -lCalib  \
    -lcmdline  \
    -lPatt  \
    -lh-segobj  \
    -lh-line  \
    -lh-image  \
    -lg-matrix  \
    -lh-point  \
    -lh-general  \
    -lh-image  \
    -lh-point  \
    -lg-matrix   \
    -lexdr   \
    -lgeneral  \
    -lrgbclnt  \
    -lnihcl  \
    -lm    \
    -lexdr   \
    -lgeneral  \
    -lrgbclnt   \
    /usr/fau/lib/puma-nih-3.1.5/libmobsylandmarks.a \
    -v \
    --save-temps

4) preprocessed output: see attachment

Please tell me what I can do to work around the compiler error.

Sincerely
Matthias 

---
=====================================================================
= Dipl.-Inf. Matthias Zobel                                         =
= ----------------------------------------------------------------- =
= Email: zobel@informatik.uni-erlangen.de                           =
=====================================================================
= Universitaet Erlangen-Nuernberg                                   =
= Lehrstuhl fuer Mustererkennung (Informatik 5)                     =
= Martensstrasse 3                                                  =
= 91058 Erlangen                                                    =
= Germany                                                           =
= Tel: +49 9131 85-27874 mobil: +49 +177 5441451                    =
= Fax: +49 9131 303811                                              =
=====================================================================

[-- Attachment #2: CalibVergence.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 87687 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-20 15:28 S. Troughton
  0 siblings, 0 replies; 387+ messages in thread
From: S. Troughton @ 1998-11-20 15:28 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3777 bytes --]

I was compiling an application for kde when I received the following message:

trognet:/usr/local/src/ksoundsys-0.0.30# make
Making app in ksoundsys
make[1]: Entering directory `/usr/local/src/ksoundsys-0.0.30/ksoundsys'
/usr/local/qt/bin/moc kgraphedit.h -o kgraphedit.moc
/usr/local/qt/bin/moc kssdialogs.h -o kssdialogs.moc
/usr/local/qt/bin/moc ksoundwidget.h -o ksoundwidget.moc
/usr/local/qt/bin/moc kscalebar.h -o kscalebar.moc
/usr/local/qt/bin/moc ktimebar.h -o ktimebar.moc
/usr/local/qt/bin/moc ksoundwidgetpro.h -o ksoundwidgetpro.moc
/usr/local/qt/bin/moc ksoundsys.h -o ksoundsys.moc
c++ -c -O2 -Wall -I/usr/X11R6/include -I/usr/local/qt/include -I/usr/local/kde/include -DHAVE_CONFIG_H -I.. KFileDialog.cpp
KFileDialog.cpp: In method `KFileDialog::KFileDialog(class QWidget * = 0, const char * = 0, bool = TRUE)':
KFileDialog.cpp:59: warning: unused variable `class QPixmap * homepm'
KFileDialog.cpp:49: warning: unused variable `class QPixmap * parentpm'
c++ -c -O2 -Wall -I/usr/X11R6/include -I/usr/local/qt/include -I/usr/local/kde/include -DHAVE_CONFIG_H -I.. kgraphedit.cpp
c++ -c -O2 -Wall -I/usr/X11R6/include -I/usr/local/qt/include -I/usr/local/kde/include -DHAVE_CONFIG_H -I.. afx.cpp
afx.cpp: In method `double CAFX::afxfn(double, class QArrayT<double>, int)':
afx.cpp:85: Internal compiler error.
afx.cpp:85: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [afx.o] Error 1


Please find attached the Makefile and configure output

If you need anything else just let me know

--
Stuart
MicroSoft - because god hates us
>From martin@mira.isdn.cs.tu-berlin.de Fri Nov 20 15:28:00 1998
From: Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
To: jarausch@IGPM.Rwth-Aachen.DE
Cc: egcs-bugs@cygnus.com
Subject: Re: EGCS-1.1.1.prelease-2  BUG (namespace ?)
Date: Fri, 20 Nov 1998 15:28:00 -0000
Message-id: <199811202306.AAA00468@mira.isdn.cs.tu-berlin.de>
References: <jarausch-981120102004.A049301@numa1>
X-SW-Source: 1998-11/msg00588.html
Content-length: 1764

> EGCS_BUG.C:5: Internal compiler error 382.
> EGCS_BUG.C:5: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Thanks for your bug report. Below is a patch.

> I cannot get this tiny program to compile (or link)  unless I move the
> #include <iomanip>   directive in front of the  namespace statement:

This is exactly what you need to do: You must not include headers of the
standard library while in a namespace, or you will get linker errors;
whether you have using-directives or not.

Hope this helps,
Martin

1998-11-20  Martin von Löwis  <loewis@informatik.hu-berlin.de>

	* decl2.c (validate_nonmember_using_decl): Allow using templates
	from the global namespace.

Index: decl2.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/decl2.c,v
retrieving revision 1.154
diff -c -p -r1.154 decl2.c
*** decl2.c	1998/11/03 17:37:49	1.154
--- decl2.c	1998/11/20 23:00:03
*************** validate_nonmember_using_decl (decl, sco
*** 4688,4694 ****
        *name = TREE_OPERAND (decl, 1);
      }
    else if (TREE_CODE (decl) == IDENTIFIER_NODE
!            || TREE_CODE (decl) == TYPE_DECL)
      {
        *scope = global_namespace;
        *name = decl;
--- 4711,4718 ----
        *name = TREE_OPERAND (decl, 1);
      }
    else if (TREE_CODE (decl) == IDENTIFIER_NODE
!            || TREE_CODE (decl) == TYPE_DECL
! 	   || TREE_CODE (decl) == TEMPLATE_DECL)
      {
        *scope = global_namespace;
        *name = decl;
--- /dev/null	Mon Jul 18 01:46:18 1994
+++ g++.ns/using10.C	Sat Nov 21 00:05:00 1998
@@ -0,0 +1,9 @@
+//Build don't link:
+//Based on a report by Helmut Jarausch <jarausch@IGPM.Rwth-Aachen.DE>
+template<class>
+class foo{};
+
+namespace ABC
+{
+  using ::foo;
+}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-20  7:55 Christophe Boyanique
  1998-11-25 18:37 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Christophe Boyanique @ 1998-11-20  7:55 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I've just found this *funny* error message during my C++ lesson:

~/prog/auzende/c++/tp4$ g++ tmplte2.cc
tmplte2.cc:25: Internal compiler error.
tmplte2.cc:25: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Here is the source code included.

Of course the correct syntax is perfectly working :)
  template<class T> T & vecteur<T>::operator[](int n)

The version is:

~/prog/auzende/c++/tp4$ g++ --version
egcs-2.90.27 980315 (egcs-1.0.2 release)
~/prog/auzende/c++/tp4$ uname -a
Linux 2.0.35 #1 Wed Oct 14 21:28:31 CEST 1998 i686 unknown (RedHat 5.1)

Regards, Christophe Boyanique.
>From carlo@runaway.xs4all.nl Fri Nov 20 08:39:00 1998
From: Carlo Wood <carlo@runaway.xs4all.nl>
To: egcs-bugs@cygnus.com
Subject: egcs-1.1b (possibly later) calls wrong copy constructor.
Date: Fri, 20 Nov 1998 08:39:00 -0000
Message-id: <199811201512.QAA13661@jolan.ppro>
X-SW-Source: 1998-11/msg00579.html
Content-length: 1734

Hi again,

I believe the following code snippet reveals a bug in egcs-1.1b (didn't test it
with a later version).

The problem:

A provided copy constructor, which is a template in itself, is ignored by the
compiler - and the compiler generated copy constructor is used instead.

I believe this to be wrong based mainly on the fact that this is how
class auto_ptr (versions I could find) are implemented.

~/c++/tests>g++ copycon.cc
~/c++/tests>a.out
Defining auto_ptr<B> x:
  Called auto_ptr(X*)
Defining auto_ptr<B> y(x):
Reached end of main()
  Called ~auto_ptr()
  Called ~auto_ptr()

As you can see, two "auto_ptr" objects are destructed, but only one
constructor that printed out that it was called was called.
My conclusion is that the wrong(?) copy constructor was called: A compiler
generated one.

The copycon.cc program:
==================================================================================
#include <iostream>

template<class X>
class auto_ptr {
  template<class Y> friend class auto_ptr;

public:
  explicit auto_ptr(X*) {
    cerr << "  Called auto_ptr(X*)" << endl;
  }

  // This should be called as copy constructor, right???
  // It is not called...
  template<class Y>
  auto_ptr(const auto_ptr<Y> &) {
    cerr << "  Called template<class Y> auto_ptr(const auto_ptr<Y> &)" << endl;
  }

  ~auto_ptr() {
    cerr << "  Called ~auto_ptr()" << endl;
  }
};

class B {
};

int main(void)
{
  B b;
  cerr << "Defining auto_ptr<B> x:" << endl;
  auto_ptr<B> x(&b);
  cerr << "Defining auto_ptr<B> y(x):" << endl;
  auto_ptr<B> y(x); 
  cerr << "Reached end of main()" << endl;
}
==================================================================================

-- 
 Carlo Wood  <carlo@runaway.xs4all.nl>


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-11-05 17:07 Craig Kaplan
@ 1998-11-07  0:34 ` Martin von Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin von Loewis @ 1998-11-07  0:34 UTC (permalink / raw)
  To: csk; +Cc: egcs-bugs

> Please let me know if this bug has already been addressed.  Oh, I have one
> clue, too: the bug seems to be related to the fact that the class 'string'
> hasn't been defined.  The internal error disappears if you change 'string'
> to something like 'int'.

Thanks for your bug report. This bug has been fixed in the development
branch; egcs now reports (correctly)

a.cc:5: type/value mismatch at argument 1 in template parameter list for `template <class _Key, class _Tp, class _Compare = struct less<_Key>, class _Alloc = class allocator<_T2>> map<_Key,_Tp,_Compare,_Alloc>'
a.cc:5:   expected a type, got `string'

This is due to the fact that string is not defined. It is easy to
correct your source code:

#include <string>

Hope this helps,
Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-05 17:07 Craig Kaplan
  1998-11-07  0:34 ` Martin von Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Craig Kaplan @ 1998-11-05 17:07 UTC (permalink / raw)
  To: egcs-bugs

EGCS is great!  Thanks for your good work!

And now, the bad news.  The following program generates an internal 
compiler error:

-------------------------------------------------------------------------------
#include <map>
 
template<class Arg>
class Error {
	typedef thingo<map<string,int>::iterator,int> iter;
};
-------------------------------------------------------------------------------

Here's some of the output from g++ --verbose:

/uns/egcs-1.1b/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.57/cc1plus /var/tmp/ccBDkk1p.ii -quiet -dumpbase test.cc -version -o /var/tmp/cc6Ydwq3.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
test.cpp:5: Internal compiler error.
test.cpp:5: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Please let me know if this bug has already been addressed.  Oh, I have one
clue, too: the bug seems to be related to the fact that the class 'string'
hasn't been defined.  The internal error disappears if you change 'string'
to something like 'int'.

Thanks again!

-- 
Craig.              http://www.cs.washington.edu/homes/csk/
Counterfactuals: what would the world be like without them?


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-11-02 11:27 Robert Ennals
  0 siblings, 0 replies; 387+ messages in thread
From: Robert Ennals @ 1998-11-02 11:27 UTC (permalink / raw)
  To: egcs-bugs

I have upgraded to the latest debian package version of egcs and am
still getting intermitant internal compiler errors, but now I have a
repeatable one.

Compiling the source code for klyx seems to always give an internal
compiler error.

g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/include/qt 
-I../images  -O2 -Wall -c DocumentLayoutDialog.C
In file included from /usr/include/kde/ktmainwindow.h:7,
                 from klyx.h:15,
                 from lyxscreen.h:16,
                 from lyxinset.h:19,
                 from lyxparagraph.h:15,
                 from undo.h:14,
                 from buffer.h:16,
                 from LyXView.h:17,
                 from DocumentLayoutDialog.C:20:
/usr/include/kde/ktoolbar.h:532: Internal compiler error.
/usr/include/kde/ktoolbar.h:532: Please submit a full bug report to
`egcs-bugs@cygnus.com'


-- 

Robert Ennals / Cambridge University / rje33@cam.ac.uk / ennals.acm.org
http://www.thor.cam.ac.uk/~rje33/


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
  1998-10-28  6:22 Reinhold Bader
@ 1998-10-31 14:18 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-10-31 14:18 UTC (permalink / raw)
  To: Reinhold Bader; +Cc: egcs-bugs

On Oct 28, 1998, Reinhold Bader <uh341au@brossp5.lehrstuhl-bross.physik.uni-muenchen.de> wrote:

> /opt/local/lib/qt/include/qtextstream.h:215: Internal compiler error
> 980331.
> /opt/local/lib/qt/include/qtextstream.h:215: Please submit a full bug
> report to `egcs-bugs@cygnus.com'.

http://egcs.cygnus.com/faq.html#bugreport

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:oliva@gnu.org mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-10-30 15:11 Dirk Zoller
  0 siblings, 0 replies; 387+ messages in thread
From: Dirk Zoller @ 1998-10-30 15:11 UTC (permalink / raw)
  To: egcs-bugs

duz@rtsdec:/tmp$ uname -a
OSF1 rtsdec V4.0 564 alpha
duz@rtsdec:/tmp$ gcc --version
egcs-2.92.16
duz@rtsdec:/tmp$ uudecode < localmanager.ii.bz2.uu 
duz@rtsdec:/tmp$ bzip2 -d localmanager.ii.bz2
duz@rtsdec:/tmp$ gcc -S localmanager.ii
localmanager.ii: In method `int PrimaryLocalManager::retrieve(const void *, int)':
localmanager.ii:15480: warning: anonymous union with no members
expr.c:5622: Internal compiler error in function expand_expr
duz@rtsdec:/tmp$ 


begin 660 localmanager.ii.bz2
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
,'_B[DBG"A(<2*FT8
`
end


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal Compiler Error
       [not found] <Pine.LNX.3.96.981028151726.2890A-100000.cygnus.egcs.bugs@brossp5.lehrstuhl-bross.physik.uni-muenchen.de>
@ 1998-10-28 18:51 ` Jason Merrill
  0 siblings, 0 replies; 387+ messages in thread
From: Jason Merrill @ 1998-10-28 18:51 UTC (permalink / raw)
  To: Reinhold Bader, egcs-bugs

>>>>> Reinhold Bader <uh341au@brossp5.lehrstuhl-bross.physik.uni-muenchen.de> writes:

 >  When compiling the package klibs-1.0, using qt-1.41, I get

PLEASE send us a complete testcase so we can track this bug down.  People
keep reporting it, but I don't have KDE handy.

 > g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kfile
 > -I/opt/local/lib/qt/include -O2 -Wall -c -DPIC kpopmenu.cpp

Just add -save-temps to this command line and mail me kpopmenu.ii.
Or see

 http://egcs.cygnus.com/faq.html#bugreport

for more information.  Thanks.

Jason


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1998-10-28  6:22 Reinhold Bader
  1998-10-31 14:18 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Reinhold Bader @ 1998-10-28  6:22 UTC (permalink / raw)
  To: egcs-bugs

 Trying to compile KDE on an DIGITAL Alphastation with 
 DIGITAL UNIX 4.0 using egcs (1.1b):

# g++ --version
egcs-2.91.57

 When compiling the package klibs-1.0, using qt-1.41, I get

g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kfile
-I/opt/local/lib/qt/include -O2 -Wall -c -DPIC kpopmenu.cpp
/opt/local/lib/qt/include/qtextstream.h: In function `class QTSManip
setw(int)':
In file included from /opt/local/lib/qt/include/qtstream.h:3,
                 from ../kdecore/kconfigdata.h:35,
                 from ../kdecore/kconfigbase.h:71,
                 from ../kdecore/kconfig.h:53,
                 from ../kdecore/kapp.h:173,
                 from kpopmenu.cpp:5:
/opt/local/lib/qt/include/qtextstream.h:215: Internal compiler error
980331.
/opt/local/lib/qt/include/qtextstream.h:215: Please submit a full bug
report to `egcs-bugs@cygnus.com'.



 Dr. Reinhold Bader, 
 
 Sektion Physik der LMU Muenchen, LS Bross | Tel. +4989 2394 4529
 Theresienstr. 37/IV, 80333 Muenchen       | email uh341au@mail.lrz-muenchen.de



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-10-26 22:44 Dave Steffen
  0 siblings, 0 replies; 387+ messages in thread
From: Dave Steffen @ 1998-10-26 22:44 UTC (permalink / raw)
  To: egcs-bugs

Hi Folks,

   EGCS 1.1b (gcc version egcs-2.91.57 19980901 (egcs-1.1 release))
   generates an internal compiler error when confronted with the
   following (incorrect code):


#include <set.h>
#include <map.h>

//@@ this can probably be made more efficient.
template <class K, class T>
map<K,set<T> > Assign_Union (map<K, set<T> >& A, 
			     const map<K, set<T> >& B)
{
  set<Key> keys = Keys(A); // !!!BOOM!!! 
                           // of course, that was supposed to 
			   // be set<K> keys = ....
}

int main()
{
  cout << "Hi There" << endl;
}





   Compiling that generates the following output:

helicon : c++ -c check.C
check.C: In function `class map<K,set<T,less<T>,__default_alloc_template<true,0
> >,less<T>,__default_alloc_template<true,0> > Assign_Union(class 
map<K,set<T,less<T>,__default_alloc_template<true,0> >,less<T>
,__default_alloc_template<true,0> > &, const class map<K,set<T,less<T>
,__default_alloc_template<true,0> >,less<T>,__default_alloc_template<true,0> > 
&)':
check.C:8: Internal compiler error.
check.C:8: Please submit a full bug report to `egcs-bugs@cygnus.com'.


Thanks for the compiler!

--------------------------------------------------------------------------
Dave Steffen                      Wave after wave will flow with the tide
Dept. of Physics                    And bury the world as it does
Colorado State University         Tide after tide will flow and recede
steffend@lamar.colostate.edu        Leaving life to go on as it was...
							- Peart / RUSH
"The reason that our people suffer in this way.... 
is that our ancestors failed to rule wisely".   -General Choi, Hong Hi










^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-10-22  2:40 Volker Dobler
  1998-11-25 18:28 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Volker Dobler @ 1998-10-22  2:40 UTC (permalink / raw)
  To: egcs-bugs

The following friend declaration in class A produces an ``internal 
compilor error'' when compiled with `g++ main.cc'.
I tryed it with release 1.1 and the 19981019 shnapshot of egcs.
The error occours only when class A is a template, the friend
declaration declares a template function and k has a default argument.


//  begin of main.cc
template< class T >
class A
{
public:
  friend int ice<>( int k=0 );   //  internal compiler error
};


int main()
{
  return 0;
}
// end of main.cc


Output of `config.guess'  :  i586-pc-linux-gnulibc1
Output of `g++ --version' :  egcs-2.92.16
Output of `g++  main.cc'  :
main.cc:13: Internal compiler error.
main.cc:13: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Is this a known bug?
As I'm not on the mailing list please include me in the CC.
Thanks a lot.

Volker Dobler

--
Volker Dobler, Universitaet Konstanz, Fach M676, 78457 Konstanz
Tel.: ++49 7531 88-3856,  Email: volker.dobler@uni-konstanz.de



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-10-22  1:19 Jean-Christophe Filliatre
  0 siblings, 0 replies; 387+ messages in thread
From: Jean-Christophe Filliatre @ 1998-10-22  1:19 UTC (permalink / raw)
  To: egcs-bugs

Hello,

While compiling the sources of the game Maelstrom (from
ftp://ftp.devolution.com/pub/maelstrom/Maelstrom-1.4.3-L2.0.6-src.tar.gz )
which the egcs g++ compiler, version 2.90.27 :

======================================================================
% g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
======================================================================

on a Linux Red Hat 5.1 box, g++ belonging to the RPM package :

======================================================================
% rpm -qf `which g++`
egcs-c++-1.0.2-8
======================================================================

I got the following error :

======================================================================
...
make.cpp: In function `void MakeMultiplier()':
make.cpp:94: Internal compiler error.
make.cpp:94: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [make.o] Error 1
make[1]: Leaving directory `/home/jcf/src/Maelstrom/netlogic'
======================================================================

To get this result, just type

    % make config

and just accept the default values, then

    % make


(I looked for an update of the RPM package on an official Red Hat
mirror, but I didn't find anyone.)

I hope you have all the necessary informations. Please ask me if I
forgot anything.

Best regards,
-- 
Jean-Christophe FILLIATRE
  mailto:Jean-Christophe.Filliatre@lri.fr
  http://www.lri.fr/~filliatr


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-10-14 11:18 Paris Smaragdis
  1998-11-25 18:28 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Paris Smaragdis @ 1998-10-14 11:18 UTC (permalink / raw)
  To: egcs-bugs

With the following source I get an internal error.  If I take out the
#include <vector> line it compiles with a proper error.

That's with egcs-2.91.57 19980901

Paris

----------------------

#include <vector>

class foo{};

main()
{
        foo f;
        f.vector();
}




^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-10-14 10:55 Ove Svensson
  0 siblings, 0 replies; 387+ messages in thread
From: Ove Svensson @ 1998-10-14 10:55 UTC (permalink / raw)
  To: egcs-bugs

Hi,

When I try to compiling ACE-4.5, I receive an internal compiler-error.
I get this error when I compile with gcc version egcs-2.91.57 19980901 
(egcs-1.1 release), but not when I compile with gcc version 2.7.2.1

The error message looks like this:
File_Parser.cpp: In method `enum FP::Return_Type
File_Parser<Consumer_Config_Info>::getint<Consumer_Config_Info>(ACE_INT32
&)':
Config_Files.cpp:24:   instantiated from here
File_Parser.cpp:44: Internal compiler error.
File_Parser.cpp:44: Please submit a full bug report to
`egcs-bugs@cygnus.com'.

Included in this mail are some snippets from the code. Hopefully that
will be enough for you to trace the bug.

I hope the information will be enough, if not, I'll be happy to give you
more.

/ove




// --------------- snippet from Config_Files.cpp
------------------------------
typedef FP::Return_Type FP_RETURN_TYPE;
FP_RETURN_TYPE
Consumer_Config_File_Parser::read_entry (Consumer_Config_Info &entry,
                                         int &line_number)
{
  FP_RETURN_TYPE result;
  line_number++;
  while ((result = this->getint (entry.connection_id_)) != FP::SUCCESS) 
// <---- this is line 24
    if (result == FP::EOFILE)
      return FP::EOFILE;
    else if (result == FP::EOLINE
             || result == FP::COMMENT)
      line_number++;
  result = this->getint (entry.type_);
  if (result != FP::SUCCESS)
    return result;
  entry.total_consumers_ = 0;
  while ((result = this->getint
          (entry.consumers_[entry.total_consumers_])) == FP::SUCCESS)
    ++entry.total_consumers_; 
  if (result == FP::EOLINE || result == FP::EOFILE)
    return FP::SUCCESS;
  else
    return result;
}


// --------------- snippet from File_Parser.cpp
------------------------------------
template <class ENTRY> FP_RETURN_TYPE
File_Parser<ENTRY>::getint (ACE_INT32 &value)
{
  char buf[BUFSIZ];
  FP_RETURN_TYPE read_result = this->readword (buf);   // <------- This
is line 44
  if (read_result == FP::SUCCESS)
    {
      if (buf[0] == '*')
        return FP::DEFAULT;
      else
        {
          char *ptr;
          value = ACE_OS::strtol (buf, &ptr, 10);
          if (value == 0 && ptr == buf)
            return FP::PARSE_ERROR;
          else
            return FP::SUCCESS;
        }
    }
  else
    return read_result;
}



// ----------------- snippet from File_Parser.h
----------------------------
class FP 
{
public:
  enum Return_Type 
  { 
    EOLINE,
    EOFILE,
    SUCCESS, 
    COMMENT, 
    DEFAULT,
    PARSE_ERROR
  };
};

template <class ENTRY>
class File_Parser
{
public:
  int open (const char filename[]);
  int close (void);
  virtual FP::Return_Type read_entry (ENTRY &entry,
                                      int &line_number) = 0;
protected:
  FP::Return_Type getword (char buf[]);
  FP::Return_Type getint (ACE_INT32 &value);
  FP::Return_Type readword (char buf[]);
  int delimiter (char ch);
  int comments (char ch);
  int skipline (void);
  FILE *infile_;
};



// --------------------- snippet from Config_Files.h -----------------
class Consumer_Config_Info
{
public:
  ACE_INT32 connection_id_;
  ACE_INT32 type_;
  ACE_INT32 consumers_[MAX_CONSUMERS];
  ACE_INT32 total_consumers_;
};  

class Consumer_Config_File_Parser : public
File_Parser<Consumer_Config_Info>
{
public:
  virtual FP::Return_Type read_entry (Consumer_Config_Info &entry,
                                      int &line_number);
};


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1998-10-13 17:14 Robert Ennals
  0 siblings, 0 replies; 387+ messages in thread
From: Robert Ennals @ 1998-10-13 17:14 UTC (permalink / raw)
  To: egcs-bugs

I have just been presented with the following output:


bash-2.01$ make
g++ -c  parsemain.c
parsemain.c: In method `struct
basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
>::Rep * basic_string<char,string_char_traits<char>,__default_alloc_template<true,0> >::rep() const':
parsemain.c:162: Internal compiler error.
parsemain.c:162: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [parsemain.o] Error 1   

g++ tells me it is egcs-2.90.29 980515 (egcs-1.0.3 release)

This is running under Linux.

Unfortunately the error does not appear to be repeatable.

Parsemain.c is attached in case that is useful. 
The only slightly unusual thing about it is that it is a C++ file with a
c filename (it used to be a C file and got changed without my having
bothered to change the filename yet).

It is part of an early version of a compiler for a weird little language
of mine. It currently tranlates to C++ and uses g++ as a back end.


-- 

Robert Ennals / Cambridge University / rje33@cam.ac.uk / ennals.acm.org
http://www.thor.cam.ac.uk/~rje33/

#include <string>
#include <list>

#include "parse_structs.h"
#include "oval.tab.h"
#include "stdio.h"
#include "stdlib.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "unistd.h"


/*
 * -- Prototypes --
 */

void displaybanner();
void displayusage();
void yyerror(char* s);
void typecheck(ps_mod* in);
void generatecode(ps_mod* in);

/*
 * -- Externs --	
 */

extern int yyin;
extern int yyparse();
extern int oval_line_number;
extern int yydebug;

/*
 * -- Exported bits --
 */ 

ps_mod* module;



/*
 *	-- main --
 *
 * Main entry point for the parser.  Currently this is just used to do
 * parser tests. No type checking or code generation is done at the
 * moment.
 *
 */

void main(int argc, char** argv) 
{ 
  FILE* fd;

  displaybanner();

#ifdef DEBUG
  yydebug=1;
#endif

  if(argc != 2)
	{
	  displayusage();
	  exit(-1);
	}

  printf("Parsing file: %s\n",argv[1]);

  fd = fopen(argv[1], "r");
  if(fd == NULL)
	{
	  printf("FATAL ERROR: Could not open input file\n");
	  exit(-1);
	}

  yyin = (int)fd;

  int i = isatty(fileno(fd));

  int res = yyparse();
  
  if(res == 1)
	{
	  printf("Compilation failed. See error messages above for more information\n");
	  exit(-1);
	}
 
  printf("Parsing was successful\n");

   fclose(fd);

   printf("Type checking\n");

   typecheck(yylval.mod);

   printf("Type checking was successful\n - compiling with type checking disabled\n");

   printf("Generating code\n");

   generatecode(module);

   printf("Code generated successfully\n");

}

/*
 * -- typecheck --
 *
 * Typechecks the code and also works out a suitable set of offsets for members such as
 * to make offsets as low as possible while avoiding clashes if something needs to implement
 * several members with the same offset..
 */

void typecheck(ps_mod* in)
{
  printf("Type checking is not yet implemented\n");

  // DRAGONS: Not yet written
}

void generatecode(ps_mod* in)
{
  CodeOutput out;

  in->generatecode(&out);

  printf("Dumping code to stdout\n");


  FILE* body = fopen("out.cpp","rw");
  FILE* head = fopen("out.h","rw");

  out.headerout(stdout);
  out.bodyout(stdout);

  fclose(body);
  fclose(head);
}

void displaybanner()
{
  printf("-- Ovalcc 0.1 alpha -- \n(c)1998 Robert Ennals \n");
  printf("Experimental compiler for the Oval language \n");
  printf("Note that this is an incomplete implementation of the Oval language \n");
  printf("\n");
}

void displayusage()
{ 
  printf("USAGE: oval <file>\n");
  printf("Compiles an oval source file into C.\n");
  printf("This code can then be compiled with a C compiler to produce\n");
  printf("machine executable code.\n");
}

void yyerror(char* s)
{
  printf("error near line: %d\n",oval_line_number);
  printf("%s\n",s);
}



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-10-12  8:49 Internal compiler error nasrudin
@ 1998-10-13  0:17 ` David S. Miller
  0 siblings, 0 replies; 387+ messages in thread
From: David S. Miller @ 1998-10-13  0:17 UTC (permalink / raw)
  To: nasrudin; +Cc: egcs-bugs

This is a kernel bug, please report it to the sparclinux lists, not
here as it is not an egcs bug.

Later,
David S. Miller
davem@dm.cobaltmicro.com


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-10-12  8:49 nasrudin
  1998-10-13  0:17 ` David S. Miller
  0 siblings, 1 reply; 387+ messages in thread
From: nasrudin @ 1998-10-12  8:49 UTC (permalink / raw)
  To: egcs-bugs

Oh Yes ,,,, I got this nice message a couple times ...

I am Running RedHat 5.1 2.0.35-4 on SparcStation 4 with 32M ram


<1>Unable to handle kernel paging request at virtual address f09a5000
tsk->mm->context = 00000043
tsk->mm->pgd = f02b2000
              \|/ ____ \|/
              "@'/ ,. \`@"
              /_| \__/ |_\
                 \__U_/
cc1plus(9324): Oops
PSR: 044000c2 PC: f001c42c NPC: f001c430 Y: 00000000
g0: 00000000 g1: efff6000 g2: 01e29608 g3: ffffffff
g4: 0023c000 g5: 00246400 g6: f09a5018 g7: 00000001
o0: f09a5258 o1: effff000 o2: 00000040 o3: f181c958
o4: f181c958 o5: 00246000 sp: f0307f08 ret_pc: f001c3e0
l0: effff000 l1: 00000000 l2: f09a5230 l3: 00000020
l4: 00000040 l5: 00000000 l6: 00000000 l7: 500d4050
i0: f0307fb0 i1: 00000001 i2: 00000002 i3: 02b35000
i4: efff6000 i5: 0025c740 i6: f0307f70 i7: f0015238
Instruction DUMP:?

================================================
make output
================================================

egcs-c++-1.0.2-10
egcs-1.0.2-10
You have new mail in /var/spool/mail/root
[root@wwwcimx mico]# gmake

for i in admin include; do gmake -C $i adm || exit 1; done
gmake[1]: Entering directory `/usr/src/mico/admin'
gmake[1]: Nothing to be done for `adm'.
gmake[1]: Leaving directory `/usr/src/mico/admin'
gmake[1]: Entering directory `/usr/src/mico/include'
gmake[1]: Nothing to be done for `adm'.
gmake[1]: Leaving directory `/usr/src/mico/include'
for i in orb ir imr idl auxdir coss; do gmake -C $i lib || exit 1; done
gmake[1]: Entering directory `/usr/src/mico/orb'
c++  -I../include -O   -fno-exceptions -I/usr/local/include  -c static.cc
-o static.o
c++  -I../include -O   -fno-exceptions -I/usr/local/include  -c current.cc
-o current.o
c++  -I../include -O   -fno-exceptions -I/usr/local/include  -c policy.cc
-o policy.o
c++  -I../include -O   -fno-exceptions -I/usr/local/include  -c
policy_impl.cc -o policy_impl.o
c++  -I../include -O   -fno-exceptions -I/usr/local/include -fexceptions
-O0 -c poa.cc -o poa.o
c++  -I../include -O   -fno-exceptions -I/usr/local/include -fexceptions
-O0 -c poa_impl.cc -o poa_impl.o
c++: Internal compiler error: program cc1plus got fatal signal 9
gmake[1]: *** [poa_impl.o] Error 1
gmake[1]: Leaving directory `/usr/src/mico/orb'
gmake: *** [system] Error 1




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-10-06  2:11 Christoph Jaeschke
@ 1998-10-06  9:25 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-10-06  9:25 UTC (permalink / raw)
  To: Christoph Jaeschke; +Cc: egcs-bugs

Christoph Jaeschke <jaeschke@item.uni-bremen.de> writes:

> X::~X (int vorbidden) {}

> destr-core.cc:7: Internal compiler error.

Yup, known problem.  The latest snapshot says:

t.cc:6: destructors may not have parameters

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:oliva@gnu.org mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-10-06  2:11 Christoph Jaeschke
  1998-10-06  9:25 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Christoph Jaeschke @ 1998-10-06  2:11 UTC (permalink / raw)
  To: egcs-bugs

Hello,

using:

Reading specs from
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

while compiling:

class X {
public:
  ~X ();
};

X::~X (int vorbidden) {
}

chrashes:

destr-core.cc: In method `X::~X()':
destr-core.cc:7: Internal compiler error.
destr-core.cc:7: Please submit a full bug report to
`egcs-bugs@cygnus.com'.

what I have done now :-).

Regards
	Christoph

-- 

****************************:)*********************************
*                                                             *
* Dipl.-Ing. Christoph Jaeschke                               *
* University of Bremen, FB1 - Department of Microelectronics  *
* Phone : +49 421 218-4079     Fax : +49 421 218-4434         *
* email: jaeschke@item.uni-bremen.de                          *
*                                                             *
****************************:)*********************************


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1998-09-28  5:55 Robert Sander
@ 1998-09-28 17:10 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-09-28 17:10 UTC (permalink / raw)
  To: Robert Sander; +Cc: egcs-bugs

> nurbsS.cc:3191: Internal compiler error.
> nurbsS.cc:3191: Please submit a full bug report to `egcs-bugs@cygnus.com'.

> I am using egcs-2.90.29 980515 (egcs-1.0.3 release) (included in the
> debian 2.0 distribution) and the error is reproducable.

> Maybe the compiler is out of date, should I use a newer version?

I believe this is fixed in egcs 1.1, but I can't promise.  This bug
was reported several times; perhaps you can find out more from the
archives.  Anyway, the code you have submitted does not allow us to
try to reproduce the problem, please take a look at
http://egcs.cygnus.com/faq.html#bugreport

Thanks for your report.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-09-28  5:55 Robert Sander
  1998-09-28 17:10 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Robert Sander @ 1998-09-28  5:55 UTC (permalink / raw)
  To: egcs-bugs

Hello!

While compiling Mindseye 0.5.26 < http://mindseye.luna.net/ > I got this for
the attached source code:

c++ -c -g -O2 -fno-implicit-templates  -I/usr/local/include -I../../matrix/include  -I/usr/local/include -I../include nurbsS.cc
nurbsS.cc: In method `int PlNurbsSurface::writePOVRAY(const char *, const class Color & = Color(250, 250, 250), const class Point3D & = Point3D(0x000000000000000000000000, 0x00000000000000000080ff3f, 0x000000000000000000000000), const class Point3D & = Point3D(0x000000000000000000000000, 0x000000000000000000000000, 0x00000000000000000080ff3f), int = 1, double = 0x000000d8a3703d0ad7a3f83f, int = 8, int = 8) const':
nurbsS.cc:3191: Internal compiler error.
nurbsS.cc:3191: Please submit a full bug report to `egcs-bugs@cygnus.com'.

I am using egcs-2.90.29 980515 (egcs-1.0.3 release) (included in the
debian 2.0 distribution) and the error is reproducable.

Maybe the compiler is out of date, should I use a newer version?

Robert Sander

   eMail gurubert@cs.tu-berlin.de
   @Home http://home.pages.de/~gurubert
>From snowball3@usa.net Mon Sep 28 05:55:00 1998
From: "Mark E." <snowball3@usa.net>
To: law@cygnus.com, egcs-bugs@cygnus.com
Subject: Re: Broken web link? 
Date: Mon, 28 Sep 1998 05:55:00 -0000
Message-id: <199809281255.MAA84242@out1.ibm.net>
References: <360AA78A.F9F83A41@srv.net> <23568.906976643@hurl.cygnus.com>
X-SW-Source: 1998-09/msg00895.html
Content-length: 721

> 
>   In message < 360AA78A.F9F83A41@srv.net >you write:
>   > On the news page  egcs project news and announcements the link to the
>   > 'c4x port' (September 18, 1998) seems to be broken. It only returns ad
>   page > consisting of a couple of boxes seperated by a '<' sign with
>   NetScape.
> Seems to be working fine for me.  
> 

It doesn't work for me either. The problem is the Windows 
versions of Netscape and IE I've tried don't recognize the "x-gzip" 
content encoding used by cvsweb (the announcement uses a link 
to a file stored on cvsweb), making cvsweb inaccessible to me 
and many others whose browsers don't support "x-gzip".

Mark


-- 
Mark E. snowball3@usa.net
http://members.xoom.com/snowball3/


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-09-18 20:03 T. Koch
@ 1998-09-19 23:51 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-09-19 23:51 UTC (permalink / raw)
  To: koch; +Cc: egcs-bugs

T Koch <bzfkocht@zib.de> writes:

>  /usr/lib/gcc-lib/alpha-redhat-linux/egcs-2.90.27/cc1plus spxparmultpr.ii -quiet -dumpbase spxparmultpr.cc -version -o spxparmultpr.s
> GNU C++ version egcs-2.90.27 980315 (egcs-1.0.2 release) (alpha-redhat-linux) compiled by GNU C version egcs-2.90.27 980315 (egcs-1.0.2 release).
> sorter.hh: In function `void sort(T *, int)':
> In file included from spxparmultpr.cc:56:
> sorter.hh:126: Internal compiler error.
> sorter.hh:126: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Thanks for your bug report.  This problem is fixed in egcs 1.1

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-09-18 20:03 T. Koch
  1998-09-19 23:51 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: T. Koch @ 1998-09-18 20:03 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1746 bytes --]

Dear Developers,

when I tried to compile this peace of code I got an internal
compiler error. The program had compiled ok with gcc 2.7

I get the same error when trying to compile on a SPARC with g++ 2.8.1.

Commandline was: 

egcs -v --save-temps -DTCL_MAIN -c -o spxparmultpr.o spxparmultpr.cc

Output was:

Reading specs from /usr/lib/gcc-lib/alpha-redhat-linux/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
 /usr/lib/gcc-lib/alpha-redhat-linux/egcs-2.90.27/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -Dlinux -Dunix -D__ELF__ -D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -D__linux__ -D__unix__ -D__ELF__ -D__linux -D__unix -Asystem(linux) -Acpu(alpha) -Amachine(alpha) -D__EXCEPTIONS -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus -DTCL_MAIN spxparmultpr.cc spxparmultpr.ii
GNU CPP version egcs-2.90.27 980315 (egcs-1.0.2 release) (Alpha Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/alpha-redhat-linux/include
 /usr/lib/gcc-lib/alpha-redhat-linux/egcs-2.90.27/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/alpha-redhat-linux/egcs-2.90.27/cc1plus spxparmultpr.ii -quiet -dumpbase spxparmultpr.cc -version -o spxparmultpr.s
GNU C++ version egcs-2.90.27 980315 (egcs-1.0.2 release) (alpha-redhat-linux) compiled by GNU C version egcs-2.90.27 980315 (egcs-1.0.2 release).
sorter.hh: In function `void sort(T *, int)':
In file included from spxparmultpr.cc:56:
sorter.hh:126: Internal compiler error.
sorter.hh:126: Please submit a full bug report to `egcs-bugs@cygnus.com'.

[-- Attachment #2: spxparmultpr.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 35586 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-09-17 21:56 Lee A Shombert
  0 siblings, 0 replies; 387+ messages in thread
From: Lee A Shombert @ 1998-09-17 21:56 UTC (permalink / raw)
  To: egcs-bugs

I am reporting this 'bug' to you, as requested by the compiler.  Note that I
have found perfectly adequate work-arounds.  The source system is Redhat
5.1.  The compiler version is:

----------------------------------------------------------------------------
$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
----------------------------------------------------------------------------

The compile command was:

----------------------------------------------------------------------------
g++     line.cc   -o line
line.cc:64: Internal compiler error.
line.cc:64: Please submit a full bug report to `egcs-bugs@cygnus.com'.
----------------------------------------------------------------------------

The offending source is attached.  Feel free to contact me if I can help.
                                                  Lee Shombert
/**
 * File: line.cc
 *
 * Author: 
 **/
#include <iostream>
#include <string>
#include <math.h>
#include <stdio.h>

/**
 * A point has just an x and y
 **/
class Point {
public:

  /**
   * Construct a point from two coordinates
   **/
  Point(double xCoord = 0, double yCoord = 0) {
    x = xCoord;
    y = yCoord;
  }


  /**
   * Return the midpoint
   **/
  Point midpoint(Point p) {
    return Point((x - p.x) / 2 + p.x,
                 (y - p.y) / 2 + p.y);
  }
   

  /**
   * Return the sum of two points
   **/
  Point operator+(const Point& a) {
    return Point(x + a.x, y + a.y);
  }

  /**
   * Return the point as a gnuplot string
   **/
  string toString() {
    char temp[32];
    sprintf(temp, "%lf %lf", x, y);
    return string(temp);
  }
    

  /**
   * Return the distance between two points
   **/
  double distance(const Point& p) {
    return sqrt((x-p.x)*(x-p.x) + (y-p.y)*(y-p.y));
  }

  /**
   * Return the angle formed by the point with respect to the x-axis, after
   * translation to the the origin.
   * @return the angle in radians
   **/
  double theta(const Point&origin = Point()) {
    Point temp = Point(x - origin.x, y - origin.y);
    return atan(temp.y / temp.x);
  }

  /**
   * The coordinates
   **/
  double x;
  double y;

  /**
   * Return a polar coordinate point.  This cannot be a constructor becuase
   * there is no way to distinguish it from the (x,y) constructor.  The
   * angle is in radians.
   **/
  static Point polar(double radius, double theta) {
    return Point(radius * cos(theta), radius * sin(theta));
  }
};


/**
 * 
 **/
class Line {
public:

  /**
   * Construct a line from a slope and intercept.  If the vertical flag is
   * true, then the slope is interpreted as dx/dy, and not dy/dx.
   **/
  Line(double slope, double intercept, bool vertical = false) {
    m = slope;
    b = intercept;
    byX = !vertical;
  }


  /**
   * Construct a line from two points
   **/
  Line(Point p1, Point p2) {
    double dx = p2.x - p1.x;
    double dy = p2.y - p1.y;

    if (dx != 0) {
      m = dy / dx;
      b = -m * p1.x + p1.y;
      byX = true;
    } else {
      m = dx / dy;
      b = -m * p1.y + p1.x;
      byX = false;
    }
  }


  /**
   * Return the perpendicular through a point
   **/
  Line perpendicular(Point p) {
    return Line(-1/m, 1/m * p.x + p.y);
  }


  /**
   * Return the point for the given x coordinate
   **/
  Point forX(double x) {
    return Point(x, m * x + b);
  }

  /**
   * Return the point for the given y coordinate
   **/
  Point forY(double y) {
    return Point((y-b)/m, y);
  }

  /**
   * Return the intersecting point
   **/
  Point intersect(Line l) {
    double nx = (l.b - b)/(m - l.m);
    return Point( nx, m * nx + b);
  }


  /**
   * The slope
   **/
  double m;

  /**
   * The intercept
   **/
  double b;

  /**
   * This flag indicates whether the line is by X or by Y.  If true, then
   * the line is by X, otherwise the line is by Y.  We need the "by Y" case
   * for vertical lines
   **/
  bool byX;
};


/**
 * Plot a line for a range of x values
 **/
static void plotLine(Line l) {

  for (double x = -10;  x <= 10;  x += 0.2) {
    cout << l.forX(x).toString() << endl;
  }
  cout << endl;
}

    
/**
 * Show an arc that passes through three points
 **/
static Point showArc(Point start, Point through, Point end) {

  Line l1 = Line(start, end).perpendicular(start.midpoint(end));
  Line l2 = Line(start, through).perpendicular(start.midpoint(through));

  Point center = l1.intersect(l2);

  return center;
}


extern int main(int argc, char **argv) {
  
  double radius = 2.0;
  Point offset = Point(4, 4);

  Point a = Point::polar(radius, 0) + offset;
  Point b = Point::polar(radius, .5) + offset;
  Point c = Point::polar(radius, 1.2) + offset;

  Point center = showArc(a, b, c);

  cout << "# a: " << a.toString() << endl;
  cout << "# b: " << b.toString() << endl;
  cout << "# c: " << c.toString() << endl;
  cout << "#  : " << offset.toString() << endl;
  cout << endl;
  cout << "# " << center.toString() << endl;
  cout << "# " << center.distance(a) << endl;
  cout << "# " << center.distance(b) << endl;
  cout << "# " << center.distance(c) << endl;
  cout << endl;
  cout << "# a@ " << a.theta(center) << endl;
  cout << "# b@ " << b.theta(center) << endl;
  cout << "# c@ " << c.theta(center) << endl;
  
  return 0;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-09-16  9:00 Fred Richardson
  0 siblings, 0 replies; 387+ messages in thread
From: Fred Richardson @ 1998-09-16  9:00 UTC (permalink / raw)
  To: egcs-bugs

Here's an example that will crash on i686lin and sun4sol.  The problem
seems to go away if you remove the arguments from the definition of
the destructor:

% gcc -v
Reading specs from /d4mutl/bybrad/lib/gcc-lib/i686-pc-linux-gnulibc1/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
% g++ main.cc -o main
main.cc: In method `foo::~foo()':
main.cc:9: Internal compiler error.
main.cc:9: Please submit a full bug report to `egcs-bugs@cygnus.com'.
% cat main.cc

struct foo
{
  ~foo();
};

foo::~foo(int arg)
{
}


int main()
{
  foo f;
  cout << "Hello" << endl;
}
%



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-09-15 17:17 Michael Haggerty
  0 siblings, 0 replies; 387+ messages in thread
From: Michael Haggerty @ 1998-09-15 17:17 UTC (permalink / raw)
  To: egcs-bugs

Hi,

The following transcript illustrates an internal compiler error:

======================================================================
$ uname -a
OSF1 tsunami.harvard.edu V4.0 564 alpha
$ e++ -v
Reading specs from /usr/local/egcs-1.1a/lib/gcc-lib/alpha-dec-osf4.0b/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
$ e++ -c bugtest.cc
bugtest.cc: In function `void f()':
bugtest.cc:12: Internal compiler error.
bugtest.cc:12: Please submit a full bug report to `egcs-bugs@cygnus.com'.
$ cat bugtest.cc
struct Outer
{
    struct Inner
    {
        double operator() ();
    };
};
 

void f()
{
    Outer::Inner()();
}


======================================================================

My compiler was built with the following commands (unpatched source):

======================================================================
# made directory ~/download/egcs-1.1a-compilation and changed to it.
CC=ecc nice -2 ../egcs-1.1a/configure --prefix=/usr/common/egcs-1.1a --exec-prefix=/usr/local/egcs-1.1a --enable-shared
nice -2 make CFLAGS='-O' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
sudo nice -2 make install
ln -s /usr/local/egcs-1.1a/bin/c++ /usr/local/bin/e++
======================================================================

I hope this helps.

Michael

--
Michael Haggerty
mhagger@blizzard.harvard.edu


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-09-11 22:25 internal " Peter Jordan
@ 1998-09-12  8:46 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-09-12  8:46 UTC (permalink / raw)
  To: Peter Jordan; +Cc: egcs-bugs

Peter Jordan <pjordan@chla.usc.edu> writes:

> Maelstrom-1.4.3-L2.0.6-src.tar.gz

> egcs-2.90.29 980515 (egcs-1.0.3 release)
> 	from HJLu's GCC dir... and libc-5.4.46

> g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c make.cpp
> make.cpp: In function `void MakeMultiplier()':
> make.cpp:94: Internal compiler error.
> make.cpp:94: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Could you please repeat the compilation of this file with the
additional flags `-v -save-temps', then send us a new bug report with
the full command line, the compiler output and the `.ii' file it will
create?  gzip/bzip2 uuencode/base64 attachments are fine.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-09-11 22:25 Peter Jordan
  1998-09-12  8:46 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Peter Jordan @ 1998-09-11 22:25 UTC (permalink / raw)
  To: egcs-bugs

With:

Linux noname 2.1.120 #2 SMP Sat Sep 5 22:38:11 PDT 1998 i586
                        ---
                        (I keep forgettin to take that out)

and

Maelstrom-1.4.3-L2.0.6-src.tar.gz

egcs-2.90.29 980515 (egcs-1.0.3 release)
	from HJLu's GCC dir... and libc-5.4.46

I got :


if [ "netlogic" != "" ]; then \
        cd "netlogic" && \
        make "CXX=g++" "OPTIMIZE=-O6 -fomit-frame-pointer" "INCLUDES=-Inetlogic -I/usr/X11R6/include "; \
fi
make[1]: Entering directory `/home/pjordan/Maelstrom/netlogic'
g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c about.cpp
g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c blit.cpp
g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c game.cpp
g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c logic.cpp
g++ -O6 -fomit-frame-pointer -I.. -Inetlogic -I/usr/X11R6/include  -DNETPLAY -c make.cpp
make.cpp: In function `void MakeMultiplier()':
make.cpp:94: Internal compiler error.
make.cpp:94: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [make.o] Error 1
make[1]: Leaving directory `/home/pjordan/Maelstrom/netlogic'
make: *** [netlogic/netlogic.o] Error 2
noname-pjordan:~/Maelstrom$



Sorry, that's all the time I have for this bug report.
Peter


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-09-10 14:35 Rich Lee
  0 siblings, 0 replies; 387+ messages in thread
From: Rich Lee @ 1998-09-10 14:35 UTC (permalink / raw)
  To: egcs-bugs

Sparc, Solaris 2.6, egcs1.1b

I got Internal compiler error for this little program.

#include <math.h>
#include <vector>
#include <iostream.h>

using std::vector;

template <class X, template<class U> class Container>
X two_norm(const Container<X>& x)
{
  X data = 0;
  for (typename Container<X>::const_iterator i=x.begin(); i!=x.end(); ++i)
    data += *x * *x;

  return sqrt(data);
}

int main()
{
  vector<double> v(100, 1.0);

  cout << two_norm(v) << endl;

  return 0;
}


--Rich


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-09-04  6:48 Axel Schmitz-Tewes
@ 1998-09-08 23:54 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-09-08 23:54 UTC (permalink / raw)
  To: Axel Schmitz-Tewes; +Cc: egcs-bugs

Axel Schmitz-Tewes <uzs59g@ibm.rhrz.uni-bonn.de> writes:

>> ellol.cpp:24: Internal compiler error 9.
>> ellol.cpp:24: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Thanks for your report.  egcs 1.1 prints instead:

test.cc:22: template-id `PrintType<T>' in declaration of primary template
test.cc: In function `int main(int, char **)':
test.cc:33: `CLassAOrB' undeclared (first use this function)
test.cc:33: (Each undeclared identifier is reported only once
test.cc:33: for each function it appears in.)
test.cc:33: template argument 1 is invalid
test.cc:33: no matching function for call to `PrintType ()'

After removing the incorrect extra `<class T>' in the declaration of
PrintType and replacing the upper-case `L' with `l' in `CLassAOrB',
the code should compile fine.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-09-06  7:40 Karsten Ballueder
  0 siblings, 0 replies; 387+ messages in thread
From: Karsten Ballueder @ 1998-09-06  7:40 UTC (permalink / raw)
  To: egcs-bugs

I just found that when defining a destructor with an argument (I know
it doesn't make sense, it was a typo.), I would get an internal
compiler error. The destructor was declared properly, just in the
definition of it I had the extra argument.

The compiler is pgcc 1.1a.
-- 
Karsten Ballueder < http://Ballueder.home.ml.org > 


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-09-04  6:48 Axel Schmitz-Tewes
  1998-09-08 23:54 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Axel Schmitz-Tewes @ 1998-09-04  6:48 UTC (permalink / raw)
  To: egcs-bugs

Dear Sirs,

because the compiler has forced  me I will send you a
(possibly incorrect programm)


> /*************************************************************/
>
> #include <iomanip.h>
>
> class ClassAOrB
> {
> public:
>   static int RealType() { return 0; }
> };
>
> class ClassA : public ClassAOrB
> {
> public:
>    static int RealType() { return 1; }
> };
>
> class ClassB : public ClassAOrB
> {
> public:
>   static int RealType() { return 2; }
> };
>
> template<class T> void PrintType<class T>()
> {
>   cout << "Object is of type #" << T::RealType() << endl;
> }
>
> int main(int argc, char* argv[])
> {
>     ClassAOrB a;
>     ClassA b;
>     ClassB c;
>   PrintType<ClassA>();
>   PrintType<ClassB>();
>   PrintType<CLassAOrB>();
>   return 0;
> }
>
> /**********************************************************
>
 which gives compiling with egcs 1.0.2 (from gnuwin)

(gcc version egcs-2.90.27 980315 (egcs-1.0.2 release))

the following messages


> ellol.cpp:24: Internal compiler error 9.
> ellol.cpp:24: Please submit a full bug report to `egcs-bugs@cygnus.com'.
>
  I use Win NT4(SP3).

Sincerely,

Axel Schmitz-Tewes


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-27  2:17 Internal " Ulrich Seidl
@ 1998-08-27 17:12 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-08-27 17:12 UTC (permalink / raw)
  To: Seidl; +Cc: egcs-bugs

Ulrich Seidl <Ulrich.Seidl@Regent.E-Technik.TU-Muenchen.DE> writes:

> On RedHat 5.1 Linux the following fails:

> egcs-g++ -c -g -O2 -fno-implicit-templates  -I/usr/local/include   
> -I../../matrix/include  -I/usr/local/include -I../include nurbsS.cc

> nurbsS.cc: In method `int PlNurbsSurface::writePOVRAY(const char *, const 
> class Color & = Color(250, 250, 250), const class Point3D & = 
> Point3D(0x000000000000000000000000, 0x00000000000000000080ff3f, 
> 0x000000000000000000000000), const class Point3D & = 
> Point3D(0x000000000000000000000000, 0x000000000000000000000000, 
> 0x00000000000000000080ff3f), int = 1, double = 0x000000d8a3703d0ad7a3f83f, int 
> = 8, int = 8) const':
> nurbsS.cc:3191: Internal compiler error.
> nurbsS.cc:3191: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Thanks for your report.  This problem is fixed in the latest snapshot
of the up-coming release 1.1 of egcs.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-25 16:12 Stuart Whitman
@ 1998-08-27 15:40 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-08-27 15:40 UTC (permalink / raw)
  To: Stuart Whitman; +Cc: egcs-bugs

Stuart Whitman <stu@s3i.com> writes:

> version:	gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
> behavior:	foo.cc: In function `void interaction(class EnumClass)':
> 		foo.cc:27: Internal compiler error.
> 		foo.cc:27: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Thanks for your report.  This problem is fixed in the latest snapshot
of egcs, so egcs 1.1 is likely to be able to compile your code snippet.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-27  2:17 Ulrich Seidl
  1998-08-27 17:12 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Ulrich Seidl @ 1998-08-27  2:17 UTC (permalink / raw)
  To: egcs-bugs

On RedHat 5.1 Linux the following fails:

egcs-g++ -c -g -O2 -fno-implicit-templates  -I/usr/local/include   
-I../../matrix/include  -I/usr/local/include -I../include nurbsS.cc

nurbsS.cc: In method `int PlNurbsSurface::writePOVRAY(const char *, const 
class Color & = Color(250, 250, 250), const class Point3D & = 
Point3D(0x000000000000000000000000, 0x00000000000000000080ff3f, 
0x000000000000000000000000), const class Point3D & = 
Point3D(0x000000000000000000000000, 0x000000000000000000000000, 
0x00000000000000000080ff3f), int = 1, double = 0x000000d8a3703d0ad7a3f83f, int 
= 8, int = 8) const':
nurbsS.cc:3191: Internal compiler error.
nurbsS.cc:3191: Please submit a full bug report to `egcs-bugs@cygnus.com'.

To reproduce the failure get the source tree at:
http://eda.ei.tum.de/~uis/egcs-failure.tgz
Unpack it, cd to nurbs and type make. This happens with:
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release) and
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)


Ulrich



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-08-26  6:40 Craig McLane
  0 siblings, 0 replies; 387+ messages in thread
From: Craig McLane @ 1998-08-26  6:40 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1377 bytes --]

I am trying to compile DOC++ which uses templates.  (Source can be found

at: http://www.zib.de/Visual/software/doc++/docxxdoc.tar.gz )
The error I receive is:

g++ -DUNIX -DNDEBUG -O2 -save-temps -c doc2tex.cpp
McDArray.h: In function `int rindex(class McDArray<T> &, const T &)':
In file included from doc.h:30,
                 from doc2tex.l:31:
McDArray.h:326: warning: name lookup of `i' changed for new ANSI `for'
scoping
McDArray.h:324: warning:   using obsolete binding at `i'
g++ -DUNIX -DNDEBUG -O2 -save-temps -c html.cpp
McDArray.h: In function `int rindex(class McDArray<T> &, const T &)':
In file included from doc.h:30,
                 from html.cpp:34:
McDArray.h:326: warning: name lookup of `i' changed for new ANSI `for'
scoping
McDArray.h:324: warning:   using obsolete binding at `i'
McSorter.h: In function `void sort(T *, int)':
In file included from html.cpp:39:
McSorter.h:78: Internal compiler error.
McSorter.h:78: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [html.o] Error 1


I am running RedHat Linux 5.1.
The output of g++ -v is:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs

gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)


I have tar'd and gziped the output file (html.ii) and attached it to
this email as html.ii.tar.gz.

If you need anymore information, please let me know.

Craig

[-- Attachment #2: html.ii.tar.gz --]
[-- Type: application/x-gzip, Size: 45495 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-26  2:31 Michael Schoene
  0 siblings, 0 replies; 387+ messages in thread
From: Michael Schoene @ 1998-08-26  2:31 UTC (permalink / raw)
  To: egcs-bugs

--Nmf3vkPI5H
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit

I try to compile the JThreads/C++ library (you can find the sources at 
http://www.ooc.com/jtc ).  I get the following internal compiler error:

mrs@boetsch(6)$ c++ -c -v -save-temps --no-implicit-templates -Wall -Wno-retur>
Reading specs from /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/spec
s
gcc version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental)
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/cpp -lang-c++ -v -I. -
I../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -
D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -D_IBMR2 -D_POWER -D_AIX
-D_AIX32 -D_AIX41 -D_LONG_LONG -Asystem(unix) -Asystem(aix) -D__EXCEPTIONS -D__C
HAR_UNSIGNED__ -Wall -Wno-return-type -D_THREAD_SAFE -D_ARCH_COM Mutex.cpp Mutex
.ii
GNU CPP version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../include
 /usr/egcs/include/g++
 /usr/local/include
 /usr/egcs/rs6000-ibm-aix4.1.5.0/include
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/include
 /usr/include
End of search list.
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/cc1plus Mutex.ii -quie
t -dumpbase Mutex.cc -mthreads -Wall -Wno-return-type -version -fno-implicit-tem
plates -o Mutex.s
GNU C++ version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental) (rs6000-ibm-
aix4.1.5.0) compiled by GNU C version egcs-2.91.54 19980816 (gcc2 ss-980609 expe
rimental).
../../gcc/function.c:3272: Internal compiler error in function instantiate_virtu
al_regs_1
mrs@boetsch(7)$

Regards,
	Michael


--Nmf3vkPI5H
Content-Type: application/octet-stream
Content-Description: Mutex.ii.gz
Content-Disposition: attachment;
	filename="Mutex.ii.gz"
Content-Transfer-Encoding: base64

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
qmu+gZ4Rv9d67xu3UzAe5H8Du74aN4KgAQA=

--Nmf3vkPI5H--


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-25 16:12 Stuart Whitman
  1998-08-27 15:40 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Stuart Whitman @ 1998-08-25 16:12 UTC (permalink / raw)
  To: egcs-bugs

version:	gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
command:	g++ -c
uname -a:	SunOS blackbird 5.5.1 Generic sun4m sparc
		SUNW,SPARCstation-20
configure:	--prefix=/export/home0/tmp/egcs
source mods:	NONE
behavior:	foo.cc: In function `void interaction(class EnumClass)':
		foo.cc:27: Internal compiler error.
		foo.cc:27: Please submit a full bug report to 
`egcs-bugs@cygnus.com'.

offending code:

class Trans {
public:  
        Trans  operator<< (int i);
        Trans  operator<< (const char * s);
};

class Switch {
public:
        Trans begin_data ();
};

class EnumClass 
{
public:
        operator int() const;
};

Trans operator << (Trans output, EnumClass ec);

        void
interaction(EnumClass enumeration)
{
        Switch  trno_DBS_Interaction ;

        trno_DBS_Interaction  .begin_data () 
        << enumeration
        << "\n";
}


------------------------------------------------------
Stuart Whitman        System Simulation Solutions, Inc
     703 684 8268     1700 Diagonal Road, STE 310
Fax: 703 684 8272     Alexandria, VA 22314




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-25  0:09 Michael Schoene
@ 1998-08-25 16:12 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-08-25 16:12 UTC (permalink / raw)
  To: mrs; +Cc: egcs-bugs

Michael Schoene <mrs@mlc.de> writes:

> I try to compile the JThreads/C++ library (you can find the sources at 
> http://www.ooc.com/jtc ).  I get the following internal compiler error:

We usually don't have the time to fetch packages and try them.  Will
you please repeat the compilation with the additional flag
`-save-temps', then submit a new report containing the .ii file it
produces?  gzip/bzip2 uuencode/mime is fine.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-25  0:09 Michael Schoene
  1998-08-25 16:12 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Michael Schoene @ 1998-08-25  0:09 UTC (permalink / raw)
  To: egcs-bugs

Hello,

I try to compile the JThreads/C++ library (you can find the sources at 
http://www.ooc.com/jtc ).  I get the following internal compiler error:

mrs@boetsch(270)$ c++ -c -v --no-implicit-templates -Wall -Wno-return-type -I. -I../include -mthreads  Mutex.cpp
Reading specs from /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/specs
gcc version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental)
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/cpp -lang-c++ -v -I. -I../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -Asystem(unix) -Asystem(aix) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -Wall -Wno-return-type -D_THREAD_SAFE -D_ARCH_COM Mutex.cpp /tmp/ccCH12eP.ii
GNU CPP version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../include
 /usr/egcs/include/g++
 /usr/local/include
 /usr/egcs/rs6000-ibm-aix4.1.5.0/include
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/include
 /usr/include
End of search list.
 /usr/egcs/lib/gcc-lib/rs6000-ibm-aix4.1.5.0/egcs-2.91.54/cc1plus /tmp/ccCH12eP.ii -quiet -dumpbase Mutex.cc -mthreads -Wall -Wno-return-type -version -fno-implicit-templates -o /tmp/ccMXiDeG.s
GNU C++ version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental) (rs6000-ibm-aix4.1.5.0) compiled by GNU C version egcs-2.91.54 19980816 (gcc2 ss-980609 experimental).
../../gcc/function.c:3272: Internal compiler error in function instantiate_virtual_regs_1
mrs@boetsch(271)$


Regards,
	Michael


-------------------------------------------------------------------------------
M    M L     CCC   |  Michael Schoene         |
MM  MM L    C      |  MLC Systeme GmbH        |   Tel.: ++49 (+2102) 479-311/-0
M MM M L    C      |  Kaiserswerther Str. 115 |   FAX : ++49 (+2102) 479-309
M    M L    C      |  D 40880 Ratingen        | e-mail: mrs@mlc.de
M    M LLLL  CCC   |  FRGermany               |


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1998-08-21 18:27 Craig McLane
@ 1998-08-23 21:38 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-08-23 21:38 UTC (permalink / raw)
  To: Craig McLane; +Cc: egcs-bugs

Craig McLane <craig@citysearch.com> writes:

> McSorter.h:76: Internal compiler error.
> McSorter.h:76: Please submit a full bug report to

> gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

> I have attached html.cpp as well as McSorter.h

You have not supplied enough information for us to reproduce the bug.
We need a fully compilable code snippet, that you may obtain by
repeating the compilation with the additional argument `-save-temps'.
This will produce a file with extension .ii, that you should send to
us in a new full bug report.  gzip/bzip2 uuencode/mime is fine.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-08-21 18:27 Craig McLane
  1998-08-23 21:38 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Craig McLane @ 1998-08-21 18:27 UTC (permalink / raw)
  To: egcs-bugs

I am trying to compile DOC++ which uses templates.  (Source can be found
at: http://www.zib.de/Visual/software/doc++/docxxdoc.tar.gz )
The error I receive is:

g++ -DUNIX -DNDEBUG -O2  -c html.cpp
McDArray.h: In function `int rindex(class McDArray<T> &, const T &)':
In file included from doc.h:30,
                 from html.cpp:34:
McDArray.h:326: warning: name lookup of `i' changed for new ANSI `for'
scoping
McDArray.h:324: warning:   using obsolete binding at `i'
McSorter.h: In function `void sort(T *, int)':
In file included from html.cpp:39:
McSorter.h:76: Internal compiler error.
McSorter.h:76: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [html.o] Error 1


I am running RedHat Linux 5.1.
The output of g++ -v is:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs

gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

I have attached html.cpp as well as McSorter.h

If you need any more information, please let me know.
Craig McLane



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-17  1:26 Nilo Casimiro Ericsson
  0 siblings, 0 replies; 387+ messages in thread
From: Nilo Casimiro Ericsson @ 1998-08-17  1:26 UTC (permalink / raw)
  To: egcs-bugs

Hi there!

I have a problem compiling a program package. I don't know exactly what
information you need, but these are the last lines  that came out from
the compilation:

g++ -fpic -Wall   -O3 -DNDEBUG -DASSERT_LEVEL=1 -I../include -c
quantize/ia.cpp -o quantize/ia_pic.o
quantize/ia.cpp: In function `double LISA(class Mat<double> &, bool =
false, int = 100000, double = 0)':
quantize/ia.cpp:149: Internal compiler error.
quantize/ia.cpp:149: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make[1]: *** [quantize/ia_pic.o] Error 1
make[1]: Leaving directory `/usr/users/staff/nce/PCC/it++/src'
make[1]: Entering directory `/usr/users/staff/nce/PCC/it++/doc'
rm -rf html/misc
mkdir -p html/misc
doxygen misc.config
make[1]: doxygen: Command not found
make[1]: *** [html/misc/index.html] Error 127
make[1]: Leaving directory `/usr/users/staff/nce/PCC/it++/doc'
make: *** [suball] Error 2

Compilation exited abnormally with code 2 at Mon Aug 17 08:47:06


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-08-05 10:48 nbecker
  0 siblings, 0 replies; 387+ messages in thread
From: nbecker @ 1998-08-05 10:48 UTC (permalink / raw)
  To: egcs-bugs

egcs-1.0.3a i686-pc-linux-gnu RH5.1

g++ -DUNIX -DNDEBUG -O2  -c Entry.cpp -save-temps
McDArray.h: In function `int rindex(class McDArray<T> &, const T &)':
In file included from doc.h:30,
                 from Entry.cpp:26:
McDArray.h:326: warning: name lookup of `i' changed for new ANSI `for' scoping
McDArray.h:324: warning:   using obsolete binding at `i'
Entry.cpp: In function `void getRefNames(class McDArray<McString *>, const char *)':
Entry.cpp:423: Internal compiler error.
Entry.cpp:423: Please submit a full bug report to
`egcs-bugs@cygnus.com'

Please tell me where to upload Entry.ii.gz (11k).


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-08-05  7:35 Mehdi Rahman
  0 siblings, 0 replies; 387+ messages in thread
From: Mehdi Rahman @ 1998-08-05  7:35 UTC (permalink / raw)
  To: egcs-bugs

    When I try to compile the documentation generator doc++ release 3.2
with egcs, I get an internal compiler error. I use a linux readhat 5.1
system, with no patches applied.

    Here what 'uname -a' gives:
Linux MR-NTW40.bvdep.com 2.0.34 #1 Tue Jun 23 02:10:50 EDT 1998 i586
unknown

    I use the egcs release furnished by redhat, 'c++ -v' give this:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs

gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

    The doc++ package come from the web site:
http://www.zib.de/Visual/software/doc++/index.html . I have attached a
zip files with the sources to this mail.

    Here is the error message given when I do a 'make all':
g++ -DUNIX -DNDEBUG -O2  -c html.cpp
McDArray.h: In function `int rindex(class McDArray<T> &, const T &)':
In file included from doc.h:30,
                 from html.cpp:34:
McDArray.h:326: warning: name lookup of `i' changed for new ANSI `for'
scoping
McDArray.h:324: warning:   using obsolete binding at `i'
McSorter.h: In function `void sort(T *, int)':
In file included from html.cpp:39:
McSorter.h:78: Internal compiler error.
McSorter.h:78: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [html.o] Error 1

    From what I saw in the code at the line 78, there is the declaration
of an operator which redefine the parenthesis.

    Please mail me if you have a solution/patch to propose. Maybe should
you contact doc++ authors at doc++@zib.de.

    Thank you in advance,

        M. Rahman




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 1998-08-04  8:50 nbecker
  0 siblings, 0 replies; 387+ messages in thread
From: nbecker @ 1998-08-04  8:50 UTC (permalink / raw)
  To: egcs-bugs

The offending code looks like:
I'll have to admit, it looks pretty wierd to me.

template< class T >
void	sort( T* t, int n )
	{
	    struct
	    {
		int	operator()(T i, T j)
			{
			    return (i < j) ? -1 : ((j < i) ? 1 : 0) ;
			}
	    } c ;
	    sort(t, n, c, 0) ;
	}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-04  1:47     ` David Mazieres
@ 1998-08-04  5:57       ` Thomas Kunert
  0 siblings, 0 replies; 387+ messages in thread
From: Thomas Kunert @ 1998-08-04  5:57 UTC (permalink / raw)
  To: David Mazieres; +Cc: pfeifer, egcs-bugs

David Mazieres wrote:
> 
> > Date: Tue, 04 Aug 1998 08:01:09 +0200
> > From: Thomas Kunert <kunert@physik.tu-dresden.de>
> >
> > That's funny. For me it compiles without error.
> >
> > Reading specs from /opt/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.52/specs
> > gcc version egcs-2.91.52 19980729 (gcc2 ss-980609 experimental)
> 
> Okay, I can now definitely confirm that the bug exists in the latest
> 1.1 branch on both linux and BSD.  I compiled the latest egcs on
> linux, and still see the problem:
> 
> % c++ -c ttinterr.C
> ttinterr.C: In method `int foo<long int>::pub<int>(int)':
> ttinterr.C:20:   instantiated from here
> ttinterr.C:11: Internal compiler error.
> ttinterr.C:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.
> % c++ -v
> Reading specs from /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.52/specs
> gcc version egcs-2.91.52 19980803 (gcc2 ss-980609 experimental)
> 
> If the bug got fixed in the 7/29 snapshot, then it must subsequently
> have been reintroduced.
> 
> I guess the other possibility is that you have a non-standard
> installation, modified specs file, environment variable overridding
> the default c++ version, or alias c++ 'c++ -fsomething-strange'.  I
> installed egcs with no customization.  I did do some rudimentary
> fiddling around with options (tried all levels of optimization and
> -fno-exceptions), but always saw the bug.

It was probably my mistake: I have tried it again and I got the same
message
without changing anything in my setup. Perhaps I didn't save the program
properly at the first time.

--
Thomas Kunert


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-03 22:57   ` Thomas Kunert
  1998-08-04  1:47     ` David Mazieres
@ 1998-08-04  1:47     ` David Mazieres
  1 sibling, 0 replies; 387+ messages in thread
From: David Mazieres @ 1998-08-04  1:47 UTC (permalink / raw)
  To: kunert; +Cc: pfeifer, egcs-bugs

> Date: Tue, 04 Aug 1998 08:01:09 +0200
> From: Thomas Kunert <kunert@physik.tu-dresden.de>
> 
> Gerald Pfeifer wrote:
> > 
> > On Mon, 3 Aug 1998, David Mazieres wrote:
> > > In slightly old versions of egcs 1.1 (sorry, the very tip of the 1.1
> > > branch doesn't compile for me today):
> > >
> > > Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.50/specs
> > > gcc version egcs-2.91.50 19980714 (gcc2 ss-980609 experimental)
> > > Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.47/specs
> > > gcc version egcs-2.91.47 19980708 (gcc2 ss-980609 experimental)
> > 
> > With the most current version egcs-2.91.52 19980803 on
> > i386-unknown-freebsd2.2.6 the internal compiler error still exists.
> 
> That's funny. For me it compiles without error. 
> 
> Reading specs from /opt/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.52/specs
> gcc version egcs-2.91.52 19980729 (gcc2 ss-980609 experimental)

Hmm...  I upgraded egcs, and with a more recent version than yours
still experience the problem:

% ec++ -v
Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.52/specs
gcc version egcs-2.91.52 19980803 (gcc2 ss-980609 experimental)
% ec++ ttinterr.C 
ttinterr.C: In method `int foo<long int>::pub<int>(int)':
ttinterr.C:20:   instantiated from here
ttinterr.C:11: Internal compiler error.
ttinterr.C:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.

I notice you are running linux while the two of us who have
experienced the problem are running some variant of BSD.  Could this
be an a.out format specific bug?  (Sounds unlikely, given the the
problem is probably with templates.)

I guess I will grab the very lates head of the 1.1 branch, and try
this on a linux box myself.  (Also, maybe the bug was temporarily
fixed.  I have run accross at least one other bug that was temporarily
fixed and then broke again.)

David


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-03 22:57   ` Thomas Kunert
@ 1998-08-04  1:47     ` David Mazieres
  1998-08-04  5:57       ` Thomas Kunert
  1998-08-04  1:47     ` David Mazieres
  1 sibling, 1 reply; 387+ messages in thread
From: David Mazieres @ 1998-08-04  1:47 UTC (permalink / raw)
  To: kunert; +Cc: pfeifer, egcs-bugs

> Date: Tue, 04 Aug 1998 08:01:09 +0200
> From: Thomas Kunert <kunert@physik.tu-dresden.de>
> 
> That's funny. For me it compiles without error. 
> 
> Reading specs from /opt/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.52/specs
> gcc version egcs-2.91.52 19980729 (gcc2 ss-980609 experimental)

Okay, I can now definitely confirm that the bug exists in the latest
1.1 branch on both linux and BSD.  I compiled the latest egcs on
linux, and still see the problem:

% c++ -c ttinterr.C
ttinterr.C: In method `int foo<long int>::pub<int>(int)':
ttinterr.C:20:   instantiated from here
ttinterr.C:11: Internal compiler error.
ttinterr.C:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.
% c++ -v
Reading specs from /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.52/specs
gcc version egcs-2.91.52 19980803 (gcc2 ss-980609 experimental)

If the bug got fixed in the 7/29 snapshot, then it must subsequently
have been reintroduced.

I guess the other possibility is that you have a non-standard
installation, modified specs file, environment variable overridding
the default c++ version, or alias c++ 'c++ -fsomething-strange'.  I
installed egcs with no customization.  I did do some rudimentary
fiddling around with options (tried all levels of optimization and
-fno-exceptions), but always saw the bug.

David


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1998-08-03  7:46 ` Internal " Gerald Pfeifer
@ 1998-08-03 22:57   ` Thomas Kunert
  1998-08-04  1:47     ` David Mazieres
  1998-08-04  1:47     ` David Mazieres
  0 siblings, 2 replies; 387+ messages in thread
From: Thomas Kunert @ 1998-08-03 22:57 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: David Mazieres, egcs-bugs

Gerald Pfeifer wrote:
> 
> On Mon, 3 Aug 1998, David Mazieres wrote:
> > In slightly old versions of egcs 1.1 (sorry, the very tip of the 1.1
> > branch doesn't compile for me today):
> >
> > Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.50/specs
> > gcc version egcs-2.91.50 19980714 (gcc2 ss-980609 experimental)
> > Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.47/specs
> > gcc version egcs-2.91.47 19980708 (gcc2 ss-980609 experimental)
> 
> With the most current version egcs-2.91.52 19980803 on
> i386-unknown-freebsd2.2.6 the internal compiler error still exists.

That's funny. For me it compiles without error. 

Reading specs from /opt/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.52/specs
gcc version egcs-2.91.52 19980729 (gcc2 ss-980609 experimental)

--
Thomas Kunert


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
       [not found] <199808031039.GAA08010@reeducation-labor.lcs.mit.edu>
@ 1998-08-03  7:46 ` Gerald Pfeifer
  1998-08-03 22:57   ` Thomas Kunert
  0 siblings, 1 reply; 387+ messages in thread
From: Gerald Pfeifer @ 1998-08-03  7:46 UTC (permalink / raw)
  To: David Mazieres; +Cc: egcs-bugs

On Mon, 3 Aug 1998, David Mazieres wrote:
> In slightly old versions of egcs 1.1 (sorry, the very tip of the 1.1
> branch doesn't compile for me today):
> 
> Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.50/specs
> gcc version egcs-2.91.50 19980714 (gcc2 ss-980609 experimental)
> Reading specs from /usr/local/egcs/lib/gcc-lib/i386-netbsd/egcs-2.91.47/specs
> gcc version egcs-2.91.47 19980708 (gcc2 ss-980609 experimental)

With the most current version egcs-2.91.52 19980803 on
i386-unknown-freebsd2.2.6 the internal compiler error still exists.

Gerald
-- 
Gerald Pfeifer (Jerry)      Vienna University of Technology
pfeifer@dbai.tuwien.ac.at   http://www.dbai.tuwien.ac.at/~pfeifer/



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-07-30 10:06 djf95
  0 siblings, 0 replies; 387+ messages in thread
From: djf95 @ 1998-07-30 10:06 UTC (permalink / raw)
  To: egcs-bugs

Hello,
I got the following from egcs last night:

[Duncan@snowflake matrix]$ g++ -Wall main.cpp
main.cpp:5: warning: return type for `main' changed to `int'
main.cpp: In method `vector<vector<double,__default_alloc_template<true,0> >,__default_alloc_template<true,0> >::vector(unsigned int)':
main.cpp:21: Internal compiler error.
main.cpp:21: Please submit a full bug report to `egcs-bugs@cygnus.com'.
[Duncan@snowflake matrix]$ 

The version of egcs in use is:
	gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
built with --enable-shared  
and is the sole C/C++ compiler on an Intel x86 RedHat linux v5.0 (kernel 
2.1.106) system.

The program being compiled (main.cpp) is given below with obvious (and 
deliberate) error as marked.  Twice this compiled and as expected segfaulted 
on execution but on the third compile it produced the above.

I don't know if this is of any use but since I was asked nicely for a bug 
report, here it is.

Duncan
(djf95@aber.ac.uk)
----------------------------------------

#include <vector>
#include <iostream>

bool main()
{
  const long rows=10;
  const long cols=2;
  vector<vector<double> > fred(rows);

  for (int i=0;i<rows;i++)
    {
      fred[i].reserve(i);  //Obvious error i=0 and i=1 do not result in fred[0][1] etc.
      fred[i][0]=i;
      fred[i][1]=i*i;
      cout << i << " : " << fred[i][0] << " , " << fred[i][1] << "\n";
    }

return true;
}





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-07-28 10:34 Mathias Moog
  0 siblings, 0 replies; 387+ messages in thread
From: Mathias Moog @ 1998-07-28 10:34 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I called

eg++ -Wall -O3 -mpentiumpro -ffast-math -fomit-frame-pointer -fno-implicit-templates -finline-functions -I/home/local/moog/mw/include -I/home/local/moog/mw/LA/include -I/home/local/moog/mw/BA/include -I/home/local/moog/mw/SparseLib++/include -I/home/local/moog/mw/MA/include -I/home/local/moog/mw/SP/include -I/home/local/moog/mw/HS/include -I/home/local/moog/mw/SB/include -I/home/local/moog/mw/Sledge/include -I/usr/X11R6/include -I/home/local/moog/mw/KECK  -c sparse.cc  

and after some time the complilation breakes with

sparse.cc: In function `void convert(class Coord_Mat_double &, const class La_Matrix<double,double> &)':
sparse.cc:140: Internal compiler error.
sparse.cc:140: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [sparse.o] Error 1

The source code is



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-07-28 10:34 archon
  0 siblings, 0 replies; 387+ messages in thread
From: archon @ 1998-07-28 10:34 UTC (permalink / raw)
  To: egcs-bugs

I hope this is enough info..

System:
RedHat 5.1

RPMS:
egcs-1.0.2-8
egcs-c++-1.0.2-8
gcc-2.7.2.3-11

Uname:
Linux forbidden.dough.net 2.0.35 #1 Mon Jul 27 02:38:40 CDT 1998 i586 unknown

/proc/cpuinfo:
processor	: 0
cpu		: 586
model		: K5 (PR-166)
vendor_id	: AuthenticAMD
stepping	: 4
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid		: yes
wp		: yes
flags		: fpu vme de pse tsc msr mce cx8 pge
bogomips	: 233.47

I was trying to compiled 'speech_tools,' part of the festival speech
synthesis system.  The command line from make was:

g++ -fno-implicit-templates -c  -O3 -Wall  -I../include EST_Pathname_unix.cc

The error was:

EST_Pathname_unix.cc: In method `class EST_TList<EST_String> EST_Pathname::entries(int = 1) const':
EST_Pathname_unix.cc:125: Internal compiler error.
EST_Pathname_unix.cc:125: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [EST_Pathname_unix.o] Error 1

In EST_Pathname_unix.cc:124-127:
    if (check_for_directories &&
        stat(this->as_directory() + name, &buf)==0 &&
        (buf.st_mode & S_IFDIR))
      list.append(name.as_directory());

Here's the whole file:

 /************************************************************************/
 /*                                                                      */
 /*                Centre for Speech Technology Research                 */
 /*                     University of Edinburgh, UK                      */
 /*                       Copyright (c) 1996,1997                        */
 /*                        All Rights Reserved.                          */
 /*                                                                      */
 /*  Permission to use, copy, modify, distribute this software and its   */
 /*  documentation for research, educational and individual use only, is */
 /*  hereby granted without fee, subject to the following conditions:    */
 /*   1. The code must retain the above copyright notice, this list of   */
 /*      conditions and the following disclaimer.                        */
 /*   2. Any modifications must be clearly marked as such.               */
 /*   3. Original authors' names are not deleted.                        */
 /*  This software may not be used for commercial purposes without       */
 /*  specific prior written permission from the authors.                 */
 /*                                                                      */
 /*  THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK       */
 /*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING     */
 /*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT  */
 /*  SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE    */
 /*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES   */
 /*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN  */
 /*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,         */
 /*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF      */
 /*  THIS SOFTWARE.                                                      */
 /*                                                                      */
 /************************************************************************/
 /*                 Author: Richard Caley (rjc@cstr.ed.ac.uk)            */
 /*                   Date: Tue Mar 18 1997                              */
 /************************************************************************/
 /*                                                                      */
 /* Implementation of a class for manipulating filenames and so on.      */
 /*                                                                      */
 /* This is all hard coded to be unix filenames. I think the best        */
 /* strategy is to have a separate version of this for any other         */
 /* pathname format rather than trying to parameterise this. Most of     */
 /* it is fairly simple.                                                 */
 /*                                                                      */
 /************************************************************************/

#include "EST_unix.h"
#include "EST_Pathname.h"

void EST_Pathname::setup(void)
{
}

int EST_Pathname::is_absolute(void) const
{
  return length()>0 && (*this)[0] == '/';
}

int EST_Pathname::is_dirname(void) const
{
  return length()>0 && (*this)[length()-1] == '/';
}

EST_Pathname EST_Pathname::directory(void) const {

  if (is_dirname())
    return *this;

  int pos;
  if ((pos=index("/", -1)) >=0)
    return before(pos+1);
  else
    return "./";
 }

EST_Pathname EST_Pathname::as_file(void) const
{
  if (is_filename())
    return *this;

  if (length() > 0)
    return before(-1);

  return ".";
}

EST_Pathname EST_Pathname::as_directory(void) const
{
  if (is_dirname())
    return *this;

  if (length() > 0)
    return ((EST_String)(*this) + (EST_String)"/");

  return "./";
}

EST_Pathname EST_Pathname::construct(EST_Pathname dir, 
				     EST_String filename)
{
  EST_Pathname result(dir.as_directory());

  result += filename;
  return result;
}

EST_Pathname EST_Pathname::construct(EST_Pathname dir, 
				     EST_String basename, 
				     EST_String extension)
{
  EST_Pathname filename(basename + "." + extension);
  return EST_Pathname::construct(dir, filename);
}

EST_StrList EST_Pathname::entries(int check_for_directories) const
{
  DIR *dir;
  EST_StrList list;

  if ((dir = opendir(this->as_directory()))!=NULL)
    {
      struct dirent *entry;

      while ((entry = readdir(dir)) != NULL)
	{
	  EST_Pathname name(entry->d_name);
	  struct stat buf;

	  if (check_for_directories && 
	      stat(this->as_directory() + name, &buf)==0 &&
				(buf.st_mode & S_IFDIR))
	    list.append(name.as_directory());
	  else
	    list.append(name);
	}
      closedir(dir);
    }

  return list;
}

EST_Pathname EST_Pathname::append(EST_Pathname directory, EST_Pathname addition)
{
  if (addition.is_absolute())
    return addition;

  EST_Pathname result(directory.as_directory());

  result += addition;

  return result;
}


EST_String EST_Pathname::extension(void) const
{
    EST_String result("");
    
    if (length() <= 0)
	return result;
    
    if (contains("."))
	result = after(index(".",-1));

    return result;

}

EST_Pathname EST_Pathname::filename(void) const
{
  EST_String result(this->as_file());
    
    if (contains("/"))
	  result = result.after(index("/",-1));
    return result;
}

EST_String EST_Pathname::basename(int remove_all) const
{
    EST_String result(this->as_file().filename());
    
    if (remove_all)
      {
	if (result.contains("."))
	  result = result.before(".");
      }
    return result;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-07-27 21:22 Scott Barron
  0 siblings, 0 replies; 387+ messages in thread
From: Scott Barron @ 1998-07-27 21:22 UTC (permalink / raw)
  To: egcs-bugs

Hello,

        I get the following error when trying to comple the Qwt widget set (an
extension to the Qt toolkit):

qwt_knob.cpp: In method `void QwtKnob::drawMarker(class QPainter *, double,
const class QColor &)':
qwt_knob.cpp:452: Internal compiler error.
qwt_knob.cpp:452: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [qwt_knob.o] Error 1

        I am using egcs-2.90.29 980515 (egcs-1.0.3 release), Linux 2.0.35,
libc5.4.44, and Qt 1.40.  I have succesfully compiled this package before with
a previous egcs release (1.0.3a I believe, though I can not say for sure). 
Below is the method which it errors out on while compiling:

void QwtKnob::drawMarker(QPainter *p, double arc, const QColor &c)
{
  
  QPen pn;
  int radius;
  double rb,re;
  double rarc;
  
  rarc = arc * M_PI / 180.0;
  double ca = cos(rarc);
  double sa = - sin(rarc);
  radius = d_kRect.width() / 2 - d_borderWidth;
  if (radius < 3) radius = 3;   
  int ym = d_kRect.y() + radius + d_borderWidth;
  int xm = d_kRect.x() + radius + d_borderWidth;
  
  switch(d_symbol)
    {
    case Dot:
      p->setBrush(c);
      p->setPen(NoPen);
      rb = double(qwtMax(radius - 4 - d_dotWidth / 2, 0));
      p->drawEllipse(xm - int(rint(sa * rb)) - d_dotWidth / 2,
                     ym - int(rint(ca * rb)) - d_dotWidth / 2,
                     d_dotWidth, d_dotWidth);
      break;
    case Line:
      pn.setColor(c);
      pn.setWidth(2);
      p->setPen(pn);
      
      rb = qwtMax(double((radius - 4) / 3.0), 0.0);
      re = qwtMax(double(radius - 4), 0.0);
      
      p->drawLine( xm - int(rint(sa * rb)),
                   ym - int(rint(ca * rb)),
                   xm - int(rint(sa * re)),
                   ym - int(rint(ca * re)));
      break;
    } 
}
^^^
This is line 452.


        Any light you can shed on this error would be greatly appreciated.  I
have also noticed at times I will get a similar "Interal compiler error" but I
will just restart the compilation and it will run smoothly.  I'm not sure if
the information I've provided is enough, so if more is needed, I can provide
it.  Thank you for your time.

-Scott



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-07-17 21:46 The Houstons
  0 siblings, 0 replies; 387+ messages in thread
From: The Houstons @ 1998-07-17 21:46 UTC (permalink / raw)
  To: egcs-bugs

While trying to compile the linux wordprocessor Maxwelll the following
error occured. I have attached the exact source files for testing. The
maxwell source file tarball is on sunsite.

make[2]: Entering directory `/usr/local/temp/maxwell-0.5.3/db/client'
cc -pipe -Wall -c -MD -I/usr/local/temp/maxwell-0.5.3/include -I.
-I/usr/i486-linux/include -I/usr/X11R6/include/ -I/usr/include/X11 -g
-Wno-unused -o /usr/local/temp/maxwell-0.5.3/tmp/mx_db_client.o
mx_db_client.C
/usr/local/temp/maxwell-0.5.3/include/geometry.h: In method `class
mx_point mx_rect::size() const':
In file included from
/usr/local/temp/maxwell-0.5.3/include/mx_geometry.h:22,
                 from
/usr/local/temp/maxwell-0.5.3/include/mx_spline.h:33,
                 from
/usr/local/temp/maxwell-0.5.3/include/mx_area.h:37,
                 from
/usr/local/temp/maxwell-0.5.3/include/mx_text_area.h:36,
                 from
/usr/local/temp/maxwell-0.5.3/include/mx_sheet.h:40,
                 from /usr/local/temp/maxwell-0.5.3/include/mx_doc.h:44,

                 from
/usr/local/temp/maxwell-0.5.3/include/mx_wp_doc.h:39,
                 from mx_db_client.C:39:
/usr/local/temp/maxwell-0.5.3/include/geometry.h:1078: Internal compiler
error.
/usr/local/temp/maxwell-0.5.3/include/geometry.h:1078: Please submit a
full bug report to `egcs-bugs@cygnus.com'.
cpp: output pipe has been closed
make[2]: *** [/usr/local/temp/maxwell-0.5.3/tmp/mx_db_client.o] Error 1
make[2]: Leaving directory `/usr/local/temp/maxwell-0.5.3/db/client'
make[1]: *** [/usr/local/temp/maxwell-0.5.3/db/client.All] Error 2
make[1]: Leaving directory `/usr/local/temp/maxwell-0.5.3/db'
make: *** [/usr/local/temp/maxwell-0.5.3/db.All] Error 2

------------------------------------------------------------

Shawn Houston
houston@mosquitonet.com
http://www.mosquitonet.com/~houston/
>From law@cygnus.com Fri Jul 17 22:26:00 1998
From: Jeffrey A Law <law@cygnus.com>
To: trouble@webfyre.com
Cc: egcs-bugs@cygnus.com
Subject: Re: EGCS & FreeBSD 2.2.6 
Date: Fri, 17 Jul 1998 22:26:00 -0000
Message-id: <926.900739347@hurl.cygnus.com>
References: <35AF2ADE.55F8FBED@iwebb.com>
X-SW-Source: 1998-07/msg00501.html
Content-length: 1078

  In message < 35AF2ADE.55F8FBED@iwebb.com >you write:
  > It just spawns errors messages with warnings galore during the build
  > process of  egce-19980608 under freebsd 2.2.6
This is normal, we have enabled extra warnings for the development
tree to aid in finding and fixing bugs.  In fact, this work has exposed
many bugs in the egcs tree that we have fixed.

  > is this even stable enuff to install, ive heard some nasty rumours that
  > it wount even recompile a freebsd 2.2.6 kernel let alone much else,
We won't be able to do anything if it's "nasty rumors".  If indeed egcs
will not compile freebsd 2.2.6, then someone needs to file a bug report
on the problem or it will not get fixed.

  > Ive
  > also tried it under redhat 5.1, wount even build  ..... is this in the
  > process of being fixed???
In general, snapshots may be unstable.  We make no promises about the
stability of snapshots.  They may not even build.  If you want stable
code, use the releases.

We are in the process of stabilizing a branch in the source tree which
will become egcs-1.1.


jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
       [not found] <199807101406.PAA05096@medphys.ucl.ac.uk>
  1998-07-10 11:47 ` Alexandre Oliva
@ 1998-07-10 15:54 ` Gerald Pfeifer
  1 sibling, 0 replies; 387+ messages in thread
From: Gerald Pfeifer @ 1998-07-10 15:54 UTC (permalink / raw)
  To: Martin Schweiger; +Cc: egcs-bugs

On Fri, 10 Jul 1998, Martin Schweiger wrote:
> I have mailed this bug report to bug-g++@prep.ai.mit.edu, since I
> encountered it on g++ 2.8.1, but got no reply.

That's seems to be quite usual, actually. :-(
Welcome to the world of egcs! :-)

> A colleague who uses egcs 1.0.3 tells me that he gets the same
> compiler error, so I post this report to you as well in the hope you
> will prove more responsive ...

[1] :-)

> The following file
> 
> ************* begin file gbug.cc *****************
> [...]
> produces these compiler messages:
> 
> g++ gbug.cc -o gbug.o
> gbug.cc: In method `void A<T>::mthd()':
> gbug.cc:10: Internal compiler error.
> gbug.cc:10: Please submit a full bug report to `egcs-bugs@cygnus.com'.

You did not mention which platform you are using, but current snapshots
of egcs, namely egcs-2.91.47 19980710 on sparc-sun-solaris2.5.1 and
egcs-2.91.46 19980707 on i386-unknown-freebsd2.2.6, compile your code
without any problem.

> Do you have a solution to this problem? Any response, in particular a
> patch, if one is already available for this, would be greatly appreciated.

I suggest you either wait for egcs-1.1 (which _might_ be released within a
month) or give a current snapshot (FTP or CVS) a try. Either should work
for you; please check the web pages at http://egcs.cygnus.com/ for further
information on egcs-1.1 resp. on how to obtain snapshots.

Hope this helps!
Gerald

[1] Bug reported: Date: Fri, 10 Jul 1998 15:06:05 +0100 (BST)
    Time to respond: ~8 hours
    Time to fix: -0 hours
-- 
Gerald Pfeifer (Jerry)      Vienna University of Technology
pfeifer@dbai.tuwien.ac.at   http://www.dbai.tuwien.ac.at/~pfeifer/




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
       [not found] <199807101406.PAA05096@medphys.ucl.ac.uk>
@ 1998-07-10 11:47 ` Alexandre Oliva
  1998-07-10 15:54 ` Gerald Pfeifer
  1 sibling, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-07-10 11:47 UTC (permalink / raw)
  To: Martin Schweiger; +Cc: egcs-bugs

Martin Schweiger <martins@medphys.ucl.ac.uk> writes:

> I post this report to you as well in the hope you will prove more
> responsive ...

> template<class T> class A { public: A(){} void mthd(); };
> template<class T> void A<T>::mthd() { struct { double d; } t; }
> void main() { A<double> a; }

> gbug.cc:10: Internal compiler error.

This is fixed in the latest development snapshot of egcs.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-07-07 22:53 Mark Hahn
  0 siblings, 0 replies; 387+ messages in thread
From: Mark Hahn @ 1998-07-07 22:53 UTC (permalink / raw)
  To: egcs-bugs

I accidentally created this bogus C++ construct:

class foo {
  public:
    foo() {}
    ~foo();
};
foo::~foo(int bar) {}

to which egcs-2.91.41 19980615 (gcc2 ss-980502 experimental) on my
Linux RedHat 5.1, kernel 2.1.108, dual P6/200 says:

bug.C: In method `foo::~foo()':
bug.C:6: Internal compiler error.
bug.C:6: Please submit a full bug report to `egcs-bugs@cygnus.com'.

is this report full enough?

regards, mark hahn.
-- 
operator may differ from spokesperson.	hahn@neurocog.lrdc.pitt.edu
					http://neurocog.lrdc.pitt.edu/~hahn/


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 1998-07-07 21:18 H.J. Lu
  0 siblings, 0 replies; 387+ messages in thread
From: H.J. Lu @ 1998-07-07 21:18 UTC (permalink / raw)
  To: egcs-patches, egcs-bugs; +Cc: Georg.Baum

The problem is the register on the stack reg-stack.c is virtual. That
is why we have get_hard_regnum () to get the hard register number from
the virtual register.


-- 
H.J. Lu (hjl@gnu.org)
---
Tue Jul  7 21:08:22 1998  H.J. Lu  (hjl@gnu.org)

	* reg-stack.c (straighten_stack): Handle the virtual register
	stack.

--- ../../../import/egcs/gcc/reg-stack.c	Mon Apr 20 08:23:00 1998
+++ ./reg-stack.c	Tue Jul  7 21:05:56 1998
@@ -297,7 +297,7 @@ mark_regs_pat (pat, set)
      SET_HARD_REG_BIT (*set, regno);
 }
 \f
-/* Reorganise the stack into ascending numbers,
+/* Reorganise the virtual register stack into ascending numbers,
    after this insn.  */
 
 static void
@@ -305,15 +305,27 @@ straighten_stack (insn, regstack)
      rtx insn;
      stack regstack;
 {
-  struct stack_def temp_stack;
-  int top;
+  if (regstack->reg_set)
+    {
+      struct stack_def temp_stack;
+      int top;
+      int first_start_reg;
+
+#if defined(__GNUC__) && __GNUC__ >= 2 && defined (__OPTIMIZE__)
+      first_start_reg = ffs (regstack->reg_set) - 1;
+#else
+      first_start_reg = 0;
+      for (top = regstack->reg_set; (top & 1) == 0; top >>= 1)
+	first_start_reg++;
+#endif
 
-  temp_stack.reg_set = regstack->reg_set;
+      temp_stack.reg_set = regstack->reg_set;
 
-  for (top = temp_stack.top = regstack->top; top >= 0; top--)
-     temp_stack.reg[top] = FIRST_STACK_REG + temp_stack.top - top;
+      for (top = temp_stack.top = regstack->top; top >= 0; top--)
+	temp_stack.reg[top] = first_start_reg + temp_stack.top - top;
   
-  change_stack (insn, regstack, &temp_stack, emit_insn_after);
+      change_stack (insn, regstack, &temp_stack, emit_insn_after);
+    }
 }
 \f
 /* Return non-zero if any stack register is mentioned somewhere within PAT.  */
@@ -2407,11 +2419,9 @@ subst_stack_regs_pat (insn, regstack, pa


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-07-06 12:15 Georg Baum
@ 1998-07-06 19:02 ` Horst von Brand
  0 siblings, 0 replies; 387+ messages in thread
From: Horst von Brand @ 1998-07-06 19:02 UTC (permalink / raw)
  To: Georg Baum; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1688 bytes --]

Georg Baum <Georg.Baum@post.rwth-aachen.de> said:
> compiling the attached file gives me an internal compiler error, if I
> compile with g++ -c -O2 test.cpp. with -O or without optimizing it
> compiles well.
> 
> My system is Linux 2.0.34 with libc-5.4.44, running on a PII 233 / 64 MB
> RAM.
> config.guess: i686-pc-linux-gnulibc1

[snip]

> class QArray 
> {
> public:
>   QArray();
>   ~QArray(){}
>   char       *at( unsigned index ) const;
>   unsigned  size()    const	{ return 1/sizeof(double); }
>   double& operator[]( int i ) const
>     { return (double &)(*(double *)QArray::at(i*sizeof(double))); }
> };
> 
> 
> 
> double	afxfn(double x,QArray points,int sym)
> {
> 	unsigned	t;
> 	double	xa,ya,xb,yb;
> 	double	xd,yd;
> 	double	y,d,xx,xs;
> 
> 	sym = !sym;
> 	xx = 1.0;
> 	xs = 1.0;
> 
> 	xa = points[0];
> 	ya = points[1];
> 
> 	for(t = 1;t < (points.size() / 2) - 1;t++)
> 	{
> 		xd = points[t * 2];
> 		yd = points[t * 2 + 1];
> 		xb = xd;
> 		yb = yd;
> 
> 
> 		xa = xb;
> 		ya = yb;
> 	}
> 	xb = points[points.size() - 2];
> 	yb = points[points.size() - 1];
> 
> 	if(sym)
> 	{
> 		d = (yb - ya) / (xb - xa);
> 		y = ya + d * (xs - xa);
> 
> 		return y * 2.0 - 1.0;
> 	}
> 
> 	d = (yb - ya) / (xb - xa);
> 	y = ya + d * (xx - xa);
> 
> 	return y;
> }

For i586, linux-2.1.108, glibc-2.0.94, binutils-2.9.1.0.7 with
egcs-19980628 I have:

[root@sleipnir /tmp]# c++ -O2 -c tst.cc
../../egcs-19980628/gcc/reg-stack.c:2885: Internal compiler error in
function change_stack


-O3 gives the same, -O is silent.
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616







^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-07-06 12:15 Georg Baum
  1998-07-06 19:02 ` Horst von Brand
  0 siblings, 1 reply; 387+ messages in thread
From: Georg Baum @ 1998-07-06 12:15 UTC (permalink / raw)
  To: egcs-bugs

Hi,

compiling the attached file gives me an internal compiler error, if I
compile with g++ -c -O2 test.cpp. with -O or without optimizing it
compiles well.

My system is Linux 2.0.34 with libc-5.4.44, running on a PII 233 / 64 MB
RAM.
config.guess: i686-pc-linux-gnulibc1

g++ -v: Reading specs from
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnulibc1/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

I use egcs-1.0.3a with libg++-2.8.1-980505. I configured egcs with: 
configure --enable-shared --prefix=/usr/local/egcs
--exec-prefix=/usr/local/egcs
and bootstrapped with gcc-2.7.3 without problems. gcc lives in
/usr/local/gcc. I choose between the two compilers with a little script,
which sets some symlinks in /usr/local/bin, /usr/local/include and
/usr/local/lib. I have no other compiler installed in /usr or something.

Compiling the same file with gcc: no problem. The file is an extract
from the file afx.cpp, found in ksoundsys-0.0.29 (available on
ftp.kde.org/pub/kde/apps/multimedia) and a little bit of code from
qt-1.33 (www.troll.no). I tried to reduce the code, and to not include
any headers

I hope this is enough information to reproduce and remove the bug.

Georg

class QArray 
{
public:
  QArray();
  ~QArray(){}
  char       *at( unsigned index ) const;
  unsigned  size()    const	{ return 1/sizeof(double); }
  double& operator[]( int i ) const
    { return (double &)(*(double *)QArray::at(i*sizeof(double))); }
};



double	afxfn(double x,QArray points,int sym)
{
	unsigned	t;
	double	xa,ya,xb,yb;
	double	xd,yd;
	double	y,d,xx,xs;

	sym = !sym;
	xx = 1.0;
	xs = 1.0;

	xa = points[0];
	ya = points[1];

	for(t = 1;t < (points.size() / 2) - 1;t++)
	{
		xd = points[t * 2];
		yd = points[t * 2 + 1];
		xb = xd;
		yb = yd;


		xa = xb;
		ya = yb;
	}
	xb = points[points.size() - 2];
	yb = points[points.size() - 1];

	if(sym)
	{
		d = (yb - ya) / (xb - xa);
		y = ya + d * (xs - xa);

		return y * 2.0 - 1.0;
	}

	d = (yb - ya) / (xb - xa);
	y = ya + d * (xx - xa);

	return y;
}



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-07-03  3:46 vt
  0 siblings, 0 replies; 387+ messages in thread
From: vt @ 1998-07-03  3:46 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 594 bytes --]

[vt@vt vrmllib]$ make
/usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/opt/kde/include -I/usr/lib/qt/
include -I/usr/X11R6/include    -I../include  -O12 -march=pentium -fno-strengt
h-reduce -funroll-loops -c Background.cpp
../include/Background.h: In method `class Background & Background::operator =(
class Background &)':
In file included from Background.cpp:23:
../include/Background.h:81: Internal compiler error.
../include/Background.h:81: Please submit a full bug report to `egcs-bugs@cygn
us.com'.
make: *** [Background.o] Error 1

--
v. tiknius
vt@fermentas.lt
http://vt.fermentas.lt



[-- Attachment #2: Background.cpp.gz --]
[-- Type: application/x-gzip, Size: 3945 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-06-25 16:07 David Covey
  0 siblings, 0 replies; 387+ messages in thread
From: David Covey @ 1998-06-25 16:07 UTC (permalink / raw)
  To: egcs-bugs

Hello,
    I have been using egcs 1.0 for some months now without any problems
on a DEC Alpha/RedHat Linux (v.4.2) system. Today I encountered an error
in attempting to build the 'vis5d' application, specifically in building
the 'Mesa' graphics library. I upgraded the compiler to egcs-1.0.2 but
get the same error. The errors were 'internal compiler error' so I thought
I'd pass along the report. Details are attached below.
    Thanks for the support!
 - David Covey
   Geophysical Institute, University of Alaska Fairbanks
----------------

Linux ruff 2.0.30 #4 Mon Feb 9 12:12:26 EST 1998 alpha unknown
egcs-2.90.27 980315 (egcs-1.0.2 release)

----------------
Script started on Thu Jun 25 11:58:00 1998
ruff:/usr/local/src/vis5d-4.3/Mesa# pwd
/usr/local/src/vis5d-4.3/Mesa
ruff:/usr/local/src/vis5d-4.3/Mesa# make linux-alpha-elf
mkdir lib
mkdir: cannot make directory `lib': File exists
make: [linux-alpha-elf] Error 1 (ignored)
touch src/depend
touch src-glu/depend
cd src ; make linux-alpha-elf
make[1]: Entering directory `/usr/local/src/vis5d-4.3/Mesa/src'
make -w targets \
"GL_LIB = libMesaGL.so" \
"GLU_LIB = libMesaGLU.so" \
"GLUT_LIB = libglut.so" \
"TK_LIB = libMesatk.so" \
"AUX_LIB = libMesaaux.so" \
"CC = gcc" \
"CFLAGS = -ansi -pedantic -fPIC" \
"MAKELIB = ../mklib.linux" \
"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXi"
make[2]: Entering directory `/usr/local/src/vis5d-4.3/Mesa/src'
gcc -c -I../include -ansi -pedantic -fPIC drawpix.c
drawpix.c: In function `draw_color_pixels':
drawpix.c:873: internal error--unrecognizable insn:
(insn 4206 4203 4207 (set (reg:DI 22 $22)
        (plus:DI (reg:DI 15 $15)
            (const_int 37072))) -1 (nil)
    (nil))
gcc: Internal compiler error: program cc1 got fatal signal 6
make[2]: *** [drawpix.o] Error 1
make[2]: Leaving directory `/usr/local/src/vis5d-4.3/Mesa/src'
make[1]: *** [linux-alpha-elf] Error 2
make[1]: Leaving directory `/usr/local/src/vis5d-4.3/Mesa/src'
make: *** [linux-alpha-elf] Error 2

-----------(I tried again, with a slightly different target)----------

ruff:/usr/local/src/vis5d-4.3/Mesa# make linux-alpha
mkdir lib
mkdir: cannot make directory `lib': File exists
make: [linux-alpha] Error 1 (ignored)
touch src/depend
touch src-glu/depend
cd src ; make linux-alpha
make[1]: Entering directory `/usr/local/src/vis5d-4.3/Mesa/src'
make -w targets \
"GL_LIB = libMesaGL.a" \
"GLU_LIB = libMesaGLU.a" \
"GLUT_LIB = libglut.so" \
"TK_LIB = libMesatk.a" \
"AUX_LIB = libMesaaux.a" \
"CC = gcc" \
"CFLAGS = -O2 -pedantic -L/usr/X11R6/lib" \
"MAKELIB = ../mklib.ar-ruv" \
"XLIBS = -L/usr/X11R6/lib -lX11"
make[2]: Entering directory `/usr/local/src/vis5d-4.3/Mesa/src'
gcc -c -I../include -O2 -pedantic -L/usr/X11R6/lib blend.c
gcc: Internal compiler error: program cc1 got fatal signal 11
make[2]: *** [blend.o] Error 1
make[2]: Leaving directory `/usr/local/src/vis5d-4.3/Mesa/src'
make[1]: *** [linux-alpha] Error 2
make[1]: Leaving directory `/usr/local/src/vis5d-4.3/Mesa/src'
make: *** [linux-alpha] Error 2
ruff:/usr/local/src/vis5d-4.3/Mesa# exit

-------


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-06-23  4:43 Helmut Jarausch
  0 siblings, 0 replies; 387+ messages in thread
From: Helmut Jarausch @ 1998-06-23  4:43 UTC (permalink / raw)
  To: egcs-bugs

Hello,
if you are interested, here is a tiny source which triggers an
internal compiler error in
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

#include <math.h>

class Vector
{ double V[10];
  public:
  Vector()  { for (int i=0; i < 10; i++) V[i]=0.0; }
  double& operator[](int i) { return V[i-1]; }
  double  operator[](int i) const { return V[i-1]; }
};

template < typename PType, double Fct(double,PType) >
const Vector MV_Apply_P(const Vector& S, PType P)
{ Vector R(S.dim());
  for (int i= S.dim(); i >= 1; i--) R[i]= Fct(S[i],P);
  S.recycle();
  return R;
}

int main()
{ Vector A;
    for ( int i= 1; i <= 10; i++ ) A[i]= i;
    cout << MV_Apply_P<double,pow>(A,3) << endl;
}

Regards,


--
Helmut Jarausch
Lehrstuhl fuer Numerische Mathematik
Institute of Technology, RWTH Aachen
D 52056 Aachen, Germany





^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-06-19  7:35 Mark van Doesburg
  0 siblings, 0 replies; 387+ messages in thread
From: Mark van Doesburg @ 1998-06-19  7:35 UTC (permalink / raw)
  To: egcs-bugs

../../egcs-19980608/gcc/function.c:3266: Internal compiler error in function instantiate_virtual_regs_1

Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.40/specs
gcc version egcs-2.91.40 19980608 (gcc2 ss-980502 experimental)

System:
	intel pentium
	Linux 2.0.34
	libc 5.4.33


----------------------------------------------------------------------------
# 1 "ttt.cpp"
# 1 "fract.h" 1



typedef int int32;
typedef long long int64;

class fract {
	static const int shift=16;
	int32 d; 
public:
	fract() {}
	fract(int i) { d=i<<shift; }
	fract(double o) { d=(int)((1<<shift)*o+0.5); }

	operator bool() const { return d; }
	operator int() const { return d>>shift; }
	operator double() const { return (double)d/(1<<shift); }

	int32 &direct() { return d; }
	int32 fp() const { return d&((1<<shift)-1); }

	fract &operator=(fract f) { d=f.d; }
	fract &operator=(int f) { d=f<<shift; }
	fract &operator=(double f) { d=(int)((1<<shift)*f+0.5); }

	fract operator+(fract f) const { fract t; t.d=d+f.d; return t; }
	fract operator+(int f) const { fract t; t=*this+(fract)f; return t; }
	fract operator+(double f) const { fract t; t=*this+(fract)f; return t; }
	fract operator-(fract f) const { fract t; t.d=d-f.d; return t; }
	fract operator-(int f) const { fract t; t=*this-(fract)f; return t; }
	fract operator-(double f) const { fract t; t=*this-(fract)f; return t; }
	fract operator*(fract) const;
	fract operator*(int32 i) const { fract t; t.d=d*i; return t; }
	fract operator*(double i) const;
	fract operator/(fract f) const;
	fract operator/(int i) const { fract t; t.d=d/i; return t; }
	fract operator/(double i) const;
	fract operator-() const { fract t; t.d=-d; return t; }

	fract &operator+=(fract f) { d+=f.d; return *this; }
	fract &operator-=(fract f) { d-=f.d; return *this; }

	int operator<(fract f)	const { return d<f.d; }
	int operator<=(fract f)	const { return d<=f.d; }
	int operator>(fract f)	const { return d>f.d; }
	int operator>=(fract f)	const { return d>=f.d; }
	int operator!=(fract f)	const { return d!=f.d; }
	int operator==(fract f)	const { return d==f.d; } 

	int operator<(int i)	const { return *this<fract(i); }
	int operator<=(int i)	const { return *this<=fract(i); }
	int operator>(int i)	const { return *this>fract(i); }
	int operator>=(int i)	const { return *this>=fract(i); }
	int operator!=(int i)	const { return *this!=fract(i); }
	int operator==(int i)	const { return *this==fract(i); } 

	int operator<(double i)		const { return *this<fract(i); }
	int operator<=(double i)	const { return *this<=fract(i); }
	int operator>(double i)		const { return *this>fract(i); }
	int operator>=(double i)	const { return *this>=fract(i); }
	int operator!=(double i)	const { return *this!=fract(i); }
	int operator==(double i)	const { return *this==fract(i); } 
};

inline fract fract::operator*(fract f) const
{
	fract t; 
	t.d=((long long)d*f.d)>>shift; 
	return t; 
}

inline fract fract::operator*(double i) const 
{
	fract t; 
	t.d=(int32)(d*i+0.5); 
	return t; 
}

inline fract fract::operator/(fract f) const 
{
	fract t;
	t.d=(((int64)d<<shift)/f.d); 
	return t;
}

inline fract fract::operator/(double i) const 
{ 
	fract t; 
	t.d=(int)(d/i+0.5); 
	return t; 
}

inline int operator*(int i,fract f)
{
	return i*(int)f;
}

inline double operator*(double i,fract f)
{
	return i*(double)f;
}

inline int operator/(int i,fract f)
{
	return i/(int)f;
}

inline double operator/(double d,fract f)
{
	return d/(double)f;
}

inline int operator+(int i,fract f)
{
	return i+(int)f;
}

inline double operator+(double i,fract f)
{
	return i+(double)f;
}

inline int operator-(int i,fract f)
{
	return i-(int)f;
}

inline double operator-(double i,fract f)
{
	return i-(double)f;
}


# 1 "ttt.cpp" 2


test()
{
	fract left[4][3], right[4][3], M[3][3];
	fract t=M[1][0]+M[1][1]+M[1][2];
	right[0][1]=left[0][1]=t<0? t:(fract)0;
	right[1][1]=left[1][1]=t<0? (fract)0:t;
	right[2][1]=left[2][1]=t<0? (fract)0:t;
	right[3][1]=left[3][1]=t<0? (fract)0:t;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1998-06-15  9:26 Internal " Rubber_Buccaneer
@ 1998-06-15 10:56 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-06-15 10:56 UTC (permalink / raw)
  To: richardp; +Cc: egcs-bugs

Rubber Buccaneer <Rubber_Buccaneer@Galactic.Headquarters.org> writes:

> Just thought you ought to know... ;-)

Thanks for your report.  The latest snapshot of egcs says:

bug.cc:14: template-id `operator >><>' in declaration of primary template
bug.cc:20: template-id `operator <<<>' in declaration of primary template

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-06-15  9:26 Rubber_Buccaneer
  1998-06-15 10:56 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: Rubber_Buccaneer @ 1998-06-15  9:26 UTC (permalink / raw)
  To: egcs-bugs

Just thought you ought to know... ;-)

gcc -v
Reading specs from /mnt/vendor/solaris/gnu/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

uname -a
SunOS athene 5.5.1 Generic_103640-12 sun4u sparc SUNW,Ultra-60


g++ -c -g -Wall -I.  -o bug.o bug.cc
bug.cc:14: Internal compiler error.
bug.cc:14: Please submit a full bug report to `egcs-bugs@cygnus.com'.

bug.cc ---

#include <iostream>

template<int n>
class nTree
{
public:
  friend istream& operator>> <>( istream&, nTree&);
  friend ostream& operator<< <>( ostream&, nTree&);
  
};

template<int n>
istream& operator>> <>( istream &is, nTree<n> &nt)
{
  return is;
}

template<int n>
ostream& operator<< <>( ostream &os, nTree<n> &nt)
{
  os << nt._val << endl;
  for( int i=0; i<n; i++)
    if( nt._subTree[i])
      os << *nt._subTree[i];
  return os;
}

int main( int argc, char *argv[])
{
  nTree<2> theTree;
}


-- 


Ta ta fa noo,
	     The Rubber Buccaneer a.k.a. rap@maths.soton.ac.uk

###								      ###
# #      WWW page at http://www.maths.soton.ac.uk/rap/HomePage.html   # #
# #                                                                   # #
# #  			It's good stuff!			      # #
# #                                                                   # #
# #    Sub-sections of note:                                          # #
# #          Psychobilly database : rap/psycho.html                   # #
# #          The state of the nation : rap/State_of_the_Nation.html   # #
# #                                                                   # #
###								      ###


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-06-12  5:19 internal " P.C.A.van.Gool
@ 1998-06-12 16:00 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-06-12 16:00 UTC (permalink / raw)
  To: P.C.A.van.Gool; +Cc: egcs-bugs

P C A van Gool <pcah7@fel.tno.nl> writes:

> When I try to compile the enclosed source with `g++ -c dummy.cc' it
> compiles. However when I try it with `g++ -c -g dummy.cc' I get an internal
> compiler error. I then tried it with egcs-1.0.2 and egcs-1.0.3a and got the
> same result. The dummy.cc file is the result of `g++ -E ...'.

Thanks for your report.  This problem is fixed in the latest snapshot
of egcs (tested on irix6.3, where I could reproduce the problem with
1.0.3a)

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-06-12  5:19 P.C.A.van.Gool
  1998-06-12 16:00 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: P.C.A.van.Gool @ 1998-06-12  5:19 UTC (permalink / raw)
  To: egcs-bugs

Hi there,

I recently installed egcs-1.0.1 on an Irix 6.2 machine (uname -a = `IRIX ebfsg4
6.2 03131015 IP22'). gcc -v gives:

Reading specs from
/usr/local/lib/gcc-lib/mips-sgi-irix6.2/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

When I try to compile the enclosed source with `g++ -c dummy.cc' it
compiles. However when I try it with `g++ -c -g dummy.cc' I get an internal
compiler error. I then tried it with egcs-1.0.2 and egcs-1.0.3a and got the
same result. The dummy.cc file is the result of `g++ -E ...'.

`g++ -g -v dummy.cc' gives:

ebfsg4:/s00sn1/pcah7 115 > g++ -g -v dummy.cc  
Reading specs from
/usr/local/lib/gcc-lib/mips-sgi-irix6.2/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
 /usr/local/lib/gcc-lib/mips-sgi-irix6.2/egcs-2.90.23/cpp -lang-c++ -v
-iprefix
/usr/remote/gnu/lib/gcc-lib/sparc-sun-solaris2/2.4.5/mips-sgi-irix6.2/egcs-2.90.23/ -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90
-Dunix -Dmips -Dsgi -Dhost_mips -DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4
-D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix__ -D__mips__
-D__sgi__ -D__host_mips__ -D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__
-D_LONGLONG -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D__unix -D__mips -D__sgi
-D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4)
-Acpu(mips) -Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -g
-D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS -D__SIZE_TYPE__=unsigned
int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__ -D_SGI_SOURCE -D_MIPS_FPSET=32
-D_MIPS_ISA=_MIPS_ISA_MIPS3 -D_ABIN32=2 -D_MIPS_SIM=_ABIN32
-D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 -D_COMPILER_VERSION=601
-U__mips -D__mips=3 -D__mips64 dummy.cc /var/tmp/cca002Yz.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) [AL 1.1, MM 40]
SGI running IRIX 6.x
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++
 /usr/local/include
 /usr/local/mips-sgi-irix6.2/include
 /usr/local/lib/gcc-lib/mips-sgi-irix6.2/egcs-2.90.23/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/mips-sgi-irix6.2/egcs-2.90.23/cc1plus
/var/tmp/cca002Yz.ii -quiet -dumpbase dummy.cc -g -version -o
/var/tmp/cca002Yz.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (mips-sgi-irix6.2)
compiled by CC.
CountryObject.cc:327: Internal compiler error.
CountryObject.cc:327: Please submit a full bug report to
`egcs-bugs@cygnus.com'.


If you needs any more info please let me know. Thanks in advance.

Paul

begin 644 dummy.cc.gz
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
C&=Z2#%/;^].E-`I%E[BQ8(5TMR[W;0$R+OX_`S'[^^3E`0!8
`
end
-- 
When anyone says `theoretically,' they really mean `not really.'"
	-- David Parnas

internet   : vanGool@FEL.TNO.NL        Netherlands Organization for Applied
           : pvg@gnu.org               Scientific Research
                                       Physics and Electronics Laboratory
phone      : +31-70-3740260            PO Box 96864, 2509 JG the Hague
fax        : +31-70-3740652            The Netherlands


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1998-06-09 13:02 Internal " jlf
@ 1998-06-10  2:42 ` Alexandre Oliva
  0 siblings, 0 replies; 387+ messages in thread
From: Alexandre Oliva @ 1998-06-10  2:42 UTC (permalink / raw)
  To: jlf; +Cc: egcs-bugs

jlf  <jlfc@club-internet.fr> writes:

> template< class T > void sort( ) { struct { } c ; }

The latest snapshot of egcs compiles this code snippet successfully.

-- 
Alexandre Oliva
mailto:oliva@dcc.unicamp.br mailto:aoliva@acm.org
http://www.dcc.unicamp.br/~oliva
Universidade Estadual de Campinas, SP, Brasil



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-06-09 13:02 jlf
  1998-06-10  2:42 ` Alexandre Oliva
  0 siblings, 1 reply; 387+ messages in thread
From: jlf @ 1998-06-09 13:02 UTC (permalink / raw)
  To: egcs-bugs

When compiling the following (minimal) code :

template< class T >
void    sort( )
        {
            struct
            {
            } c ;
        }


uname -a
Linux linux 2.0.27 #5 Fri Dec 27 20:56:45 MET 1996 i486

gcc -v
Reading specs from
/usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)


I have encountered this error when compiling Doc++
http://www.zib.de/Visual/software/doc++/index.html
The real sort() function is at the end of the file
McSorter.h

Best regards.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-06-05  3:55 Cesar Talon
  0 siblings, 0 replies; 387+ messages in thread
From: Cesar Talon @ 1998-06-05  3:55 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 1235 bytes --]

System info:

Processor: i486DX 33MHz 
RAM: 20Mb
OS: Debian 2.0 Linux (libc6)

c++ version: 
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.90.28/specs
gcc version egcs-2.90.28 980423 (egcs-1.0.3 prerelease) 

It's a precompiled version from the debian binary-i386 tree.


PROBLEM:

While compiling the file pointer.cc from the apt-0.0.15 sources I got:

c++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I.. -I.. -I. -I. -I../include
-I../include -I../intl -I../intl  -g -O2 -c pointer.cc
./include/pkglib/dpointer.h: In method `void DPointer::malloc(unsigned int)':
In file included from pointer.cc:24:
./include/pkglib/dpointer.h:52: Internal compiler error.
./include/pkglib/dpointer.h:52: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [pointer.o] Error 1    

The files pointer.cc, pointer.h and pointer.icc are attached

If you need more information just tell me.

----------------------------------
Cesar Talon <cesar.talon@uam.es>
Laboratorio de Bajas Temperaturas
Universidad Autonoma de Madrid

Another Armenia, Belgium ... the weak innocents who always seem to be
located on a natural invasion route.
                -- Kirk, "Errand of Mercy", stardate 3198.4

----------------------------------

[-- Attachment #2: pointer.cc --]
[-- Type: text/x-c, Size: 6632 bytes --]

// -*- mode: cpp; mode: fold -*-
// Description								/*{{{*/
// $Id: pointer.cc,v 1.2 1997/05/13 06:07:00 jgg Exp $
/* ######################################################################
   
   Smart Pointer Class - Reference counted pointer implementation

   This is the non template base class for the smart pointer, it provides
   a basic set of functions for working with a smart pointers, including 
   the prepended PtrExtra structure.
   
   All allocations are done with sizeof(PtrExtra) bytes and a structure
   is placed at the start of the allocation that contains the reference 
   count and other information about the pointer.
   
   This source is placed in the Public Domain, do with it what you will
   It was originally written by Brian C. White.
   
   ##################################################################### */
									/*}}}*/
#include <stdlib.h>
#include <string.h>
#include <pkglib/pointer.h>
#include <pkglib/dpointer.h>
#include <system.h>

// Prepended structure
struct PtrExtra 
{
   unsigned short Cookie;
   size_t ArraySize;
   unsigned short LinkCount;
   unsigned short Flags;
};

// Usefull macros to extract PtrExtra
#define ExtraBytes sizeof(PtrExtra)
#define ptrInfo(p) (((PtrExtra *)p) - 1)

// Random unique value
#define	PTRCOOKIE 0xA454

Pointer::Pointer(void)
{
   Ptr = NULL;
}

Pointer::Pointer(void* mem)
{
   if (mem == NULL) 
   {
      Ptr = NULL;
      return;
   }

   // If this happens someone goofed the souce code.
   if (ptrInfo(mem)->Cookie != PTRCOOKIE) 
      abort();
   
   Ptr = mem;
   ptrInfo(Ptr)->LinkCount++;
}

Pointer::Pointer(const Pointer& rhs)
{
   Ptr = rhs.Ptr;
   if (Ptr != NULL) 
      ptrInfo(Ptr)->LinkCount++;
}

Pointer::~Pointer(void)
{
   if (Ptr != NULL) 
      free();
}

bool Pointer::operator==(const Pointer& rhs) const
{
   return(Ptr == rhs.Ptr);
}

bool Pointer::operator!=(const Pointer& rhs) const
{
   return(Ptr != rhs.Ptr);
}

//*****************************************************************************
//
//	operator= -- copy from one smart pointer into another
//
Pointer &Pointer::operator=(const Pointer& rhs)
{
   // dont assign to itself
   if (this == &rhs) 
      return(*this);			

   // free old pointer memory
   if (Ptr != NULL) 
      free();
   
   // copy Ptr & inc link count
   if ((Ptr = rhs.Ptr) != NULL) 
      ptrInfo(Ptr)->LinkCount++;				
   return(*this);								// allow '=' chaining
}

//*****************************************************************************
//
//	AllocMem -- Allocate a given number of bytes (plus extras) to a pointer
//
void *Pointer::allocMem(size_t size, bool zeromem)
{
   const size_t	allocsize = ExtraBytes + size;
   
   void *ptr;
   ptr = (void*) new char[allocsize];

   // clear all allocated memory
   if (zeromem) 
      memset(ptr,0,allocsize);	

   // Advance pointer past extra fields
   ptr = (void *)(((PtrExtra *)ptr) + 1);
   
   // Assign the usual values into the pointer info 
   ptrInfo(ptr)->Cookie	= PTRCOOKIE;			
   ptrInfo(ptr)->ArraySize = 1;
   ptrInfo(ptr)->LinkCount = 1;
   ptrInfo(ptr)->Flags = FLAG(PTRF_CHANGED);
   
   return ptr;
}

//*****************************************************************************
//
//	FreeMem -- decrement the link count and if it goes to zero then deallocate
//	the corresponding memory.
//
void Pointer::freeMem(void* ptr)
{
   if (ptr != NULL) 
      if (--ptrInfo(ptr)->LinkCount == 0) 
	 delete [] (char *)ptrInfo(ptr);
}


//*****************************************************************************
//
//	Pointer utility functions:
//
//	ArraySize -- get/set the stored array size
//	LinkCount -- return the number of links to this memory
//	???PFlag  -- set/clr/chk the status of a pointer flag
//
void Pointer::arraySize(unsigned int size)
{
   if (Ptr) 
      ptrInfo(Ptr)->ArraySize = size;
}

unsigned int Pointer::arraySize(void) const
{
   return Ptr ? ptrInfo(Ptr)->ArraySize : 0;
}

int Pointer::linkCount(void) const
{
   return Ptr ? ptrInfo(Ptr)->LinkCount : 0;
}

void Pointer::setFlag(int F)
{
   if (Ptr) 
      SETFLAG(ptrInfo(Ptr)->Flags,F);
}

void Pointer::clrFlag(int F)
{
   if (Ptr) 
      CLRFLAG(ptrInfo(Ptr)->Flags,F);
}

bool Pointer::chkFlag(int F) const
{
   return Ptr ? CHKFLAG(ptrInfo(Ptr)->Flags,F) : false;
}

//*****************************************************************************
//
//	Malloc -- allocate n bytes of memory, copy data if necessary
//
void Pointer::malloc(size_t size, const void* memory)
{
   if (Ptr != NULL) 
      free();
   Ptr = allocMem(size, memory == NULL);
   if (memory != NULL) 
      memcpy(Ptr,memory,size);
}

//*****************************************************************************
//
//	Free -- deallocate memory
//
void Pointer::free(void)
{
   freeMem(Ptr);
   Ptr = NULL;
}

//*****************************************************************************
//
//	Resize -- change size of memory, keep data intact
//
void Pointer::resize(size_t oldsize, size_t newsize)
{
   void *newptr;
   void *oldptr;
   
   // create pointers of a type easier to work with, calculate size
   oldptr = Ptr;
   newptr = allocMem(newsize);

   // copy over old flags & data if available
   if (Ptr != NULL) 
   {
      ptrInfo(newptr)->Flags |= ptrInfo(oldptr)->Flags;
      memcpy(newptr,oldptr,MIN(oldsize,newsize));
   }
   
   // change internal pointer and unlink old memory 
   Ptr = (void*)newptr;
   freeMem(oldptr);
}


/*---------------------------------------------------------------------------*/


DPointer::DPointer(void)
{
   dPtr.New();
}

DPointer::DPointer(const DPointer& rhs)
{
   dPtr = rhs.dPtr;
}

DPointer::~DPointer(void)
{
   dPtr.Delete();
}

DPointer& DPointer::operator=(const DPointer& rhs)
{
   // dont assign to itself
   if (this == &rhs) 
      return(*this);			

   // copy (smart) pointer
   dPtr = rhs.dPtr;							
   return *this;
}

DPointer& DPointer::operator=(const Pointer& rhs)
{
   // copy into second pointer
   (*dPtr) = rhs;
   return *this;
}

bool DPointer::operator==(const DPointer& rhs) const
{
   return dPtr == rhs.dPtr || *dPtr == *rhs.dPtr;
}

bool DPointer::operator!=(const DPointer& rhs) const
{
   return dPtr != rhs.dPtr && *dPtr != *rhs.dPtr;
}

bool DPointer::operator==(const Pointer& rhs) const
{
   return *dPtr == rhs;
}

bool DPointer::operator!=(const Pointer& rhs) const
{
   return *dPtr != rhs;
}

bool DPointer::operator!(void) const
{
   return !dPtr && !(*dPtr);
}

bool DPointer::isValid(void) const
{
   return dPtr.isValid() && (*dPtr).isValid();
}

bool DPointer::isNull(void) const
{
   return dPtr.isNull() || (*dPtr).isNull();
}

[-- Attachment #3: pointer.h --]
[-- Type: text/x-c++, Size: 6997 bytes --]

// -*- mode: cpp; mode: fold -*-
// Description								/*{{{*/
// $Id: pointer.h,v 1.8 1997/08/18 20:49:34 tom Exp $
/* ######################################################################
   
   Smart Pointer Class - Reference counted pointer implementation

   This is a safe pointer type.  It should eliminate memory leaks because the
   destructor will automatically deallocate memory when no more pointers to
   the allocated memory exist. Be wary of creating loops of smartpointers, 
   if a linked ring is generated (circular linked list) then it is possible 
   to create a memory leak.
   
   Passing of smart pointers by value is fast and very safe. The pointers
   are not copy on write so they closely emulate normal pointers.

   Copying smart-pointers into normal pointers could cause problems.  If doing
   so is necessary, make sure the regular pointer goes out of scope before the
   smart-pointer.

   Additionally, this class will allow up to 16 individual flags to be set on
   each memory space. A "memory modified" flag is defined here, but it is set
   automatically _only_ when a 'Malloc' or 'New' is done! The routine that
   is making the changes must set it manually.
   
   This source is placed in the Public Domain, do with it what you will
   It was originally written by Brian C. White.
   
   ##################################################################### */
									/*}}}*/
// Header section: pkglib
#ifndef PKGLIB_POINTER_H
#define PKGLIB_POINTER_H

#include <stddef.h>
#include <new.h>
#include <defalloc.h>    // STL

/* Pointer flag definitions -- these occupy the flag bits that are
   available under a smart-pointer.  These flags are accessed via the
   smart-pointer member functions 'SetFlag', 'ClrFlag', and 'ChkFlag'. */
#define	PTRF_CHANGED	15		// Standard "memory modified" flag
#define PTRF_INVALID	14		// Memory is now invalid

// Non template base class to help reduce instantiation overhead
class Pointer 
{
   protected:
   void *Ptr;			// pointer (cast appropriately when needed)
   
   // Allocation/Deallocation
   void	arraySize(unsigned int i);
   static void *allocMem(size_t size, bool zero=true);	
   static void freeMem(void *);

   public:
   
   // Comparison operators
   Pointer &operator =(const Pointer& rhs);
   bool	operator ==(const Pointer& rhs) const;
   bool	operator !=(const Pointer& rhs) const;
   bool	operator !(void) const {return Ptr != 0;};

   // Cast to void operators
   operator const void*() const	{return Ptr;};
   operator void*() {return(Ptr);};
   
   // Flags
   bool	isValid(void) const {return Ptr != 0;};
   bool	isNull(void) const {return Ptr == 0;};
   bool	isDirty(void) const {return chkFlag(PTRF_CHANGED);};
   void	clean(void) {clrFlag(PTRF_CHANGED);};
   void	dirty(void) {setFlag(PTRF_CHANGED);};
   void	setFlag(int f);
   void	clrFlag(int f);
   bool	chkFlag(int f) const;

   // Allocation
   unsigned int	arraySize(void) const;
   int	linkCount(void)	const;
   void	malloc(size_t size,const void *memory = 0);
   void free(void);
   void	resize(size_t oldsize,size_t newsize);  

   Pointer(void);
   Pointer(void *mem);
   Pointer(const Pointer &rhs);
   ~Pointer(void);
};

/* Internal Smart-Pointer template.

   This is required because some compilers do not yet implement the new
   template spec so things like operator ->() are not possible with non 
   structure types. */
template <class Type> class IPtr : public Pointer 
{
   // Make these private to prevent accidental use
   void malloc(size_t size) {Pointer::malloc(size);};
   void free(void) {Pointer::free();};
   void	resize(size_t o, size_t n) {Pointer::resize(o,n);};
   
   // Dont allow assignment from void
   IPtr(void*);				
   
   public:
   
   // Access operators, * and []
   const Type &operator *() const {return *(Type*)Ptr;};
   const Type &operator [](unsigned int i) const {return ((Type*)Ptr)[i];};
   Type &operator *() {return *(Type*)Ptr;};
   Type &operator [](unsigned int i) {return ((Type*)Ptr)[i];};

   // Comparison
   bool	operator ==(const IPtr& rhs) const {return Ptr == rhs.Ptr;};
   bool	operator !=(const IPtr& rhs) const {return Ptr != rhs.Ptr;};
   
   // Casting
   operator const Type *() const {return  (Type*)(void*)Ptr;};
   operator Type *() {return (Type*)(void*)Ptr;};
   
   IPtr<Type> &New(unsigned int num = 1);
   void	Delete(void);
   void	resize(size_t newsize);

   IPtr(void) : Pointer() {};
   IPtr(Type* rhs) : Pointer(rhs) {};
   IPtr(const IPtr& rhs) : Pointer(rhs) {};
   ~IPtr(void) {Delete();};
};

/* Smart-Pointer Template

   This overloads -> to allow structure de-references. This smart
   pointer does not handle arrays. */
template <class Type> class SPtr : public Pointer 
{
   // Make these private to prevent accidental use
   void	malloc(size_t size) {Pointer::malloc(size);};
   void free(void) {Pointer::free();};
   void	resize(size_t o, size_t n) {Pointer::resize(o,n);};

   // dont allow assignment from void
//   SPtr(void*); 
   
   public:
   
   // Dereference operators
   const Type& operator *(void) const {return *(Type*)Ptr;};
   const Type* operator->(void) const {return (Type*)Ptr;};
   Type& operator* (void) {return *(Type*)Ptr;};
   Type* operator->(void) {return (Type*)Ptr;};
   
   // Comparison
   bool operator ==(const SPtr& rhs) const {return Ptr == rhs.Ptr;};
   bool operator !=(const SPtr& rhs) const {return Ptr != rhs.Ptr;};

   // Cast
   operator const Type*() const {return (Type*) (void*)Ptr;};
   operator Type*() {return (Type*)(void*)Ptr;};

   // Assignment
   SPtr<Type> &operator =(const SPtr<Type>& rhs);

   // Creation
   SPtr<Type> &New();
   SPtr<Type> &New(const Type &rhs);
//   SPtr<Type> &New(void** buf);       Appears to be missing
   void Delete();
   
   SPtr() : Pointer() {};
   SPtr(Type* rhs) : Pointer(rhs) {};
   SPtr(const SPtr& rhs) : Pointer(rhs) {};
   ~SPtr() {Delete();}
   
   // These are defined, but not implemented by default.  Macros to produce
   // the required code can be found in "Ptrfuncs.h".
   void newSlots(unsigned int number);
   unsigned int slotCount(void);
   void resizeSlots(unsigned int number);
   unsigned int compactSlots(void);
};

/* Constant Smart Pointer
   Forces all dereferences to go through the change() member which sets the
   changed bit */
template <class Type> class CSPtr : public SPtr<Type> 
{  
   // dont allow assignment from void
   CSPtr(void*);

   public:

   // Constant dereference
   const Type &operator *(void) const {return *(Type*)Ptr;};
   const Type *operator->(void) const {return (Type*)Ptr;};
   operator const Type*() const {return (Type*)(void*)Ptr;};

   // Dynamic dereference
   Type* change(void)   
   { 
      setFlag(PTRF_CHANGED);
      return (Type*)Ptr;
   }

   // Construct/destruct
   CSPtr(void) : SPtr<Type>() {}
   CSPtr(Type* rhs) : SPtr<Type>(rhs)  {}
   CSPtr(const SPtr<Type>& rhs) : SPtr<Type>(rhs) {}
};

// Bring in template source for CSPtr and SPtr
#include <pkglib/pointer.icc>

#endif

[-- Attachment #4: pointer.icc --]
[-- Type: text/plain, Size: 1741 bytes --]

// -*- mode: cpp; mode: fold -*-
// Description								/*{{{*/
// $Id: pointer.icc,v 1.2 1997/08/18 20:49:34 tom Exp $
/* ######################################################################
   
   Smart Pointer Class - Reference counted pointer implementation

   Template member functions. Should only be included from pointer.h
   
   This source is placed in the Public Domain, do with it what you will
   It was originally written by Brian C. White.
   
   ##################################################################### */
									/*}}}*/

// Header section: pkglib
// Internal Smart-Pointer
template <class Type> IPtr<Type> &IPtr<Type>::New(unsigned int Num)
{
   malloc(Num*sizeof(Type));
   arraySize(Num);
   return *this;
}

template <class Type> void IPtr<Type>::Delete(void)
{
   // no harm if not checked
   if (Ptr == NULL) 
      return;	
   free();
}

template <class Type> void IPtr<Type>::resize(size_t newsize)
{
   Pointer::resize(arraySize()*sizeof(Type),newsize*sizeof(Type));
   arraySize(newsize);
}

// Smart-Pointer
template <class Type> SPtr<Type> &SPtr<Type>::operator= (const SPtr<Type>& rhs)
{
   if (this == &rhs) 
      return(*this);
   Delete();
   this->Pointer::operator=(rhs);
   return(*this);
}

template <class Type> SPtr<Type> &SPtr<Type>::New(void)
{
   Delete();
   malloc(sizeof(Type));
   construct((Type*)Ptr,Type());
   return *this;
}

template <class Type> SPtr<Type> &SPtr<Type>::New(const Type& rhs)
{
   Delete();
   malloc(sizeof(Type));
   construct((Type*)Ptr,rhs);
   return *this;
}

template <class Type> void SPtr<Type>::Delete(void)
{
   // no harm if not checked
   if (Ptr == NULL) 
      return;	
   
   if (linkCount() == 1) 
      destroy((Type*)Ptr);

   free();
}

^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-06-03 12:11 Jonathan Magid
  0 siblings, 0 replies; 387+ messages in thread
From: Jonathan Magid @ 1998-06-03 12:11 UTC (permalink / raw)
  To: egcs-bugs

Hi-

I'm using egcs 1.03:

$ g++ -v
Reading specs from /usr/local/lib/gcc-lib/i686-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)

and I got the following error message:

$ g++ -c jemvect.cc 
jemvect.cc:12: Internal compiler error.
jemvect.cc:12: Please submit a full bug report to `egcs-bugs@cygnus.com'.

>From putting the return type in the wrong place in a template method
definition:

T& template<class T> jemvect<T>::operator[] (int index) const {
}

instead of:

template<class T> T& jemvect<T>::operator[] (int index) const {
}

hope this was helpful.

cheers,
jem.




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-05-26  1:26 Maurizio Vitale
@ 1998-05-26 14:10 ` Martin von Loewis
  0 siblings, 0 replies; 387+ messages in thread
From: Martin von Loewis @ 1998-05-26 14:10 UTC (permalink / raw)
  To: vitale; +Cc: egcs-bugs

Hi Maurizio,

Thanks for your report. On egcs-2.91.32 19980525, I get

a.cc:9: type/value mismatch at argument 1 in template parameter list for `template <class C * const {anon}> D<{anon}>'
a.cc:9:   expected a constant of type `C *', got `T'
a.cc:9: syntax error before `;'
a.cc:9: warning: ANSI C++ forbids declaration `' with no type
a.cc:9: abstract declarator `int' used as declaration
a.cc: In function `int main()':
a.cc:12: `d' undeclared (first use this function)
a.cc:12: (Each undeclared identifier is reported only once
a.cc:12: for each function it appears in.)

So this seems to be fixed (although I think there is still some
discussion whether your example really foward-declares class C).

Martin


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-05-26 10:57 Glauco Cenciotti
  0 siblings, 0 replies; 387+ messages in thread
From: Glauco Cenciotti @ 1998-05-26 10:57 UTC (permalink / raw)
  To: egcs-bugs

I'm using egcs-release 1.0.2 in an SGI Onyx, and egcs release 1.0.3a on
a Pentium II 266 with linux 2.0.32.  Both of them give me this internal
compiler error in the line 169. The code that generates the error is
like this one:

template <class T, class dim>
class A
{
   typedef G<P,T>  D;

}

template <class T, class dim>
class B
{
  typedef     A<T,dim>     F;
  typedef     H<F>            C

  C::D           E;

}


Notice that using gcc 2.8.1 there is an error with the templates in the
same line that egcs doesn't give. I attach both the fiole with the given
errors. The short one is obtained using egcs, the second using gcc.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-05-26  1:26 Maurizio Vitale
  1998-05-26 14:10 ` Martin von Loewis
  0 siblings, 1 reply; 387+ messages in thread
From: Maurizio Vitale @ 1998-05-26  1:26 UTC (permalink / raw)
  To: egcs-bugs

Under 
mav> g++ -v
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.28/specs
gcc version egcs-2.91.28 19980508 (gcc2 ss-980502 experimental)

The following:

class T {
public: void f () {} };

template<class C*>
class D {
  void f () { C::f(); }
}

D<T> d;
main()
{
  d.f();
}

gives:

cd /home/mav/develop/router-src/c++-tests/
g++ -c bad-template.cc 
bad-template.cc:4: Internal compiler error.
bad-template.cc:4: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Compilation exited abnormally with code 1 at Tue May 26 10:25:40


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
@ 1998-05-25  4:44 Niall Smart
  0 siblings, 0 replies; 387+ messages in thread
From: Niall Smart @ 1998-05-25  4:44 UTC (permalink / raw)
  To: michael pruett, Niall Smart

On May 24,  5:42pm, michael pruett wrote:
} Subject: Re: Internal compiler error.
> > Hi Micheal,
> > 
> > I downloaded ml-0.5.1 and compiled that file successfully using the
> > current version of egcs and 1.0.2-release on Linux.  I didn't configure
> > the package because I don't have time to download all the other libraries
> > that it needs.  Can you unpack the tarfile into a fresh directory, cd
> > src/kernel and "g++ -c MLPVertexArray.C -I.." (without configuring) and
> > tell me if that works?
> 
> Ok.  The command line you suggested works fine.  Change it to "g++ -O2 -c
> MLPVertexArray.C -I.." and you get an internal compiler error.  This is true
> with egcs 1.0.2 on Irix 6.3 and egcs 1.0.2 and 1.0.3a on Linux/i386 2.0.33.

Hi,

Ok, verified with 1.0.2 on Linux.  This bug does not appear to be present
in egcs-current or gcc 2.8.1.  I suggest you use one of them.

Regards,

Niall


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
@ 1998-05-24  6:48 Niall Smart
  0 siblings, 0 replies; 387+ messages in thread
From: Niall Smart @ 1998-05-24  6:48 UTC (permalink / raw)
  To: michael pruett, egcs-bugs

On May 23,  8:37pm, michael pruett wrote:
} Subject: Internal compiler error.
> While compiling a C++ file from the Moonlight Creator 0.5.1 distribution, I
> encountered the following error:
> 
> MLPVertexArray.C: In method `bool MLPVertexArray::_serialRead(class XDRFile *)':
> MLPVertexArray.C:64: Internal compiler error.
> MLPVertexArray.C:64: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Hi Micheal,

I downloaded ml-0.5.1 and compiled that file successfully using the
current version of egcs and 1.0.2-release on Linux.  I didn't configure
the package because I don't have time to download all the other libraries
that it needs.  Can you unpack the tarfile into a fresh directory, cd
src/kernel and "g++ -c MLPVertexArray.C -I.." (without configuring) and
tell me if that works?

Regards,

Niall


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-05-23 18:37 michael pruett
  0 siblings, 0 replies; 387+ messages in thread
From: michael pruett @ 1998-05-23 18:37 UTC (permalink / raw)
  To: egcs-bugs

While compiling a C++ file from the Moonlight Creator 0.5.1 distribution, I
encountered the following error:

MLPVertexArray.C: In method `bool MLPVertexArray::_serialRead(class XDRFile *)':
MLPVertexArray.C:64: Internal compiler error.
MLPVertexArray.C:64: Please submit a full bug report to `egcs-bugs@cygnus.com'.

So that's what I'm doing.  I'm using Irix 6.3 with egcs 1.0.2.

I realize it'd probably be useful to you to have copies of the code I'm
talking about.  If you're not already aware of this bug being fixed, how
shall I send the code to you?  In total, it's about 600 lines.  I can
attempt to whittle this selection down as well, but the code is not mine, so
this may take a while.

Please advise on how to proceed.

Thanks,
Michael Pruett


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-05-19  5:43 M.Stekelenburg
  0 siblings, 0 replies; 387+ messages in thread
From: M.Stekelenburg @ 1998-05-19  5:43 UTC (permalink / raw)
  To: egcs-bugs

(sorry same message again)
The error only occurse when -O2 is used.

The code below generates an internal compiler error with 
egcs-2.90.29 980515 (egcs-1.0.3 release)
When "return" is replaced with "break" it compiles fine.
If temp_list is defined in the class instead of local it also compiles
fine.

If more info is need please reply to me (i do not read the egcs-bugs list
regularly)

Max

PS this problem was reported before by Jitse Niesen for egcs 1.0.2 with a
MUCH longer listing.
----
#include <list>

template <class M> class ibase {
	public:
		virtual int DoCall(M&) ;
};

template <class M> class MessageSender {
	public:
		void Send(M& m);
};

template <class M> void MessageSender<M>::Send(M& m) {
	list<ibase<M> *> temp_list;
	for(list<ibase<M> *>::iterator iter = temp_list.begin();
	  iter != temp_list.end(); iter++) {
		if ((*iter)->DoCall(m)) return; 
	}
}

template<class M> class mMessage {
};

class mFetchURL : public mMessage<mFetchURL> {
};

template class MessageSender<mFetchURL>;






^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-05-19  5:34 M.Stekelenburg
  0 siblings, 0 replies; 387+ messages in thread
From: M.Stekelenburg @ 1998-05-19  5:34 UTC (permalink / raw)
  To: egcs-bugs

The code below generates an internal compiler error with 
egcs-2.90.29 980515 (egcs-1.0.3 release)
When "return" is replaced with "break" it compiles fine.
If temp_list is defined in the class instead of local it also compiles
fine.

If more info is need please reply to me (i do not read the egcs-bugs list
regularly)

Max

PS this problem was reported before by Jitse Niesen for egcs 1.0.2 with a
MUCH longer listing.
----
#include <list>

template <class M> class ibase {
	public:
		virtual int DoCall(M&) ;
};

template <class M> class MessageSender {
	public:
		void Send(M& m);
};

template <class M> void MessageSender<M>::Send(M& m) {
	list<ibase<M> *> temp_list;
	for(list<ibase<M> *>::iterator iter = temp_list.begin();
	  iter != temp_list.end(); iter++) {
		if ((*iter)->DoCall(m)) return; 
	}
}

template<class M> class mMessage {
};

class mFetchURL : public mMessage<mFetchURL> {
};

template class MessageSender<mFetchURL>;





^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-05-13 16:38 Pasha Murat
  0 siblings, 0 replies; 387+ messages in thread
From: Pasha Murat @ 1998-05-13 16:38 UTC (permalink / raw)
  To: egcs-bugs

	Hello EGCS gurus,

enclosed below is a full set of sources compilation of which 
(file SvxLadder.findClusters.cc) causes EGCS to bail out.

				Regards, Pasha.

--------------------------------------------------------------------------------
/data61/top/murat/test28/bug/b1>dir -l
total 192
drwxr-sr-x    2 murat    cdftop_d    4096 May 13 18:29 ./
drwxr-sr-x    3 murat    cdftop_d      20 May 13 18:16 ../
-rw-r--r--    1 murat    cdftop_d    8310 May 13 18:19 SvxLadder.findClusters.cc
-rw-rw-rw-    1 murat    cdftop_d   13303 May 13 18:28 SvxLadder.hh
-r--r--r--    1 murat    cdftop_d    3711 May 13 18:29 SvxReadoutConstants.hh
-r--r--r--    1 murat    cdftop_d     667 May 13 18:18 SvxTypes.hh
-r--r--r--    1 murat    cdftop_d    2221 May 13 18:29 TSvxReadout.hh
--------------------------------------------------------------------------------

/data61/top/murat/test28/bug/b1>/data61/top/murat/egcs-19980502/bin/gcc -v -c SvxLadder.findClusters.cc
Reading specs from /data61/top/murat/egcs-19980502/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.91.26/specs
gcc version egcs-2.91.26 19980502 (gcc2 ss-980401 experimental)
 /data61/top/murat/egcs-19980502/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.91.26/cpp -lang-c++ -v -isystem /data61/top/murat/egcs-19980502/bin/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -Dmips -Dsgi -Dhost_mips -DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D_MIPS_SIM=_MIPS_SIM_ABI32 -D_MIPS_SZPTR=32 -D__unix__ -D__mips__ -D__sgi__ -D__host_mips__ -D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__ -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D_MIPS_SIM=_MIPS_SIM_ABI32 -D_MIPS_SZPTR=32 -D__unix -D__mips -D__sgi -D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4) -Acpu(mips) -Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__ -D_SGI_SOURCE -D_LONGLONG -D_MIPS_FPSET=16 -D_MIPS_ISA=_MIPS_ISA_MIPS1 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 SvxLadder.findClusters.cc /var/tmp/cca0035E.ii
GNU CPP version egcs-2.91.26 19980502 (gcc2 ss-980401 experimental) [AL 1.1, MM 40] SGI running IRIX 5.x
#include "..." search starts here:
#include <...> search starts here:
 /data61/top/murat/egcs-19980502/include/g++
 /data61/top/murat/egcs-19980502/mips-sgi-irix5.3/include
 /data61/top/murat/egcs-19980502/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.91.26/include
 /usr/include
End of search list.
 /data61/top/murat/egcs-19980502/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.91.26/cc1plus /var/tmp/cca0035E.ii -quiet -dumpbase SvxLadder.findClusters.cc -version -o /var/tmp/cca0035E.s
GNU C++ version egcs-2.91.26 19980502 (gcc2 ss-980401 experimental) (mips-sgi-irix5.3) compiled by GNU C version 2.8.1.
/data61/top/murat/egcs-19980502/include/g++/stl_uninitialized.h: In function `struct SVX_CLUSTER_ * __uninitialized_copy<SVX_CLUSTER_ *, SVX_CLUSTER_ *, SVX_CLUSTER_>(struct SVX_CLUSTER_ *, struct SVX_CLUSTER_ *, struct SVX_CLUSTER_ *, struct SVX_CLUSTER_ *)':
/data61/top/murat/egcs-19980502/include/g++/stl_uninitialized.h:65: Internal compiler error.
/data61/top/murat/egcs-19980502/include/g++/stl_uninitialized.h:65: Please submit a full bug report to `egcs-bugs@cygnus.com'.
--------------------------------------------------------------------------------



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-05-07 20:06 Peter Ludemann
  0 siblings, 0 replies; 387+ messages in thread
From: Peter Ludemann @ 1998-05-07 20:06 UTC (permalink / raw)
  To: egcs-bugs

$ g++ -v
Reading specs from /net/wistaria/usr/local-wistaria/egcs/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

$ uname -a
SunOS wistaria 5.5.1 Generic_103640-12 sun4u sparc SUNW,Ultra-1

Error was:

McSorter.h:78: Internal compiler error.
McSorter.h:78: Please submit a full bug report to `egcs-bugs@cygnus.com'.

You can obtain the source from:

http://www.zib.de/Visual/software/doc++/docxxsrc.tar.gz

Edit the Makefile and run "make all".

$ rcsdiff -u Makefile 
===================================================================
RCS file: RCS/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- Makefile    1998/05/08 01:36:14     1.1
+++ Makefile    1998/05/08 01:36:57
@@ -5,11 +5,11 @@
     CC         = gcc
 #    CFLAGS    =  -DUNIX -g  # -DDEBUG
 #    CFLAGS    = -DUNIX -DNDEBUG -O2 
-    CCC        = CC
+#    CCC       = CC
 #    CFLAGS    = -DUNIX -g# -ggdb -DDEBUG 
     CFLAGS     = -DUNIX -DNDEBUG -O
 #    CFLAGS    = -DUNIX -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer
-#    CCC       = g++
+    CCC        = g++
     CXX        = $(CCC)
     C++FLAGS   = $(CFLAGS)
     CCFLAGS    = $(C++FLAGS)


Peter Ludemann                    +1.650.813.6806  (fax: +1.650.813.7400)
Manager, Aplication Components    ludemann@inxight.com
Inxight Software, Inc.            http://www.inxight.com
PAHV 118, 3400 Hillview Ave., Palo Alto, CA 94304 



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-04-29  5:31 Michel LESPINASSE
  0 siblings, 0 replies; 387+ messages in thread
From: Michel LESPINASSE @ 1998-04-29  5:31 UTC (permalink / raw)
  To: egcs-bugs

Hi,

while I was trying to learn templates using egcs-2.90.27 980315
(egcs-1.0.2 release), I got a compiler error, and was asked by the
compiler to mail my bug report to this list. So here is my report.

First of all, you must realize that I'm not at all an experienced C++
programmer, so I don't know which (if any) of my test sources
conform to the C++ standard.

Anyway. Compiler will complain if you try to compile this :

template <class T1,class T2>
class c 
{ 
}; 
 
template <class T> 
class c : public c<T,T> 
{ 
}; 

You can still get the desired effect using this :

template <class T1,class T2=T1> 
class c 
{ 
}; 
 
c<int,double> a; //works
c<int> b; 	 //works
 
Michel "Walken" LESPINASSE - Student at Ecole Centrale Paris (France)
           www              walken@via.ecp.fr
          (o o)            http://www.via.ecp.fr/~walken/
------oOO--(_)--OOo------ C0 9B E8 D8 44 43 D3 63  5A B4 BA 55 57 5B 19 6D
     "Just say know"     finger walken@studio.via.ecp.fr for complete PGP key



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-04-21 20:38 Shigeya Suzuki
  0 siblings, 0 replies; 387+ messages in thread
From: Shigeya Suzuki @ 1998-04-21 20:38 UTC (permalink / raw)
  To: egcs-bugs

I got following error on my current compiler for i386 environment in
my home:

/usr/local/egcs/include/g++/stl_uninitialized.h: In function `class scalarval * __uninitialized_copy<scalarval *, scalarval *, scalarval>(class scalarval *, class scalarval *, class scalarval *, class scalarval *)':
/usr/local/egcs/include/g++/stl_uninitialized.h:65: Internal compiler error.
/usr/local/egcs/include/g++/stl_uninitialized.h:65: Please submit a full bug report to `egcs-bugs@cygnus.com'.

I can't interpret and prepare 'full bug report' with this error
message. What kind of 'full bug report' do you want?

I can grab latest now, but it may better to sit here and reproduce
same problem. So i'm waiting instruction.

With exactly same source code, on sparc with snapshot around March 26
have no problem.  I attached results of:

	98/04/17 i386-pc-bsdi3.1 snapshot
and
	98/03/26 sparc-sun-solaris2.6 snapshot


Hope this help.

shigeya


============================== 

X-Mailer: Mew version 1.93b27 on Emacs 19.28 / Mule 2.3 (SUETSUMUHANA)
X-PGP-fingerprint: 2E E8 3F 74 B7 67 F9 3F  67 77 6E D3 8D BD 63 EF
Message-Id: <19980418090922D.shigeya@foretune.co.jp>
X-Dispatcher: imput version 980408
Lines: 87
Sender: owner-egcs@cygnus.com
X-Filter: mailagent [version 3.0 PL61] for shigeya@foretune.co.jp
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: egcs@cygnus.com
From: Shigeya Suzuki <shigeya@foretune.co.jp>
Subject: i386-pc-bsdi3.1 test result on CVS snapshot(1998/4/17 23:04 JST)
Date: Sat, 18 Apr 1998 09:09:22 +0900
Precedence: bulk


SOURCE

	CVS Snapshot on 1998/4/17 23:04 JST

PLATFORM

	i386-pc-bsdi3.1
	BSD/OS 3.1, patches up to M310-023 applied.

CONFIGURATION_PARAMETERS

	--prefix=/usr/local/egcs

UTILITIES

	GNU 'as' snapshot 980301

BOOTSTRAP_WITH

	gcc-2.7.2.1 (come with BSD/OS 3.1)

PATCHES

	(1) stddef.h patch
	    Which I sent to egcs-bugs on 5 Apr 1998
	    Message-Id: &lt; 19980405161337D.shigeya@foretune.co.jp &gt;



RESULT_SUMMARY

Test Run By shigeya on Sat Apr 18 08:00:19 1998
Native configuration is i386-pc-bsdi3.1

		=== libio Summary ===

# of expected passes		40

		=== libstdc++ Summary ===

# of expected passes		30

		=== gcc Summary ===

# of expected passes		6021
# of unexpected failures	11
# of expected failures		6
# of unsupported tests		8

		=== g++ Summary ===

# of expected passes		3785
# of unexpected failures	2
# of expected failures		74
# of untested testcases		7

		=== g77 Summary ===

# of expected passes		168


---


FAIL: line on gcc/testsuite/gcc.sum

FAIL: gcc.c-torture/execute/960218-1.c execution,  -O0 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O1 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O2 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O2 -fomit-frame-pointer -finline-functions 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O2 -fomit-frame-pointer -finline-functions -funroll-loops 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops 
FAIL: gcc.c-torture/execute/960218-1.c execution,  -O2 -g 
FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O0 
FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O1 
FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O2 
FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O2 -g 


---


FAIL: line on gcc/testsuite/g++.sum

FAIL: g++.jason/thunk2.C (test for excess errors)
FAIL: g++.mike/p9129.C  (test for errors, line 10)



============================== WORKING SNAPSHOT test result on solaris

To: egcs@cygnus.com
From: Shigeya Suzuki <shigeya@foretune.co.jp>
Subject: egcs-980321-ss result on sparc-sun-solaris2.6
Date: Thu, 26 Mar 1998 19:07:28 +0900
Precedence: bulk

Note:
	After I build and installed, I try to compile my application.
	cc1plus dumps core.. I'm now building from CVS tree to see change..

------------------------------

Source:
	980321 snapshot

Platform:
	sparc-sun-solaris2.6 (Japanese Environment)

Environment:
	binutils snapshot 980301

Patches applied:

config env:
	none

config flags:
	--with-gnu-as --with-gnu-ld
	--prefix=/usr/local/egcs

BOOT_CFLAGS:
	none

gcc used for bootstrapping
	gcc 2.7.2.3


		=== libio Summary ===

# of expected passes		40

		=== libstdc++ Summary ===

# of expected passes		24
# of unexpected failures	2
# of expected failures		4

		=== gcc Summary ===

# of expected passes		6002
# of unexpected failures	5
# of expected failures		6
# of unsupported tests		11

		=== g++ Summary ===

# of expected passes		3729
# of unexpected failures	11
# of unexpected successes	1
# of expected failures		79
# of untested testcases		6

		=== g77 Summary ===

# of expected passes		168


------------------------------

fgrep -v PASS g++.sum

------------------------------
Test Run By shigeya on Thu Mar 26 18:28:37 1998
Native configuration is sparc-sun-solaris2.6

		=== g++ tests ===

Running target unix
Running /local/src/egcs/egcs-980321/gcc/testsuite/g++.old-deja/old-deja.exp ...
XFAIL: g++.brendan/bit-fields2.C .* , (test for errors, line 11)
FAIL: g++.brendan/crash8.C (test for excess errors)
XFAIL: g++.bugs/900213_03.C missed by g++, warned by cfront, (test for errors, line 24)
XFAIL: g++.bugs/900215_02.C , (test for errors, line 44)
XFAIL: g++.bugs/900321_01.C , (test for errors, line 22)
XFAIL: g++.bugs/900321_01.C , (test for errors, line 23)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 25)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 29)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 35)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 39)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 43)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 45)
XFAIL: g++.bugs/900322_01.C , (test for errors, line 49)
XFAIL: g++.bugs/900402_01.C  (test for errors, line 12)
XFAIL: g++.bugs/900404_04.C , (test for errors, line 18)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 26)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 27)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 28)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 30)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 31)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 32)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 34)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 35)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 36)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 38)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 39)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 40)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 42)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 43)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 44)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 46)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 47)
XFAIL: g++.bugs/900428_01.C , (test for errors, line 48)
XFAIL: g++.bugs/900519_05.C  (test for bogus messages, line 10)
XFAIL: g++.bugs/900519_05.C  (test for bogus messages, line 16)
XFAIL: g++.bugs/900519_05.C  Execution test
XFAIL: g++.jason/access7.C - wrongly ambiguous static member call, (test for bogus messages, line 12)
XFAIL: g++.jason/ambig3.C - late parsing (test for bogus messages, line 12)
XFAIL: g++.jason/ambig3.C - late parsing (test for bogus messages, line 14)
XFAIL: g++.jason/cond.C , (test for errors, line 9)
XFAIL: g++.jason/cond.C , (test for errors, line 11)
XFAIL: g++.jason/cond.C , (test for errors, line 16)
XFAIL: g++.jason/opeq5.C  Execution test
XFAIL: g++.jason/pmf2.C failed conversion to method pointer (test for errors, line 12)
XFAIL: g++.jason/ref4.C - references to functions (test for bogus messages, line 4)
XFAIL: g++.jason/rfg16.C  (test for bogus messages, line 4)
XFAIL: g++.jason/rfg16.C  (test for bogus messages, line 5)
XFAIL: g++.jason/template18.C , (test for errors, line 9)
XFAIL: g++.law/access5.C .* , (test for errors, line 22)
XFAIL: g++.law/arg11.C (test for excess errors)
XFAIL: g++.law/arm14.C .* , (test for errors, line 21)
XFAIL: g++.law/arm2.C (test for excess errors)
XFAIL: g++.law/array2.C (test for excess errors)
XFAIL: g++.law/code-gen3.C  Execution test
XFAIL: g++.law/enum5.C (test for excess errors)
XFAIL: g++.law/friend4.C (test for excess errors)
XFAIL: g++.law/inline2.C (test for excess errors)
XFAIL: g++.law/missed-error1.C , (test for errors, line 10)
XFAIL: g++.law/operators29.C (test for excess errors)
XFAIL: g++.law/union1.C (test for excess errors)
XFAIL: g++.law/visibility22.C (test for excess errors)
XFAIL: g++.law/visibility23.C .* , (test for errors, line 26)
XFAIL: g++.law/visibility23.C (test for excess errors)
XFAIL: g++.law/vtable1.C (test for excess errors)
XFAIL: g++.mike/misc5.C uses same name 9.3 , (test for errors, line 10)
XFAIL: g++.mike/ns11.C (test for excess errors)
XFAIL: g++.mike/ns11.C  Execution test
XFAIL: g++.mike/ns13.C (test for excess errors)
XFAIL: g++.mike/ns14.C (test for excess errors)
XFAIL: g++.mike/ns9.C (test for excess errors)
XFAIL: g++.mike/ns9.C  Execution test
XFAIL: g++.mike/p1989.C - (test for bogus messages, line 339)
XFAIL: g++.mike/p6058.C  (test for errors, line 7)
XFAIL: g++.mike/p7325.C  Execution test
XFAIL: g++.niklas/t135.C (test for excess errors)
UNTESTED: g++.other/dll-1.C: Test skipped: Skip if not target: arm-*pe
UNTESTED: g++.other/dll-2.C: Test skipped: Skip if not target: arm-*pe
UNTESTED: g++.other/dll-3.C: Test skipped: Skip if not target: arm-*pe
UNTESTED: g++.other/dll-4.C: Test skipped: Skip if not target: arm-*pe
UNTESTED: g++.other/dll-5.C: Test skipped: Skip if not target: arm-*pe
UNTESTED: g++.other/dll-6.C: Test skipped: Skip if not target: arm-*pe
FAIL: g++.other/friend1.C (test for excess errors)
FAIL: g++.pt/spec10.C (test for excess errors)
XFAIL: g++.pt/spec10.C  Execution test
FAIL: g++.pt/spec11.C (test for excess errors)
XFAIL: g++.pt/spec11.C  Execution test
FAIL: g++.pt/spec12.C (test for excess errors)
XFAIL: g++.pt/spec12.C  Execution test
FAIL: g++.pt/spec13.C (test for excess errors)
XFAIL: g++.pt/spec13.C  Execution test
FAIL: g++.pt/spec15.C (test for excess errors)
XFAIL: g++.pt/spec15.C  Execution test
FAIL: g++.pt/spec6.C no matching function (test for errors, line 25)
FAIL: g++.pt/spec6.C no matching function (test for errors, line 28)
FAIL: g++.pt/spec6.C (test for excess errors)
FAIL: g++.pt/vaarg.C  Execution test

		=== g++ Summary ===

# of expected passes		3729
# of unexpected failures	11
# of unexpected successes	1
# of expected failures		79
# of untested testcases		6
/local/src/egcs/0321/gcc/testsuite/../xgcc version egcs-2.91.15 980321 (gcc-2.8.0 release)

------------------------------

fgrep -v gcc.sum

Test Run By shigeya on Thu Mar 26 17:58:26 1998
Native configuration is sparc-sun-solaris2.6

		=== gcc tests ===

Running target unix
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/code_quality/code_quality.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/compile/compile.exp ...
XFAIL: gcc.c-torture/compile/961203-1.c
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
FAIL: gcc.c-torture/execute/loop-2f.c execution,  -O2 
FAIL: gcc.c-torture/execute/loop-2f.c execution,  -O2 -fomit-frame-pointer -finline-functions 
FAIL: gcc.c-torture/execute/loop-2f.c execution,  -O2 -fomit-frame-pointer -finline-functions -funroll-loops 
FAIL: gcc.c-torture/execute/loop-2f.c execution,  -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops 
FAIL: gcc.c-torture/execute/loop-2f.c execution,  -O2 -g 
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/noncompile/noncompile.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/special/special.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.dg/dg.exp ...
UNSUPPORTED: gcc.dg/980211-1.c
UNSUPPORTED: gcc.dg/980217-1.c
UNSUPPORTED: gcc.dg/980226-1.c
UNSUPPORTED: gcc.dg/980312-1.c
UNSUPPORTED: gcc.dg/980313-1.c
UNSUPPORTED: gcc.dg/dll-1.c
UNSUPPORTED: gcc.dg/dll-2.c
UNSUPPORTED: gcc.dg/dll-3.c
UNSUPPORTED: gcc.dg/dll-4.c
UNSUPPORTED: gcc.dg/splet-1.c
UNSUPPORTED: gcc.dg/struct-ret-1.c
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.failure/failure.exp ...
XFAIL: gcc.failure/940409-1.c,  -O0  
XFAIL: gcc.failure/940409-1.c,  -O1  
XFAIL: gcc.failure/940409-1.c,  -O2  
XFAIL: gcc.failure/940409-1.c,  -O2 -fomit-frame-pointer -finline-functions  
XFAIL: gcc.failure/940409-1.c,  -O2 -g  
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/acker1.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/dg-test.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/dhry.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/gcov.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/matrix1.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/mg.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/msgs.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/optbench.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/sieve.exp ...
Running /local/src/egcs/egcs-980321/gcc/testsuite/gcc.misc-tests/sort2.exp ...

		=== gcc Summary ===

# of expected passes		6002
# of unexpected failures	5
# of expected failures		6
# of unsupported tests		11
/local/src/egcs/0321/gcc/xgcc version egcs-2.91.15 980321 (gcc-2.8.0 release)




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-04-17 11:56 Philippe Lavoie
  1998-04-17 18:06 ` Gerald Pfeifer
@ 1998-04-17 19:40 ` Jeffrey A Law
  1 sibling, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1998-04-17 19:40 UTC (permalink / raw)
  To: Philippe Lavoie; +Cc: egcs-bugs

  In message < 199804171641.MAA17543@yoho.uottawa.ca >you write:
  > 
  > Hi,
  > 
  > I grabbed the egcs-980411 and tried to compile it with gcc2.7.2.3 on a
  > Solaris2.5.1 machine
  > 
  > I got the following error
  > 
  > make[2]: Entering directory `/home/yoho4/app/gnu/egcs-980411/gcc'
  > /home/yoho4/app/gnu/egcs-980411/gcc/xgcc -B/home/yoho4/app/gnu/egcs-980411/
  > gcc/ -O2   -DIN_GCC  -DSVR4  -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFA
  > ULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions   -I. -I. -I./config
  >  \
  >   -c ./cp/tinfo.cc
  > include/typeinfo:64: Internal compiler error.
  > include/typeinfo:64: Please submit a full bug report to `egcs-bugs@cygnus.c
I believe this has been fixed.  I you use CVS you should be able to
update the "gcc/cp" subdir.  Else wait for the next snapshot.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1998-04-17 11:56 Philippe Lavoie
@ 1998-04-17 18:06 ` Gerald Pfeifer
  1998-04-17 19:40 ` Jeffrey A Law
  1 sibling, 0 replies; 387+ messages in thread
From: Gerald Pfeifer @ 1998-04-17 18:06 UTC (permalink / raw)
  To: Philippe Lavoie; +Cc: egcs-bugs

On Fri, 17 Apr 1998, Philippe Lavoie wrote:
> include/typeinfo:64: Internal compiler error.
> include/typeinfo:64: Please submit a full bug report to `egcs-bugs@cygnus.com'.

This bug has been fixed in the CVS snapshots. I suggest that you either
give these a try or wait for the next regular snapshot (which shouldn't
be that far away...)

Hope this helps,
Gerald
-- 
Gerald Pfeifer (Jerry)      Vienna University of Technology
pfeifer@dbai.tuwien.ac.at   http://www.dbai.tuwien.ac.at/~pfeifer/



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-04-17 11:56 Mark van Doesburg
  0 siblings, 0 replies; 387+ messages in thread
From: Mark van Doesburg @ 1998-04-17 11:56 UTC (permalink / raw)
  To: egcs-bugs

If I try to compile the attached source code with egcs-1.0.2 the compiler
exits with an internal compiler error. If I don't declare the matrix
class I am however able to use the vector without an error.  

Changing the #if 1 line to #if 0 causes the compiler to complete the
compilation without errors.

My system is:

	egcs-1.0.2 (i586-pc-linux-gnulibc1/egcs-2.90.27)
	Linux 2.0.33
	libc 5.4.33 (compiled with gcc 2.7.2.2)
	Intel pentium
	96MB RAM + 128MB swap

greetings, Mark.

--------------------------------------------------------------------------

template<class T,int S> 
class vector {
	T c[S];
public: 
	T &operator[](int i) { return c[i]; }
	T get(int i) const { return c[i]; } 
	template<class TT> T operator*(vector<TT,S> const &o);
};

template<class T,int S> template<class TT>
inline T vector<T,S>::operator*(vector<TT,S> const &o)
{
	T t;
	t=c[0]*o.get(0);
	for(int i=1;i<S;i++) 
		t+=c[i]*o.get(i); 
	return t;
} 

#if 1
template<class T,int S,class TT>
inline vector<T,S> operator*(T a,vector<TT,S> b)
{ 
	return (vector<T,S>)b*a;
} 
#endif

template<class T,int S>
class matrix {
	vector<T,S> r[S];
public:
	matrix() {}
	template<class TT> matrix(matrix<TT,S> const&);

	vector<T,S> get(int i) const { return r[i]; }
	vector<T,S> &operator[](int i) { return r[i]; } 
	vector<T,S> col(int) const;
	vector<T,S> row(int i) const { return r[i]; }

	template<class TT> matrix<T,S> operator*(matrix<TT,S> const &);
};

template<class T,int S> template<class TT>
inline matrix<T,S>::matrix(matrix<TT,S> const &o)
{
	for(int i=0;i<S;i++)
		r[i]=o.get(i);
} 

template<class T,int S>
inline vector<T,S> matrix<T,S>::col(int i) const
{
	vector<T,S> t;
	for(int j=0;j<S;j++)
		t[j]=r[j].get(i);
	return t;
}

template<class T,int S> template<class TT>
inline matrix<T,S> matrix<T,S>::operator*(matrix<TT,S> const &o)
{
	matrix<T,S> t;
	for(int i=0;i<S;i++)
		for(int j=0;j<S;j++)
			t[i][j]=row(i)*o.col(j);
	return t;
}

main()
{
	matrix<int,3> m1;
	matrix<int,3> m2; 
	matrix<int,3> m3; 
	m3=m1*m2;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-04-17 11:56 Philippe Lavoie
  1998-04-17 18:06 ` Gerald Pfeifer
  1998-04-17 19:40 ` Jeffrey A Law
  0 siblings, 2 replies; 387+ messages in thread
From: Philippe Lavoie @ 1998-04-17 11:56 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I grabbed the egcs-980411 and tried to compile it with gcc2.7.2.3 on a
Solaris2.5.1 machine

I got the following error

make[2]: Entering directory `/home/yoho4/app/gnu/egcs-980411/gcc'
/home/yoho4/app/gnu/egcs-980411/gcc/xgcc -B/home/yoho4/app/gnu/egcs-980411/gcc/ -O2   -DIN_GCC  -DSVR4  -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions   -I. -I. -I./config \
  -c ./cp/tinfo.cc
include/typeinfo:64: Internal compiler error.
include/typeinfo:64: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[2]: *** [tinfo.o] Error 1
make[2]: Leaving directory `/home/yoho4/app/gnu/egcs-980411/gcc'
make[1]: *** [libgcc2.a] Error 1
make[1]: Leaving directory `/home/yoho4/app/gnu/egcs-980411/gcc'
make: *** [all-gcc] Error 2


If you need more information let me know.

Phil


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-04-10 16:25 Enrico Zini
  0 siblings, 0 replies; 387+ messages in thread
From: Enrico Zini @ 1998-04-10 16:25 UTC (permalink / raw)
  To: egcs-bugs; +Cc: bug-g++

Hello!

[All my gratitude for your worderful work is obvious and therefore is omitted
for the sake of brevity]

It seems I've found a bug in both egcc and gcc when experimenting some weird
c++ code:

 * Here is what I got:

enrico@marvin:~$ uname -a
Linux marvin 2.0.32 #1 dom mar 1 20:01:30 CET 1998 i586 unknown

enrico@marvin:~/dev/cc$ egcc --version
egcs-2.90.23 980102 (egcs-1.0.1 release)

enrico@marvin:~/dev/cc$ gcc --version
2.8.0

enrico@marvin:~/dev/cc$ egcc -I/usr/include/g++ -c ice.cc
ice.cc:20: Internal compiler error 40.
ice.cc:20: Please submit a full bug report to `egcs-bugs@cygnus.com'.

enrico@marvin:~/dev/cc$ gcc -I/usr/include/g++ -c ice.cc
ice.cc:20: Internal compiler error 40.
ice.cc:20: Please submit a full bug report to `bug-g++@prep.ai.mit.edu'.


 * And here is ice.cc:

 - - - - - - - - - - -

class base
{
public:
	virtual void method()=0;
};

class der: public base
{
public:
	template<class C>
	void method()
	{
		C foo;
	}
};

main()
{
	return 0;
}

 - - - - - - - - - - -

Sould it be useful for you to know, my computer is a Debian GNU/Linux 2.0
installed when it was still the `unstable' distribution; the cpu is
an Intel Pentium 133Mhz, with 48Mb ram and a 100Mb swap file.


     Hoping to have been useful and to hear some feedback,   Enrico



^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-04-08  7:55 C. van Reeuwijk
  0 siblings, 0 replies; 387+ messages in thread
From: C. van Reeuwijk @ 1998-04-08  7:55 UTC (permalink / raw)
  To: egcs-bugs; +Cc: Frits Kuijlman, Leo Breebaart

The following causes an internal compiler error:

=-=-=-=
template <class T> class bar {};
template class foo : public bar<int> {};
=-=-=-=

Note the 'template' on the second line.


I'm running the following compiler version:

[falcon] % gcc -v
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.22/specs
gcc version egcs-2.91.22 980404 (gcc2 ss-980401 experimental)

-- 
Kees van Reeuwijk, Delft University of Technology
http://pds.twi.tudelft.nl/~reeuwijk


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-03-19  4:57 Felix Ide
  0 siblings, 0 replies; 387+ messages in thread
From: Felix Ide @ 1998-03-19  4:57 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 685 bytes --]

When trying to compile ksoundsys-0.0.29 from ftp.kde.org I got the error
message: 

c++ -c -O2 -Wall -I/usr/X11R6/include -I/usr/lib/qt/include
-I/opt/kde/include -DHAVE_CONFIG_H -I.. afx.cpp
afx.cpp: In method `double CAFX::afxfn(double, class QArrayT<double>,
int)':
afx.cpp:85: Internal compiler error.
afx.cpp:85: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[1]: *** [afx.o] Error 1
make[1]: Leaving directory
`/usr/local/src/KDE/ksoundsys-0.0.29/ksoundsys'
make: *** [apps] Error 1              

Because I´m not firm in c++, i can´t tell more about the error.
compiler was gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

Hope it helps,

Felix Ide


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-03-12  0:55 Arun Sharma
  0 siblings, 0 replies; 387+ messages in thread
From: Arun Sharma @ 1998-03-12  0:55 UTC (permalink / raw)
  To: egcs-bugs

I'm using:

Reading specs from /usr/lib/gcc-lib/alpha-linux/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

The same compiler works fine with the same file on x86. However, on
Alpha I get an internal compiler error.

Let me know what information you need to track this down. The error
was in a C++ function with virtual methods.

	-Arun



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-03-07 20:04 Franklin Chen
  0 siblings, 0 replies; 387+ messages in thread
From: Franklin Chen @ 1998-03-07 20:04 UTC (permalink / raw)
  To: egcs-bugs

c++ -Wall -I. -O   -c Staged.cc -o Staged.o
Staged.cc: In method `const struct ListS * staged_append(const ListS
*)::Function1S::operator ()(const struct ListS *) const':
Staged.cc:65: Internal compiler error.
Staged.cc:65: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [Staged.o] Error 1
352 ~/cs750/regexp/c++ chen@jonas$ c++ -v
Reading specs from /usr/lib/gcc-lib/i386-linux/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
353 ~/cs750/regexp/c++ chen@jonas$ uname -a
Linux jonas 2.0.32 #19 Mon Dec 15 01:07:50 EST 1997 i586 unknown

// fun staged_append nil = fn l => l
//      | staged_append (h::t) =
//        let
//            val tail_appender = staged_append t
//        in
//            fn l => h :: tail_appender l
//        end

// For more faithful simulation, would use template <class T> etc.
// But this is just an example.
// Note stuff is const because ML lists are immutable.
class ListS;
typedef const ListS* List;
struct ListS {
  const int hd;
  const List tl;

  ListS(int hd, List tl) : hd(hd), tl(tl) {}
};

// For convenience.
inline List
  cons(int hd, List tl)
{
  return new ListS(hd, tl);
}

inline int
  hd(List l)
{
  return l->hd;
}

inline List
  tl(List l)
{
  return l->tl;
}

const List nil = 0;

inline bool
  null(List l)
{
  return l == 0;
}


// Simulate higher-order function.
class FunctionS;
typedef const FunctionS* Function;
struct FunctionS {
  virtual List operator()(List l) const = 0;
};


class IdentityS;
typedef const IdentityS* Identity;
struct IdentityS : public FunctionS {
  virtual List operator()(List l) const {
    return l;
  }
};

const Identity identity = new IdentityS();




Function
  staged_append(const List l)
{
  if (null(l)) {
    return identity;
  }
  else {
    const Function tail_appender = staged_append(tl(l));

    struct Function1S : public FunctionS {
      // This corresponds to what is going on underneath in ML.
      const int h;
      const Function tail_appender;

      Function1S(int h, Function tail_appender)
        : h(h), tail_appender(tail_appender) {}

      virtual List operator()(List l) const {
        return cons(h, (*tail_appender)(l));
      }
    };

    return new Function1S(hd(l), tail_appender);
  }
}



// Examples.
#include <iostream.h>

// Print a list.
ostream&
  operator<<(ostream& os, List l)
{
  os << '[';
  if (!null(l)) {
    os << hd(l);
    for (List m = tl(l); !null(m); m = tl(m)) {
      os << ", " << hd(m);
    }
  }
  return os << ']';
}

-- 
Franklin Chen                     mailto:chen+@cs.cmu.edu
Graduate Student                  http://www.cs.cmu.edu/~chen/
Computer Science Department       Wean Hall 8218
Carnegie Mellon University


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler error
@ 1998-03-05 16:40 Jason Gunthorpe
  0 siblings, 0 replies; 387+ messages in thread
From: Jason Gunthorpe @ 1998-03-05 16:40 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I am getting an internal compiler error in EG++. t.cc is the preprocessed
output from the actual compiler which I have placed at
http://www.ualberta.ca/~jgg/t.cc.gz [42k]

Anyone have any idea how I can advoid this so I can get my code compiling?

This is on a Debian GNU/Linux machine with the egcs packages from Galen.

Thanks,
Jason

Wakko{jgg}~/work/deity/build/pkglib#eg++ -v -c t.cc
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
 /usr/lib/gcc-lib/i486-linux/egcs-2.90.23/cpp -lang-c++ -v -undef
-D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D__ELF__
-Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux
-Asystem(posix) -D__EXCEPTIONS -Di386 -Di486 -Asystem(unix) -Acpu(i386)
-Amachine(i386) -D__i386__ -D__i486__ -Asystem(unix) -Acpu(i386)
-Amachine(i386) t.cc /tmp/cca31686.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/local/include
 /usr/lib/gcc-lib/i486-linux/egcs-2.90.23/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i486-linux/egcs-2.90.23/cc1plus /tmp/cca31686.ii -quiet
-dumpbase t.cc -version -o /tmp/cca31686.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (i486-linux)
compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
./../pkglib/packagemanager.cc: In method `bool
pkgPackageManager::RecursiveOrder()':
../../pkglib/packagemanager.cc:185: Internal compiler error.
../../pkglib/packagemanager.cc:185: Please submit a full bug report to
`egcs-bugs@cygnus.com'.                



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error.
@ 1998-03-01  0:59 Franklin Chen
  0 siblings, 0 replies; 387+ messages in thread
From: Franklin Chen @ 1998-03-01  0:59 UTC (permalink / raw)
  To: egcs-bugs

Linux jonas 2.0.32 #19 Mon Dec 15 01:07:50 EST 1997 i586 unknown

Reading specs from /usr/lib/gcc-lib/i386-linux/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

In file included from /usr/include/g++/stl_algobase.h:82,
                 from /usr/include/g++/algorithm:30,
                 from twincpp.cc:3:
/usr/include/g++/stl_iterator.h:528: warning: friend declaration `bool operator ==(const class reverse_bidirectional_iterator<BidirectionalIterator,T,Reference,Distance> &, const class reverse_bidirectional_iterator<BidirectionalIterator,T,Reference,Distance> &)'
/usr/include/g++/stl_iterator.h:528: warning:   will not be treated as a template instantiation
/usr/include/g++/stl_iterator.h:528: warning:   unless you compile with -fguiding-decls
/usr/include/g++/stl_iterator.h:528: warning:   or add <> after the function name
/usr/include/g++/stl_iterator.h:857: warning: friend declaration `bool operator ==(const class istream_iterator<T,Distance> &, const class istream_iterator<T,Distance> &)'
/usr/include/g++/stl_iterator.h:857: warning:   will not be treated as a template instantiation
In file included from /usr/include/g++/map:35,
                 from twincpp.cc:4:
/usr/include/g++/stl_map.h:200: warning: friend declaration `bool operator ==(const class map<Key,T,Compare,Alloc> &, const class map<Key,T,Compare,Alloc> &)'
/usr/include/g++/stl_map.h:200: warning:   will not be treated as a template instantiation
/usr/include/g++/stl_map.h:201: warning: friend declaration `bool operator <(const class map<Key,T,Compare,Alloc> &, const class map<Key,T,Compare,Alloc> &)'
/usr/include/g++/stl_map.h:201: warning:   will not be treated as a template instantiation
In file included from /usr/include/g++/map:36,
                 from twincpp.cc:4:
/usr/include/g++/stl_multimap.h:194: warning: friend declaration `bool operator ==(const class multimap<Key,T,Compare,Alloc> &, const class multimap<Key,T,Compare,Alloc> &)'
/usr/include/g++/stl_multimap.h:194: warning:   will not be treated as a template instantiation
/usr/include/g++/stl_multimap.h:195: warning: friend declaration `bool operator <(const class multimap<Key,T,Compare,Alloc> &, const class multimap<Key,T,Compare,Alloc> &)'
/usr/include/g++/stl_multimap.h:195: warning:   will not be treated as a template instantiation
twincpp.cc: In function `void twin(InputIterator, InputIterator, OutputIterator)':
twincpp.cc:38: Internal compiler error.
twincpp.cc:38: Please submit a full bug report to `egcs-bugs@cygnus.com'.

// Twins

#include <algorithm>
#include <map>

template <class InputIterator,
  class OutputIterator,
  class Predicate,
  class UnaryOperation>
void
transform_if(InputIterator first,
             InputIterator last,
             OutputIterator result,
             Predicate pred,
             UnaryOperation op)
{
  while (first != last) {
    if (pred(*first)) {
      *result++ = op(*first);
    }
    ++first;
  }
  return result;
}


template <class InputIterator,
          class OutputIterator>
void
twin(InputIterator first,
     InputIterator last,
     OutputIterator result)
{
  // Could lift out.
  typedef map<typename InputIterator::value_type,
             int,
             less<int> > Map;
  struct {
    Map count;
    void operator()(typename InputIterator::value_type x) {
      ++count[x];
    }
  } insert;

  for_each(first,
           last,
           insert);

  struct {
    bool operator()(typename Map::value_type p) {
      return p.second == 2;
    }
  } equal2;

  struct {
    typename Map::key_type operator()(typename Map::value_type p) {
      return p.first;
    }
  } value;

  transform_if(insert.count.begin(),
               insert.count.end(),
               equal2,
               value);
}


// Example.

#include <iostream.h>

int
main()
{
  int foo[] = { 1, 2, 4, 666, 7, 2, 5, 5, 4, 5, 6, 7 };
  twin(foo,
       &foo[sizeof foo / sizeof foo[0]],
       ostream_iterator(cout));
}

-- 
Franklin Chen                     mailto:chen+@cs.cmu.edu
Graduate Student                  http://www.cs.cmu.edu/~chen/
Computer Science Department       Wean Hall 8218
Carnegie Mellon University


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal Compiler Error
@ 1998-02-12  8:09 David M. Ronis
  0 siblings, 0 replies; 387+ messages in thread
From: David M. Ronis @ 1998-02-12  8:09 UTC (permalink / raw)
  To: egcs-bugs

I'm trying to compile the latest release of LyX (version 0.12).  I'm
using the egcs-2.90.23 980102 (egcs-1.0.1 release), and have set
things up to optimize aggesively, as indicated below.  The build dies
as follows:

gcc -c -O3 -march=pentium -ffast-math -funroll-loops -fomit-frame-pointer
    -malign-double -malign-loops=0 -malign-jumps=0 -malign-functions=0
    -I. -I. -I../images -I/usr/X11R6.3/include layout.C
layout.C: In method `void LyXTextClassList::ToAr()':
layout.C:1212: Internal compiler error.


Here's the relevent module in layout.C

void LyXTextClassList::ToAr ()
{
	LyXTextClassL * lp, *op;
	int idx = 0;
	ar = new LyXTextClass [num_textclass];
	lp = l;
	while (lp) {
		ar[idx].Copy (*lp->textclass);
		idx++;
		delete lp->textclass; // note we don't delete layouts
				      // here at all 
		op = lp;
		lp = lp->next;
		delete op;
	}
}

I've also tried compiling with lesser degrees of optimization, but get the 
same result.

I can compile (with all but the -march=pentium) flag with gcc2.7.2.3.


Hope this is useful.


David Ronis






^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-02-09  3:51 Frank Cieslok
  0 siblings, 0 replies; 387+ messages in thread
From: Frank Cieslok @ 1998-02-09  3:51 UTC (permalink / raw)
  To: egcs-bugs

Hello,

the message

/obelix/home/frankc/test/bugtest2.cc: In function `void func()':
/obelix/home/frankc/test/bugtest2.cc:11: Internal compiler error.
/obelix/home/frankc/test/bugtest2.cc:11: Please submit a full bug report to `egcs-bugs@cygnus.com'

appears when egcs is compiling the following code :

-------------------------------[cut]----------------------------------
struct Foo
{
        virtual bool func() { return true; };
};


void func()
{
    Foo* foo = new Foo;
    // Please note the missing brackets below
    if (!foo->func == false);
}
-------------------------------[cut]----------------------------------

egcs -v  : gcc version egcs-2.91.06 980122 (gcc-2.8.0 release)
uname -a : SunOS cicero 5.5.1 Generic_103640-08 sun4u sparc SUNW,Ultra-2


With best wishes for your project,
Frank

-- 
Mail: frankc@senax.iguana.priconet.de (frankc@ida.ing.tu-bs.de)
WWW : http://www.tu-bs.de/~y0000070


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-01-31  6:09 Chris Yeoh
  0 siblings, 0 replies; 387+ messages in thread
From: Chris Yeoh @ 1998-01-31  6:09 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I get an internal compiler error when attempting to compile the bit of code
at the end of this message. It only occurs when I use the -g flag. I get
the same problem when attempting to compile with egcs-1.0 as well as
gcc-2.8.0. It doesn't occur when I compile with gcc-2.7.2.1.

The compiler was configured with just `--prefix=/local' and the output
of config.guess is mips-sgi-irix6.3

chris@pauli/tmp% g++ -v
Reading specs from /local/lib/gcc-lib/mips-sgi-irix6.3/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

chris@pauli/tmp% g++ -g -c tst3.C
tst3.C:26: Internal compiler error.
tst3.C:26: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Contents of tst3.C:
-------------------
class first
{
  struct foo
  {
    virtual int func() = 0;
  };
  struct bar : public foo
  {
    int func();
  };
  struct anotherStruct
  {
    void func(bar* parameter);
  };
  anotherStruct *aMember;
};

class second
{
public:
  int dummy();
};
int second::dummy()
{
}



--
Chris.Yeoh@maptek.com.au


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-01-20 15:48 billm
  0 siblings, 0 replies; 387+ messages in thread
From: billm @ 1998-01-20 15:48 UTC (permalink / raw)
  To: egcs-bugs

egcs-bugs@cygnus.com

Bug summary: "Internal compiler error." reported by egcs.

From: Bill Metzenthen (billm@suburbia.net)

Machine type: AMD-486 (Intel compatible)
Operating system: Linux version 2.1.78
C library: glibc-2.0.6
C++ library: libstdc++-2.8.0
egcs version: 1.0.1

Detailed description:  the example code which is included with
  this message shows a much simplified version of the source which
  originally produced this error message.  The essential function
  definition (but other inline assembler functions can also produce the
  error) from "math.h" of glibc-2.0.6 is included at the top of
  the example code, so the example does not depend upon any headers.
  The compiler dialogue and error message for this example is also
  included.  The error message is produced when optimisation with -O
  or -O2 is requested, but not if no optimisation is requested.

  gcc-2.8.0 and gcc-2.7.2.2 also produce the same error message from
  the example code.


-------------------------- Example code ---------------------------
extern "C" { 
  __inline  double  fabs (double __x)
    {
      register double __value;
      __asm __volatile__
	("fabs"
	 : "=t" (__value) : "0" (__x));
      return __value;
    }
} 

void ceef(void)
{
  int	i;
  long long	n;
  double	x;
  for ( i = 1; i <= 4; i++ )
    {
      x = fabs(2.0);
      n = (long long)x;
      if ( x != n )
	return;
    }
}
---------------------- End of example code ------------------------

----------------------- Compiler dialogue -------------------------------
[21:41:13] tmp/ /usr/local/bin/g++ -v -O -c err.cc
Reading specs from /usr/local/lib/gcc-lib/i486-pc-linux-gnu/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
 /usr/local/lib/gcc-lib/i486-pc-linux-gnu/egcs-2.90.23/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Di386 -Di486 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i486__ -Asystem(unix) -Acpu(i386) -Amachine(i386) err.cc /tmp/cca03333.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include/g++
 /usr/local/include
 /usr/local/i486-pc-linux-gnu/include
 /usr/local/lib/gcc-lib/i486-pc-linux-gnu/egcs-2.90.23/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/i486-pc-linux-gnu/egcs-2.90.23/cc1plus /tmp/cca03333.ii -quiet -dumpbase err.cc -O -version -o /tmp/cca03333.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (i486-pc-linux-gnu) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
err.cc: In function `void ceef()':
err.cc:24: Internal compiler error.
err.cc:24: Please submit a full bug report to `egcs-bugs@cygnus.com'.
------------------- End of compiler dialogue ----------------------------


^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1998-01-20  9:03 Mark Johnstone
  0 siblings, 0 replies; 387+ messages in thread
From: Mark Johnstone @ 1998-01-20  9:03 UTC (permalink / raw)
  To: egcs-bugs

Hello all,

The following simple program generates an internal compiler error in
both 1.0.1 and the 980115 snapshot:

#include <stddef.h>	// need this for offsetof macro, NULL & size_t defines

class CapData;

template <class T_Type> class NewBlocks
{
  private:

    T_Type * next;
    static const char * NewBlocks<T_Type>::static_tag_string;

  public:

  // removed for clarity
    
};

class CapData : public NewBlocks<CapData>
{
  private:
    CapData( const CapData& cd )  {}		// block copy constructor
    CapData& operator=( const CapData& cd)  { return *this; }
    CapData() : next(NULL), shape_id(0), cap_val(0) {}

    int shape_id;
    float cap_val;
    CapData * next;

  public:
    float  & asgnCapVal()	{ return cap_val; }
    float capVal() const	{ return cap_val; }			
    int   id()     const	{ return shape_id;}
};

int  main( int argc, char * argv[] )
{

    return 0;
}


Here is the message:

$  g++ -v test.C
Reading specs from /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
 /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.23/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -Asystem(unix) -Asystem(aix) -Acpu(rs6000) -Amachine(rs6000) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D_ARCH_PWR test.C /home/markj/tmp/ccbjE7ia.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release)
#include "..." search starts here:
#include <...> search starts here:
 /home/markj/include/g++
 /usr/local/include
 /home/markj/rs6000-ibm-aix3.2.5/include
 /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.23/include
 /usr/include
End of search list.
 /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.23/cc1plus /home/markj/tmp/ccbjE7ia.ii -quiet -dumpbase test.cc -version -o /home/markj/tmp/ccbjE7ia.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (rs6000-ibm-aix3.2.5) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
test.C:19: Internal compiler error.
test.C:19: Please submit a full bug report to `egcs-bugs@cygnus.com'.


-- 

Mark S. Johnstone, Ph.D.  Methodology and Tools Development
markj@ibmoto.com          Networking & Computing Systems Group
                          Somerset Design Center, MD: OE70
(512) 424-8468 (desk)     6200 Bridgepoint Parkway, Bldg. #4, Austin, TX  78730
(512) 933-7333 pin 428468 (pager)


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1998-01-16  1:41 Frank Cieslok
  0 siblings, 0 replies; 387+ messages in thread
From: Frank Cieslok @ 1998-01-16  1:41 UTC (permalink / raw)
  To: egcs-bugs

Hello,

the error message

bugtest.cc:6: Internal compiler error.
bugtest.cc:6: Please submit a full bug report to `egcs-bugs@cygnus.com'.

is produced when compiling the following piece of code :

---------------------------[schnipp]-----------------------------
class A
{
        enum B { ONE, TWO, THREE };
};

class A::B;
---------------------------[schnipp]-----------------------------

Compiler version (g++ -v) : gcc version egcs-2.91.03 971225 (gcc-2.8.0)
Plattform (uname -a) : SunOS epikur 5.5.1 Generic sun4u sparc SUNW,Ultra-1

With best wishes for your project,
Frank

-- 
Fido: Frank Cieslok@2:241/575.11
Mail: frankc@senax.iguana.priconet.de (frankc@ida.ing.tu-bs.de)
WWW : http://www.tu-bs.de/~y0000070


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-12-19 13:21 Raymond Nijssen
  0 siblings, 0 replies; 387+ messages in thread
From: Raymond Nijssen @ 1997-12-19 13:21 UTC (permalink / raw)
  To: egcs-bugs

Dear egcs maintainers,
Thanks for all your effort to ensure that there will be a free
compiler on the leaving C++ train!


Regardless of whether or not this code fragment is an example of dirty
tricks  (does anybody know a better way to do what this function
does?) ....  it triggers an internal compiler error.

This compiles fine with g++-2.7.2.3 and other compilers.

Regards,
-Raymond



> cat bug1.cxx
// This function will translate a pointer to a member of a struct to a pointer to the struct.
// This is needed to embed a list implementation as a member of the struct.
// It is a type-safe implementation of 
// (STRUCT *) ((int) memberp - offset(STRUCT, member);

template <class STRUCT, class MEMBER> inline STRUCT *
setback(MEMBER *bp, MEMBER STRUCT::*offset)
{
	// The implementation of this function may be platform dependend
	if(!bp) return 0; // NULL pointers remain NULL
	union {	int i; MEMBER STRUCT::*of; } u; // Switch types. Casting won't work.
	u.of = offset;
	return (STRUCT *) ((int) bp - u.i);
}





> g++ -v bug1.cxx
Reading specs from /usr/local/egcs-1.0/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.21/specs
gcc version egcs-2.90.21 971202 (egcs-1.00 release)
 /usr/local/egcs-1.0/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.21/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) bug1.cxx /var/tmp/cca0014T.ii
GNU CPP version egcs-2.90.21 971202 (egcs-1.00 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/egcs-1.0
 /usr/local/include
 /usr/local/egcs-1.0/sparc-sun-solaris2.5.1/include
 /usr/local/egcs-1.0/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.21/include
 /usr/include
End of search list.
 /usr/local/egcs-1.0/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.21/cc1plus /var/tmp/cca0014T.ii -quiet -dumpbase bug1.cc -version -o /var/tmp/cca0014T.s
GNU C++ version egcs-2.90.21 971202 (egcs-1.00 release) (sparc-sun-solaris2.5.1) compiled by GNU C version 2.7.2.3.
bug1.cxx: In function `STRUCT * setback(MEMBER *, MEMBER STRUCT::*)':
bug1.cxx:11: Internal compiler error.
bug1.cxx:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-12-11 13:41 Andrew Borthwick
  0 siblings, 0 replies; 387+ messages in thread
From: Andrew Borthwick @ 1997-12-11 13:41 UTC (permalink / raw)
  To: egcs-bugs

Hi,

    The following code generates an internal compiler error.  This is a
simplification of some code that I was debugging which generated the original
problem.  Note that I don't claim that this code should compile!  I also don't
think this is a really big deal, but I'm sending this as per the compiler's
error message.  This happened with egcs release 1.0 configured on a
sparc-sun-solaris2.5.1.  Haifa is off.

Andrew Borthwick

------------------------------------------------
#include "../code/inc/RefPtr.H"
class Baz : public ref_counted {
  int dummy;
};


class Bar;

void main() {
  ref_ptr<Baz> foo;
  static_cast<Bar *> (foo)->DoSomething;
}
---------------------------------------------
The error was:
% g++ -g -DDEBUG -c test2.C
test2.C: In function `int main(...)':
test2.C:11: Internal compiler error.
test2.C:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.

When "class Bar" is commented out, I get:
% g++ -g -DDEBUG -c test2.C
test2.C: In function `int main(...)':
test2.C:11: parse error before `*'

The file RefPtr.H is as follows:

////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1997 Software Masters
// All rights reserved
//
////////////////////////////////////////////////////////////////////

// Nov. 14, 1997  Modified by Andrew Borthwick to define equality and
// less_than as applying to the data rather than the pointer
// Nov. 18, 1997  Modified by A.B. to define operator= with T* as an
//                argument

#ifndef __REFPTR_H
#define __REFPTR_H

// **** base class for ref counted classes

class ref_counted
{
// Construction
protected:
	ref_counted( void ) : _count( 0 ) {}

public:
// Operations
	unsigned int add_ref( void ) { return ++_count; }
	unsigned int release( void ) { return --_count; }
	unsigned int count( void ) const { return _count; }

// Representation
protected:
	unsigned int _count;
};


// **** ref_ptr class, assuming T implements ref_counted interface

template < class T >
class ref_ptr
{
// Construction
public:
	ref_ptr( T* ptr = 0 ) : _ptr( ptr )
	{
		add_ref();
	}

	ref_ptr( const ref_ptr & rptr ) : _ptr( rptr.get() )
	{
		add_ref();
	}

	~ref_ptr( void ) { release(); }

// Operations
	T* get( void ) const { return _ptr; }
	T* operator->( void ) const { return get(); }
	T& operator*( void ) const { return *get(); }

	bool operator!( void ) const { return get() == 0; }
	bool operator==( const ref_ptr & rptr ) const {	return *get() == *rptr;
}
	bool operator<( const ref_ptr & rptr ) const { return *get() < *rptr; }


	bool operator==( T* ptr ) const { return *get() == *ptr; }
	bool operator<( T* ptr ) const { return *get() < *ptr; }

	const ref_ptr & operator=( const ref_ptr & rptr )
	{
		release();
		_ptr = rptr.get();
		add_ref();

		return *this;
	}

       T* operator=( T* ptr )   // Addition by A.B.
       {
	 release();
	 _ptr = ptr;
	 add_ref();

	 return _ptr;
       }

protected:
	void add_ref( void )
	{
		if( _ptr )
			_ptr->add_ref();
	}

	void release( void )
	{
		if( _ptr && 0 == _ptr->release() )
		{
			delete _ptr;
			_ptr = 0;
		}
	}

// Representation
protected:
	T *	_ptr;
};


template< class T >
bool operator==( T* ptr, const ref_ptr< T > & rptr )
{
	return *ptr == *rptr;
}

template< class T >
bool operator<( T* ptr, const ref_ptr< T > & rptr )
{
	return *ptr < *rptr;
}

#endif	// __REFPTR_H




^ permalink raw reply	[flat|nested] 387+ messages in thread

* internal compiler error
@ 1997-12-07  6:46 Hans-Helmut Buehmann
  0 siblings, 0 replies; 387+ messages in thread
From: Hans-Helmut Buehmann @ 1997-12-07  6:46 UTC (permalink / raw)
  To: egcs-bugs

Hello!

Compiling the following code with egcs 1.0 gives an internal compiler
error
I used the debian precompiled version (egcc_1.0-1_i386.deb)

> eg++ -o main main.c 
inttypes: In method `short unsigned int
other_endian<INT>::change_endian(short unsigned int)':
In file included from main.c:1:
inttypes:20: Internal compiler error.
inttypes:20: Please submit a full bug report to `egcs-bugs@cygnus.com'.

main.c:

#include "inttypes"

int main() {
  le_int<u_int16_t> little_endian_16_bit_int;
  return 0;
}

inttypes:

// -*-c++-*-
#ifndef __inttypes
#define __inttypes

#include <endian.h>
#include <sys/types.h>

#include <algorithm> // swap
  
template <class INT>
class other_endian
{
private:
  // public:
  INT value;

  // Funktions to swap the endian
  u_int16_t change_endian(u_int16_t x)
  {
    union {
      u_int16_t i;
      u_int8_t c[2];
    } val;
    val.i = x;
    swap(val.c[0], val.c[1]);
    return val.i;
  };
  
  int16_t change_endian(int16_t x)
  {
    union {
      int16_t i;
      int8_t c[2];
    } val;
    val.i = x;
    swap(val.c[0], val.c[1]);
    return val.i;
  };
  
public:
  other_endian(const INT i = 0)
  {
    value = change_endian(i);
  }

  operator INT()
  {
    return change_endian(value);
  }
};

template <class INT>
class same_endian
{
  INT value;

public:
  same_endian(const INT i = 0)
  {
    value = i;
  }

  operator INT()
  {
    return value;
  }
};

#if __BYTE_ORDER == __BIG_ENDIAN
#define be_int same_endian
#define le_int other_endian
#else
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define be_int other_endian
#define le_int same_endian
#else
#error "Unknown Endian"
#endif // __BYTE_ORDER == __LITTLE_ENDIAN
#endif // __BYTE_ORDER == __BIG_ENDIAN





#endif // __inttypes




^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-12-02 23:20 Olivier Galibert
  0 siblings, 0 replies; 387+ messages in thread
From: Olivier Galibert @ 1997-12-02 23:20 UTC (permalink / raw)
  To: egcs-bugs

[-- Attachment #1: Type: text/plain, Size: 319 bytes --]

c++ -DHAVE_CONFIG_H -I. -I. -I.   -g -O2 -c initThread.C
initThread.C:68: Internal compiler error.
initThread.C:68: Please submit a full bug report to `egcs-bugs@cygnus.com'.

IRIX64 vic 6.4 02121744 IP27

gcc version egcs-2.90.20 971201 (gcc2-970802 experimental)

Preprocessed file is attached.

Good luck :-)

  OG.

[-- Attachment #2: ithr.i.gz --]
[-- Type: application/x-gzip, Size: 41303 bytes --]

^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-11-17  6:17 Neal Becker
  0 siblings, 0 replies; 387+ messages in thread
From: Neal Becker @ 1997-11-17  6:17 UTC (permalink / raw)
  To: egcs-bugs

egcs-971105 hppa1.1 hpux9.05

Building ddd-2.2:

c++  -DHAVE_CONFIG_H -DNDEBUG -O2 -g -Wall -fexternal-templates -felide-constructors -fconserve-space -c -I. -I. -I./.. -I/usr/include/Motif1.2  -I/usr/include/X11R5 -o ddd.o ddd.C
ddd.C: In function `bool startup_preferences_changed()':
ddd.C:3643: Internal compiler error.

ddd.ii.gz is available at http://www.ctd.comsat.com/~neal/ddd.ii.gz


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-11-13  5:15 Peter Schmid
  0 siblings, 0 replies; 387+ messages in thread
From: Peter Schmid @ 1997-11-13  5:15 UTC (permalink / raw)
  To: egcs-bugs

This programm crashes the compiler on my linux box, libc-5.4.40 and
binutils-2.8.1.0.15. It crashes with and without the using namespace std
line. 
When I remove std::, everything works fine.

#include <exception>
//using namespace std;
class A {
    class B : public std::exception {}
    ;                ^^^^^
};
g++ -c test.C
test.C:4: Internal compiler error.
test.C:4: Please submit a full bug report to `egcs-bugs@cygnus.com'.
g++ -E -o test.E test.C
# 1 "test.C"
# 1 "/usr/lib/gcc-lib/i386-pc-linux-gnulibc1/egcs-2.90.16/include/exception" 1 3
 
 




#pragma interface "exception"

extern "C++" {





class exception {
public:
  exception () { }
  virtual ~exception () { }
  virtual const char* what () const;
};

class bad_exception : public exception {
public:
  bad_exception () { }
  virtual ~bad_exception () { }
};

typedef void (*terminate_handler) ();
typedef void (*unexpected_handler) ();

terminate_handler set_terminate (terminate_handler);
void terminate (void);
unexpected_handler set_unexpected (unexpected_handler);
void unexpected (void);
bool uncaught_exception ();
}  






# 1 "test.C" 2

 
class A {
    class B : public std::exception {}
    ;
};

Peter Schmid



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-11-09 20:53 Mark Johnstone
  0 siblings, 0 replies; 387+ messages in thread
From: Mark Johnstone @ 1997-11-09 20:53 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I'm testing the egcs snapshot (971105) and came up with this problem:

olson:idm_process_lib/src> g++ -v -g -c foo.ii
Reading specs from /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/specs
gcc version egcs-2.90.16 971105 (gcc2-970802 experimental)
 /home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/cc1plus foo.ii -quiet -g -version -o /home/markj/tmp/ccU8MCZt.s
GNU C++ version egcs-2.90.16 971105 (gcc2-970802 experimental) (rs6000-ibm-aix3.2.5) compiled by GNU C version testgcc-2.7.90 970725 experimental.
/home/markj/projects/LEDA/incl/LEDA/string.h: In method `class leda_string virtual_object_process_info::post_process(const class IDM_V_USAGE_BOX &, class leda_string, const class leda_string &) const':
In file included from /home/markj/projects/LEDA/incl/LEDA/basic.h:40,
                 from /home/markj/projects/LEDA/incl/LEDA/dictionary.h:24,
                 from foo.C:6:
/home/markj/projects/LEDA/incl/LEDA/string.h:230: Internal compiler error.
/home/markj/projects/LEDA/incl/LEDA/string.h:230: Please submit a full
bug report to `egcs-bugs@cygnus.com'.



This error occurs both with and without -g and with and without -O2.
I am compiling on AIX 3.2.  The code that produced the error is
attached.  Sorry for the length (I did cut it down from 17K lines
though).

-- 

Mark Johnstone         Methodology and Tools Development
markj@ibmoto.com       Networking & Computing Systems Group
                       Somerset Design Center, MD: OE70
(512) 424-8468 (desk)  6200 Bridgepoint Parkway, Bldg. #4, Austin, TX  78730
(512) 933-7333 pin 428468 (pager)

The following should be 2481 lines long
----cut here---
# 1 "foo.C"

class IDM_V_USAGE_BOX;
class IDM_V_USAGE_PIN;
class IDM_V_NET;

# 1 "/home/markj/projects/LEDA/incl/LEDA/dictionary.h" 1

# 1 "/home/markj/projects/LEDA/incl/LEDA/REDEFINE_NAMES.h" 1

# 23 "/home/markj/projects/LEDA/incl/LEDA/dictionary.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 1

# 1 "/home/markj/include/g++/iostream.h" 1 3

#pragma interface

# 1 "/home/markj/include/g++/streambuf.h" 1 3

#pragma interface

extern "C" {
# 1 "/home/markj/include/g++/libio.h" 1 3

# 1 "/home/markj/rs6000-ibm-aix3.2.5/include/_G_config.h" 1 3 4

typedef          int   _G_int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int  _G_uint8_t __attribute__((__mode__(__QI__)));
typedef          int  _G_int16_t __attribute__((__mode__(__HI__)));
typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__)));
typedef          int  _G_int32_t __attribute__((__mode__(__SI__)));
typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__)));
typedef          int  _G_int64_t __attribute__((__mode__(__DI__)));
typedef unsigned int _G_uint64_t __attribute__((__mode__(__DI__)));
__extension__ typedef long long _G_llong;
__extension__ typedef unsigned long long _G_ullong;

typedef int _G_clock_t;
typedef unsigned long _G_dev_t;
typedef long _G_fpos_t;
typedef unsigned long _G_gid_t;
typedef unsigned long _G_ino_t;
typedef unsigned long _G_mode_t;
typedef short _G_nlink_t;
typedef long _G_off_t;
typedef int _G_pid_t;

typedef int _G_ptrdiff_t;
typedef int   _G_sigset_t;

typedef long unsigned int _G_size_t;
typedef long _G_time_t;
typedef unsigned long _G_uid_t;
typedef short unsigned int _G_wchar_t;

typedef signed int _G_ssize_t;
typedef int _G_wint_t;
typedef char * _G_va_list;

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 1 3 4

# 19 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 61 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 131 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 184 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 258 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 270 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 302 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stddef.h" 3 4

# 84 "/home/markj/rs6000-ibm-aix3.2.5/include/_G_config.h" 2 3 4

# 30 "/home/markj/include/g++/libio.h" 2 3

# 51 "/home/markj/include/g++/libio.h" 3

# 1 "/usr/local/include/sys/cdefs.h" 1 3

# 120 "/usr/local/include/sys/cdefs.h" 3

# 55 "/home/markj/include/g++/libio.h" 2 3

# 92 "/home/markj/include/g++/libio.h" 3

struct _IO_jump_t;  struct _IO_FILE;

struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;
   
  int _pos;
# 193 "/home/markj/include/g++/libio.h" 3

};

struct _IO_FILE {
  int _flags;		 
   
  char* _IO_read_ptr;	 
  char* _IO_read_end;	 
  char* _IO_read_base;	 
  char* _IO_write_base;	 
  char* _IO_write_ptr;	 
  char* _IO_write_end;	 
  char* _IO_buf_base;	 
  char* _IO_buf_end;	 
   
  char *_IO_save_base;  
  char *_IO_backup_base;   
  char *_IO_save_end;  

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  _G_off_t  _offset;
   
  unsigned short _cur_column;
  char _unused;
  char _shortbuf[1];

};

struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_stdin_, _IO_stdout_, _IO_stderr_;
 
typedef struct
{
  _G_ssize_t  (*read)  (struct _IO_FILE *, void *, _G_ssize_t )  ;
  _G_ssize_t  (*write)  (struct _IO_FILE *, const void *, _G_ssize_t )  ;
  _G_fpos_t  (*seek)  (struct _IO_FILE *, _G_off_t , int)  ;
  int (*close)  (struct _IO_FILE *)  ;
} _IO_cookie_io_functions_t;

 
struct _IO_cookie_file
{
  struct _IO_FILE file;
  const void *vtable;
  void *cookie;
  _IO_cookie_io_functions_t io_functions;
};

extern "C" {

extern int __underflow  (_IO_FILE *)  ;
extern int __uflow  (_IO_FILE *)  ;
extern int __overflow  (_IO_FILE *, int)  ;

extern int _IO_getc  (_IO_FILE *__fp)  ;
extern int _IO_putc  (int __c, _IO_FILE *__fp)  ;
extern int _IO_feof  (_IO_FILE *__fp)  ;
extern int _IO_ferror  (_IO_FILE *__fp)  ;

extern int _IO_peekc_locked  (_IO_FILE *__fp)  ;

extern void _IO_flockfile  (_IO_FILE *)  ;
extern void _IO_funlockfile  (_IO_FILE *)  ;
extern int _IO_ftrylockfile  (_IO_FILE *)  ;

extern int _IO_vfscanf  (_IO_FILE *, const char *, _G_va_list , int *)  ;
extern int _IO_vfprintf  (_IO_FILE *, const char *, _G_va_list )  ;
extern _G_ssize_t  _IO_padn  (_IO_FILE *, int, _G_ssize_t )  ;
extern _G_size_t  _IO_sgetn  (_IO_FILE *, void *, _G_size_t )  ;

extern _G_fpos_t  _IO_seekoff  (_IO_FILE *, _G_off_t , int, int)  ;
extern _G_fpos_t  _IO_seekpos  (_IO_FILE *, _G_fpos_t , int)  ;

extern void _IO_free_backup_area  (_IO_FILE *)  ;

}

# 36 "/home/markj/include/g++/streambuf.h" 2 3

}

extern "C++" {
class istream;  
class ostream; class streambuf;

typedef _G_off_t  streamoff;
typedef _G_fpos_t  streampos;
typedef _G_ssize_t  streamsize;

typedef unsigned long __fmtflags;
typedef unsigned char __iostate;

struct _ios_fields
{  
    streambuf *_strbuf;
    ostream* _tie;
    int _width;
    __fmtflags _flags;
    short  _fill;
    __iostate _state;
    __iostate _exceptions;
    int _precision;

    void *_arrays;  
};

# 115 "/home/markj/include/g++/streambuf.h" 3

class ios : public _ios_fields {
  ios& operator=(ios&);   
  ios (const ios&);  
  public:
    typedef __fmtflags fmtflags;
    typedef int iostate;
    typedef int openmode;
    typedef int streamsize;
    enum io_state {
	goodbit = 0 ,
	eofbit = 1 ,
	failbit = 2 ,
	badbit = 4  };
    enum open_mode {
	in = 1 ,
	out = 2 ,
	ate = 4 ,
	app = 8 ,
	trunc = 16 ,
	nocreate = 32 ,
	noreplace = 64 ,
	bin = 128 ,  
	binary = 128  };
    enum seek_dir { beg, cur, end};
    typedef enum seek_dir seekdir;
     
    enum { skipws= 01 ,
	   left= 02 , right= 04 , internal= 010 ,
	   dec= 020 , oct= 040 , hex= 0100 ,
	   showbase= 0200 , showpoint= 0400 ,
	   uppercase= 01000 , showpos= 02000 ,
	   scientific= 04000 , fixed= 010000 ,
	   unitbuf= 020000 , stdio= 040000 

	   };
    enum {  
	basefield=dec+oct+hex,
	floatfield = scientific+fixed,
	adjustfield = left+right+internal
    };

# 168 "/home/markj/include/g++/streambuf.h" 3


    ostream* tie() const { return _tie; }
    ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; }

     
    short  fill() const { return (short )_fill; }
    short  fill(short  newf)
	{short  oldf = (short )_fill; _fill = (char)newf; return oldf;}
    fmtflags flags() const { return _flags; }
    fmtflags flags(fmtflags new_val) {
	fmtflags old_val = _flags; _flags = new_val; return old_val; }
    int precision() const { return _precision; }
    int precision(int newp) {
	unsigned short oldp = _precision; _precision = (unsigned short)newp;
	return oldp; }
    fmtflags setf(fmtflags val) {
	fmtflags oldbits = _flags;
	_flags |= val; return oldbits; }
    fmtflags setf(fmtflags val, fmtflags mask) {
	fmtflags oldbits = _flags;
	_flags = (_flags & ~mask) | (val & mask); return oldbits; }
    fmtflags unsetf(fmtflags mask) {
	fmtflags oldbits = _flags;
	_flags &= ~mask; return oldbits; }
    int width() const { return _width; }
    int width(int val) { int save = _width; _width = val; return save; }

    void _throw_failure() const { }

    void clear(iostate state = 0) {
	_state = _strbuf ? state : state|badbit;
	if (_state & _exceptions) _throw_failure(); }
    void leda_set (iostate flag) { _state |= flag;
	if (_state & _exceptions) _throw_failure(); }
    void setstate(iostate flag) { _state |= flag;  
	if (_state & _exceptions) _throw_failure(); }
    int good() const { return _state == 0; }
    int eof() const { return _state & ios::eofbit; }
    int fail() const { return _state & (ios::badbit|ios::failbit); }
    int bad() const { return _state & ios::badbit; }
    iostate rdstate() const { return _state; }
    operator void*() const { return fail() ? (void*)0 : (void*)(-1); }
    int operator!() const { return fail(); }
    iostate exceptions() const { return _exceptions; }
    void exceptions(iostate enable) {
	_exceptions = enable;
	if (_state & _exceptions) _throw_failure(); }

    streambuf* rdbuf() const { return _strbuf; }
    streambuf* rdbuf(streambuf *_s) {
      streambuf *_old = _strbuf; _strbuf = _s; clear (); return _old; }

    static int sync_with_stdio(int on);
    static void sync_with_stdio() { sync_with_stdio(1); }
    static fmtflags bitalloc();
    static int xalloc();
    void*& pword(int);
    void* pword(int) const;
    long& iword(int);
    long iword(int) const;
     
    class Init {
    public:
      Init () { }
    };

  protected:
    inline ios(streambuf* sb = 0, ostream* tie_to = 0);
    inline virtual ~ios();
    inline void init(streambuf* sb, ostream* tie = 0);
};

typedef ios::seek_dir _seek_dir;
 
class streammarker : private _IO_marker {
    friend class streambuf;
    void set_offset(int offset) { _pos = offset; }
  public:
    streammarker(streambuf *sb);
    ~streammarker();
    int saving() { return  1; }
    int delta(streammarker&);
    int delta();
};

struct streambuf : public _IO_FILE {  
    friend class ios;
    friend class istream;
    friend class ostream;
    friend class streammarker;
    const void *&_vtable() { return *(const void**)((_IO_FILE*)this + 1); }
  protected:
    static streambuf* _list_all;  
    _IO_FILE*& xchain() { return _chain; }
    void _un_link();
    void _link_in();
    char* gptr() const
      { return _flags  & 0x100  ? _IO_save_base : _IO_read_ptr; }
    char* pptr() const { return _IO_write_ptr; }
    char* egptr() const
      { return _flags  & 0x100  ? _IO_save_end : _IO_read_end; }
    char* epptr() const { return _IO_write_end; }
    char* pbase() const { return _IO_write_base; }
    char* eback() const
      { return _flags  & 0x100  ? _IO_save_base : _IO_read_base;}
    char* base() const { return _IO_buf_base; }
    char* ebuf() const { return _IO_buf_end; }
    int blen() const { return _IO_buf_end - _IO_buf_base; }
    void xput_char(char c) { *_IO_write_ptr++ = c; }
    int xflags() { return _flags ; }
    int xflags(int f) {int fl = _flags ; _flags  = f; return fl;}
    void xsetflags(int f) { _flags  |= f; }
    void xsetflags(int f, int mask)
      { _flags  = (_flags  & ~mask) | (f & mask); }
    void gbump(int n)
      { _flags  & 0x100  ? (_IO_save_base+=n):(_IO_read_ptr+=n);}
    void pbump(int n) { _IO_write_ptr += n; }
    void setb(char* b, char* eb, int a=0);
    void setp(char* p, char* ep)
      { _IO_write_base=_IO_write_ptr=p; _IO_write_end=ep; }
    void setg(char* eb, char* g, char *eg) {
      if (_flags  & 0x100 ) _IO_free_backup_area(this); 
      _IO_read_base = eb; _IO_read_ptr = g; _IO_read_end = eg; }
    char *shortbuf() { return _shortbuf; }

    int in_backup() { return _flags & 0x100 ; }
     
    char *Gbase() { return in_backup() ? _IO_save_base : _IO_read_base; }
     
    char *eGptr() { return in_backup() ? _IO_save_end : _IO_read_end; }
     
    char *Bbase() { return in_backup() ? _IO_read_base : _IO_save_base; }
    char *Bptr() { return _IO_backup_base; }
     
    char *eBptr() { return in_backup() ? _IO_read_end : _IO_save_end; }
    char *Nbase() { return _IO_save_base; }
    char *eNptr() { return _IO_save_end; }
    int have_backup() { return _IO_save_base != __null ; }
    int have_markers() { return _markers != __null ; }
    void free_backup_area();
    void unsave_markers();  
    int put_mode() { return _flags & 0x800 ; }
    int switch_to_get_mode();
    
    streambuf(int flags=0);
  public:
    static int flush_all();
    static void flush_all_linebuffered();  
    virtual ~streambuf();
    virtual int overflow(int c = (-1) );  
    virtual int underflow();  
    virtual int uflow();  
    virtual int pbackfail(int c);
 
    virtual streamsize xsputn(const char* s, streamsize n);
    virtual streamsize xsgetn(char* s, streamsize n);
    virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out);

    streampos pubseekoff(streamoff o, _seek_dir d, int mode=ios::in|ios::out)
      { return _IO_seekoff (this, o, d, mode); }
    streampos pubseekpos(streampos pos, int mode = ios::in|ios::out)
      { return _IO_seekpos (this, pos, mode); }
    streampos sseekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    streampos sseekpos(streampos pos, int mode = ios::in|ios::out);
    virtual streambuf* setbuf(char* p, int len);
    virtual int sync();
    virtual int doallocate();

    int seekmark(streammarker& mark, int delta = 0);
    int sputbackc(char c);
    int sungetc();
    int unbuffered() { return _flags & 2  ? 1 : 0; }
    int linebuffered() { return _flags & 0x200  ? 1 : 0; }
    void unbuffered(int i)
	{ if (i) _flags |= 2 ; else _flags &= ~2 ; }
    void linebuffered(int i)
	{ if (i) _flags |= 0x200 ; else _flags &= ~0x200 ; }
    int allocate() {  
	if (base() || unbuffered()) return 0;
	else return doallocate(); }
     
    void allocbuf() { if (base() == __null ) doallocbuf(); }
    void doallocbuf();
    int in_avail() { return _IO_read_end - _IO_read_ptr; }
    int out_waiting() { return _IO_write_ptr - _IO_write_base; }
    streamsize sputn(const char* s, streamsize n) { return xsputn(s, n); }
    streamsize padn(char pad, streamsize n) { return _IO_padn(this, pad, n); }
    streamsize sgetn(char* s, streamsize n) { return _IO_sgetn(this, s, n); }
    int ignore(int);
    int get_column();
    int set_column(int);
    long sgetline(char* buf, _G_size_t  n, char delim, int putback_delim);
    int sputc(int c) { return _IO_putc(c, this); }
    int sbumpc() { return _IO_getc(this); }
    int sgetc() { return ((  this  )->_IO_read_ptr >= (  this  )->_IO_read_end && __underflow (  this  ) == (-1)  ? (-1)  : *(unsigned char *) (  this  )->_IO_read_ptr)  ; }
    int snextc() {
	if (_IO_read_ptr >= _IO_read_end && __underflow(this) == (-1) )
	  return (-1) ;
	else return _IO_read_ptr++, sgetc(); }
    void stossc() { if (_IO_read_ptr < _IO_read_end) _IO_read_ptr++; }
    int vscan(char const *fmt0, _G_va_list  ap, ios* stream = __null );
    int scan(char const *fmt0 ...);
    int vform(char const *fmt0, _G_va_list  ap);
    int form(char const *fmt0 ...);

    virtual streamsize sys_read(char* buf, streamsize size);
    virtual streamsize sys_write(const char*, streamsize);
    virtual streampos sys_seek(streamoff, _seek_dir);
    virtual int sys_close();
    virtual int sys_stat(void*);  
};

class filebuf : public streambuf {
  protected:
    void init();
  public:
    static const int openprot;  
    filebuf();
    filebuf(int fd);
    filebuf(int fd, char* p, int len);

    ~filebuf();
    filebuf* attach(int fd);
    filebuf* open(const char *filename, const char *mode);
    filebuf* open(const char *filename, ios::openmode mode, int prot = 0664);
    virtual int underflow();
    virtual int overflow(int c = (-1) );
    int is_open() const { return _fileno >= 0; }
    int fd() const { return is_open() ? _fileno : (-1) ; }
    filebuf* close();
    virtual int doallocate();
    virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out);
    virtual streambuf* setbuf(char* p, int len);
    streamsize xsputn(const char* s, streamsize n);
    streamsize xsgetn(char* s, streamsize n);
    virtual int sync();
  protected:  
 
    int is_reading() { return eback() != egptr(); }
    char* cur_ptr() { return is_reading() ?  gptr() : pptr(); }
     
    char* file_ptr() { return eGptr(); }
     
    virtual streamsize sys_read(char* buf, streamsize size);
    virtual streampos sys_seek(streamoff, _seek_dir);
    virtual streamsize sys_write(const char*, streamsize);
    virtual int sys_stat(void*);  
    virtual int sys_close();

};

inline void ios::init(streambuf* sb, ostream* tie_to) {
		_state = sb ? ios::goodbit : ios::badbit; _exceptions=0;
		_strbuf=sb; _tie = tie_to; _width=0; _fill=' ';

		_flags=ios::skipws|ios::dec;

		_precision=6; _arrays = 0; }

inline ios::ios(streambuf* sb, ostream* tie_to) { init(sb, tie_to); }

inline ios::~ios() {
    if (_arrays) delete [] _arrays;
}
}  

# 31 "/home/markj/include/g++/iostream.h" 2 3


extern "C++" {
class istream; class ostream;
typedef ios& (*__manip)(ios&);
typedef istream& (*__imanip)(istream&);
typedef ostream& (*__omanip)(ostream&);

extern istream& ws(istream& ins);
extern ostream& flush(ostream& outs);
extern ostream& endl(ostream& outs);
extern ostream& ends(ostream& outs);

class ostream : virtual public ios
{
     
    void do_osfx();
  public:
    ostream() { }
    ostream(streambuf* sb, ostream* tied= __null );
    int opfx() {
	if (!good()) return 0;
	else { if (_tie) _tie->flush();  ; return 1;} }
    void osfx() {  ;
		  if (flags() & (ios::unitbuf|ios::stdio))
		      do_osfx(); }
    ostream& flush();
    ostream& put(char c) { _strbuf->sputc(c); return *this; }
    ostream& write(const char *s, streamsize n);
    ostream& write(const unsigned char *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& write(const signed char *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& write(const void *s, streamsize n)
      { return write((const char*)s, n);}
    ostream& seekp(streampos);
    ostream& seekp(streamoff, _seek_dir);
    streampos tellp();
    ostream& form(const char *format ...);
    ostream& vform(const char *format, _G_va_list  args);

    ostream& operator<<(char c);
    ostream& operator<<(unsigned char c) { return (*this) << (char)c; }
    ostream& operator<<(signed char c) { return (*this) << (char)c; }
    ostream& operator<<(const char *s);
    ostream& operator<<(const unsigned char *s)
	{ return (*this) << (const char*)s; }
    ostream& operator<<(const signed char *s)
	{ return (*this) << (const char*)s; }
    ostream& operator<<(const void *p);
    ostream& operator<<(int n);
    ostream& operator<<(unsigned int n);
    ostream& operator<<(long n);
    ostream& operator<<(unsigned long n);

    __extension__ ostream& operator<<(long long n);
    __extension__ ostream& operator<<(unsigned long long n);

    ostream& operator<<(short n) {return operator<<((int)n);}
    ostream& operator<<(unsigned short n) {return operator<<((unsigned int)n);}

    ostream& operator<<(bool b) { return operator<<((int)b); }

    ostream& operator<<(double n);
    ostream& operator<<(float n) { return operator<<((double)n); }



    ostream& operator<<(long double n) { return operator<<((double)n); }

    ostream& operator<<(__omanip func) { return (*func)(*this); }
    ostream& operator<<(__manip func) {(*func)(*this); return *this;}
    ostream& operator<<(streambuf*);

};

class istream : virtual public ios
{
     
protected:
    _G_size_t  _gcount;

    int _skip_ws();
  public:
    istream(): _gcount (0) { }
    istream(streambuf* sb, ostream*tied= __null );
    istream& get(char* ptr, int len, char delim = '\n');
    istream& get(unsigned char* ptr, int len, char delim = '\n')
	{ return get((char*)ptr, len, delim); }
    istream& get(char& c);
    istream& get(unsigned char& c) { return get((char&)c); }
    istream& getline(char* ptr, int len, char delim = '\n');
    istream& getline(unsigned char* ptr, int len, char delim = '\n')
	{ return getline((char*)ptr, len, delim); }
    istream& get(signed char& c)  { return get((char&)c); }
    istream& get(signed char* ptr, int len, char delim = '\n')
	{ return get((char*)ptr, len, delim); }
    istream& getline(signed char* ptr, int len, char delim = '\n')
	{ return getline((char*)ptr, len, delim); }
    istream& read(char *ptr, streamsize n);
    istream& read(unsigned char *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& read(signed char *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& read(void *ptr, streamsize n)
      { return read((char*)ptr, n); }
    istream& get(streambuf& sb, char delim = '\n');
    istream& gets(char **s, char delim = '\n');
    int ipfx(int need = 0) {
	if (!good()) { leda_set (ios::failbit); return 0; }
	else {
	   ;
	  if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush();
	  if (!need && (flags() & ios::skipws)) return _skip_ws();
	  else return 1;
	}
    }
    int ipfx0() {  
	if (!good()) { leda_set (ios::failbit); return 0; }
	else {
	   ;
	  if (_tie) _tie->flush();
	  if (flags() & ios::skipws) return _skip_ws();
	  else return 1;
	}
    }
    int ipfx1() {  
	if (!good()) { leda_set (ios::failbit); return 0; }
	else {
	   ;
	  if (_tie && rdbuf()->in_avail() == 0) _tie->flush();
	  return 1;
	}
    }
    void isfx() {  ; }
    int get() { if (!ipfx1()) return (-1) ;
		else { int ch = _strbuf->sbumpc();
		       if (ch == (-1) ) leda_set (ios::eofbit);
		       return ch;
		     } }
    int peek();
    _G_size_t  gcount() { return _gcount; }
    istream& ignore(int n=1, int delim = (-1) );
    int sync ();
    istream& seekg(streampos);
    istream& seekg(streamoff, _seek_dir);
    streampos tellg();
    istream& putback(char ch) {
	if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit);
	return *this;}
    istream& unget() {
	if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit);
	return *this;}
    istream& scan(const char *format ...);
    istream& vscan(const char *format, _G_va_list  args);

    istream& operator>>(char*);
    istream& operator>>(unsigned char* p) { return operator>>((char*)p); }
    istream& operator>>(signed char*p) { return operator>>((char*)p); }
    istream& operator>>(char& c);
    istream& operator>>(unsigned char& c) {return operator>>((char&)c);}
    istream& operator>>(signed char& c) {return operator>>((char&)c);}
    istream& operator>>(int&);
    istream& operator>>(long&);

    __extension__ istream& operator>>(long long&);
    __extension__ istream& operator>>(unsigned long long&);

    istream& operator>>(short&);
    istream& operator>>(unsigned int&);
    istream& operator>>(unsigned long&);
    istream& operator>>(unsigned short&);

    istream& operator>>(bool&);

    istream& operator>>(float&);
    istream& operator>>(double&);
    istream& operator>>(long double&);
    istream& operator>>( __manip func) {(*func)(*this); return *this;}
    istream& operator>>(__imanip func) { return (*func)(*this); }
    istream& operator>>(streambuf*);
};

class iostream : public istream, public ostream
{
  public:
    iostream() { }
    iostream(streambuf* sb, ostream*tied= __null );
};

class _IO_istream_withassign : public istream {
public:
  _IO_istream_withassign& operator=(istream&);
  _IO_istream_withassign& operator=(_IO_istream_withassign& rhs)
    { return operator= (static_cast<istream&> (rhs)); }
};

class _IO_ostream_withassign : public ostream {
public:
  _IO_ostream_withassign& operator=(ostream&);
  _IO_ostream_withassign& operator=(_IO_ostream_withassign& rhs)
    { return operator= (static_cast<ostream&> (rhs)); }
};

extern _IO_istream_withassign cin;
 
extern _IO_ostream_withassign cout, cerr;

extern _IO_ostream_withassign clog
;

extern istream& lock(istream& ins);
extern istream& unlock(istream& ins);
extern ostream& lock(ostream& outs);
extern ostream& unlock(ostream& outs);

struct Iostream_init { } ;   

inline ios& dec(ios& i)
{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; }
inline ios& hex(ios& i)
{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; }
inline ios& oct(ios& i)
{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; }
}  

# 27 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 1 3 4

# 25 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

# 1 "/usr/include/standards.h" 1 3 4

# 49 "/usr/include/standards.h" 3 4

# 31 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 2 3 4

# 1 "/usr/include/sys/localedef.h" 1 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/sys/limits.h" 1 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/float.h" 1 3 4

# 168 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/sys/limits.h" 2 3 4

# 25 "/usr/include/sys/localedef.h" 2 3 4

# 1 "/usr/include/sys/lc_core.h" 1 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/sys/types.h" 1 3 4

typedef char *		va_list;

typedef int ptrdiff_t;

typedef unsigned int wctype_t;

typedef long		fpos_t;

typedef	long		time_t;

typedef int		clock_t;

typedef long unsigned int size_t;

typedef	unsigned char	uchar_t;
typedef	unsigned short	ushort_t;
typedef	unsigned int	uint_t;
typedef unsigned long	ulong_t;
typedef signed int	ssize_t;

typedef	struct { int r[1]; } *	physadr_t;

typedef long		level_t;
typedef	long		daddr_t;	 
typedef	char *		caddr_t;	 
typedef	ulong_t		ino_t;		 
typedef short		cnt_t;
typedef ulong_t		dev_t;		 
typedef	long		chan_t;		 
typedef	long		off_t;		 
typedef	long		paddr_t;
typedef	long		key_t;
typedef long		timer_t;	 
typedef	short		nlink_t;
typedef	ulong_t		mode_t;		 
typedef ulong_t		uid_t;		 
typedef ulong_t		gid_t;		 
typedef	void *		mid_t;		 
typedef	int		pid_t;		 
typedef char		slab_t[12];	 
typedef long            mtyp_t;		 

	typedef	int		wint_t;		 

# 1 "/usr/include/sys/m_types.h" 1 3 4

typedef struct label_t {		 
	struct label_t *prev;		 
	ulong_t           iar;		 
	ulong_t           leda_stack ;		 
	ulong_t           toc;		 
	ulong_t           cr;              
	ulong_t           intpri;		 
	ulong_t           reg[19];	 
} label_t;

typedef long		vmid_t;		 
typedef ulong_t		vmhandle_t;	 

typedef struct vmaddr_t {		 
	vmhandle_t	srval;		 
	caddr_t		offset;		 
} vmaddr_t;

typedef struct adspace_t{		 
	ulong_t		alloc;		 
	vmhandle_t	srval[16];	 
} adspace_t;

# 152 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/sys/types.h" 2 3 4
 
typedef struct sigset_t	{

	unsigned long losigs;
	unsigned long hisigs;




} sigset_t;

typedef int signal_t;

typedef	uchar_t		uchar;
typedef	ushort_t	ushort;
typedef	uint_t		uint;
typedef ulong_t		ulong;

typedef	physadr_t	physadr;

 
typedef	unsigned char	u_char;
typedef	unsigned short	u_short;
typedef	unsigned int	u_int;
typedef	unsigned long	u_long;

typedef	struct	_quad { long val[2]; } quad;
typedef	long	swblk_t;
 
struct sigset	{
	unsigned long losigs;
	unsigned long hisigs;
};

 
struct fsid {
	long	val[2];
};
typedef struct fsid fsid_t;

struct fid {
	uint_t	fid_len;
	char	fid_data[(32  - sizeof(fsid_t) - sizeof(uint_t)) ];
};
typedef struct fid fid_t;

struct fileid {			 
	uint_t	fid_len;
	ino_t	fid_ino;
	uint_t	fid_gen;
	char	fid_x[(32  - sizeof(fsid_t) - sizeof(uint_t))  - (sizeof(ino_t) + 2) - sizeof(uint_t)];
};

 
struct fhandle {
	char x[32 ];		 
};
struct filehandle {			 
	fsid_t		fh_fsid;		 
	struct fileid	fh_fid;			 
};
typedef struct fhandle fhandle_t;
 
struct unique_id {
       unsigned long word1;
       unsigned long word2;
       unsigned long word3;
       unsigned long word4;
};
typedef struct unique_id unique_id_t;

# 282 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/sys/types.h" 3 4

# 22 "/usr/include/sys/lc_core.h" 2 3 4

typedef struct {

    unsigned short
	__type_id,
	__magic;
    unsigned long
	__version;
    
    size_t  __size;

} _LC_object_t;

typedef struct {
  
    _LC_object_t  __hdr;
	
     

    int   __catgets  ;
    int              __catclose  ;
    
     
    int   __compress  ;
    int   __decompress  ;
    int      __start_compress  ;
    int      __end_compress  ;
    
     
    int      __init  ;
    void    *__data;
} _LC_core_car_t;

typedef struct {

    _LC_object_t  __hdr;

     
    int    __nl_langinfo  ;
    
     
    int    __mbtowc  ;
    int    __mbstowcs  ;
    int       __wctomb  ;
    int    __wcstombs  ;
    
     
    int       __mblen  ;
    
     
    int    __wcswidth  ;
    int    __wcwidth  ;
    
     
    int       __mbtopc  ;
    int       __mbstopcs  ;
    int       __pctomb  ;
    int       __pcstombs  ;
    
     
    int    __csid  ;
    int    __wcsid  ;
    
     
    int       __init  ;
    void     *__data;
} _LC_core_charmap_t;


typedef struct {
 
    _LC_object_t  __hdr; 
    
     
    int      __towupper  ;
    int      __towlower  ;
    
     
    int    __get_wctype  ;
    int             __is_wctype  ;
    
     
    int          __init  ;
    void     *__data;
} _LC_core_ctype_t;

typedef struct {

    _LC_object_t  __hdr;

     
    int        __strcoll  ;
    int     __strxfrm  ;
    
     
    int        __wcscoll  ;
    int     __wcsxfrm  ;
    
     
    int        __fnmatch  ;
    
     
    int        __regcomp  ;
    int     __regerror  ;
    int        __regexec  ;
    int       __regfree  ;
    
     
    int        __init  ;
    void     *__data;
} _LC_core_collate_t;


typedef struct {

    _LC_object_t  __hdr;
    
     
    int     __nl_langinfo  ;
    
     
    int     __strftime  ;
    int     __strptime  ;
    
     
    int     __wcsftime  ;
    
     
    int        __init  ;
    void     *__data;
} _LC_core_time_t;


typedef struct {

    _LC_object_t  __hdr;

     
    int     __nl_langinfo  ;
    
     
    int     __strfmon  ;
    
     
    int        __init  ;
    void     *__data;
} _LC_core_monetary_t;


typedef struct {

    _LC_object_t  __hdr;

     
    int     __nl_langinfo  ;
    
     
    int        __init  ;
    void     *__data;
} _LC_core_numeric_t;


typedef struct {

    _LC_object_t  __hdr;
    
     
    int    __nl_langinfo  ;
    
     
    int    __rpmatch  ;
    
     
    int       __init  ;
    void        *__data;
} _LC_core_resp_t;

typedef struct {

    _LC_object_t __hdr;

     
    int           __nl_langinfo  ;
    int   __localeconv  ;
    
     
    int     __init  ;
    void         *__data;
} _LC_core_locale_t;

# 26 "/usr/include/sys/localedef.h" 2 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/locale.h" 1 3 4

struct lconv {
   char *decimal_point;		 
   char *thousands_sep;		 
   char *grouping;		 
   char *int_curr_symbol;	 
   char *currency_symbol;	 
   char *mon_decimal_point;	 
   char *mon_thousands_sep;	 
   char *mon_grouping;		 
   char *positive_sign;		 
   char *negative_sign;		 
   char int_frac_digits;	 
   char frac_digits;		 
   char p_cs_precedes;		 
   char p_sep_by_space;		 
   char n_cs_precedes;		 
   char n_sep_by_space;		 
   char p_sign_posn;		 
   char n_sign_posn;		 


   char *left_parenthesis;	 
   char *right_parenthesis;	 

} ;

struct lconv *localeconv(void);
char   *setlocale(int, const char *);

typedef struct lconv lconv;

# 27 "/usr/include/sys/localedef.h" 2 3 4

# 1 "/usr/include/sys/localedef31.h" 1 3 4

typedef struct  coldesc  {                      
	short     cd_stroff;                    
	short	  cd_repoff;
	short     cd_cval;
	short	  cd_cuniq;
} coldesc_t;

typedef struct collation_table {                 
	short    lc_version;                     
	short	 lc_length;			 
	char     *lc_locale_name;		 
	int      len_collate;
	short    *lc_collate;                    
	int      len_coluniq;
	short    *lc_coluniq;                    
	int      len_coldesc;
	coldesc_t *lc_coldesc;                   
	int	 len_strings;			
	wchar_t  *lc_strings;			 
	int	 high_cvalue;			 
} col_t;

typedef struct char_classification_table {       
	short      lc_version; 		 
	short	   lc_length;  		 
	short      lc_code_type; 	 
	short      mb_cur_max;   	 
	short      mb_cur_min;   	 
	short      lc_dsp_width;                  
	char       *lc_locale_name; 	 
	int        len_caseconv;   	 
	wchar_t    *lc_caseconv;   	 
	int	   len_ctype;
	unsigned short *lc_ctype;	 	
} ctype_t;

typedef	struct lc_monetary_table {
	short  	lc_version;
	short 	lc_length;		 
	char   	*lc_locale_name;	 
	char 	*int_curr_symbol;	 
	char 	*currency_symbol;	 
	char 	*mon_decimal_point;	 
	char 	*mon_thousands_sep;	 
	char 	*mon_grouping;		 
	char 	*positive_sign;		 
	char 	*negative_sign;		 
	char 	int_frac_digits;	 
	char 	frac_digits;		 
	char 	p_cs_precedes;		 
	char 	p_sep_by_space;		 
	char 	n_cs_precedes;		 
	char 	n_sep_by_space;		 
	char 	p_sign_posn;		 
	char 	n_sign_posn;		 
} mon_t;

typedef struct numeric_table {                   
	short	lc_version;
	short	lc_length;		 
	char    *lc_locale_name;	 
	char 	*decimal_point;
	char 	*thousands_sep;
	char	*grouping;
} num_t;

typedef struct lc_messages_table {
	short	lc_version;
	short	lc_length;		 
	char    *lc_locale_name;	 
	char 	*messages;		 
	char 	*yes_string;		 
	char 	*no_string;		 
} msg_t;

typedef struct lc_time_table {
	short   lc_version;
	short	lc_length;	  
	char    *lc_locale_name;  
	char    *t_fmt;          
	char    *d_fmt;          
	char    *nlldate;        
	char    *d_t_fmt;        
	char    *abday;          
	char    *day;            
	char    *abmon;          
	char    *mon;            

	char    *misc;           
	char    *tstrs;          
	char    *tunits;         

	char	*year;		 
	char    *am_pm;          
} tim_t;

typedef struct wchar_mapping_table {             
	short    lc_version;
	short	 lc_length;			 
	char     *lc_identifier;
} map_t;

typedef struct localeinfo_table {           
	char     lc_mag0, lc_mag1;       
	short    lc_version;             
	short    lc_code_type;                 
	short	 lc_length;		 
	col_t    *lc_coltbl;		 
	ctype_t  *lc_chrtbl;		 
	mon_t    *lc_montbl;		 
	num_t    *lc_numtbl;		 
	tim_t    *lc_timtbl;		 
	msg_t    *lc_msgtbl;		 
	map_t    *lc_maptbl;		 
} loc_t;

# 29 "/usr/include/sys/localedef.h" 2 3 4

typedef struct {

    _LC_core_charmap_t core;
    
    char     *cm_csname;	 
    
    size_t   cm_mb_cur_max;      
    size_t   cm_mb_cur_min;	 

    unsigned char
	     cm_max_disp_width;  
				 

    unsigned 
	char *cm_cstab;		 

    struct __LC_locale 		 
             *loc_rec;

    void     *__meth_ptr;	 
    void     *__data_ptr;	 
    
} _LC_charmap_t;

typedef struct _LC_charmap_objhdl _LC_charmap_objhdl_t;

struct _LC_charmap_objhdl {
	_LC_charmap_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 					 
};

typedef	struct {

    _LC_core_monetary_t   core;
    
    char *int_curr_symbol;	    
    char *currency_symbol;	    
    char *mon_decimal_point;	    
    char *mon_thousands_sep;	    
    char *mon_grouping;		    
    char *positive_sign;	    
    char *negative_sign;	    
    signed char int_frac_digits;    
    signed char frac_digits;	    
    signed char p_cs_precedes;	    
    signed char p_sep_by_space;	    
    signed char n_cs_precedes;	    
    signed char n_sep_by_space;	    
    signed char p_sign_posn;	    
    signed char n_sign_posn;	    
    char *debit_sign;		    
    char *credit_sign;		    
    char *left_parenthesis;	    
    char *right_parenthesis;	    
    
    struct __LC_locale 		    
             *loc_rec;		    

    void     *__meth_ptr;	    
    void     *__data_ptr;	    
    
} _LC_monetary_t;

typedef struct _LC_monetary_objhdl _LC_monetary_objhdl_t;
struct _LC_monetary_objhdl {
	_LC_monetary_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct {

    _LC_core_numeric_t core;
    
    char     *decimal_point;
    char     *thousands_sep;
    unsigned
	char *grouping;
    
    struct __LC_locale 		    
             *loc_rec;		    

    void     *__meth_ptr;	    
    void     *__data_ptr;	    
    
} _LC_numeric_t;

typedef struct _LC_numeric_objhdl _LC_numeric_objhdl_t;
struct _LC_numeric_objhdl {
	_LC_numeric_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct  {

    _LC_core_resp_t core;

    char     *yesexpr;	      
    char     *noexpr;	      
    char     *yesstr;	      
    char     *nostr;	      

    struct __LC_locale	      
             *loc_rec;	      

    void     *__meth_ptr;     
    void     *__data_ptr;     
    
} _LC_resp_t;

typedef struct _LC_resp_objhdl _LC_resp_objhdl_t;
struct _LC_resp_objhdl {
	_LC_resp_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct {

    _LC_core_time_t core;
    
    char *d_fmt;  
    char *t_fmt;  
    char *d_t_fmt;
    char *t_fmt_ampm;
    char *abday[7];  
    char *day[7];    
    char *abmon[12];  
    char *mon[12];    
    char *am_pm[2];
    char *era;
    char *era_year;
    char *era_d_fmt;
    char *alt_digits;
    char *era_d_t_fmt;
    char *era_t_fmt;
     
    struct __LC_locale	      
             *loc_rec;	      

    void     *__meth_ptr;     
    void     *__data_ptr;     

} _LC_time_t;

typedef struct _LC_time_objhdl _LC_time_objhdl_t;
struct _LC_time_objhdl {
	_LC_time_t *obj;

	void *(**meth)();

struct _LC_locale_objhdl *loc_hdl;	 
					 
};

typedef struct {
    unsigned
	short  n[255   +1];
} _LC_weight_t;    

typedef struct {

    char         *ce_sym;	 
    _LC_weight_t ce_wgt;	 
				 
} _LC_collel_t;

typedef struct {
    _LC_weight_t   ct_wgt;     
			       

    _LC_collel_t   *ct_collel; 

} _LC_coltbl_t;

typedef struct {
    char *tgt_wgt_str[255   +1];
     
     
} _LC_subs_t;


typedef struct {

    _LC_core_collate_t core;
    
    unsigned			             
	char    co_nord;	             
    
    _LC_weight_t co_sort;	             
					     
    
    wchar_t     co_wc_min;		     
    wchar_t     co_wc_max;		     
    
    wchar_t     co_col_min;		     
    wchar_t     co_col_max;		     
    
    _LC_coltbl_t *co_coltbl;		     
				             
    unsigned
	char    co_nsubs;		     
    _LC_subs_t  *co_subs;		     
    
    unsigned
	short	co_special;		     

    struct __LC_locale	                     
                *loc_rec;	             

    void        *__meth_ptr;                 
    void        *__data_ptr;                 

} _LC_collate_t;

typedef struct _LC_collate_objhdl _LC_collate_objhdl_t;
struct _LC_collate_objhdl {
	_LC_collate_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct {

    char    *name;
    unsigned
	int mask;

} _LC_classnm_t;

typedef struct {

  _LC_core_ctype_t core;
 
   
  wchar_t      min_wc;
  wchar_t      max_wc;

   
  wchar_t      *upper;
  wchar_t      *lower;
  
   
  unsigned
      int      *mask;         
  unsigned
      int      *qmask;	      
  unsigned
      char     *qidx;	      

   
  unsigned
      char     nclasses;
 _LC_classnm_t *classnms;
  
    struct __LC_locale	      
               *loc_rec;      

    void       *__meth_ptr;   
    void       *__data_ptr;   

} _LC_ctype_t;

typedef struct _LC_ctype_objhdl _LC_ctype_objhdl_t;
struct _LC_ctype_objhdl {
	_LC_ctype_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct __LC_locale {

    _LC_core_locale_t core;
    
    char           *nl_info[63 ];
    struct lconv   *nl_lconv;
    
    _LC_charmap_objhdl_t  lc_charmap;
    _LC_collate_objhdl_t  lc_collate;
    _LC_ctype_objhdl_t    lc_ctype;
    _LC_monetary_objhdl_t lc_monetary;
    _LC_numeric_objhdl_t  lc_numeric;
    _LC_resp_objhdl_t     lc_resp;
    _LC_time_objhdl_t     lc_time;
    
    struct __LC_locale    *loc_rec;        
                      	                   

    void                  *__meth_ptr;     
    void                  *__data_ptr;     

} _LC_locale_t;

typedef struct _LC_locale_objhdl _LC_locale_objhdl_t;
struct _LC_locale_objhdl {
	_LC_locale_t *obj;


	void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};

typedef struct _LC_object_handle _LC_object_handle_t;
struct _LC_object_handle {
    union {
	_LC_object_t	      lc_object;
	_LC_locale_objhdl_t   lc_locale;
        _LC_charmap_objhdl_t  lc_charmap;
        _LC_collate_objhdl_t  lc_collate;
        _LC_ctype_objhdl_t    lc_ctype;
        _LC_monetary_objhdl_t lc_monetary;
        _LC_numeric_objhdl_t  lc_numeric;
        _LC_resp_objhdl_t     lc_resp;
        _LC_time_objhdl_t     lc_time;
    } obj;


    void    *(**meth)();


struct _LC_locale_objhdl *loc_hdl;	 
					 
					 
};


typedef struct {
    _LC_object_t	hdr;		   
    _LC_locale_objhdl_t handle;		   
} _LC_load_object_t;


extern _LC_charmap_objhdl_t  __lc_charmap;
extern _LC_collate_objhdl_t  __lc_collate;
extern _LC_ctype_objhdl_t    __lc_ctype;
extern _LC_monetary_objhdl_t __lc_monetary;
extern _LC_numeric_objhdl_t  __lc_numeric;
extern _LC_resp_objhdl_t     __lc_resp;
extern _LC_time_objhdl_t     __lc_time;
extern _LC_locale_objhdl_t   __lc_locale;


# 33 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 2 3 4

# 60 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

# 70 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

    typedef struct div_t  {	 
	int quot;		 
	int rem;		  
    } div_t;

    typedef struct ldiv_t  {	 
	long int quot;		 
	long int rem;		  
    } ldiv_t;

    extern int	 	mblen(const char *, size_t);
    extern size_t 	mbstowcs(wchar_t *, const char *, size_t);
    extern int		mbtowc(wchar_t *, const char *, size_t);
    extern size_t	wcstombs(char *, const wchar_t *, size_t);
    extern int		wctomb(char *, const wchar_t);

# 168 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

	extern double 	atof(const char *);
	extern int 	atoi(const char *);
	extern long int atol(const char *);
	extern double 	strtod(const char *, char * *);
	extern long int strtol(const char *, char * *, int);
	extern unsigned long int strtoul(const char *, char * *, int);
	extern int 	rand(void);
	extern void	srand(unsigned int);
	extern void 	*calloc(size_t, size_t);
	extern void	free(void *);
	extern void	*malloc(size_t);
	extern void 	*realloc(void *, size_t);
	extern void	abort(void);
	extern int	atexit(void (*)(void));
	extern void	exit(int);
	extern 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);

# 227 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

# 253 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

	extern double 		drand48(void);
	extern double 		erand48(unsigned short[]);
	extern long 		jrand48(unsigned short[]);
	extern long 		mrand48(void);
	extern long 		nrand48(unsigned short[]);
	extern unsigned short 	*seed48(unsigned short[]);
	extern void 		srand48(long);
	extern int 		putenv( char *);
# 279 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

# 333 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

     extern char *optarg;
     extern int optind;
     extern int opterr;

     float    atoff();
     char     *ecvt   (double, int, int *, int *)    ;
     char     *fcvt   (double, int, int *, int *)    ;
     char     *gcvt   (double, int, char *)    ;
     float    strtof();
     void     imul_dbl();
     void     umul_dbl();

# 374 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/stdlib.h" 3 4

    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 int		rpmatch(const char *);
    extern int		clearenv(void);
    extern int		getopt(int, char *const[], const char *);
    extern char		*getpass(const char *);

# 28 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/system.h" 1

# 79 "/home/markj/projects/LEDA/incl/LEDA/system.h"

# 231 "/home/markj/projects/LEDA/incl/LEDA/system.h"

# 32 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/global.h" 1

typedef void* GenPtr;     

enum { after = 0, before = 1 };
enum { forward = 0, backward = 1 };

# 1 "/usr/include/values.h" 1 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/limits.h" 1 3 4
 
# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/syslimits.h" 1 3 4

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/limits.h" 1 3 4

# 113 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/limits.h" 3 4

# 1 "/usr/include/limits.h" 1 3 4

# 116 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/limits.h" 2 3 4

# 7 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/syslimits.h" 2 3 4

# 11 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/limits.h" 2 3 4

# 20 "/usr/include/values.h" 2 3 4

extern unsigned int _SFPMAX;

# 47 "/home/markj/projects/LEDA/incl/LEDA/global.h" 2

struct LEDA {

char* init_list;

static const char* version_string;
static const char* copyright_string;

static void write_log(const char*);

 LEDA();
~LEDA();
};

extern LEDA L_E_D_A;

# 33 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/bool.h" 1

# 71 "/home/markj/projects/LEDA/incl/LEDA/bool.h"

# 34 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/error.h" 1

typedef void (*LedaErrorHandler)(int,const char*);

extern LedaErrorHandler std_error_handler;
extern LedaErrorHandler set_error_handler(LedaErrorHandler);
extern void default_error_handler(int,const char*);

inline void error_handler(int i, const char* s)  { std_error_handler(i,s); }

# 35 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/thread.h" 1

# 32 "/home/markj/projects/LEDA/incl/LEDA/thread.h"

# 1 "/home/markj/projects/LEDA/incl/LEDA/thread/dummy_mutex.h" 1

class leda_mutex {

public:

  leda_mutex()  {}
 ~leda_mutex()  {}

  void acquire() {}
  void lock()    {}
  void enter()   {}

  void release() {}
  void unlock()  {}
  void exit() {}

  int trylock()  { return 0; }
  int tryenter() { return 0; }
  
}; 
# 34 "/home/markj/projects/LEDA/incl/LEDA/thread.h" 2

# 36 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/memory.h" 1

struct  memory_elem_type { 
 memory_elem_type* next; 
};

typedef memory_elem_type* memory_elem_ptr;

class memory_manager {

 friend class memory_management;
 friend class memory_manager_init;

 int              max_sz;
 char             name[64];
 long int*        total_count;
 long int*        block_count;
 memory_elem_ptr* block_list;
 memory_manager*  next;

 void init(int,const char* = 0);
 void destroy();

public:

 memory_elem_ptr* free_list;

 memory_manager(int sz=256);
~memory_manager();

 void            allocate_block(int,int);
 memory_elem_ptr allocate_words(int);
 memory_elem_ptr allocate_bytes(int);
 memory_elem_ptr allocate_bytes_with_check(int);
 
 void deallocate_words(void*,int);
 void deallocate_bytes(void*, int);
 void deallocate_bytes_with_check(void*,int);
 void deallocate_list(void*, void*, int);
 
 void clear();
 void kill();
 void print_statistics();
 int  max_size() { return max_sz; }
 int  used_memory();
};

inline memory_elem_ptr memory_manager::allocate_bytes(int bytes)
{ memory_elem_ptr* q = free_list+bytes;
  if (*q==0) allocate_block(bytes,-1);
  memory_elem_ptr p = *q;
  *q = p->next;
  return p;
}

inline void memory_manager::deallocate_bytes(void* p, int bytes)
{ memory_elem_ptr* q = free_list+bytes;
  memory_elem_ptr(p)->next = *q;
  *q = memory_elem_ptr(p);
 }

inline void memory_manager::deallocate_list(void* head,void* tail, int bytes)
{ memory_elem_ptr* q = free_list+bytes;
  memory_elem_ptr(tail)->next = *q;
  *q = memory_elem_ptr(head);
 }

extern memory_manager std_memory_mgr;

class memory_manager_init {

static unsigned count;

public:
  memory_manager_init();
 ~memory_manager_init();
};

static memory_manager_init memory_mgr_init;

# 190 "/home/markj/projects/LEDA/incl/LEDA/memory.h"

# 201 "/home/markj/projects/LEDA/incl/LEDA/memory.h"

inline memory_elem_ptr allocate_words(int n) 
{ return std_memory_mgr .allocate_words(n); }

inline memory_elem_ptr allocate_bytes(int n)
{ return std_memory_mgr .allocate_bytes(n); }

inline void deallocate_words(void* p, int n)
{ std_memory_mgr .deallocate_words(p,n); }

inline void deallocate_bytes(void* p, int n)
{ std_memory_mgr .deallocate_bytes(p,n); }

inline void memory_clear()     { std_memory_mgr .clear(); }
inline void memory_kill()      { std_memory_mgr .kill(); }
inline void print_statistics() { std_memory_mgr .print_statistics(); }
inline int  used_memory()      { return std_memory_mgr .used_memory(); }

# 37 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/param_types.h" 1

inline void Avoid_Unused_Warning(GenPtr) {}
inline void* operator new(size_t, void* where, int) { return where; }

template<class T>
inline GenPtr leda_copy(const T& x)
{ GenPtr p=0;
  if (sizeof(T) <= sizeof(GenPtr)) Avoid_Unused_Warning(new(( T *)& p ,0)  T ( x )) ;
  if (sizeof(T) >  sizeof(GenPtr)) p = new T(x);
  return p;
 }

template <class T>
inline GenPtr leda_create(const T*) 
{ GenPtr p=0;
  if (sizeof(T) <= sizeof(GenPtr)) Avoid_Unused_Warning(new(( T *)& p ,0)  T ) ;
  if (sizeof(T) >  sizeof(GenPtr)) p = new T;
  return p;
 }

template <class T>
inline void leda_clear(T& x) 
{ T* p = &x;
  if (sizeof(T) <= sizeof(GenPtr))  p ->~ T (); ;
  if (sizeof(T) >  sizeof(GenPtr)) delete p;
}


template <class T>
inline GenPtr leda_cast(const T& x) 
{ GenPtr p=0;
  if (sizeof(T) == sizeof(GenPtr)) p = *(GenPtr*)&x;
  if (sizeof(T) <  sizeof(GenPtr)) *(T*)&p = x;
  if (sizeof(T) >  sizeof(GenPtr)) p = (GenPtr)&x;
  return p;
 }

template <class T>
inline T& leda_access(const T*, const GenPtr& p)
{ if (sizeof(T) <= sizeof(GenPtr))
     return *(T*)&p;
  else
     return *(T*)p;
 }

template <class T>
inline const T& leda_const_access(const T*, const GenPtr& p)
{ if (sizeof(T) <= sizeof(GenPtr))
     return *(T*)&p;
  else
     return *(T*)p;
 }

# 200 "/home/markj/projects/LEDA/incl/LEDA/param_types.h"

template <class T> 
inline int   leda_itype(const T*) { return 0; }

template <class T>
inline char* leda_tname(const T*) { return "unknown"; }

inline istream& operator>>(istream& in, GenPtr) { return in; }

template <class T> 
inline void Print(const T& x, ostream& out) { out << x; }

template <class T>
inline void Read(T& x, istream& in) { in >> x; }

# 277 "/home/markj/projects/LEDA/incl/LEDA/param_types.h"

inline GenPtr leda_copy(const char& x)  { GenPtr p; *(char*)&p = x;  return p; }
inline GenPtr leda_copy(const short& x) { GenPtr p; *(short*)&p = x; return p; }
inline GenPtr leda_copy(const int& x)   { GenPtr p; *(int*)&p = x;   return p; }
inline GenPtr leda_copy(const long& x)  { GenPtr p; *(long*)&p = x;  return p; }
inline GenPtr leda_copy(const float& x) { GenPtr p; *(float*)&p = x; return p; }
 
inline GenPtr leda_cast(const char& x)  { return leda_copy(x); }
inline GenPtr leda_cast(const short& x) { return leda_copy(x); }
inline GenPtr leda_cast(const int& x)   { return leda_copy(x); }
inline GenPtr leda_cast(const long& x)  { return leda_copy(x); }
inline GenPtr leda_cast(const float& x) { return leda_copy(x); }
 
inline GenPtr leda_create(const char*)  { return 0; }
inline GenPtr leda_create(const short*) { return 0; }
inline GenPtr leda_create(const int*)   { return 0; }
inline GenPtr leda_create(const long*)  { return 0; }
inline GenPtr leda_create(const float*) { return 0; }
 
inline void   leda_clear(char&)  {}
inline void   leda_clear(short&) {}
inline void   leda_clear(int&)   {}
inline void   leda_clear(long&)  {}
inline void   leda_clear(float&) {}
 
inline char&  leda_access(const char*, const GenPtr& p) { return *(char*)&p;  }
inline short& leda_access(const short*,const GenPtr& p) { return *(short*)&p; }
inline int&   leda_access(const int*,  const GenPtr& p) { return *(int*)&p;   }
inline long&  leda_access(const long*, const GenPtr& p) { return *(long*)&p;  }
inline float& leda_access(const float*,const GenPtr& p) { return *(float*)&p; }

inline const char&  leda_const_access(const char*, const GenPtr& p) 
{ return *(char*)&p;  }
inline const short& leda_const_access(const short*,const GenPtr& p) 
{ return *(short*)&p; }
inline const int&   leda_const_access(const int*,  const GenPtr& p) 
{ return *(int*)&p;   }
inline const long&  leda_const_access(const long*, const GenPtr& p) 
{ return *(long*)&p;  }
inline const float& leda_const_access(const float*,const GenPtr& p) 
{ return *(float*)&p; }

inline GenPtr leda_copy(const double& x)
{ GenPtr p;
  if (sizeof(double) > sizeof(GenPtr))
    { p = std_memory_mgr .allocate_bytes(sizeof(double));
      *(double*)p = x; }
  else 
      *(double*)&p = x;
  return p;
 }

inline GenPtr leda_create(const double*)
{ GenPtr p;
  if (sizeof(double) > sizeof(GenPtr))
    { p = std_memory_mgr .allocate_bytes(sizeof(double));
      *(double*)p = 0; }
  else 
      *(double*)&p = 0;
  return p;
 }

inline void leda_clear(double& x) 
{ if (sizeof(double) > sizeof(GenPtr)) 
     std_memory_mgr .deallocate_bytes(&x,sizeof(double)); 
 }

inline GenPtr leda_cast(const double& x) 
{ return (sizeof(double) <= sizeof(GenPtr)) ? *(GenPtr*)&x : GenPtr(&x); }


inline double& leda_access(const double*, const GenPtr& p) 
{ return (sizeof(double) <= sizeof(GenPtr)) ? *(double*)&p : *(double*)p; }

inline const double& leda_const_access(const double*, const GenPtr& p) 
{ return (sizeof(double) <= sizeof(GenPtr)) ? *(double*)&p : *(double*)p; }

inline int leda_itype(const int*)  { return 1; }
inline int leda_itype(const long*) { return sizeof(long) == sizeof(int); }

inline unsigned long ID_Number(GenPtr x) { return (unsigned long)x; }
inline unsigned long ID_Number(char   x) { return (unsigned long)x; }
inline unsigned long ID_Number(short  x) { return (unsigned long)x; }
inline unsigned long ID_Number(int    x) { return (unsigned long)x; }
inline unsigned long ID_Number(long   x) { return (unsigned long)x; }
inline char* leda_tname(const char*  ) { return "char";   }
inline char* leda_tname(const short* ) { return "short";  }
inline char* leda_tname(const int*   ) { return "int";    }
inline char* leda_tname(const long*  ) { return "long";   }
inline char* leda_tname(const float* ) { return "float";  }
inline char* leda_tname(const double*) { return "double"; }

template <class T> class decl_compare_func
{ friend int compare(const T&, const T&); };

inline int compare(const  char & x, const  char & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  int & x, const  int & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  unsigned int & x, const  unsigned int & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  long & x, const  long & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  unsigned long & x, const  unsigned long & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  float & x, const  float & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 
inline int compare(const  double & x, const  double & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 

inline int compare(const  bool & x, const  bool & y){ if (x < y) return -1; else if (x > y) return  1; else return 0; } 

inline int Hash(const GenPtr& x) { return int(long(x)); }
inline int Hash(const char&   x) { return int(x); } 
inline int Hash(const short&  x) { return int(x); }
inline int Hash(const int&    x) { return int(x); }
inline int Hash(const long&   x) { return int(x); }
inline int Hash(const float&  x) { return int(x); }
inline int Hash(const double& x) { return int(x); }

inline int Hash(const bool&   x) { return int(x); }

# 517 "/home/markj/projects/LEDA/incl/LEDA/param_types.h"

# 38 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/handle_types.h" 1

class handle_base;

class handle_rep  {

friend class handle_base;

protected:

 leda_mutex mutex_count;

 int  count;

 handle_rep()  { count = 1; }
 virtual ~handle_rep()  {}

public:

 void* operator new(size_t bytes){ memory_elem_ptr* q = std_memory_mgr.free_list+bytes; if (*q==0) std_memory_mgr.allocate_block(bytes,-1); memory_elem_ptr p = *q; *q = p->next; return p; }void* operator new(size_t,void* p) { return p; }void* operator new(size_t,void* p,int) { return p; }void  operator delete(void* p, size_t bytes){ memory_elem_ptr* q = std_memory_mgr.free_list+bytes; memory_elem_ptr(p)->next = *q; *q = memory_elem_ptr(p); } 

};

class handle_base {

protected:

handle_rep* PTR;

public:

 handle_base() {}
 handle_base(const handle_base& x) 
 { PTR = x.PTR;  
   PTR->mutex_count.lock();
   PTR->count++; 
   PTR->mutex_count.unlock();
  }

~handle_base() 
 { if (PTR)
   { PTR->mutex_count.lock();
     if (--PTR->count == 0)  delete PTR;
     if (PTR) PTR->mutex_count.unlock(); 
    }
  }

handle_base& operator=(const handle_base& x)
{ x.PTR->mutex_count.lock();
  x.PTR->count++;
  x.PTR->mutex_count.unlock();
  if (PTR)
  { PTR->mutex_count.lock();
    if (--PTR->count == 0)  delete PTR;  
    if (PTR) PTR->mutex_count.unlock();
   }
  PTR = x.PTR;
  return *this;
 }

int    refs()  const { return PTR->count; }


friend unsigned long ID_Number(const handle_base& x)
{ return (unsigned long)x.PTR; }

friend bool identical(const handle_base& x, const handle_base& y)
{ return x.PTR == y.PTR; }

# 122 "/home/markj/projects/LEDA/incl/LEDA/handle_types.h"
 
};
 
# 39 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 2

# 1 "/home/markj/projects/LEDA/incl/LEDA/string.h" 1

# 1 "/home/markj/projects/LEDA/incl/LEDA/basic.h" 1

# 60 "/home/markj/projects/LEDA/incl/LEDA/basic.h"

# 26 "/home/markj/projects/LEDA/incl/LEDA/string.h" 2

# 1 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 1 3 4
 
# 19 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 3 4

# 76 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 3 4

        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 *);

# 108 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 3 4

        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      strncmp(const char *,const char *,size_t);
        extern int      strncollen(const char *, const int );
        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);
        extern int      strcoll(const char *, const char *);
        extern size_t strxfrm(char *, const char *, size_t);

# 173 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 3 4

        extern char     *index(const char *, int);
        extern char     *rindex(const char *, int);
        extern char     *strdup(char *);
        extern void     swab(const void *, void *, ssize_t); 
        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 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 wchar_t  *wcswcs(const wchar_t *, const wchar_t *);
        extern int      wcswidth(const wchar_t *, size_t);
        extern int      wcwidth(const wchar_t);
        extern int      wcscoll(const wchar_t *, const wchar_t *);
        extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
 
# 241 "/home/markj/lib/gcc-lib/rs6000-ibm-aix3.2.5/egcs-2.90.16/include/string.h" 3 4

# 27 "/home/markj/projects/LEDA/incl/LEDA/string.h" 2

class string_rep : public handle_rep {

friend class leda_string ;

      char*   s;
      int     len;

int dummy;

 string_rep(const char*);
 string_rep(const char*,const char*);  
 string_rep(char);

~string_rep() { delete[] s; }

friend inline leda_string  operator+(const leda_string & x, const leda_string & y);

};

class leda_string   : public handle_base
{

 friend class string_rep;
 friend class leda_window ;

 static char* str_dup(const char*);
 static char* str_cat(const char*,const char*);
 static char* str_ncat(int, char**);

 string_rep*  ptr() const { return (string_rep*)PTR; }

 leda_string (string_rep* rep) { PTR = rep; }   

public:

leda_string () { PTR = new string_rep(""); }

leda_string (const char* p)       { PTR = new string_rep(p);}

 leda_string (const char*, char, ...);
 leda_string (const char*, unsigned char, ...);
 leda_string (const char*, short,...);
 leda_string (const char*, unsigned short, ...);
 leda_string (const char*, int, ...);
 leda_string (const char*, unsigned int, ...);
 leda_string (const char*, long, ...);
 leda_string (const char*, unsigned long, ...);
 leda_string (const char*, float, ...);
 leda_string (const char*, double, ...);
 leda_string (const char*, const char*, ...);
 leda_string (const char*, void*, ...);

leda_string (char c) { PTR = new string_rep(c);  }

 leda_string (int argc, char** argv) { PTR = new string_rep(str_ncat(argc,argv)); }


 leda_string (const leda_string & x) : handle_base(x)  {}
~leda_string () {}

leda_string & operator=(const leda_string & x) { handle_base::operator=(x); return *this; }

char* cstring()         const { return ptr()->s; }
const char* operator~() const { return ptr()->s; }
operator const char*()  const { return ptr()->s; }

int length() const  { return ptr()->len; }

char  operator[](int i) const { return ptr()->s[i]; }

char& operator[](int i)
{ if (refs() > 1) *this = cstring();     
  return ptr()->s[i];
}

leda_string  operator()(int i, int j)  const { return sub(i,j); }

leda_string  head(int i)               const { return sub(0,i-1); }
 

leda_string  tail(int i)               const { return sub(length()-i,length()-1); }

leda_string  sub(int,int)      const;

int pos(leda_string  s1, int i) const;

int    pos(const leda_string & s1) const { return pos(s1,0); }
 
leda_string  insert(leda_string  s1, int i =0)     const;
leda_string  insert(int i, leda_string  s1)       const;

leda_string  replace(const leda_string & s1, const leda_string & s2, int i=1) const;

leda_string  replace(int i, int j , const leda_string & s1) const;

leda_string  replace(int i, const leda_string & s1) const { return replace(i,i,s1);  }

leda_string  replace_all(const leda_string & s1, const leda_string & s2) const 
{ return replace(s1,s2,0); }

leda_string  del(const leda_string & s1 , int i=1) const;
 
leda_string  del(int i , int j) const;
 
leda_string  del(int i) const  { return del(i,i); }
 
leda_string  del_all(const leda_string & s1) const  { return del(s1,0); }
 
void   read(istream& I, char delim = ' ');
 
void   read(char delim = ' ')           { read(cin,delim); }
 
void   read_line(istream& I)    { read(I,'\n'); }
 
void read_line() {read_line(cin);}
 
leda_string  format(leda_string ) const;

leda_string & operator+=(const leda_string & x);
 
friend leda_string   operator+(const leda_string & x ,const leda_string & y)
{ return new string_rep(x.cstring(),y.cstring()); }
 
friend bool operator==(const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())==0; }
 
friend bool operator==(const leda_string & x, const char* y)
{ return strcmp(x.cstring(),y)==0; }

friend bool operator!=(const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())!=0; }
 
friend bool operator!=(const leda_string & x, const char* y)
{ return strcmp(x.cstring(),y)!=0; }

friend bool operator< (const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())<0; }
 
friend bool operator> (const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())>0; }
 
friend bool operator<=(const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())<=0; }
 
friend bool operator>=(const leda_string & x, const leda_string & y)
{ return strcmp(x.cstring(),y.cstring())>=0; }
 
friend istream& operator>>(istream& I, leda_string & s);
 
friend ostream& operator<<(ostream& O, const leda_string & s) ;
 
};

class leda_string;

struct virtual_object_process_info
{
        float pPar(const IDM_V_USAGE_BOX& vusage, const leda_string& kywd) const;
        leda_string pPar_string(const IDM_V_USAGE_BOX& vusage, const leda_string& kywd) const;
        leda_string pInst_string(const IDM_V_USAGE_BOX& vusage, const leda_string& kywd, const leda_string& refname) const;
        leda_string post_process(const IDM_V_USAGE_BOX& vusage, leda_string expr, const leda_string& kywd) const;
        leda_string getpar(const leda_string& expr, int& a, int& b) const;
    
};

leda_string
virtual_object_process_info::post_process(const IDM_V_USAGE_BOX& vusage,
	leda_string expr, const leda_string& kywd) const
{
	leda_string curstr;
	leda_string newstr;
	int a=-1;
	int b=-1;
	for(curstr=getpar(expr, a, b); curstr!=""; curstr=getpar(expr, a, b))
	{
		leda_string opp = kywd;
		int last = kywd.length()-1;
		if(kywd[last] == 'p')
			opp[last] = 'n';
		else if(kywd[last] == 'n')
			opp[last] = 'p';
		else
			 opp = "";
		if(curstr[0]=='p' &&
			(newstr=pInst_string(vusage, kywd, expr(a+1,b))) != "")
		{
			expr = expr.replace(a, b, newstr);
			b = a+newstr.length()-1;
		}
		else if(curstr[0]=='p' && opp!="" &&
			(newstr=pInst_string(vusage, opp, expr(a+1,b))) != "")
		{
			expr = expr.replace(a, b, newstr);
			b = a+newstr.length()-1;
		}
		else if((newstr=pPar_string(vusage, curstr)) != "")
		{
			expr = expr.replace(a, b, newstr);
			b = a+newstr.length()-1;
		}
	}
	return expr;
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1997-09-15 12:56 internal " Mike Stump
@ 1997-11-01 21:25 ` Jeffrey A Law
  0 siblings, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1997-11-01 21:25 UTC (permalink / raw)
  To: Mike Stump; +Cc: wilson, egcs-bugs, robert

  In message <199709151955.MAA05237@kankakee.wrs.com>you write:
  > Ok, below is a start at this, but it isn't finished.  It assumes that
  > all EH code is between the REGION notes, which is false, and that the
  > region notes that appear, are associated with the region that will be
  > thrown into, which is also false.
[ ... ]
Just an FYI -- I installed Jason's version of the flow.c changes
and your version of the final.c and except.c changes.

jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-10-29 22:16 Michael Ward
  0 siblings, 0 replies; 387+ messages in thread
From: Michael Ward @ 1997-10-29 22:16 UTC (permalink / raw)
  To: egcs-bugs

egcs requested a bug report.  The code it puked on is probably illegal in
C++ -- I'm just learning.


session script:
-------------------
> egcs_g++ matrix.cc
matrix.cc: In method double & matrix::operator ()(unsigned int, unsigned int)':
matrix.cc:38: Internal compiler error.
matrix.cc:38: Please submit a full bug report to egcs-bugs@cygnus.com'. 
-------------------
snapshot 971023 (clean source)
Solaris 2.5 (hypersparc)
the offending code fragment:

typedef unsigned uint;
class matrix : public vector<double> 
{
...
 reference (matrix::*ref) (uint, uint);
public:
...
 iterator next(void)  {return next_++;}
 reference sc (uint i, uint j) {return *begin();}
 reference rv (uint i, uint j) {return (*this)[j];}
 reference cv (uint i, uint j) {return (*this)[i];}
 reference mx (uint i, uint j) {return *next();}
 reference operator() (uint i, uint j) {return this->ref(i,j);} // *** Line 38 ***
};

void matrix::resize (uint a, uint b) 
{
...
 switch(type_)
 { 
  case Matrix:   ref = &mx; return;
  case Scalar:   ref = &sc; return;
  case Row_vec:  ref = &rv; return;
  case Col_vec:  ref = &sc; return;
 }
}					      }


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1997-09-25  0:31 Rick Harding
@ 1997-09-25 12:53 ` Jeffrey A Law
  0 siblings, 0 replies; 387+ messages in thread
From: Jeffrey A Law @ 1997-09-25 12:53 UTC (permalink / raw)
  To: Rick Harding; +Cc: egcs-bugs

  In message < 342A16C7.6BCEA3@best.com >you write:
  > I'm trying to compile the 970922 snapshot of the core and cp.
  > 
  > First problem occurred while compiling reg-stack in the gcc directory.
  > Two undefined variables one on line 1357 "x" and the other on line 1368
  > "pat".
See 

http://www.cygnus.com/ml/egcs/1997-Sep/0847.html


jeff


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-09-25  0:31 Rick Harding
  1997-09-25 12:53 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: Rick Harding @ 1997-09-25  0:31 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I'm trying to compile the 970922 snapshot of the core and cp.

First problem occurred while compiling reg-stack in the gcc directory.
Two undefined variables one on line 1357 "x" and the other on line 1368
"pat".

I was able to get around this by declaring the variables of type x and
pat of type rtx. I'm not sure this is the right thing to do, but it did
at least compile.

The internal compiler error occurs with the following:

/usr/src/egcs-970922/gcc/xgcc -B/usr/src/egcs-970922/gcc/  -DIN_GCC  
-DUSE_GNULIBC_1 -g -O2 -I./include     -DNO_MEM -DNO_LONG_DOUBLE_IO -O0
-I. -c ./enquire.c
xgcc: Internal compiler error: program cc1 got fatal signal 11

Any suggestions/solutions?????


-- Rick Harding

====================================================================
   ...Be careful whose advice you buy, but be patient with those
   who supply it. Advice is a form of nostalgia.  Dispensing it
   is a way of fishing the past from the disposal, wiping it off,
   painting over the ugly parts and recycling it for more	
   than it's worth...
                                         - K. Vonnegut
====================================================================


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-09-16 18:43 Christopher Grinton
  0 siblings, 0 replies; 387+ messages in thread
From: Christopher Grinton @ 1997-09-16 18:43 UTC (permalink / raw)
  To: egcs-bugs

First of all, let me say thanks for the great work everyone is doing
on the egcs project; it is exciting to see some of the latest
developments that have been going on with gcc.

The following code causes an internal compiler error with egcs-970910
(seg fault at the call to comptypes at call.c:5642 because the
arguments TREE_OPERAND (ics[12], 0) to the TREE_TYPE macros are both
0).

It compiles without error using g++ 2.7.2.1 which is not correct
either, since the == in f is ambiguous (candidates are
operator==(int,int) and operator==(const MyInt&, const MyInt&)).

I am running Debian linux 2.0.30. If you would like any more
information about my system, please let me know.

class MyInt
{
public:
	MyInt(int = 0) {}
	operator int() const {return 2;}
};

bool operator==(const MyInt& a, const int& b)
{
	return (int)a == b;
}

bool operator==(const MyInt& a, const MyInt& b)
{
	return (int)a == (int)b;
}

bool f()
{
	return 3 == MyInt();
}

Regards,
Chris
------------------------------------------------------------
Christopher Grinton                     cgg@osa.com.au
Open Software Associates Limited
29 Ringwood Street / PO Box 4414        Phone +613 9871 1646
Ringwood, VIC  3134, AUSTRALIA          Fax   +613 9871 1711
------------------------------------------------------------
   Deploy Applications across the Internet and Intranets!
	  Visit our Web site at http://www.osa.com


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 1997-09-15 12:56 Mike Stump
  1997-11-01 21:25 ` Jeffrey A Law
  0 siblings, 1 reply; 387+ messages in thread
From: Mike Stump @ 1997-09-15 12:56 UTC (permalink / raw)
  To: wilson; +Cc: egcs-bugs, robert

> Date: Fri, 05 Sep 1997 21:00:48 -0700
> From: Jim Wilson <wilson@cygnus.com>

> We don't actually want to do this for any setjmp call though, only for
> builtin setjmp calls.  And we don't want to make calls go to any label
> whose address was taken, only to those labels which were created by
> expand_builtin_setjmp.  Furthermore, for any particular call insn, we
> only want the labels that are for handlers that are in scope, not for all
> of the handlers.  I suspect that there is only one handler in scope at
> a time?  These are all optimizations though.  They will give better code,
> but aren't necessary for correct code.

Ok, below is a start at this, but it isn't finished.  It assumes that
all EH code is between the REGION notes, which is false, and that the
region notes that appear, are associated with the region that will be
thrown into, which is also false.

I kinda want to do the markup in the frontend, or in the backend at
expansion time...  :-(

I'll come back to this work very soon (~<1 week), but I'm not working
on it right now.


Doing diffs in .:
*** ./flow.c.~1~	Wed Sep 10 14:58:47 1997
--- ./flow.c	Wed Sep 10 17:32:59 1997
*************** find_basic_blocks (f, nonlocal_label_lis
*** 380,385 ****
--- 380,405 ----
    rtx x, note;
    enum rtx_code prev_code, code;
    int depth, pass;
+   int max_labelno = max_label_num ();
+   int min_labelno = get_first_label_num ();
+   rtx *labels;
+   rtx handlers;
+ 
+   /* Generate a handy reference to each label.  */
+ 
+   labels = (rtx *) alloca ((max_labelno - min_labelno) * sizeof (rtx));
+   bzero ((char *) labels, (max_labelno - min_labelno) * sizeof (rtx));
+ 
+   /* Arrange for labels to be indexed directly by CODE_LABEL_NUMBER.  */
+   labels -= min_labelno;
+ 
+   for (insn = f; insn; insn = NEXT_INSN (insn))
+     {
+       if (GET_CODE (insn) == CODE_LABEL)
+ 	if (CODE_LABEL_NUMBER (insn) >= min_labelno
+ 	    && CODE_LABEL_NUMBER (insn) < max_labelno)
+ 	  labels[CODE_LABEL_NUMBER (insn)] = insn;
+     }
  
    pass = 1;
   restart:
*************** find_basic_blocks (f, nonlocal_label_lis
*** 560,569 ****
  	if (GET_CODE (insn) == CALL_INSN
  	    && ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
  	  {
- 	    for (x = nonlocal_label_list; x; x = XEXP (x, 1))
- 	      mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
- 			      insn, 0);
- 
  	    /* ??? This could be made smarter:
  	       in some cases it's possible to tell that certain
  	       calls will not do a nonlocal goto.
--- 580,585 ----
*************** find_basic_blocks (f, nonlocal_label_lis
*** 573,579 ****
--- 589,638 ----
  	       only calls to those functions or to other nested
  	       functions that use them could possibly do nonlocal
  	       gotos.  */
+ 
+ 	    for (x = nonlocal_label_list; x; x = XEXP (x, 1))
+ 	      mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
+ 			      insn, 0);
  	  }
+ 
+       /* Handlers is a stack of outstanding exception handlers for the
+ 	 current insn.  The topmost handler will be the handler that
+ 	 control is transferred to, if an exception is thrown.  */
+ 
+       handlers = NULL_RTX;
+ 
+       for (insn = f; insn; insn = NEXT_INSN (insn))
+ 	{
+ 	  code = GET_CODE (insn);
+ 	  if (code == NOTE)
+ 	    {
+ 	      if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG)
+ 		{
+ 		  rtx label = labels[NOTE_BLOCK_NUMBER (insn)];
+ 		  handlers = gen_rtx (EXPR_LIST, VOIDmode,
+ 				      label , handlers);
+ 		}
+ 	      else if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END)
+ 		{
+ 		  handlers = XEXP (handlers, 1);
+ 		}
+ 	    }
+       
+ 	  /* ??? We would really like to check can_throw (insn) and if
+ 	     that is true, do this, but I don't know if we can do this
+ 	     for all the INSN types.  (mrs) */
+ 
+ 	  else if (GET_CODE (insn) == CALL_INSN
+ 		   && handlers)
+ 	    {
+ 	      /* Find all call insns and mark them as possibly jumping
+ 		 to it's exception handler label.  */
+ 
+ 	      mark_label_ref (gen_rtx (LABEL_REF, VOIDmode,
+ 				       XEXP (handlers, 0)),
+ 			      insn, 0);
+ 	    }
+ 	}
  
        /* All blocks associated with labels in label_value_list are
  	 trivially considered as marked live, if the list is empty.
*** ./except.c.~1~	Wed Sep 10 15:00:54 1997
--- ./except.c	Wed Sep 10 17:11:33 1997
*************** expand_eh_region_start_for_decl (decl)
*** 999,1010 ****
        expand_dhc_cleanup (decl);
      }
  
-   if (exceptions_via_longjmp == 0)
-     note = emit_note (NULL_PTR, NOTE_INSN_EH_REGION_BEG);
    push_eh_entry (&ehstack);
!   if (exceptions_via_longjmp == 0)
!     NOTE_BLOCK_NUMBER (note)
!       = CODE_LABEL_NUMBER (ehstack.top->entry->exception_handler_label);
    if (exceptions_via_longjmp)
      start_dynamic_handler ();
  }
--- 999,1008 ----
        expand_dhc_cleanup (decl);
      }
  
    push_eh_entry (&ehstack);
!   note = emit_note (NULL_PTR, NOTE_INSN_EH_REGION_BEG);
!   NOTE_BLOCK_NUMBER (note)
!     = CODE_LABEL_NUMBER (ehstack.top->entry->exception_handler_label);
    if (exceptions_via_longjmp)
      start_dynamic_handler ();
  }
*************** expand_eh_region_end (handler)
*** 1033,1049 ****
       tree handler;
  {
    struct eh_entry *entry;
  
    if (! doing_eh (0))
      return;
  
    entry = pop_eh_entry (&ehstack);
  
    if (exceptions_via_longjmp == 0)
      {
        rtx label;
-       rtx note = emit_note (NULL_PTR, NOTE_INSN_EH_REGION_END);
-       NOTE_BLOCK_NUMBER (note) = CODE_LABEL_NUMBER (entry->exception_handler_label);
  
        label = gen_label_rtx ();
        emit_jump (label);
--- 1031,1049 ----
       tree handler;
  {
    struct eh_entry *entry;
+   rtx note;
  
    if (! doing_eh (0))
      return;
  
    entry = pop_eh_entry (&ehstack);
  
+   note = emit_note (NULL_PTR, NOTE_INSN_EH_REGION_END);
+   NOTE_BLOCK_NUMBER (note)
+     = CODE_LABEL_NUMBER (entry->exception_handler_label);
    if (exceptions_via_longjmp == 0)
      {
        rtx label;
  
        label = gen_label_rtx ();
        emit_jump (label);
*************** exception_optimize ()
*** 2078,2087 ****
  {
    rtx insn, regions = NULL_RTX;
    int n;
- 
-   /* The below doesn't apply to setjmp/longjmp EH.  */
-   if (exceptions_via_longjmp)
-     return;
  
    /* Remove empty regions.  */
    for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
--- 2078,2083 ----
*** ./final.c.~1~	Wed Sep 10 15:01:01 1997
--- ./final.c	Wed Sep 10 15:07:19 1997
*************** final_scan_insn (insn, file, optimize, p
*** 1379,1385 ****
        if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
  	break;
  
!       if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG)
  	{
  	  ASM_OUTPUT_INTERNAL_LABEL (file, "LEHB", NOTE_BLOCK_NUMBER (insn));
  	  add_eh_table_entry (NOTE_BLOCK_NUMBER (insn));
--- 1379,1386 ----
        if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
  	break;
  
!       if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG
! 	  && ! exceptions_via_longjmp)
  	{
  	  ASM_OUTPUT_INTERNAL_LABEL (file, "LEHB", NOTE_BLOCK_NUMBER (insn));
  	  add_eh_table_entry (NOTE_BLOCK_NUMBER (insn));
*************** final_scan_insn (insn, file, optimize, p
*** 1389,1395 ****
  	  break;
  	}
  
!       if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END)
  	{
  	  ASM_OUTPUT_INTERNAL_LABEL (file, "LEHE", NOTE_BLOCK_NUMBER (insn));
  #ifdef ASM_OUTPUT_EH_REGION_END
--- 1390,1397 ----
  	  break;
  	}
  
!       if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END
! 	  && ! exceptions_via_longjmp)
  	{
  	  ASM_OUTPUT_INTERNAL_LABEL (file, "LEHE", NOTE_BLOCK_NUMBER (insn));
  #ifdef ASM_OUTPUT_EH_REGION_END
--------------


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error
  1997-09-10  1:56 Internal " Kent Vander Velden
@ 1997-09-10  3:42 ` Robert Wilhelm
  0 siblings, 0 replies; 387+ messages in thread
From: Robert Wilhelm @ 1997-09-10  3:42 UTC (permalink / raw)
  To: Kent Vander Velden; +Cc: egcs-bugs

Just use -fno-exceptions or -fno-sjlj-exceptions
and your program will compile fine.

> Included is a short program that produces an internal compiler
> error with egcs-970907 on a FreeBSD-current machine if
> compiled optimized.  If -O flags are left off, it compiles.
> 
>   While purning the program down from a few thousand lines...
> often this message was given:
> 
> tt6.C: In function `int main(int, char **)':
> tt6.C:22: internal error--insn does not satisfy its constraints:
> (insn 1128 828 829 (set (reg:SI 4 %esi)
>         (reg/v:SI 63)) 52 {movsi+1} (nil)
>     (nil))
> tt6.C:22: confused by earlier errors, bailing out
> 
> 
> 
> 
> #include <vector>
> 
> #include <strstream.h>
> 
> /*----------------------------------------*/
> 
> struct connection_t {
>   connection_t() {}
> };
> 
> vector<connection_t> connections;    
> 
> /*----------------------------------------*/
> 
> int
> main() {
>   ostrstream str;
> 
>   connections.insert(connections.end(), connection_t());
>   
>   return 0;
> }
> 
> /*----------------------------------------*/
> 



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-09-10  1:56 Kent Vander Velden
  1997-09-10  3:42 ` Robert Wilhelm
  0 siblings, 1 reply; 387+ messages in thread
From: Kent Vander Velden @ 1997-09-10  1:56 UTC (permalink / raw)
  To: egcs-bugs

Included is a short program that produces an internal compiler
error with egcs-970907 on a FreeBSD-current machine if
compiled optimized.  If -O flags are left off, it compiles.

  While purning the program down from a few thousand lines...
often this message was given:

tt6.C: In function `int main(int, char **)':
tt6.C:22: internal error--insn does not satisfy its constraints:
(insn 1128 828 829 (set (reg:SI 4 %esi)
        (reg/v:SI 63)) 52 {movsi+1} (nil)
    (nil))
tt6.C:22: confused by earlier errors, bailing out




#include <vector>

#include <strstream.h>

/*----------------------------------------*/

struct connection_t {
  connection_t() {}
};

vector<connection_t> connections;    

/*----------------------------------------*/

int
main() {
  ostrstream str;

  connections.insert(connections.end(), connection_t());
  
  return 0;
}

/*----------------------------------------*/


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Internal compiler error
@ 1997-09-08 23:32 Jan Reimers
  0 siblings, 0 replies; 387+ messages in thread
From: Jan Reimers @ 1997-09-08 23:32 UTC (permalink / raw)
  To: egcs-bugs

Compile this c++ snippet with the Sept/04 snapshot

gcc -c -DCRASH test5.cc

and I get an internal compiler error.
Linux 2.0.27 on a P-Pro machine
>From sos@prospect.com.ru Tue Sep 09 06:49:00 1997
From: Sergey Okhapkin <sos@prospect.com.ru>
To: "'egcs-bugs@cygnus.com'" <egcs-bugs@cygnus.com>
Subject: Patch to gcc/f/g77.c
Date: Tue, 09 Sep 1997 06:49:00 -0000
Message-id: <01BCBD47.1F95A600@gater.krystalbank.msk.ru>
X-SW-Source: 1997-09/msg00115.html
Content-length: 1154

Hi!

This patch allows to compile/run g77 on cygnus gnu-win32 environment.

 

-- 
Sergey Okhapkin, http://www.lexa.ru/sos
Moscow, Russia
Looking for a job.


begin 600 g77.diff
M+2TM(&<W-RYC+F]R:6<)5'5E(%-E<" P.2 Q-CHR-CHR,R Q.3DW"BLK*R!G
M-S<N8PE4=64@4V5P(# Y(#$U.C4T.C0R(#$Y.3<*0$ @+3DW.2PW("LY-SDL
M-R! 0 H@"B C96YD:68*( HM(VEF("%D969I;F5D*%]?35-$3U-?7RD@)B8@
M(61E9FEN960H3U,R*2 F)B A9&5F:6YE9"A?5TE.,S(I"BLC:68@*"%D969I
M;F5D*%]?35-$3U-?7RD@)B8@(61E9FEN960H3U,R*2 F)B A9&5F:6YE9"A?
M5TE.,S(I*2!\?"!D969I;F5D("A?7T-91U=)3C,R7U\I"B *('-T871I8R!I
M;G0*('!E>&5C=71E("AS96%R8VA?9FQA9RP@<')O9W)A;2P@87)G=BP@;F]T
M7VQA<W0I"D! ("TQ,#@T+#<@*S$P.#0L-R! 0 H@?0H@(V5N9&EF("\J($]3
M,B J+PH@"BTC:68@9&5F:6YE9"A?5TE.,S(I"BLC:68@9&5F:6YE9"A?5TE.
M,S(I("8F("%D969I;F5D("A?7T-91U=)3C,R7U\I"B *('-T871I8R!I;G0*
M('!E>&5C=71E("AS96%R8VA?9FQA9RP@<')O9W)A;2P@87)G=BP@;F]T7VQA
M<W0I"D! ("TQ,3 Y+#<@*S$Q,#DL-R! 0 H@(VEF9&5F(%]?35-$3U-?7PH@
M("!S=&%T=7,@/2!P:60["B C96QS90HM(VEF9&5F(%]724XS,@HK(VEF(&1E
M9FEN960H7U=)3C,R*2 F)B A9&5F:6YE9"A?7T-91U=)3C,R7U\I"B @('!I
M9" ](&-W86ET("@F<W1A='5S+"!P:60L(%=!251?0TA)3$0I.PH@(V5L<V4*
9(" @<&ED(#T@=V%I=" H)G-T871U<RD["E=!
`
end



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
  1997-09-05 18:38 internal " Mike Stump
@ 1997-09-05 21:00 ` Jim Wilson
  0 siblings, 0 replies; 387+ messages in thread
From: Jim Wilson @ 1997-09-05 21:00 UTC (permalink / raw)
  To: Mike Stump; +Cc: robert, wilson, egcs-bugs, kenner

This does look like the right approach.

We don't actually want to do this for any setjmp call though, only for
builtin setjmp calls.  And we don't want to make calls go to any label
whose address was taken, only to those labels which were created by
expand_builtin_setjmp.  Furthermore, for any particular call insn, we
only want the labels that are for handlers that are in scope, not for all
of the handlers.  I suspect that there is only one handler in scope at
a time?  These are all optimizations though.  They will give better code,
but aren't necessary for correct code.

In addition to doing this, I think we need to modify expand_builtin_setjmp
so that it does not emit a NOTE_INSN_SETJMP.  All of the various setjmp
hacks enabled by this are not appropriate for builtin setjmp.  This also
solves the C++ -Wall problem where people are getting unnecessary and
annoying warnings about variables clobbered by longjmp.

Curiously, I see that there is code in reload1.c that actually uses
the NOTE_INSN_SETJMP emitted by the expand_builtin_setjmp code.  I don't
understand why it is there, but I suspect that this is working around the
flow bug fixed by your patch.

Jim


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 1997-09-05 18:38 Mike Stump
  1997-09-05 21:00 ` Jim Wilson
  0 siblings, 1 reply; 387+ messages in thread
From: Mike Stump @ 1997-09-05 18:38 UTC (permalink / raw)
  To: robert, wilson; +Cc: egcs-bugs, kenner

> To: Robert Wilhelm <robert@physiol.med.tu-muenchen.de>
> cc: egcs-bugs@cygnus.com
> Date: Sat, 30 Aug 1997 21:54:38 -0700
> From: Jim Wilson <wilson@cygnus.com>

> This is a bug in the setjmp/longjmp exception handling support.

> The RTL emitted when sjlj exceptions is enabled is confused, and the flow
> pass is not able to determine the control flow graph.  This causes the data
> flow info computed by flow to be wrong, which causes the register allocator
> to fail.  We end up with an unallocated pseudo register, reload_cse_regs pass
> gets junk from out of bounds array access, and this junk value causes a
> segmentation fault when we try to dereference it.

I have developed an initial fix to try out.  I would have thought that
Kenner would have flushed this code out, as he put it in and uses it
for Ada exception handling, but it appears this piece was missing, not
sure how it ever really worked without this type of patch.

I want to review it and think about it just a little longer to make
sure it is what I want, and to see if Kenner has any comments on how
it should have worked without the below patch.  The fix isn't optimal,
in the sense it is fairly conservative, but it only kicks in when a
function has a setjmp, so we should be ok.

Do you (to the egcs maintainers and Kenner) see anything wrong with
it?

(Just to update you on my paperwork: I have the copyright assignment
papers signed by Wind River's VP of Engineering, but the FSF doesn't
yet have a copy; need to get it into the mail.)

	* flow.c (find_basic_blocks): Make sure we know that all
	CALL_INSN can get to setjmp targets, if we're using
	__builtin_setjmp.

Doing diffs in .:
*** ./flow.c.~1~	Mon Aug 11 21:06:50 1997
--- ./flow.c	Fri Sep  5 18:11:31 1997
*************** find_basic_blocks (f, nonlocal_label_lis
*** 560,569 ****
  	if (GET_CODE (insn) == CALL_INSN
  	    && ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
  	  {
- 	    for (x = nonlocal_label_list; x; x = XEXP (x, 1))
- 	      mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
- 			      insn, 0);
- 
  	    /* ??? This could be made smarter:
  	       in some cases it's possible to tell that certain
  	       calls will not do a nonlocal goto.
--- 560,565 ----
*************** find_basic_blocks (f, nonlocal_label_lis
*** 573,578 ****
--- 569,604 ----
  	       only calls to those functions or to other nested
  	       functions that use them could possibly do nonlocal
  	       gotos.  */
+ 
+ 	    for (x = nonlocal_label_list; x; x = XEXP (x, 1))
+ 	      mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
+ 			      insn, 0);
+ 
+ 	    /* If we ever call setjmp, it make sure that all calls can
+ 	       get to all setjmp targets.  */
+ 
+ 	    if (current_function_calls_setjmp)
+ 	      {
+ 		if (label_value_list_marked_live == 0)
+ 		  {
+ 		    label_value_list_marked_live = 1;
+ 
+ 		    /* This could be made smarter by only considering
+ 		       these live, if the computed goto is live.  */
+ 
+ 		    /* Don't delete the labels (in this function) that
+ 		       are referenced by non-jump instructions.  */
+ 
+ 		    for (x = label_value_list; x; x = XEXP (x, 1))
+ 		      if (! LABEL_REF_NONLOCAL_P (x))
+ 			block_live[BLOCK_NUM (XEXP (x, 0))] = 1;
+ 		  }
+ 
+ 		for (x = label_value_list; x; x = XEXP (x, 1))
+ 		  mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
+ 				  insn, 0);
+ 	      }
+ 	    
  	  }
  
        /* All blocks associated with labels in label_value_list are
--------------

cut down test case that code dumps on i686-linux without the fix, and
works with it:

// Build don't link:
// Special g++ Options: -O2

class T {
};

typedef unsigned int size_t;

inline void *operator new(size_t, void *place) throw() {
  return place; }

inline void construct(T* p, const T& value) {
  new (p) T(value);
}

template <class ForwardIterator>
inline void destroy(T* first, ForwardIterator last) {
  for ( ; first < last; ++first)
    ;
}

void __uninitialized_fill_n_aux(T* first, const T& x) {
  T* cur = first;
  int n = 4;
  try {
    for ( ; n > 0; --n, ++cur)
      construct(&*cur, x);
  } catch(...) {
    destroy(first, cur);
    throw;
  }
}


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
@ 1997-09-04 15:21 Mike Stump
  0 siblings, 0 replies; 387+ messages in thread
From: Mike Stump @ 1997-09-04 15:21 UTC (permalink / raw)
  To: wilson; +Cc: egcs-bugs, robert

I am working on this problem now...  Let me know if you're working on
it (or if anybody else is) and if I don't need to look at it.


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: internal compiler error
       [not found] <199708280830.KAA12980.cygnus.egcs.bugs@haegar.physiol.med.tu-muenchen.de>
@ 1997-09-02 23:30 ` Jason Merrill
  0 siblings, 0 replies; 387+ messages in thread
From: Jason Merrill @ 1997-09-02 23:30 UTC (permalink / raw)
  To: egcs-bugs

This is another EH bug.  It goes away with -fno-exceptions.

Jason


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
  1997-09-01 13:19 ` Internal " Jim Wilson
@ 1997-09-01 20:36   ` Philipp Thomas
  0 siblings, 0 replies; 387+ messages in thread
From: Philipp Thomas @ 1997-09-01 20:36 UTC (permalink / raw)
  To: Jim Wilson; +Cc: egcs-bugs

On Mon, 01 Sep 1997 13:19:18 -0700, you wrote:

>	First of all, it didn't compile out of the box, the reason was,
>	that while compiling in the gcc dir at a point gcc(2.7.2.2) read its own
>	./specs file which gave him other cpp flags.
>
>I have seen one other report of this problem, but since I have no idea how
>it can happen, I am unable to fix it.  Please provide more info, such as
>the exact command that failed.  Preferably, I would like to see the output
>of that command with -v added.

Jim,
this is exactly the same problem I had, i.e. that building stage1 stopped
exactly when the new specs file was generated and cpp suddenly complained of
wrong options. I'm pretty sure this wasn't a problem of misconfiguration as I
had built 2.7.2.2 from source and not used a binary distribution. I solved the
problem by copying the old specs into the gcc build dir and then copying the
new specs into the stage1 dir after 'make stage1'.

Although disk space is scarce at the moment (approx. 200 mb free and a glibc
2.1 snapshot build is in the queue) I could try and rebuild 2.7.2.2 (I deleted
it because of space), add the -v to the egcs  makefile and catch the output, if
only to give you (and me :) a hint of where the problem is/was.

Philipp



^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
       [not found] <199708311839.UAA10827@pluto.cs.kuleuven.ac.be>
@ 1997-09-01 13:19 ` Jim Wilson
  1997-09-01 20:36   ` Philipp Thomas
  0 siblings, 1 reply; 387+ messages in thread
From: Jim Wilson @ 1997-09-01 13:19 UTC (permalink / raw)
  To: Koen Deforche; +Cc: egcs-bugs

	First of all, it didn't compile out of the box, the reason was,
	that while compiling in the gcc dir at a point gcc(2.7.2.2) read its own
	./specs file which gave him other cpp flags.

I have seen one other report of this problem, but since I have no idea how
it can happen, I am unable to fix it.  Please provide more info, such as
the exact command that failed.  Preferably, I would like to see the output
of that command with -v added.

gcc 2.7.2.2 should never read the ./specs file, because it should always
use its own installed specs files.  Perhaps your gcc 2.7.2.2 was installed
incorrectly?

Jim


^ permalink raw reply	[flat|nested] 387+ messages in thread

* Re: Internal compiler error.
       [not found] <199708311839.UAA10827.cygnus.egcs.bugs@pluto.cs.kuleuven.ac.be>
@ 1997-09-01 11:47 ` Jason Merrill
  0 siblings, 0 replies; 387+ messages in thread
From: Jason Merrill @ 1997-09-01 11:47 UTC (permalink / raw)
  To: egcs-bugs

>>>>> Koen Deforche <deforche@cs.kuleuven.ac.be> writes:

> Eventually the thing compiled, and I tried to compile a C++ source file
> which gave internal compiler error with gcc2.7.2.2, but the internal
> compiler error was still there at the very same spot. However my headers
> are quite tied up, so i would have to give alot of source for a full
> bug report, and i wonder if you are yet at this stage ? If so, point to
> me how to send you a snap of my code which produces the error.

Just send us the output of g++ -E for the source file which crashes.

Jason


^ permalink raw reply	[flat|nested] 387+ messages in thread

end of thread, other threads:[~2009-01-23  3:14 UTC | newest]

Thread overview: 387+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-08-17  7:09 Internal Compiler Error John Stone
1998-08-18 18:14 ` Alexandre Oliva
1998-08-21 14:19   ` John Stone
1998-08-21 23:58     ` John Stone
  -- strict thread matches above, loose matches on Subject: below --
2009-01-23  3:14 internal compiler error Jason Zhang
2005-07-24 22:49 Internal " TJ Hooka
2005-07-24 22:53 ` Andrew Pinski
2005-03-29 20:23 internal " Norbert Nemec
2003-09-04 12:33 Internal " stughi fed
2003-08-10 20:22 Peter N Tenney
2003-01-31 12:27 internal " Nico Schottelius
2003-01-31 12:39 ` Eric Botcazou
2002-09-20 14:22 Internal " Xavier Ordoquy
2002-06-14  1:46 Sylvain Tricot
2002-05-25  3:39 Alignment of unions containing vector types David Robinson
2002-10-03  8:00 ` Internal compiler error David Robinson
2002-03-18 22:17 Samiran
2002-01-11 16:35 internal " Tim Janik
2001-10-04 23:43 Internal " Shura
2001-07-27  7:09 internal " Daniel R. Grayson
2001-05-29  2:53 Internal " Andrey Korotchenko A.
2001-05-02  5:55 Andre Poenitz
2001-04-24  9:21 Luca Hall
2001-04-24 10:31 ` Zack Weinberg
2001-04-18  9:18 internal " Vig Attila
2001-04-10  0:27 joop renes
2001-02-20  4:12 Internal " Ryszard Kabatek
2001-02-16  2:21 martin.hjelmstedt
2001-02-16 10:00 ` Alexandre Oliva
2001-02-16 11:24   ` Neil Booth
2000-10-30  8:04 Internal Compiler Error Philippe Bouchard
2000-09-07  8:08 Jose Santiago
2000-08-28 10:02 Internal compiler error Lars Hecking
2000-08-18 14:41 Internal Compiler error Brian Sondreal
2000-08-18 19:27 ` Eric Christopher
2000-08-16 10:57 Internal compiler error donigt01
2000-08-16 11:17 ` Alexandre Oliva
2000-08-15  1:50 internal " Itcher, Yossy
2000-08-01 12:12 Internal Compiler Error Jan Bacher
2000-08-01  9:36 Internal compiler error Levente Farkas
2000-07-26  7:02 Internal Compiler Error emcgrat
2000-07-20  3:01 Internal compiler error Jos van den Oever
2000-07-18  4:30 Levente Farkas
     [not found] <Pine.LNX.4.21.0007101930060.11967-100000@gilesc>
2000-07-10 11:31 ` Giles Constant
2000-07-02  8:11 Erkki Seppala
     [not found] <3958CBE0.CE7D574B@geneura.ugr.es>
2000-06-27 23:29 ` Martin v. Loewis
2000-06-16  3:33 Andreas Knüpfer
2000-06-12 10:29 Internal Compiler error Paul C. Lounsbury
     [not found] <200005312037.e4VKbc926040@plasma.inpe.br>
2000-06-03 14:33 ` Internal compiler error Alexandre Oliva
     [not found] <200005261513.RAA10974@mail.cs.tu-berlin.de>
2000-05-27 13:52 ` internal " Martin v. Loewis
2000-05-26 12:11 David J Schinsing
2000-05-26  7:50 Martin Frick
2000-05-24  7:42 Internal " Igor Markov
2000-05-16  7:37 Paul Metcalfe
2000-05-15 14:34 Sidsel Jensen
2000-04-17  2:25 Jacques Basson
2000-04-07 14:21 Micha&lstrok
2000-04-06  9:55 Dean Bennett
2000-04-01 12:49 internal " Klaas Freitag
2000-03-27 21:31 Internal Compiler Error Eric Ford
     [not found] <Pine.LNX.4.21.0003190339440.28201-100000@cedarperk.cs.utexas.edu>
2000-03-19  2:27 ` Internal compiler error Martin v. Loewis
2000-03-09 12:20 claviola
2000-03-10  0:38 ` Martin v. Loewis
2000-03-05 17:41 Internal Compiler Error Mark Robinson
     [not found] <Pine.LNX.3.96.1000303133335.428W-100000@weber.lcs.mit.edu>
2000-03-03 12:44 ` Martin v. Loewis
     [not found] <200002282302.AAA01090@loewis.home.cs.tu-berlin.de>
2000-02-28 15:14 ` Cheong Siew Ann
2000-02-23 13:41 Matt Danish
2000-02-19 15:01 Internal compiler error Hartwig Felger
2000-02-22 12:21 ` Alexandre Oliva
2000-02-07  2:11 Andre Poenitz
     [not found] <3893E092.B6BDDFD8@nilenet.com>
2000-01-30  2:30 ` Martin v. Loewis
2000-01-11 14:06 Lars Hecking
2000-01-11 10:59 internal " Mike Stump
2000-01-11  9:02 Letcher, Wayne
2000-01-08  9:21 Internal " Jukka Kangas
1999-12-31 20:54 Gary Beckmann
1999-12-07 13:18 ` Martin v. Loewis
1999-12-31 20:54 internal " Trevor Spiteri
1999-12-31 20:54 ` Nathan Sidwell
1999-12-01  8:24 Internal " gustavo
1999-12-31 20:54 ` Martin v. Loewis
1999-11-30 23:39 Stephen Wagner
1999-11-30 23:39 morell
1999-11-30 13:58 internal " Tom Hull
1999-12-01  1:03 ` Martin v. Loewis
1999-11-12  8:47 Internal Compiler Error Ramon P Williams
1999-11-30 23:39 ` Martin v. Loewis
1999-11-11  4:12 Internal compiler error Nemesis
1999-11-30 23:39 ` Alexandre Oliva
     [not found] <37E89F59.79FE3AB9@ast.dfs.de>
1999-11-04 13:11 ` Alexandre Oliva
1999-10-31 23:03 Mark J. Crosland
1999-10-31 23:03 ` Martin v. Loewis
1999-10-23 10:45   ` Mark Crosland
1999-10-24  1:30     ` Martin v. Loewis
1999-10-24 10:09       ` Mark Crosland
1999-10-24 10:40         ` Martin v. Loewis
1999-10-31 23:03 Dan Egnor
1999-10-31 23:03 ` Martin v. Loewis
1999-10-31 23:03 internal " Fred Cook
1999-10-31 23:03 ` Alexandre Oliva
1999-10-31 23:03 Internal " Tim Rowley
1999-10-31 23:03 Carlo Wood
1999-10-31 23:03 internal " Paul E. Johnson
1999-10-23 23:49 Bob Upshaw
1999-10-31 23:03 ` Jeffrey A Law
1999-10-17  8:32 Internal " Santtu Hyrkkö
1999-10-10 15:11 Jim Sasaki
1999-10-11 16:47 ` Martin v. Loewis
1999-10-06  3:42 internal " Markus Klink
1999-10-05  0:12 Internal Compiler Error Xiuzhen ZHANG
1999-10-04  8:32 internal compiler error Louis-David Mitterrand
1999-10-31 23:03 ` Alexandre Oliva
1999-09-30 19:57 Andreas Knüpfer
1999-09-30 19:57 Internal " Jeremey Barrett
1999-09-30 19:57 ` Martin v. Loewis
     [not found]   ` <19990914103557.A23071@jfm.net>
1999-09-30 19:57     ` Martin v. Loewis
1999-09-30 19:57 internal " FabC
1999-09-30 19:57 ` Martin v. Loewis
1999-09-30 19:57 Internal Compiler Error Jose Santiago
1999-09-30 19:57 Internal compiler error Charles J Ju
1999-09-15 19:56 internal " Joe Sinicropi
1999-09-30 19:57 ` Alexandre Oliva
1999-09-13  3:50 Internal " Stefan Eilemann
1999-09-30 19:57 ` Martin v. Loewis
1999-09-13 23:39   ` Alexandre Oliva
1999-09-30 19:57     ` Martin v. Loewis
1999-08-31 22:45 Erik Dick
1999-08-31 22:45 ` Alexandre Oliva
1999-08-31 22:45 Erik Dick
1999-08-31 22:45 internal " Loring Holden
1999-08-31 22:45 Internal Compiler Error Herb McNew
1999-08-31 22:45 ` Alexandre Oliva
1999-08-31 22:45 internal compiler error Sahuagin
1999-08-31 22:45 Internal " root
1999-08-27 15:07 Internal Compiler error Bill Pringlemeir
1999-08-27 19:12 ` Alexandre Oliva
1999-08-20  4:19 internal compiler error Loring Holden
1999-08-20  2:03 Internal " Maurizio Loreti
1999-08-05 11:14 internal " Aaron Maxwell
1999-08-31 22:45 ` Alexandre Oliva
1999-08-03  5:28 Internal " Thierry Matthey
1999-07-31 23:33 Vitaliy Ababiy
1999-07-10  1:53 ` Alexandre Oliva
1999-07-31 23:33 internal " A. Garrido Carrillo
1999-07-31 23:33 Internal " N8TM
1999-07-31 23:33 Tudor Hulubei
1999-07-31 23:33 Kavidha Krishnappa
1999-07-21 23:06 ` Martin v. Loewis
1999-07-28  7:03 Joerg Haertwig
     [not found] ` <199907282305.BAA00821@mira.isdn.cs.tu-berlin.de>
1999-07-28 16:45   ` Henry Sobotka
1999-07-29  1:23     ` Martin v. Loewis
1999-07-25 16:17 Internal Compiler error Bruce Eckel
1999-07-25 16:56 ` Mumit Khan
1999-07-23 12:46 Internal compiler error dale henderson
1999-07-25 15:56 ` Mumit Khan
1999-07-31 23:33 ` Alexandre Oliva
1999-07-23 12:03 Kavidha Krishnappa
1999-07-31 23:33 ` Martin v. Loewis
1999-07-20  1:17 internal " Gregor Frey
1999-07-31 23:33 ` Alexandre Oliva
     [not found] <199907101041.FAA28984@cs.atu.edu>
1999-07-12 23:31 ` Internal " Alexandre Oliva
1999-07-05 12:40 internal " Georg Bauhaus
1999-07-06 12:49 ` Alexandre Oliva
1999-07-05 11:08 Internal " Thomas Maeder
1999-07-06 12:48 ` Alexandre Oliva
1999-07-31 23:33   ` Thomas Maeder
1999-07-12 22:20     ` Alexandre Oliva
1999-07-05  6:00 F. Heitkamp
1999-07-05  6:06 ` Alexandre Oliva
1999-07-06  3:34   ` F. Heitkamp
1999-07-05  7:18 ` Franz Sirl
1999-06-30 23:07 internal " Brett W Vasconcellos
1999-06-30 23:07 Internal Compiler Error Jose Santiago
1999-06-11 13:03 ` Alexandre Oliva
1999-06-30 23:07 ` Martin v. Loewis
1999-06-30 23:07 Internal compiler error Stefan Ring
1999-06-30 23:07 Brad P. Crochet
1999-06-24  0:46 Ludger Kunz
1999-06-21  7:02 Internal Compiler Error Ian Miller
1999-06-14 10:57 Internal compiler error Yehoshua Shoshan
1999-06-30 23:07 ` Alexandre Oliva
1999-06-14  6:36 Volker Dobler P945 <volker.dobler@uni-konstanz.de>
1999-06-14 15:55 ` Martin v. Loewis
1999-05-31 21:06 Gregory Hosler
1999-05-17  0:16 ` Alexandre Oliva
     [not found] <3735BE50.41C6@etl.go.jp>
1999-05-31 21:06 ` internal " Martin v. Loewis
1999-05-31 21:06 Lin Tzy Li
1999-05-31 21:06 Internal Compiler Error Benjamin Pflugmann
1999-05-23  1:29 ` Martin v. Loewis
1999-05-13  8:16 Internal compiler error Volker Dobler P945 <volker.dobler@uni-konstanz.de>
1999-05-13  5:46 Jon Cline
1999-05-17  0:24 ` Alexandre Oliva
1999-04-30 23:15 internal " Karl Gierach
1999-04-30 23:15 Internal " Christoph Kern
1999-04-30 23:15 ` Martin v. Loewis
1999-04-30 23:15 Alexander Usachev
     [not found] <m10crjQ-000EvYC@spb.sterling.ru>
1999-04-30 23:15 ` Michael Ivanov
1999-04-30 23:15 internal " Manush Dodunekov
1999-05-31 21:06 ` Martin v. Loewis
1999-04-30 23:15 Internal Compiler Error Jody Hagins
1999-04-30 23:15 Internal compiler error Peter Mattis
1999-04-22  6:17 Alexander Mai
1999-04-20  0:59 Marcus Brito
1999-03-31 23:54 John Wiegley
1999-03-31 23:54 bruce
1999-03-31 23:54 jle
1999-03-19  8:05 ` Alexandre Oliva
1999-03-31 23:54 internal " Paul Fox
1999-03-05  8:25 ` Alexandre Oliva
1999-03-24  6:30 jaffe
1999-03-22 11:20 Internal " Thomas Maeder
1999-03-22  5:50 Internal Compiler Error Rasmus Andersen
1999-03-08 15:42 Internal compiler error Peter Simons
     [not found] <Pine.LNX.4.10.9903022329290.11308-100000@ci1002641-a.ruthfd1.tn.home.com>
1999-03-02 22:49 ` Internal Compiler Error Alexandre Oliva
1999-02-28 23:30 Thomas Boggs
1999-02-28 23:30 ` Jeffrey A Law
1999-02-28 23:30 ` Nathan Sidwell
1999-02-28 23:30 Internal compiler error Kurt Starsinic
1999-02-28 23:30 Per Boussard
1999-02-28 23:30 ` Martin v. Loewis
1999-02-28 23:30 internal " Miniussi
1999-02-28 23:30 Internal Compiler Error David Stern
     [not found] <9902012345.AA04942@physics.div111.lucent.com>
1999-02-28 23:30 ` Internal compiler error Gerald Pfeifer
1999-02-28 23:30 internal " Kim Sebo
1999-06-25  7:04 ` Jeffrey A Law
1999-02-28 23:30 Internal Compiler Error Kazutaka Hirata
1999-02-28 23:30 Internal compiler error M.T.Averill
1999-02-20 17:04 ` Alexandre Oliva
1999-02-17 15:13 Mike Stump
1999-02-05 11:35 Christian Stoeckl
1999-02-05  4:44 internal " root
1999-02-02 19:30 Internal Compiler Error mdavies
1999-02-28 23:30 ` Jeffrey A Law
1999-01-30  3:20 Internal compiler error Patrick MERISSERT-COFFINIERES
1999-01-19  7:06 K Efstathiou
1999-01-18 18:04 Geert-Jan Giezeman
1999-01-15 13:36 Pwitko71
1999-01-16 15:14 ` Alexandre Oliva
1999-01-15  8:18 internal " Kasper Peeters
1999-01-08  5:00 Internal " Jody Hagins
1999-01-07  0:02 Bruce Eckel
1999-01-05 12:22 internal " A. F. Cano
1999-01-05  8:36 A. F. Cano
1998-12-22 10:48 Internal " John Apostol
1998-12-17 21:22 Internal Compiler Error Chris Tracy
1998-12-15 20:31 internal compiler error Tony Willis
1998-12-14 18:47 Internal " Peter Ludemann
1998-12-11  9:57 Bruce Eckel
1998-12-03 16:32 Steve Tate
1998-11-30 16:05 Thomas Matelich
1998-11-30 20:51 ` Jeffrey A Law
1998-12-01 10:49   ` Thomas Matelich
1998-11-27 22:20 Tim Vanderhoek
1998-11-27 13:09 Scott Bigham
1998-11-27  1:03 Bruce Eckel
     [not found] <3632F1C4.2F4EFA75@glue.ch>
1998-11-25 18:37 ` Alexandre Oliva
     [not found] <Pine.LNX.3.96.981023100046.608A-200000@rover>
1998-11-25 18:30 ` Alexandre Oliva
1998-11-23  6:54 internal " Matthias Zobel
1998-11-25 18:37 ` Alexandre Oliva
1998-11-20 15:28 Internal " S. Troughton
1998-11-20  7:55 Christophe Boyanique
1998-11-25 18:37 ` Alexandre Oliva
1998-11-05 17:07 Craig Kaplan
1998-11-07  0:34 ` Martin von Loewis
1998-11-02 11:27 Robert Ennals
1998-10-30 15:11 Dirk Zoller
     [not found] <Pine.LNX.3.96.981028151726.2890A-100000.cygnus.egcs.bugs@brossp5.lehrstuhl-bross.physik.uni-muenchen.de>
1998-10-28 18:51 ` Internal Compiler Error Jason Merrill
1998-10-28  6:22 Reinhold Bader
1998-10-31 14:18 ` Alexandre Oliva
1998-10-26 22:44 internal compiler error Dave Steffen
1998-10-22  2:40 Volker Dobler
1998-11-25 18:28 ` Alexandre Oliva
1998-10-22  1:19 Internal " Jean-Christophe Filliatre
1998-10-14 11:18 Paris Smaragdis
1998-11-25 18:28 ` Alexandre Oliva
1998-10-14 10:55 internal " Ove Svensson
1998-10-13 17:14 Internal Compiler Error Robert Ennals
1998-10-12  8:49 Internal compiler error nasrudin
1998-10-13  0:17 ` David S. Miller
1998-10-06  2:11 Christoph Jaeschke
1998-10-06  9:25 ` Alexandre Oliva
1998-09-28  5:55 Robert Sander
1998-09-28 17:10 ` Alexandre Oliva
1998-09-18 20:03 T. Koch
1998-09-19 23:51 ` Alexandre Oliva
1998-09-17 21:56 Lee A Shombert
1998-09-16  9:00 Fred Richardson
1998-09-15 17:17 Michael Haggerty
1998-09-11 22:25 internal " Peter Jordan
1998-09-12  8:46 ` Alexandre Oliva
1998-09-10 14:35 Internal " Rich Lee
1998-09-06  7:40 internal " Karsten Ballueder
1998-09-04  6:48 Axel Schmitz-Tewes
1998-09-08 23:54 ` Alexandre Oliva
1998-08-27  2:17 Internal " Ulrich Seidl
1998-08-27 17:12 ` Alexandre Oliva
1998-08-26  6:40 Craig McLane
1998-08-26  2:31 Michael Schoene
1998-08-25 16:12 Stuart Whitman
1998-08-27 15:40 ` Alexandre Oliva
1998-08-25  0:09 Michael Schoene
1998-08-25 16:12 ` Alexandre Oliva
1998-08-21 18:27 Craig McLane
1998-08-23 21:38 ` Alexandre Oliva
1998-08-17  1:26 Nilo Casimiro Ericsson
1998-08-05 10:48 nbecker
1998-08-05  7:35 Mehdi Rahman
1998-08-04  8:50 internal " nbecker
     [not found] <199808031039.GAA08010@reeducation-labor.lcs.mit.edu>
1998-08-03  7:46 ` Internal " Gerald Pfeifer
1998-08-03 22:57   ` Thomas Kunert
1998-08-04  1:47     ` David Mazieres
1998-08-04  5:57       ` Thomas Kunert
1998-08-04  1:47     ` David Mazieres
1998-07-30 10:06 djf95
1998-07-28 10:34 Mathias Moog
1998-07-28 10:34 internal " archon
1998-07-27 21:22 Internal " Scott Barron
1998-07-17 21:46 internal " The Houstons
     [not found] <199807101406.PAA05096@medphys.ucl.ac.uk>
1998-07-10 11:47 ` Alexandre Oliva
1998-07-10 15:54 ` Gerald Pfeifer
1998-07-07 22:53 Internal " Mark Hahn
1998-07-07 21:18 internal " H.J. Lu
1998-07-06 12:15 Georg Baum
1998-07-06 19:02 ` Horst von Brand
1998-07-03  3:46 vt
1998-06-25 16:07 David Covey
1998-06-23  4:43 Internal " Helmut Jarausch
1998-06-19  7:35 internal " Mark van Doesburg
1998-06-15  9:26 Internal " Rubber_Buccaneer
1998-06-15 10:56 ` Alexandre Oliva
1998-06-12  5:19 internal " P.C.A.van.Gool
1998-06-12 16:00 ` Alexandre Oliva
1998-06-09 13:02 Internal " jlf
1998-06-10  2:42 ` Alexandre Oliva
1998-06-05  3:55 Cesar Talon
1998-06-03 12:11 internal " Jonathan Magid
1998-05-26 10:57 Glauco Cenciotti
1998-05-26  1:26 Maurizio Vitale
1998-05-26 14:10 ` Martin von Loewis
1998-05-25  4:44 Internal " Niall Smart
1998-05-24  6:48 Niall Smart
1998-05-23 18:37 michael pruett
1998-05-19  5:43 internal " M.Stekelenburg
1998-05-19  5:34 M.Stekelenburg
1998-05-13 16:38 Internal " Pasha Murat
1998-05-07 20:06 Peter Ludemann
1998-04-29  5:31 Michel LESPINASSE
1998-04-21 20:38 internal " Shigeya Suzuki
1998-04-17 11:56 Mark van Doesburg
1998-04-17 11:56 Philippe Lavoie
1998-04-17 18:06 ` Gerald Pfeifer
1998-04-17 19:40 ` Jeffrey A Law
1998-04-10 16:25 Enrico Zini
1998-04-08  7:55 C. van Reeuwijk
1998-03-19  4:57 Internal " Felix Ide
1998-03-12  0:55 Arun Sharma
1998-03-07 20:04 Franklin Chen
1998-03-05 16:40 Internal Compiler error Jason Gunthorpe
1998-03-01  0:59 Internal compiler error Franklin Chen
1998-02-12  8:09 Internal Compiler Error David M. Ronis
1998-02-09  3:51 Internal compiler error Frank Cieslok
1998-01-31  6:09 Chris Yeoh
1998-01-20 15:48 billm
1998-01-20  9:03 internal " Mark Johnstone
1998-01-16  1:41 Internal " Frank Cieslok
1997-12-19 13:21 Raymond Nijssen
1997-12-11 13:41 Andrew Borthwick
1997-12-07  6:46 internal " Hans-Helmut Buehmann
1997-12-02 23:20 Internal " Olivier Galibert
1997-11-17  6:17 Neal Becker
1997-11-13  5:15 Peter Schmid
1997-11-09 20:53 Mark Johnstone
1997-10-29 22:16 Michael Ward
1997-09-25  0:31 Rick Harding
1997-09-25 12:53 ` Jeffrey A Law
1997-09-16 18:43 Christopher Grinton
1997-09-15 12:56 internal " Mike Stump
1997-11-01 21:25 ` Jeffrey A Law
1997-09-10  1:56 Internal " Kent Vander Velden
1997-09-10  3:42 ` Robert Wilhelm
1997-09-08 23:32 Jan Reimers
1997-09-05 18:38 internal " Mike Stump
1997-09-05 21:00 ` Jim Wilson
1997-09-04 15:21 Mike Stump
     [not found] <199708280830.KAA12980.cygnus.egcs.bugs@haegar.physiol.med.tu-muenchen.de>
1997-09-02 23:30 ` Jason Merrill
     [not found] <199708311839.UAA10827@pluto.cs.kuleuven.ac.be>
1997-09-01 13:19 ` Internal " Jim Wilson
1997-09-01 20:36   ` Philipp Thomas
     [not found] <199708311839.UAA10827.cygnus.egcs.bugs@pluto.cs.kuleuven.ac.be>
1997-09-01 11:47 ` Jason Merrill

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).