public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* No Subject
@ 1998-09-13 15:31 Graham Wilson
  0 siblings, 0 replies; 97+ messages in thread
From: Graham Wilson @ 1998-09-13 15:31 UTC (permalink / raw)
  To: 'egcs-bugs@cygnus.com'



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

* No Subject
@ 1999-04-30 23:15 Laurynas Biveinis
  0 siblings, 0 replies; 97+ messages in thread
From: Laurynas Biveinis @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs-bugs



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

* No Subject
@ 1999-04-30 23:15 doemer
  0 siblings, 0 replies; 97+ messages in thread
From: doemer @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs

// bug.cc
typedef int t;
typedef t* u;
typedef int t;
typedef t* u;

The above code works fine with gcc 2.8.1, whereas egcs 1.1.2
fails with a false error report:

tcsh> gcc -v
Reading specs from /opt/gcc-2.8.1/lib/gcc-lib/sparc-sun-solaris2.5.1/2.8.1/specs
gcc version 2.8.1
tcsh> gcc -c bug.cc
tcsh> /opt/contrib/egcs-1.1.2/bin/gcc -v
Reading specs from /opt/contrib/egcs-1.1.2/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
tcsh> /opt/contrib/egcs-1.1.2/bin/gcc -c bug.cc
bug.cc:5: redefinition of `typedef int * u'
bug.cc:3: `typedef t * u' previously declared here
tcsh> 

For completeness, I also provide the code fragment which triggered
the bug originally:

// orig.cc

typedef int	ERROR;

typedef class SIR_Symbol		sir_symbol;
typedef void *				sir_symbol_marg;
typedef ERROR (SIR_Symbol::*sir_symbol_mptr)(sir_symbol_marg);

typedef class SIR_Symbol		sir_symbol;
typedef void *				sir_symbol_marg;
typedef ERROR (SIR_Symbol::*sir_symbol_mptr)(sir_symbol_marg);

tcsh> /opt/contrib/egcs-1.1.2/bin/gcc -c orig.cc
orig.cc:11: redefinition of `typedef ERROR (SIR_Symbol::* sir_symbol_mptr)(void *)'
orig.cc:7: `typedef ERROR (SIR_Symbol::* sir_symbol_mptr)(void *)' previously declared here


Please let me know if you need more information,

Rainer.

---------------------------------------------------------------------
Rainer Doemer                               Phone:  +1 (949) 824-8059
Dept. of Information and Computer Science     Fax:  +1 (949) 824-4056
University of California, Irvine            email: doemer@ics.uci.edu
Irvine, CA 92697-3425, USA            http://www.ics.uci.edu/~doemer/
---------------------------------------------------------------------


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

* No Subject
@ 1999-04-30 23:15 
  0 siblings, 0 replies; 97+ messages in thread
From:  @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs

For non-development builds and for installs, one should clean and
bootstrap as normal.


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

* No Subject
@ 1999-04-25  8:01 Lukas Weberruß
  0 siblings, 0 replies; 97+ messages in thread
From: Lukas Weberruß @ 1999-04-25  8:01 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3341 bytes --]

merlin:[build]../libgcj/configure --enable-fast-character
--enable-threads=posix  
merlin:[build]make
...
make[2]: Entering directory `/home/weberrus/build/i686-pc-linux-gnu/libjava'
CLASSPATH=/home/weberrus/build/i686-pc-linux-gnu/libjava gcj -fassume-compiled -g   -ffloat-store -c -o gnu/gcj/convert/BytesToUnicode.o ../../../libgcj/libjava/gnu/gcj/convert/BytesToUnicode.java
../../../libgcj/libjava/gnu/gcj/convert/BytesToUnicode.java:83: Internal compiler error in `expand_expr', at expr.c:5680
Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
make[2]: *** [gnu/gcj/convert/BytesToUnicode.o] Error 1
make[2]: Leaving directory `/home/weberrus/build/i686-pc-linux-gnu/libjava'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/weberrus/build/i686-pc-linux-gnu/libjava'
make: *** [all-target-libjava] Error 2 

--

**********************************************************
* Lukas Weberruß              Tel(priv.) : 07143-841029  *
* Heuchelbergstr. 7           Fax.       : 07143-841059  *
* 74366 Kirchheim am Neckar   Tel(gesch.): 0711-685-5308 *
*  Email (priv)   : Lukas.Weberruss@t-online.de          *
*  Email (gesch.) : weberrus@mathematik.uni-stuttgart.de *
**********************************************************
>From rbrought@canadawired.com Sun Apr 25 09:23:00 1999
From: rbrought@canadawired.com
To: egcs-bugs@cygnus.com
Subject: Compiler error
Date: Sun, 25 Apr 1999 09:23:00 -0000
Message-id: <XFMail.990425090804.rbrought@canadawired.com>
X-SW-Source: 1999-04/msg00686.html
Content-length: 449

This is with 2.7.2.3. The source to kformula.cc is attached.
-----

kformula.cc: In method `double KFormula::evaluate(class QStrList, class
QArray<double>, int * = 0, class box * = 0)':
kformula.cc:351: Internal compiler error.
kformula.cc:351: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [kformula.lo] Error 1

-----
Bob Broughton
mailto:rbrought@canadawired.com
WWW: http://canadawired.com/~rbrought
Vancouver, BC, Canada
>From oliva@dcc.unicamp.br Sun Apr 25 09:37:00 1999
From: Alexandre Oliva <oliva@dcc.unicamp.br>
To: rbrought@canadawired.com
Cc: egcs-bugs@cygnus.com
Subject: Re: Compiler error
Date: Sun, 25 Apr 1999 09:37:00 -0000
Message-id: <orogkcd5c2.fsf@lua.lbi.dcc.unicamp.br>
References: <XFMail.990425090804.rbrought@canadawired.com>
X-SW-Source: 1999-04/msg00687.html
Content-length: 881

On Apr 25, 1999, rbrought@canadawired.com wrote:

> This is with 2.7.2.3.

Huh?  No way gcc 2.7.2.3 would produce this error message:

> kformula.cc:351: Please submit a full bug report to `egcs-bugs@cygnus.com'.

gcc 2.7.2.3 pre-dates the egcs project.

Anyway, there's not much we can do without the header files included
by your code snippet.  Please read
http://egcs.cygnus.com/faq.html#bugreport for instructions about how
to collect all of them with a single command, then post a new bug
report informing the correct version number of egcs, as well as the
platform on which you got the error.

-- 
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] 97+ messages in thread

* No Subject
@ 1999-04-01 12:42 Alexey Pialkin
  0 siblings, 0 replies; 97+ messages in thread
From: Alexey Pialkin @ 1999-04-01 12:42 UTC (permalink / raw)
  To: egcs-bugs

ecgs version : 2.91.57
system: cygwin 20.1 on WinNT 4.0 Workstation

output :

E:\home\pialkin\work\smfclite\include>g++ -v --save-temps 1.cpp
Reading specs from
D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-
cygwin32\egcs-2.91.57\specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\cpp.exe -lang-c++ -v -iprefix
D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\li
b/gcc-lib/i586-cygwin32\egcs-2.91.57\ -undef -D__GNUC__=2 -D__GNUG__=2 -D__c
plus
plus -D__GNUC_MINOR__=91 -Di386 -D_WIN32 -DWINNT -D_X86_=1 -D__STDC__=1 -D__
stdc
all=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) -D__de
clsp
ec(x)=__attribute__((x)) -D__i386__ -D_WIN32 -D__WINNT__ -D_X86_=1 -D__STDC_
_=1
-D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)
) -D
__declspec(x)=__attribute__((x)) -D__i386 -D__WINNT -Asystem(winnt) -Acpu(i3
86)
-Amachine(i386) -D__EXCEPTIONS -remap -Acpu(i386) -Amachine(i386) -Di386 -D_
_i38
6 -D__i386__ -Di586 -Dpentium -D__i586 -D__i586__ -D__pentium -D__pentium__
-D__
CYGWIN32__ -D__CYGWIN__ 1.cpp 1.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\..\..\..\..\..\include\g++

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\..\..\..\..\..\include

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\..\..\..\..\i586-cygwin32\include

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\include
End of search list.

D:\cygnus\cygwin-b20\H-i586-cygwin32\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2
.91
.57\cc1plus.exe 1.ii -quiet -dumpbase 1.cc -version -o 1.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (i586-cygwin32)
compile
d by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
1.cpp:14: parse error before `,'
1.cpp:18: parse error before `)'
1.cpp:19: `CMap<BASE_CLASS,KEY,VALUE>::operator [](...)' must take exactly
one argument
[main]
D:\cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.
57\cc1plus.exe 1002 (0) handle_exceptions: Exception:
STATUS_ACCESS_VIOLATION
[main] cc1plus 1002 (0) handle_exceptions: Dumping stack trace to
cc1plus.exe.core

1.ii file :

# 1 "1.cpp"


template<class BASE_CLASS, class KEY, class VALUE>
class CMap : public BASE_CLASS
{
public:

        CTypedPtrMap(int nBlockSize = 10)
                : BASE_CLASS(nBlockSize) { }

 int Lookup(BASE_CLASS::BASE_ARG_KEY key, VALUE& rValue) const
  { return BASE_CLASS::Lookup(key, (BASE_CLASS::BASE_VALUE&)rValue); }

 VALUE& operator[](BASE_CLASS::BASE_ARG_KEY key)
  { return (VALUE&)BASE_CLASS::operator[](key); }

        void SetAt(KEY key, VALUE newValue)
                { BASE_CLASS::SetAt(key, newValue); }


        int RemoveKey(KEY key)
                { return BASE_CLASS::RemoveKey(key); }

 void GetNextAssoc(int& rPosition, KEY& rKey, VALUE& rValue) const
  { BASE_CLASS::GetNextAssoc(rPosition, (BASE_CLASS::BASE_KEY&)rKey,
   (BASE_CLASS::BASE_VALUE&)rValue); }
};

how-to contact me :
pialkin@maxiq.spb.su
pialkin@line.ru

Alexey Pialkin





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

* No Subject
@ 1999-04-01  6:08 Paul Janssen
  0 siblings, 0 replies; 97+ messages in thread
From: Paul Janssen @ 1999-04-01  6:08 UTC (permalink / raw)
  To: 'egcs-bugs@egcs.cygnus.com'

Hi,
	just build a new compiler this was one of the two problems I found.
 It dissapears when compiling with the -O option.
However, if I do so other problems occur in other source files.
The whole project compiled fine under : gcc version egcs-2.91.10 980221 
(gcc-2.8.0 release) without -O option.

I extracted the piece of problem code from my soource file ( see below).

/***********************************************************************  
*******/
/*
FILE: test.c

COMPILING FROM:
Windows NT - Cygwin32 B20.1

COMPILING WITH:
Binutils-2.9.1 with patch binutils-2.9.1-coldfire-990206.diff, 
target=m68k-coff
EGCS-1.1.2, target=m68k-coff
newlib-1.8.0

COMMAND-LINE:
bash-2.02$ gcc68 -v -c -ansi -Wall -m5200 -mnobitfield test.c -o test.o
Reading specs from 
\\e\ProgramFiles\cygnus\cygwin-b20\gcc-m68k\lib\gcc-lib\m68k-coff\egcs-2  
.91.66\specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
 
\\e\ProgramFiles\cygnus\cygwin-b20\gcc-m68k\lib\gcc-lib\m68k-coff\egcs-2  
.91.66\cpp.exe -lang-c89 -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 
-trigraphs -D__STRICT_ANSI__ -D__mc68000__ -D__embedded__ -D__mc68000 
-Asystem(embedded) -Amachine(mc68000) -Wall -D__mcf5200__ -D__mcf5200 
test.c D:\TEMP\ccDf9IOi.i
GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (68k, Motorola 
syntax)
#include "..." search starts here:
#include <...> search starts here:
 
\\e\ProgramFiles\cygnus\cygwin-b20\gcc-m68k\lib\gcc-lib\m68k-coff\egcs-2  
.91.66\include
 \\e\ProgramFiles\cygnus\cygwin-b20\gcc-m68k\m68k-coff\include
End of search list.
 
\\e\ProgramFiles\cygnus\cygwin-b20\gcc-m68k\lib\gcc-lib\m68k-coff\egcs-2  
.91.66\cc1.exe D:\TEMP\ccDf9IOi.i -quiet -dumpbase test.c -m5200 
-mnobitfield -ansi -Wall -ansi -version -o D:\TEMP\ccsuLKvQ.s
GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release) (m68k-coff) 
compiled by
 GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
expr.c:2568: Internal compiler error in function emit_move_insn_1
bash-2.02$

*/

typedef struct {
  int	cs [8];
} CS5206;

void
Init_CPU (void)
{
  register int	i;

#if 1
  /* this goes wrong :
	expr.c:2568: Internal compiler error in function emit_move_insn_1
  */
  for (i = 3; i < 8; i++) {
    ((CS5206 *) (0x04000064) ) ->cs [i] = 0 ;
  }
#else
  /* this compiles fine */
    ((CS5206 *) (0x04000000 +0x064) ) ->cs [3] = 0 ;
    ((CS5206 *) (0x04000000 +0x064) ) ->cs [4] = 0 ;
    ((CS5206 *) (0x04000000 +0x064) ) ->cs [5] = 0 ;
    ((CS5206 *) (0x04000000 +0x064) ) ->cs [6] = 0 ;
    ((CS5206 *) (0x04000000 +0x064) ) ->cs [7] = 0 ;
#endif
}
/***********************************************************************  
******/

============================================
Paul Janssen
Software Engineer

SPaSE bv.			http://www.spase.com
Kerkenbos 1021		tel.: +31 24 378 2882
6546 BB Nijmegen		fax.: +31 24 378 8388
The Netherlands		mailto:paulja@spase.nl
============================================



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

* No Subject
@ 1999-03-31 23:54 Simon Marlow
  0 siblings, 0 replies; 97+ messages in thread
From: Simon Marlow @ 1999-03-31 23:54 UTC (permalink / raw)
  To: 'egcs-bugs@egcs.cygnus.com'

I submitted the following bug report back in June last year.  I've just
checked, and egcs-1.1.2 still has the same bug:

----------------

The following fragment illustrates a bug in egcs (2.91.28 19980508):

	typedef struct {
	} empty;
	
	typedef struct {
	    int             i;
	    empty	    e;
	    int            i2;
	} st;
	
	st s = {
	  i : 0,
	  i2 : 1,
	};
  
The assembler output is

	.file	"test.c"
gcc2_compiled.:
___gnu_compiled_c:
.globl _s
.data
	.align 2,0x90
	.type	 _s,@object
	.size	 _s,8
_s:
	.long 0
	.space 4


The '1' in the second initialised field seems to have disappeared.
gcc 2.7.2 compiles this correctly.

Cheers,
	Simon


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

* No Subject
@ 1999-03-31 23:54 
  0 siblings, 0 replies; 97+ messages in thread
From:  @ 1999-03-31 23:54 UTC (permalink / raw)
  To: egcs

/home/gilbertd/egcs-source/egcs-19990314/gcc/xgcc
-B/home/gilbertd/egcs-source/egcs-19990314/gcc/
-B/home/dg/egcs/alphaev56-unknown-linux-gnu/bin/ -c -g -O2 -fvtable-thunks
-D_GNU_SOURCE -fno-implicit-templates -I. -I. -nostdinc++ -D_IO_MTSAFE_IO
iostream.cc
iostream.cc:130: prototype for `class istream & istream::read(char *,
int)' does not match any in class `istream'
iostream.h:143: candidates are: class istream & istream::read(void *, long
int)
iostream.h:141:                 class istream & istream::read(signed char
*, long int)
iostream.h:139:                 class istream & istream::read(unsigned
char *, long int)
iostream.h:137:                 class istream & istream::read(char *, long
int)
iostream.cc:941: prototype for `class ostream & ostream::write(const char
*, int)' does not match any in class `ostream'
iostream.h:70: candidates are: class ostream & ostream::write(const void
*, long int)
iostream.h:68:                 class ostream & ostream::write(const signed
char *, long int)
iostream.h:66:                 class ostream & ostream::write(const
unsigned char *, long int)
iostream.h:64:                 class ostream & ostream::write(const char
*, long int)
make[1]: *** [iostream.o] Error 1
make[1]: Leaving directory
`/home/gilbertd/egcs-source/egcs-19990314/alphaev56-unknown-linux-gnu/libio'
make: *** [all-target-libio] Error 2


 --------------------------------------------------------------------   
/ Dr. David Alan Gilbert      | Running Linux on           |  Happy  \ 
\   gro.gilbert @ treblig.org |     Alpha, ARM and SPARC   |  In Hex /
 \____________________________|___ http://www.treblig.demon.co.uk __/



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

* No Subject
@ 1999-03-31 23:54 Anthony Shipman
  0 siblings, 0 replies; 97+ messages in thread
From: Anthony Shipman @ 1999-03-31 23:54 UTC (permalink / raw)
  To: stl; +Cc: egcs-bugs

The implementation of std::destroy for iterators in the SGI STL appears
to be faulty.  See below.

------- Forwarded Message

To: als@aaii.com.au (Anthony Shipman)
Subject: Re: iterators in std::destroy
References: <921053612.278857@aloomba.aaii.oz.au>
From: ajenkins@netway.com (Adam P. Jenkins)
Date: 10 Mar 1999 23:59:49 -0500
In-Reply-To: als@aaii.com.au's message of "10 Mar 1999 21:09:14 -0500"
Message-ID: <yzhpv6giptm.fsf@xcom-79-95.mdc.net>
Lines: 25
X-Mailer: Gnus v5.5/Emacs 20.3
Sender: ajenkins@xcom-79-161.mdc.net

als@aaii.com.au (Anthony Shipman) writes:
> In the SGI implementation of STL, the code for std::destroy says
> 
> template <class ForwardIterator>
> inline void
> __destroy_aux(ForwardIterator first, ForwardIterator last, __false_type) {
>   for ( ; first < last; ++first)
>     destroy(&*first);
> }
> 
> 
> Is there a reason why this uses < rather than != ?  
> 
> As it stands I cannot use it on hashtable iterators since they don't
> have operator<.

This seems like an obvious bug, which should be reported to whoever
maintains the version of SGI STL that you're using.  If you're using
it as part of egcs then report it to the egcs maintainers; see
http://egcs.cygnus.com/faq.html#bugreport .  Also send a bug report to
stl@sgi.com.

- -- 
Adam P. Jenkins 
ajenkins@netway.com

------- End of Forwarded Message



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

* No Subject
@ 1999-03-31  1:34 Andrew Zabolotny
  0 siblings, 0 replies; 97+ messages in thread
From: Andrew Zabolotny @ 1999-03-31  1:34 UTC (permalink / raw)
  To: egcs-bugs, egcs-bugs

Hello!

I happened to hit a bug in c++ compiler. Here is an testcase:

-- bug.ii ----------------------------------------------------------------------
class ClassA
{
};

class ClassB
{
};

class ClassC : public ClassA, public ClassB
{
public:
  int MemberC;
};

typedef ClassC __ClassC;
void *x = &((__ClassC *)0)->MemberC;
--------------------------------------------------------------------------------

Usage:

[F:\gnu\egcsbug]cc1plus.exe bug.ii
bug.ii:16: Internal compiler error 191.
bug.ii:16: Please submit a full bug report to `egcs-bugs@cygnus.com'.
bug.ii:16: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

[F:\gnu\egcsbug]gcc -v
Using builtin specs.
gcc version pgcc-2.91.60 19981201 (egcs-1.1.1 release)

[F:\gnu\egcsbug]gcc -dumpmachine
i386-ibm-os2

I didn't tried it with egcs-1.1.1 but someone told me of absolutely same
problem on linux with egcs-1.1.2, so I presume the bug is not in PGCC or in
OS/2 port.

I've tried to find out what happens but without deep compiler knowledge failed.
In short, the friendly_abort() call happens in gcc/cp/cvt.c, in this procedure:

--------------------------------------------------------------------------------
tree
convert_pointer_to_real (binfo, expr)
     tree binfo, expr;
{
  register tree intype = TREE_TYPE (expr);
  tree ptr_type;
  tree type, rval;

  if (intype == error_mark_node)
    return error_mark_node;

  if (TREE_CODE (binfo) == TREE_VEC)
    type = BINFO_TYPE (binfo);
  else if (IS_AGGR_TYPE (binfo))
    {
      type = binfo;
    }
  else
    {
      type = binfo;
      binfo = NULL_TREE;
    }

  ptr_type = cp_build_type_variant (type, TYPE_READONLY (TREE_TYPE (intype)),
				    TYPE_VOLATILE (TREE_TYPE (intype)));
  ptr_type = build_pointer_type (ptr_type);
  if (ptr_type == TYPE_MAIN_VARIANT (intype))
    return expr;

  my_friendly_assert (!integer_zerop (expr), 191);
--------------------------------------------------------------------------------

The last my_friendly_assert() statement is the one that causes the crash.
I've compiled cc1plush from gcc 2.8.0 (which doesn't manifest this bug) and
seen the following difference on trace: it exits from convert_pointer_to_real
*one line above* the my_friendly_assert(), i.e. in gcc 2.8.0 ptr_type happens
to be equal to TYPE_MAIN_VARIANT (intype); in egcs 1.1.1 this does not happen.
Hope my amateur comment will be of any use :-)

Greetings,
    _\ndy@teamOS/2


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

* No Subject
@ 1999-02-28 23:30 Nathan Sidwell
  0 siblings, 0 replies; 97+ messages in thread
From: Nathan Sidwell @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs

there fore Base::Nested is only a complete type at the } of the definition of
Base::Nested. At the point of the declaration of Base::n, Base::Nested is not a
complete type.

> g++ -v --save-temps forward.C
> forward.C:12: field `n' has incomplete type
This diagnostic is correct.

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] 97+ messages in thread

* No Subject
@ 1999-02-28 23:30 
  0 siblings, 0 replies; 97+ messages in thread
From:  @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs

<!doctype linuxdoc system>

<article>

<title>The Very Short Story
<author>A. Author
<date>1 Jan 1970

<p>
Once upon a time, they lived happily ever after.
</article>




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

* No Subject
@ 1999-02-28 23:30 
  0 siblings, 0 replies; 97+ messages in thread
From:  @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs

        tq vm, (burley)


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

* No Subject
@ 1999-02-28 23:30 tej
  0 siblings, 0 replies; 97+ messages in thread
From: tej @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs

I declare it as __stdcall (=JNICALL) to allow  it to be used as a dll
and called by Sun's Java Virtual Machine. The function is measn to
return a float reult, but instead the floating point stack is empty.

Source code (see 1). Output (see 2).
Source without stdcall (see 3). Output (see 4).

egcs version:
    egcs-2.91.57 1990901 (egcs-1-1 release).
GCC command:
    gcc -Wall -S badcodeBAD.c -o  badcodeBAD.s
Environment
Windows 95-OSR2 with usb patch..
Cygwin-b20.1

I traced the problem down to a bug in reg-stack.c. See 5 for the patch.
The problem is that in routine stack_reg_life_analysis it tries to check
if the block does a return from the function by checking if the last
insn of each block is a jump with return, or for the last block any
instruction with return. However in a stdcall function, the return
instruction is a PARALLEL with the return under the parallel so the code
does not find it (see 6). See 7 for the code after reg-stack has
finished with it - the return register is marked 'dead'.

The patch looks further into the parallel to find the return if it's
there. I have verified the patch fixed my problem and recompiles GCC ok.

I can reproduce the problem at will and generate the patch in another
fornat f that would help.

Tim Josling
tej@melbpc.org.au


1. Source code (this was not my original source code but this is the
minimal case to produce the problem)
__stdcall float Java_com_josling_mytest_mytest_test
  (void * e, void * o, void * a) {
  float f=6.78;
  return f;
}

2. Assembler output - note the fstp which pops the result
 .file "badcodeBad.c"
gcc2_compiled.:
___gnu_compiled_c:
.text
 .align 4
.globl _Java_com_josling_mytest_mytest_test@12
 .def _Java_com_josling_mytest_mytest_test@12; .scl 2; .type 32; .endef
_Java_com_josling_mytest_mytest_test@12:
 pushl %ebp
 movl %esp,%ebp
 subl $16,%esp
 movl $1087960515,-4(%ebp)
 flds -4(%ebp)
 fstp %st(0)
 jmp L1
 .p2align 4,,7
L1:
 movl %ebp,%esp
 popl %ebp
 ret $12

3. Source code without the stdcall
/*__stdcall*/ float Java_com_josling_mytest_mytest_test
  (void * e, void * o, void * a) {
  float f=6.78;
  return f;
}

4. Output from the source code without the stdcall
 .file "badcodeOK.c"
gcc2_compiled.:
___gnu_compiled_c:
.text
 .align 4
.globl _Java_com_josling_mytest_mytest_test
 .def _Java_com_josling_mytest_mytest_test; .scl 2; .type 32; .endef
_Java_com_josling_mytest_mytest_test:
 pushl %ebp
 movl %esp,%ebp
 subl $16,%esp
 movl $1087960515,-4(%ebp)
 flds -4(%ebp)
 jmp L1
 .p2align 4,,7
L1:
 movl %ebp,%esp
 popl %ebp
 ret

5. Patch to reg-stack.c (< is the new code).

275d274
< static int  rtx_contains_return         PROTO((rtx, int));
1437,1481d1435
< /* Check if instruction is or contains a return.
<
<    With the stdcall option the return rtx becomea a parallel
<    containing the return
<
<    if check_jump_flag is on, it also checks that it is a jump
<
<    Returns
<
<    0 = false
<    1 = true
<
< */
<
< static int
< rtx_contains_return(rtx insn, int check_jump_flag ) {
<   int i;
<   rtx body;
<
<   /* Check for non-jump and so not a return */
<   if (GET_CODE(insn)!=JUMP_INSN) {
<     if (check_jump_flag) return 0;
<   }
<
<   body=PATTERN(insn);
<
<   /* Standard return pattern */
<   if (GET_CODE (body) == RETURN) return 1;
<
<   /* If not parallel here, we have run out of possibilities */
<   if (GET_CODE (body)!= PARALLEL) return 0;
<
<   /* We have a parallel set here jump. Check for a return in the
vector */
<
<   for (i = 0; i < XVECLEN (body, 0); i++) {
<     if (GET_CODE (XVECEXP (body, 0, i)) == RETURN) {
<       return 1; /* found a nested return. DLLs will now return double
*/
<     }
<   }
<
<   /* not a return */
<   return 0;
< }
<
<
1524,1529c1478,1484
<        {
<          /* Find all RETURN insns and mark them.  */
<
<          for (block = blocks - 1; --block >= 0;)
<            if (rtx_contains_return(block_end[block],1))
<              mark_regs_pat (retvalue, block_out_reg_set+block);
---
>       {
>         /* Find all RETURN insns and mark them.  */
>
>         for (block = blocks - 1; --block >= 0;)
>     if (GET_CODE (block_end[block]) == JUMP_INSN
>       && GET_CODE (PATTERN (block_end[block])) == RETURN)
>        mark_regs_pat (retvalue, block_out_reg_set+block);
1534,1535c1489,1491
<          if (rtx_contains_return(block_end[blocks-1],0))
<            mark_regs_pat (retvalue, block_out_reg_set+blocks-1);
---
>         if (GET_CODE (block_end[blocks-1]) != JUMP_INSN
>      || GET_CODE (PATTERN (block_end[blocks-1])) == RETURN)
>    mark_regs_pat (retvalue, block_out_reg_set+blocks-1);

6. badcodeBAD.c.greg (rtx before reg-stack.c got involved - see
instruction 30 at the end with the return under the parallel).

;; Function Java_com_josling_mytest_mytest_test

;; Register dispositions:
21 in 9

;; Hard regs used:  6 8 9 16

(note 2 0 23 "" NOTE_INSN_DELETED)

;; Insn is not within a basic block
(insn 23 2 25 (set (mem:SI (pre_dec:SI (reg:SI 7 %esp)))
        (reg:SI 6 %ebp)) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 25 23 26 (set (reg:SI 6 %ebp)
        (reg:SI 7 %esp)) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 26 25 22 (parallel[
            (set (reg:SI 7 %esp)
                (minus:SI (reg:SI 7 %esp)
                    (const_int 16)))
            (set (reg:SI 6 %ebp)
                (unspec:SI[
                        (reg:SI 6 %ebp)
                    ]  4))
        ] ) -1 (nil)
    (nil))

(note 22 26 3 "" NOTE_INSN_PROLOGUE_END)

(note 3 22 4 "" NOTE_INSN_FUNCTION_BEG)

(note 4 3 6 "" NOTE_INSN_DELETED)

(note 6 4 8 0 NOTE_INSN_BLOCK_BEG)

;; Insn is not within a basic block
(insn 8 6 10 (set (mem:SF (plus:SI (reg:SI 6 %ebp)
                (const_int -4)))
        (const_double:SF (const_int 0) 0 -1023410176 1073862901)) 70
{movsf+1} (nil)
    (nil))

;; Insn is not within a basic block
(insn 10 8 12 (set (reg:DF 9 %st(1))
        (float_extend:DF (mem:SF (plus:SI (reg:SI 6 %ebp)
                    (const_int -4))))) 105 {extendsfdf2} (nil)
    (nil))

;; Insn is not within a basic block
(insn 12 10 13 (set (reg/i:DF 8 %st(0))
        (reg:DF 9 %st(1))) 75 {movdf+1} (nil)
    (nil))

;; Insn is not within a basic block
(insn 13 12 14 (use (reg/i:DF 8 %st(0))) -1 (nil)
    (nil))

;; Insn is not within a basic block
(jump_insn 14 13 15 (set (pc)
        (label_ref 20)) 282 {jump} (nil)
    (nil))

(barrier 15 14 17)

(note 17 15 18 0 NOTE_INSN_BLOCK_END)

(note 18 17 20 "" NOTE_INSN_FUNCTION_END)

;; Insn is not within a basic block
(code_label 20 18 21 1 "")

(note 21 20 31 "" NOTE_INSN_DELETED)

(note 31 21 28 "" NOTE_INSN_EPILOGUE_BEG)

;; Insn is not within a basic block
(insn 28 31 29 (parallel[
            (set (reg:SI 7 %esp)
                (reg:SI 6 %ebp))
            (clobber (reg:SI 6 %ebp))
        ] ) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 29 28 30 (parallel[
            (set (reg:SI 6 %ebp)
                (mem:SI (reg:SI 7 %esp)))
            (set (reg:SI 7 %esp)
                (plus:SI (reg:SI 7 %esp)
                    (const_int 4)))
        ] ) -1 (nil)
    (nil))

;; Insn is not within a basic block
(jump_insn 30 29 27 (parallel[
            (return)
            (use (const_int 12))
        ] ) -1 (nil)
    (nil))

(barrier 27 30 0)

7. badcodeBAD.c.stack - rtx after reg-stack has mangled it - note the
dead register on insn 33 which should be the return value.

;; Function Java_com_josling_mytest_mytest_test

(note 2 0 24 "" NOTE_INSN_DELETED)

;; Insn is not within a basic block
(insn 24 2 26 (set (mem:SI (pre_dec:SI (reg:SI 7 %esp)))
        (reg:SI 6 %ebp)) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 26 24 27 (set (reg:SI 6 %ebp)
        (reg:SI 7 %esp)) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 27 26 23 (parallel[
            (set (reg:SI 7 %esp)
                (minus:SI (reg:SI 7 %esp)
                    (const_int 16)))
            (set (reg:SI 6 %ebp)
                (unspec:SI[
                        (reg:SI 6 %ebp)
                    ]  4))
        ] ) -1 (nil)
    (nil))

(note 23 27 3 "" NOTE_INSN_PROLOGUE_END)

(note 3 23 4 "" NOTE_INSN_FUNCTION_BEG)

(note 4 3 6 "" NOTE_INSN_DELETED)

(note 6 4 8 0 NOTE_INSN_BLOCK_BEG)

;; Insn is not within a basic block
(insn 8 6 11 (set (mem:SF (plus:SI (reg:SI 6 %ebp)
                (const_int -4)))
        (const_double:SF (const_int 0) 0 -1023410176 1073862901)) 70
{movsf+1} (nil)
    (nil))

;; Insn is not within a basic block
(insn:QI 11 8 13 (set (reg:SF 8 %st(0))
        (mem:SF (plus:SI (reg:SI 6 %ebp)
                (const_int -4)))) 70 {movsf+1} (nil)
    (nil))

(note:QI 13 11 33 "" NOTE_INSN_DELETED)

;; Insn is not within a basic block
(insn:QI 33 13 14 (set (reg:DF 8 %st(0))
        (reg:DF 8 %st(0))) -1 (nil)
    (expr_list:REG_DEAD (reg:DF 8 %st(0))
        (nil)))

;; Insn is not within a basic block
(insn:QI 14 33 15 (use (reg/i:SF 8 %st(0))) -1 (nil)
    (nil))

;; Insn is not within a basic block
(jump_insn 15 14 16 (set (pc)
        (label_ref 21)) 282 {jump} (nil)
    (nil))

(barrier 16 15 18)

(note 18 16 19 0 NOTE_INSN_BLOCK_END)

(note 19 18 21 "" NOTE_INSN_FUNCTION_END)

;; Insn is not within a basic block
(code_label 21 19 22 1 "")

(note 22 21 32 "" NOTE_INSN_DELETED)

(note 32 22 29 "" NOTE_INSN_EPILOGUE_BEG)

;; Insn is not within a basic block
(insn 29 32 30 (parallel[
            (set (reg:SI 7 %esp)
                (reg:SI 6 %ebp))
            (clobber (reg:SI 6 %ebp))
        ] ) -1 (nil)
    (nil))

;; Insn is not within a basic block
(insn 30 29 31 (parallel[
            (set (reg:SI 6 %ebp)
                (mem:SI (reg:SI 7 %esp)))
            (set (reg:SI 7 %esp)
                (plus:SI (reg:SI 7 %esp)
                    (const_int 4)))
        ] ) -1 (nil)
    (nil))

;; Insn is not within a basic block
(jump_insn 31 30 28 (parallel[
            (return)
            (use (const_int 12))
        ] ) -1 (nil)
    (nil))

(barrier 28 31 0)





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

* No Subject
@ 1999-02-28 23:30 
  0 siblings, 0 replies; 97+ messages in thread
From:  @ 1999-02-28 23:30 UTC (permalink / raw)
  To: egcs

  r28 is assigned &clist_row on line 175 in the .s file
      on lines 251..253 as the base of clist_row
  r28 is reset to 0 on line 288 and is used as (i*sizeof(GtkCell))
  r28 is still used as &clist_row on line 588 in the .s file


Line 175 contains:

        mr 28,29

So presumably r29 had the value of &clist_row?  However, from looking at the
assembly code I think it really holds the value of &cell_rectangle, clist_row
is actually held in r25 as best as I can tell.


Line 288 has:
        li 28,2772

Which doesn't set r28 to zero as far as I can tell.  Now it certainly does
set it to a different value than it previously had.

Line 588 has:

        lwz 0,4(3)

Which doesn't reference r28 at all.


I've also spent a fair amount of time looking at the assembly code for
this function, and I don't see the problem.


Here's a nice big hunk of assembly code starting with the first instruction
you mentioned.

        mr 28,29  # 1823 movsi+1/1                      /* SETTER */
        sth 0,6(23)  # 220 movhi+1/3
        lwz 9,4(25)  # 223 movsi+1/3
        mr 16,23  # 1824 movsi+1/1
        cmpwi 0,9,0  # 224 sleu+1
        bc 4,2,.L76  # 225 jump-4/1
        lwz 0,44(25)  # 229 movsi+1/3
        cmpwi 0,0,0  # 232 sleu+1
        bc 4,0,.L77  # 233 jump-4/1
        lwz 3,200(31)  # 240 movsi+1/3
        addi 4,25,8  # 242 *addsi3_internal1/2
        bl gdk_gc_set_foreground@plt  # 244 *call_nonlocal_sysv/1
        lwz 0,44(25)  # 1812 movsi+1/3
.L77:
        andis. 12,0,16384  # 251 extzv+2
        bc 12,2,.L76  # 252 jump-4/1
        lwz 3,204(31)  # 259 movsi+1/3
        addi 4,25,20  # 261 *addsi3_internal1/2
        bl gdk_gc_set_foreground@plt  # 263 *call_nonlocal_sysv/1
.L76:
        cmpwi 2,18,0  # 271 sleu+1
        lwz 14,4(25)  # 269 movsi+1/3
        bc 12,10,.L79  # 272 jump-4/2
        addi 24,1,40  # 276 *addsi3_internal1/2
        mr 4,28  # 291 movsi+1/1
        mr 3,18  # 289 movsi+1/1
        mr 5,24  # 293 movsi+1/1
        bl gdk_rectangle_intersect@plt  # 295 *ret_call_nonlocal_sysv/1
        cmpwi 0,3,0  # 298 sleu+1
        bc 12,2,.L80  # 299 jump-4/1
        lwz 11,24(31)  # 304 movsi+1/3
        lhz 7,2(24)  # 313 movhi+1/2
        lhz 8,4(24)  # 318 movhi+1/2
        lhz 9,6(24)  # 323 movhi+1/2
        lwz 4,572(11)  # 328 movsi+1/3
        lwz 3,124(31)  # 326 movsi+1/3
        lha 6,40(1)  # 332 extendhisi2+1/1
        extsh 7,7  # 334 extendhisi2+1/2
        li 5,1  # 330 movsi+1/5
        bl gdk_draw_rectangle@plt  # 340 *call_nonlocal_sysv/1
.L80:
        lwz 9,100(31)  # 344 movsi+1/3
        lwz 0,0(9)  # 346 movsi+1/3
        cmpw 0,25,0  # 347 sleu+1
        bc 4,2,.L81  # 348 jump-4/1
        lhz 9,2(29)  # 356 movhi+1/2
        lhz 0,94(31)  # 360 movhi+1/2
        addi 9,9,1  # 358 *addsi3_internal1/2
        add 0,0,9  # 364 *addsi3_internal1/1
        sth 0,2(29)  # 367 movhi+1/3
        mr 4,29  # 376 movsi+1/1
        mr 3,18  # 374 movsi+1/1
        mr 5,24  # 378 movsi+1/1
        bl gdk_rectangle_intersect@plt  # 380 *ret_call_nonlocal_sysv/1
        cmpwi 0,3,0  # 383 sleu+1
        bc 12,2,.L81  # 384 jump-4/1
        lwz 11,24(31)  # 389 movsi+1/3
        lhz 7,2(24)  # 398 movhi+1/2
        lhz 8,4(24)  # 403 movhi+1/2
        lhz 9,6(24)  # 408 movhi+1/2
        lwz 4,572(11)  # 413 movsi+1/3
        lwz 3,124(31)  # 411 movsi+1/3
        lha 6,40(1)  # 417 extendhisi2+1/1
        extsh 7,7  # 419 extendhisi2+1/2
        li 5,1  # 415 movsi+1/5
        bl gdk_draw_rectangle@plt  # 425 *call_nonlocal_sysv/1
.L81:
        mr 3,18  # 459 movsi+1/1
        mr 4,19  # 461 movsi+1/1
        mr 5,24  # 463 movsi+1/1
        bl gdk_rectangle_intersect@plt  # 465 *ret_call_nonlocal_sysv/1
        cmpwi 0,3,0  # 468 sleu+1
        bc 12,2,.L65  # 469 jump-4/1
        b .L84  # 475 jump
.L79:
        lwz 11,24(31)  # 490 movsi+1/3
        lhz 7,2(28)  # 499 movhi+1/2
        lhz 9,6(28)  # 509 movhi+1/2
        lhz 8,4(28)  # 504 movhi+1/2
        lwz 4,572(11)  # 514 movsi+1/3
        lwz 3,124(31)  # 512 movsi+1/3
        lha 6,24(1)  # 518 extendhisi2+1/1
        extsh 7,7  # 520 extendhisi2+1/2
        li 5,1  # 516 movsi+1/5
        bl gdk_draw_rectangle@plt  # 526 *call_nonlocal_sysv/1
.L84:
        lwz 0,104(31)  # 1801 movsi+1/3
        li 22,99  # 600 movsi+1/5
        cmpw 0,22,0  # 1802 sleu+1
        bc 4,0,.L87  # 1803 jump-4/1
        lwz 9,.LC11(30)  # 1832 movsi+1/3
        mr 26,23  # 1826 movsi+1/1
        lfd 31,0(9)  # 1834 *movdf_hardfloat32/8
        lis 15,0x4330  # 1828 movsi+1/6
        li 28,2772  # 1840 movsi+1/5

The first instruction in this hunk-o-code sets r28 (insn #1823).  There are
uses at insns 291, 499, 509 and 504.  No path from insn 1823 to 291, 499, 509
or 504 clobbers r28.

There are later uses of r28 (not shown).  However, each and every one of those
is supposed to reference the value that is set in insn 1840 as far as I can
tell by examining the rtl dumps and the assembly code.


The way I determined this was to compile the file with "-dap".  Then bring
up the assembly file under an editor.

The number after "#" in the assembly lines is an identification number for
insn.  These correspond to numbers you find in the dump files.  Such as:

(insn 1840 1828 1858 (set (reg:SI 714)
        (const_int 2772)) 402 {movsi+1} (nil)
    (expr_list:REG_EQUAL (const_int 2772)
        (nil)))


Which corresponds to the last assembly line I showed above.


So, armed with the assembly file with id #s and the .lreg dump I was able
to map every use of hard register r28 to a pseudo register.

Pseudo register (reg 161) corresponds to the stack slot, presumably &clist_row
and pseudo register  (714) corresponds to an index which is incremented by
28 each iteration of the loop.

I think you need to re-analyze this problem.





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

* No Subject
@ 1999-01-28 16:13 Christoph Hoegl
  0 siblings, 0 replies; 97+ messages in thread
From: Christoph Hoegl @ 1999-01-28 16:13 UTC (permalink / raw)
  To: egcs-bugs

There seems to be a bug in the latest changes to egcs-cvs


System: 2.2.0-pre7-ac6-bsdd2 i586-Linux
Libs: libc 5.4.46
EGCS: egcs-2.93.03 19990126 (03:13 GMT) 



regards,
Christoph

PS: I tried an more up to date version (CVS 19990128 16:30 UTC and 
first analysis show it's compile is broken on stage1/xgcc -Bstage1/ 
-B/usr/i586-pc-linux-gnulibc1/bin/ -c  -DIN_GCC -DHAIFA
-DUSE_GNULIBC_1 -W -Wall -O2 -g -O2  -DHAVE_CONFIG_H    -I. -I../../egcs/gcc 
-I.
./../egcs/gcc/config -I../../egcs/gcc/../include ../../egcs/gcc/reload1.c
../../egcs/gcc/reload1.c: In function `reload':
../../egcs/gcc/reload1.c:1086: warning: `is_scalar' might be used 
uninitialized
in this function
../../egcs/gcc/reload1.c: In function `maybe_fix_stack_asms':
../../egcs/gcc/reload1.c:1274: warning: passing arg 4 of `decode_asm_operands' 
f
rom incompatible pointer type
xgcc: Internal compiler error: program cc1 got fatal signal 11

(Tried also a new snapshot of CVS-current on a different machine in order to 
reduce possibility of an  HW-flaw)

--------------
Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.93.03/specs
gcc version egcs-2.93.03 19990126 (gcc2 ss-980609 experimental)
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.93.03/cpp -lang-c -v -undef 
-D__GNUC__=2 -D__GNUC_MINOR__=93 -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__ -Di586 -Dpentium 
-D__i586 -D__i586__ -D__pentium -D__pentium__ capi20.c capi20.i
GNU CPP version egcs-2.93.03 19990126 (gcc2 ss-980609 experimental) (i386 
Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.93.03/../../../../i586-pc-linux
-gnulibc1/include
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.93.03/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.93.03/cc1 capi20.i -quiet 
-dumpbase capi20.c -version -o capi20.s
GNU C version egcs-2.93.03 19990126 (gcc2 ss-980609 experimental) 
(i586-pc-linux-gnulibc1) compiled by GNU C version egcs-2.93.03 19990126 (gcc2 
ss-980609 experimental).
../../egcs/gcc/function.c:3464: 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.



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

* No Subject
@ 1999-01-25  5:24 Gregory, Allan
  0 siblings, 0 replies; 97+ messages in thread
From: Gregory, Allan @ 1999-01-25  5:24 UTC (permalink / raw)
  To: 'egcs-bugs@cygnus.com'

I have just tried to compile egcs version 1.1.1 on a SPARC computer running
Solaris 2.4.

I have followed the instructions:
	Untar.
	mkdir some where not in the source tree
	cd to new directory
	run configure in new egcs tree
	run make

what happens is I get a message about __builtin_va_alist being undefined
when it comes to compile gencodes.c

after looking around, I noticed that cccp.c used variable argument lists and
had
already been compiled, so I deleted cccp.o, and ran make again. it now
failed to compile cccp.c, giving the same error about __builtin_va_alist!

Does any one have any suggestions? (the system compiler is gcc 2.6.0)


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

* No Subject
@ 1999-01-25  1:16 Philippe Hoogvorst
  0 siblings, 0 replies; 97+ messages in thread
From: Philippe Hoogvorst @ 1999-01-25  1:16 UTC (permalink / raw)
  To: egcs

Hi !

One more bug...

=== BEGIN of *.cc file ====== BEGIN of *.cc file ====== BEGIN of *.cc file ===
template <class type> class variable_length_code 
{
	int length ;
	int *tab_index ;
	type *data ;

	variable_length_code<type>();
public:
	
	variable_length_code<type>( int l, type *D , int *I) ; 
	type & read( char * ) ;
};

static struct Data {
	 int lgcode;
int value; } data[] = {
	{  3 , {  0} },
	{  2 , {  1} },
	{  2 , {  2} },
	{  3 , { 3} },
	{  3 , { 4} },
	{  4 , { 5} },
	{  5 , { 6} },
	{  6 , { 7} },
	{  7 , { 8} },
	{  8 , { 9} },
	{  9 , { 10} },
	{ 10 , { 11} },
	{ 11 , { 12} },
};
static int tabel_of_index[2048] = {
   -1, 12, 11, 11, 10, 10, 10, 10,  9,  9,  9,  9,  9,  9,  9,  9,
    8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
    7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
    7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
    6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
    6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
    6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
    6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
};

template variable_length_code<int>
	table_int(11,data,tabel_of_index);
===  END  of *.cc file ======  END  of *.cc file ======  END  of *.cc file ===

Compiler version:

Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

== File /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.57/specs ==
*asm:
%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

*asm_final:
%|

*cpp:
%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}

*cc1:
%(cc1_cpu) %{profile:-p}

*cc1plus:


*endfile:
%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s

*link:
-m elf_i386 %{shared:-shared}   %{!shared:     %{!ibcs:       %{!static: 	%{rdynamic:-export-dynamic} 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} 	%{static:-static}}}

*lib:
%{shared: -lc}    %{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} 	%{profile:-lc_p} %{!profile: -lc}}

*libgcc:
-lgcc

*startfile:
%{!shared:      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} 		       %{!p:%{profile:gcrt1.o%s} 			 %{!profile:crt1.o%s}}}}    crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}

*switches_need_spaces:


*signed_char:
%{funsigned-char:-D__CHAR_UNSIGNED__}

*predefines:
-D__ELF__ -Dunix -Dlinux -Asystem(posix)

*cross_compile:
0

*version:
egcs-2.91.57

*multilib:
. ;

*multilib_defaults:


*multilib_extra:


*multilib_matches:


*linker:
collect2

*cpp_486:
%{!ansi:-Di486} -D__i486 -D__i486__

*cpp_586:
%{!ansi:-Di586 -Dpentium} 	-D__i586 -D__i586__ -D__pentium -D__pentium__

*cpp_686:
%{!ansi:-Di686 -Dpentiumpro} 	-D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__

*cpp_cpu_default:
%(cpp_586)

*cpp_cpu:
-Asystem(unix) -Acpu(i386) -Amachine(i386) %{!ansi:-Di386} -D__i386 -D__i386__ %{mcpu=i486:%(cpp_486)} %{m486:%(cpp_486)} %{mpentium:%(cpp_586)} %{mcpu=pentium:%(cpp_586)} %{mpentiumpro:%(cpp_686)} %{mcpu=pentiumpro:%(cpp_686)} %{!mcpu*:%{!m486:%{!mpentium*:%(cpp_cpu_default)}}}

*cc1_cpu:
%{!mcpu*: %{m386:-mcpu=i386 -march=i386} %{mno-486:-mcpu=i386 -march=i386} %{m486:-mcpu=i486 -march=i486} %{mno-386:-mcpu=i486 -march=i486} %{mno-pentium:-mcpu=i486 -march=i486} %{mpentium:-mcpu=pentium} %{mno-pentiumpro:-mcpu=pentium} %{mpentiumpro:-mcpu=pentiumpro}}
=== END of /usr/local/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.91.57/specs =======

Diagnostics:

v.cc:163: Internal compiler error.
v.cc:163: Please submit a full bug report to `egcs-bugs@cygnus.com'.

I am using a RedHat 5.0 linux, with an updated kernel 2.1.129.
I hope it will help you...

Best regards

Philippe.Hoogvorst@dmi.ens.fr



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

* No Subject
@ 1999-01-21 19:29 Frank Hunszinger
  0 siblings, 0 replies; 97+ messages in thread
From: Frank Hunszinger @ 1999-01-21 19:29 UTC (permalink / raw)
  To: egcs-bugs

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

Ok, here's the (hopefully) complete bug report you requested:
(The previous report was posted by another E-Mail, but I can't sent
 attachments from there (hunszing@informatik...)

system type:
------------
The system I used is a IBM RS/6000 running AIX 4.1
uname -a: AIX fuseki 1 4 002004294900

command line:
-------------
g++ -v --save-temps -c Server.c++

output of the command:
----------------------
Reading specs from
/afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/lib/gcc-lib/powerpc-ibm-aix4.1.4.0/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

/afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/lib/gcc-lib/powerpc-ibm-aix4.1.4.0/egcs-2.91.57/cpp
-lang-c++ -v -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__
-D_ARCH_COM Server.c++ Server.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release)
#include "..." search starts here:
#include <...> search starts here:
 /afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/include/g++

/afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/powerpc-ibm-aix4.1.4.0/include

/afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/lib/gcc-lib/powerpc-ibm-aix4.1.4.0/egcs-2.91.57/include
 /usr/include
End of search list.

/afs/informatik.uni-tuebingen.de/rs_aix41/egcs-1.1b/lib/gcc-lib/powerpc-ibm-aix4.1.4.0/egcs-2.91.57/cc1plus
Server.ii -quiet -dumpbase Server.cc -version -o Server.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release)
(powerpc-ibm-aix4.1.4.0) compiled by GNU C version egcs-2.91.57 19980901
(egcs-1.1 release).
Server.c++: In function `int main(int, char **)':
Server.c++:140: warning: invalid use of type decl `typedef ulong_t dev_t'
as expression
Server.c++:140: Internal compiler error 40.
Server.c++:140: Please submit a full bug report to `egcs-bugs@cygnus.com'.

[Source attached]

[-- Attachment #2: Server.ii.gz --]
[-- Type: application/x-gzip, Size: 16606 bytes --]

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

* No Subject
@ 1999-01-20  0:02 Jeffrey A Law
  0 siblings, 0 replies; 97+ messages in thread
From: Jeffrey A Law @ 1999-01-20  0:02 UTC (permalink / raw)
  To: richard.earnshaw; +Cc: egcs-bugs

I think the executive summary is we shouldn't apply this patch.  The problem
was supposed to have been fixed by the patch(s) Joern references.

You might try and extract one or more of those patches to see if they fix
the problem.  We could consider adding them to the branch just in case we
make a 1.1.2 release.



------- Forwarded Message

From:     Joern Rennecke <amylaar@cygnus.co.uk>
To:       law@cygnus.com
cc:       amylaar@cygnus.com
Date:     Mon, 18 Jan 1999 12:50:37 +0000 (GMT)
Subject:  Re: reload change.

> The ARM md contains patterns for the multiply instructions which tie an 
> input to an early clobber output (because that particular input is not 
> earlyclobbered).  However, if both the inputs and the outputs are spilled 
> then choose_reload_regs can assign the inputs via inherited reloads that 
> ignore the earlyclobber constraints.  The patch below fixes the problem by 
> forcing a copy of the inherited reload to be made for a tied input in 
> these circumstances.
> 
> While the testcase at the end only exposes the problem for egcs-1.1.1 for 
> the arm-aout configuration (compiling with -O2), examination of the trunk 
> code shows that this could also happen there (though the better reload 
> handling means that the current example doesn't fail).  Is the fix below 
> ok to install?

We deliberately ignore earlyclobbers for inputs that match - otherwise,
the alternative could not be matched at all, and the alternative
should not be written in the first place.

So I suppose that the problem here is that the inheritance has a side effect.
This is not really tied to an earlyclobber output, but happens for any output.
While in theory, reload could split some more fine hairs when there is a
match with a non-earlyclobber output, in practice this is handled with
RELOAD_OTHER, so it makes no difference here if the output is earlyclobber
or not.
The presence of an output is now checked when reload_out is passed to
reload_reg_free_for_value_p, in this clause:

                              || ! (reload_reg_free_for_value_p
                                    (i, reload_opnum[r], reload_when_needed[r],
                                     reload_in[r], reload_out[r], r, 1))

In egcs 1.1.1, this functionality was missing from reload_reg_free_for_value_p.
it was fixed with this mainline patch:

revision 1.100
date: 1998/11/17 14:26:40;  author: amylaar;  state: Exp;  lines: +5 -3
        * reload1.c (reload_reg_free_for_value_p): When considered reload
        has an output, matching inputs are not sufficient to avoid conflict.

There are also previous patches that broadened the scope of
reload_reg_free_for_value_p and removed reload_reg_free_before_p.

In short, the proposed patch should not be added to the mainline.
If you want to add it to the 1.1.1 branch, you should be aware that it is
curing one symptom, not the underlying problem.

------- End of Forwarded Message



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

* No Subject
@ 1999-01-04 19:21 Jeremy Graham Siek
  0 siblings, 0 replies; 97+ messages in thread
From: Jeremy Graham Siek @ 1999-01-04 19:21 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 28557 bytes --]

To: egcs-bugs@cygnus.com
Subject: g++ internal compiler error
Reply-to: Jeremy Siek <jsiek@lsc.nd.edu>

Hello,

Here's the output and temp file from trying to compile on my
powerpc. I also get strange behaviour trying to compile the same code
on Solaris (Ultra30) with egcs-1.1.0, it runs out of virtual memory.

Reading specs from /usr/local/lib/gcc-lib/powerpc-unknown-linux-gnulibc1/egcs-2.91.60/specs
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/local/lib/gcc-lib/powerpc-unknown-linux-gnulibc1/egcs-2.91.60/cpp -lang-c++ -v -I. -I../src -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -DPPC -D__ELF__ -Dunix -Dlinux -Dpowerpc -D__PPC__ -D__ELF__ -D__unix__ -D__linux__ -D__powerpc__ -D__PPC -D__unix -D__linux -D__powerpc -Asystem(unix) -Asystem(linux) -Acpu(powerpc) -Amachine(powerpc) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D_CALL_SYSV -D_BIG_ENDIAN -D__BIG_ENDIAN__ -Amachine(bigendian) -D_ARCH_PPC -D__unix__ -D__linux__ -Dunix -Dlinux -Asystem(unix) -Asystem(linux) banded.cc banded.ii
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (PowerPC GNU/Linux)
#include "..." search starts here:
#include <...> search starts here:
 .
 ../src
 /usr/local/include/g++
 /usr/local/include
 /usr/local/powerpc-unknown-linux-gnulibc1/include
 /usr/local/lib/gcc-lib/powerpc-unknown-linux-gnulibc1/egcs-2.91.60/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/powerpc-unknown-linux-gnulibc1/egcs-2.91.60/cc1plus banded.ii -quiet -dumpbase banded.cc -version -o banded.s
GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (powerpc-unknown-linux-gnulibc1) compiled by GNU C version egcs-2.90.25 980302 (egcs-1.0.2 prerelease).
banded.cc: In instantiation of `::mtl::::mtl::dense2D<double,::mtl::rect_offset>':
banded.cc:47:   instantiated from `matrix<::mtl::::mtl::dense2D<double,::mtl::rect_offset>,::mtl::::mtl::rect_indexer<int,::mtl::row_orien> >'
banded.cc:47:   instantiated from `::mtl::::mtl::matrix<::mtl::::mtl::dense2D<double,::mtl::rect_offset>,::mtl::::mtl::rect_indexer<int,::mtl::row_orien> >'
banded.cc:47:   instantiated from here
banded.cc:47: Internal compiler error.
banded.cc:47: Please submit a full bug report to `egcs-bugs@cygnus.com'.
banded.cc:47: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

===File ~/mtl-2.0a3/newstyle/banded.ii.gz===================
\x1f‹\b\bz\x05‘6\x16¬DEGá^[\x1fa³ëkœ,;Ä\x0e×ÕzYŒõoV”rƒÏRBn´hRÊàË@ì—:â1œOÖ´Iš÷e²_T\x1d–Õ°+¿ÏÖ+ý£X,†\x03©€\x10\x041’€\x13ö8`<ƒ\fÖ\x0e4òß®ò+žÊ\x7fs\x18\x03Ñ$ïØ$ø§l§±:Q?YWP\x0eŽ¹y@5$†k¡Õ@©y°3]'Ðã’â{U¼»n·ž¼\x17?g“ñ5e¨ÅþПPHQ4Ã\x03\vRpÛæ\b.@Ä\x1c'‡t!l›âW™\x10¥®’\x11ÞÈüü¤mN\x1asQt®ŠÎ\x11íÆK\r±Å5\x10wm<ȘSî݅ðrí¬=Íï]\a­vÿ‡V<"¤JD>Au¹–\x10˜$©ò'륱7QzF\f“MtÚ?ýà:$_­òÑ­\x17l‡Ñ„z…Š\x03œcɧ\x05\x0ef'\x1dnÝ&Wå\x16¨\bôb橘\x1fhëÁø{õꥧ\x7fðJ,yE§§¼åQäf)ª\x19h\x15Ã&¼öl¾j \x7fRõN…Z‘±	²ýA93mã€`ïp}–`Òo²\x14Ýl	j.\x1aôh!¤Ep_2±Ì8é&\x7fz.ýý¦ó\x1aNGÙ\x1e \fèODîXœŠ\x1d\x06׋Ôaýgƒ\x11N2Ëþݝ\x16lªÊ¶Ð\x01E\x17U”R\v\x1a[š\òâûšÃՌÍà:\x1eeyE»Õ•Áš§f \x03Ú¡?‡µÈ\x13±1~¾¼â‘k\x14\b‡,\x03jh1\x1eTvþ\x7fÈÿ¡T>\x11\x01>|pðpG>@Æň5†–P\x11Vç¯hm\x1edK„\x02héÝ`ÚD{KØ×B±ÁKóD’\x03†ï\f³³g\ÊÁŒàhÛ`!\x17”;¿ü*)[qØM¦ñëpЭ <ô;\x1eãmí[¢mæ\x03’u†Ãi^•ó¶\búÕÙ¼</RÊ2"\x11•›ár3Qn¦Ë©\x13R²Ü»¥\x02Cù·l«£C
\x12óõ)\x18°ºó•¢V×$¥ÐÒ)dƼSI”#@Ìì”\x13­÷öŠw<^[Ζ×wî|.À P\x03™\x12‘Ÿ±Ï¸›Í\x01¾4}Ÿòh%w….ŒQ
¥ÍFÆÑ\x05g\x18\fhµ³Õ^[<`K–“\x0eÞ?-UŒÕi\x16c\x15ô^ž=Ág&Ô҈Ò+\x16Gì¬ß %Ö8Ìsp@W8\x1c0œ\x10ýýw\x19Ý\x7ftö\x1cÏ\x18¤’€ž2´<vZúûN^[€P(ÚáE®ø“¢ö$ã´\x16\x16\x05\x12‹3Ë^[¿Ã¡ìÌ¨E®ËŒ®.ÍD
ˆ¦IH\ap(¬\x15\x18Ìî„3êÝ-\èŸ1ð\x10û\r Á•uxȒ\x06ô\v»´ÂӉ?1•ó-Ó8[ç«,^[éÍãm\r5ÏàAX\x17ò6Wp\x15\aÀ#G\x1c¥_FÓ{m«>ã4!ֈj¼ mŽ«ŒX‰6\x17Ï\x1aÂ\x15¡ŽÔ^[¥œ±ÛÚD\x12CBÖ\x107©X°xX:™\x14\x18\x12Ú⻒bØWÞ\x0eõ‰U=ÞÂQ.m&ÑX ëäV´®™än,çy0BÓÀÌÙ^4»MÆ
ÐJ™€LŽÄùd·q‡ç>x\x1c’ªÍv\x16Ò\x1a¼	u‡AêŽ\x12¨;ŒRçŠù/¿FhT0øá^[N\x1ay`/êŒU^[ùa›\a‘ÍêéÙÛ󩯜8é6#ûl+ª›\x12-	%gŠþ†A6a\îd©\x05µi^[7n×QÃvEf¼–Ö\x02\r\x1aMªn£v˜~ÉpÉìN7±’ÑE_½øz+‹Ý‰^[¶ü\fÆm(¦WA<¬\x05²Œ\x1diçä삨稭Šg—]ӔN±}“@Ý·-\x17ƒ(/¯ê\x05\ruÉÍ@øÊF %\x7f¨ß\x02c¾JvтÔy:\x1fNgw8 ¸¬rµXÃ^[)×ùd)_$¿&™.Þ&¢0¹¸Ð8^[í³µõÄ&äŸõ£ì¦/CÝäå»\x16ÇÝ­\x05T4ÚOŵ±\f ´\x18Ì\x0fU"ÿMEyfX}²þ\x19Ïò/
Bæ)¯c˜ß?þ\x144f=¥ÃV8¶‘\f›‘ØÄk\x11s0qcRæw\x11Ð\vbæِ±¸™E/”jJ¸aª:7aHÒ´‹2d÷:ýÄg˜\v‘ xWÇr*‹e¹º'òK}•ïa,|\vOà€à\x18¿Xå€YJÎf8dòaɱЮŝ"úSEù.Šy¶Þ5Ú_Ü뽨°œž
ì\x14!m¥,$/öò	ƒ(竀«@G\bGÿ×1‘ﻂËò„ӟɸïàïŽ¨\x1fXdžžÏÔüif´F³ù½}­šs¥ZתE\x16\+x®c£\x13àõÀÉb÷ĝ“	äØ Šåz\x02™ÜÇ-îòÂ݀®Yk·I‡W æ+jYÖá!ê?žËXîa•÷ä£Û„U¦¬Ã_ùÞÜçMÿ\x0f“\x12\x19\x04紁œ\x10Ú\f—î\x06퓠ɒ\r^[n\x03ÈÔ¿\a\x16á-k\x1cRa¯–”pÇ\x02uY\x05#Ë\x1es]\v\x11ÙbE^·o¸\Ç»\a°Xß|™žª\vkֆV\aÕ-\x14^[÷UlaèY\x14:]\båšøWvé\x19¢;$ˆË\x1d”\x02éº\x1e«hVT\x12t!›˜8cY\f_b\rb9l‰\x1c½Îˆs‡¢\x1c¾Ä\x1dDz·‰Z\x1d ,>ð¬å©\x18AÄZ¼‰QC¬uª\x1c(Ä^šªÁAœÅ¨\x18\x12ÄZ…ÊQ@&N\x06\x1f\x03s›"®\x15ÖnÃä€PkG³³¤ˆ;K;%ÍDIµ¥°¨ˆ\x10,(¶œ€¨'†\x1aX\x1f¥#©©ó•½Ÿe•(Ðù=>\x06å\b\x14˜¾±Õ´\x03Ç\x17–ãÓÿÊ\x0e\x12v)vÜsށô9ââsÄÅ爋Æ\x11\x17Ž…ì\x1f]\x1e\x13TMÁks–±lPV"f„®Ùä%ã\x1emõdcH+žzé\x7f_³ùÛÞýgs
ý
þ³ÿç{ú­Íœ\x03~B†›‚\x11$ô^ÕVþ¿ShØ\fŽ âE¿¶òÏ)Dl\x06G\x10ñêemåïRˆh\x06Ç bQܔËU±ˆ\x02\x18\x0eßÍ\x16cˆ\x0ei\x0fиðÆ\x18Uã2¯j7PŒ=\x0e\x17ÊÕýªX\x16whZ¡Ã߉IQ¨ìÀWпviï€õᆂËbRŒVi^[KD\x0eʏËB¡:˶\b\x026Œ\ÒCör^ŒÜؖÕ[º"\x18¹Ñ-4½Ò\x19\x0f\x03EþnL\x1a7ÌÍèš`¸OËhÒÛ|b8oIJ„èå	1sa\x15„ö¼ZxîÓ\x7fÍC7Œ(uH¨º\x1e³³dÒó	'ìò1$ò¸\x14œónQ®
§|q\aGàt\r³=P\x02¾ÎÖ+çN\x13JšÒ\x11§Â‰`š7dË\x06|!–ìF8ӐšÆ´ÔP"ã×zÎÙ\x03¿)!Ë÷OÂaÖ}<Õãè.1+ñGîqИUÄ-Ð2\x0fûÁ	AYÆò‰-‹Â€ÉÊחæÄ:Çÿáù?p)\x16þªø"+vµ¾\x16\x112Ú%\x03铢rˆêð·\f7\x01o\x1fŠ3p GÕ\v…È…é#­¾\x02wºÇDÝð\v$îÐ\x11¸c‰ÛO±^BӃ\x1dÖ7†º/¿öˆ•(P¨\x02\x1e#w8¼[®¯Ê_^üê‹\x04™\x04a³ìjsÈÓ8ä×^[AÖ¼dU¥7Ÿr‘êGo\\x06ځbaŒÛ{õVâÄ\b'#Š'\sž/òé/_)Z…b\x12Ý6\x1cç«\Mñ\x1eŠ|Ák¡#3æòƒƒ™¾k)Ñ=0ò–J´^1néz³ŒV°\x04“.ïh¾‡øÑl:Í+Ëޖ\x1aÁ¼·„š\x11ó|u^[䮾Èg9›¼Õ6<»ëÝ\x16‰},Øüavð5ÐT±¿;£‹Þü†?b\x7fMËdd \x1e¯\x7fʟ£\x1fÃCYQ¼ùÎ_Šï¨‡â;êáa÷\x05x›5?±€–oG£b¹ŒsH¦~W¹ÔQ\x11àX‹sl8Î| %ë¼y\x16\a\x03ܒø;ˆI2T„s‰\x1c‰gÖiÊ\x05œ>=:ªº\x1eΑGa]H¸\x04¯¶äT€O<T‰Ý6¿\z¤K4Pu—ÀÇ@+ cÁX®q9ÏüZ7iŒ©×°8Îr9\a\r#Çj…4\x05²önƞ—Im\x11&b°ÂÏ\bÅ¿\x11móÍlq¯™AÄR,¦Ò/;²Ñ+©å:²)ê7ÇH¿H¤èÙ,Nªx£&“\x05\x04\x04qRú²M:$ÃâÏÉ3D™\x1cZEj&£M)×O{^[\x1a;.n™º„ƒš('AÒübtvÙ\x01\x1a.˜8QZ\bi’]b¥\x10È¥\rüe\x17Ÿ[o¶]œžÖ<’F¨ºqå‰òÍÛVºjC“ÞJÉôP[S;éãh÷N'ëMÕ~máS›²WLª-ri¯xXÁÅ[ÚAl1Ï\x1a€W÷F\x1fò$\x0e‚\x7fÇ=\x19Ð\rÖXOÒ\x06‚&áƒ7ÈRi\x06e*5ÂYU&h¡ÐD•Ý©µ?—ãrQŒÀ¹’Oœ\x15Œ7W¯cüÙR\x12®òÑ^[XÃd~\x1c²eq\x03Ñù\x04€q\x19Ø\x05¬¾Ñ\x1dâZ\rÃà¤Ü?:Ò\x06ÒÑ\x11³B½\x16Ҏøm*>ÉXÓ\\b4\x06éÁ\x1dôÃöÜO๭R” ùUF3kC1¯Áä\x1dm˜c’p0jÞ&\x7f³-pg”Óœ¿yM—¿y†5-›l ì¡±q+¦¦«RŒ\x17Gº?V+\x061w\x17æŒÛîOÆ®iƉǙ„ö6\x05ín\x02JP…\x01>+\x11	q.Žhʶ'‘Ñj'C¥¸¨Áàä•eRßËFùÆ\x0e’¿³€øq^™¥ûªt/Äé\akšbú;H!
ã¶â¬öå?h×èJî–ÿî:ŒE\rÔI¼Ùk¨J¿«znw]‡•G+Ä}nû\x18·¿vÔÔ\x166¯=•D\x0f5ª#'Àƈú|ãDD•ñ0þIQõˆä‰ð\x14²yÎ.Õ\x17¥ú²T_—â\x17<‰µá´˜Žh\x1f™3]—\x05µ\x04x€ÇŸä\x015³øùXºÂ\x15kdúï?\x1d–3h†é%%\fw˜ ÄÀ*äNë\x1c\a¶8þk%\x1fàq!£šÎ£…\x1f\x06ö´\x1d>èØtچò\ræì:p·E>¯\ag^kÝ(ôCž*²wڇÃùzyËðGã8Ô©¤ÛÙ¤ø¾\x1a\x17w\x1eñU…V³9/Cç1´²Pù°\x12­`9Ÿ)ptáßkS½ÍT§PÖ:óBd›À™Œòà€ÚtU€Ð\x10T@hC̍]Ë§Fs.2xz\x1d•\x0fP¨\x15Ä\x16Ž(hØQæzAõ\x173Ñ#}\x16]=‡béCiÚ6ÄRb	Df†ª3\x06¡Ü“¶\x13ˆv™ud^;°„ð‘g2"MlƒÍtÚå.x|çł덭ºØÙ¸zÌ¡é;’º«Ê·šìQ'˜Ø~äѺë‘*Øöñ\f\܏q ;Ä»\²6eðNÇ}ˆ/î\x18ˆê\x06ÆâGÔ\x10J%äã×ëåjGJ\x01\rtî
ðNÖj@Ÿk`\x03\`YP+lü\x17ª
Æ°\x0e£+'=\x02\x0f\r=K27»±Ù£\x06'*\x06S»Î0÷Ïj÷lgW0}W\÷ë	|Ò_˜\x15ì΃Mu…Áj\aC+B}Ó¦œ¸;rhú\x1e¼ÑÃÖ÷ÜÞVÓÆ>¸\x18Ðsú\x01znŸà†j.ªÇ:ê˜È \x16JåçBg*\x111Xá0t Áå>&¾\aAr:©îŒÕõH´ÚÈÀd^[jCâI<Wº\x05ïöĹÈ^[>á(==u¦sHqW½õƒŸ9ÚD\x11&ûÜ\x1fU?ÖT‹m>×TÝ­æ5Ÿ¿ÔkŸ@²\x16ÞB	ÛÁ\x06ŽóîCjéxh\x10ÁŽõ»ÑUâ8ªcè~(]_÷\x1ėž\x02’ªn1*ùg\aSˆ!A»›O\x1aöÏcN3)\x15·ˆ%ßd–JéøøLÖüÜ\x02'ªù\x05¹ž1ãøQ³°¯%Ør¹/³Ãƒ\x05Í^[\x14äuýÓOuL0ú4#vµÔÇÔÕñÛEñ¶X,\vÿ[´\x12‡?““a³ä
—õh\x1a|.VM\x1dæ2õ÷ßõº•¿cn\x1e!ã“\x03Š¥°ö<\x0f\x0f•`5;\x0eªÙ±›£•u}\x1a\x01\x03gbÌx\x1a#˜Ð¤{ñ)Þ-ûXžÐ•`\f)tµLl"ð"	-0\x1ceÌÐó‘\x10kJT]GD¹ù6Nø\x10™4xxÏ\rìÍ\x17ˆ\x1d|[¹÷œƒõ‹ÙªÛ\x7fZŽÇ\x13g\x0fÊ¿9€®Ø\v^[ûÌ!ê\vká˜\x06d \x0eB™\x02Oeª-yƒŒD\x15\x13bè\v\x0eÌ\fá)í)VZ™¼°\x0e Aqžf=	LSÛ
Ä]E\x05:Ô%^[ŒC\x7f÷Äô²î$«R‚¶†¹àðRxØxÕe¥Ø| ©ñúýÓ¦b¯\x16ÓzŸ‰Æn÷eüª\x1a\x04$­z&™J	Ð÷\x1eËå¦7v\fÎòLiÿU ¢§:V‘;\)Y¿L\x7fEYã‡:<„2¼S\x15\x01ÿ\x05—^["m³Bo•ý\x17 –«*Àö_¿Z¢cˆ‚!\vt’ð¯•Óå!Msü\x11Ä&¢K>.ÁÛ\î\x1c¡cZJ>zòá¥MY°¾ÌÖNd'$$ؙ\bùœ™æ}\r&EÆD‚@ÊÚÔvS©\r¶gýj:uFÿ¸\x19ê\a\x16°º7á=^[½‘\x1ehèHF›˜~—ï<_¬JHÛ|c\x04>1\x7fräú<|Ç­³½ç[²(B‚ÇJC·\x17Y›\x02։jt\x14o¼ì&\x11¾Íjè*\x18Y˜$gŸCùÏ-õ¶Å‰.=\x13ºÑeeÅÏÖÐ\x12WÔ®Ö2ã·¯Ó&\x1fþÙÈ\x14Ç\x1fëHŽq\x05³ù†/í¯žŠ°ŽÒ°Ávª»Îï¤ÂaÒùø-³Æ•+	\x1e9%}oˆ5k\x0f«9\x1c1C:ÂRË]Å^[U\vœ?·P\x0fÝt|¥‡ÿÈ\x0f¿®\x1a“ƒ]’€_“®ib\x05у¢j)ã\x16ÕoŠJ\x06#È2\v\x0f4Èi\x14¤ÏŸŠ÷Œ\x03g†Š\r	›³Ã|œÏWeðLD#.o=(¢£¢!$Î/ñ„i³º
+¯Ì^Ä5ÇäÙ¹›\x17
=í\x11ãf\x03I\x18τÝ\x19ùô2äú\rTëXï¬è{ÕŽFk.|õÞ»uюs³AG\x13\x17\x02Ñ7A0÷´|6V”_zBå^[;ýêi\x15„º^{Åõ—\v\x01)/Anl\bÄtXŠ\x04™ÏærÑðӅõ^\x02a\x1eõgª´Í©ã=“ª\f­÷•“\x14bT%ú”â–\x16Áeðݜ\x14u¸¾Û…&\fíý4\x04b«CÏÓ\x0eökÉö#ò´Ò\x05t¹c‚‰çϏÅsß\x17Öe2	ãdƒÉXmÆ'¯Òæ–PÊA-\x7f+jNk‰SOè±ê¨\x17VÕgò—0˜”ÈèóUÆY§è	§FýR\x13\x12õøÝT\aÇU…\x1f¬KÑðÝqÇF™Ð4lËØCÜr³¤6LÒ\x16˜º½ÂÝ\x1c\x0eóï—î«­¾ùx7-\x0fLdÛ\x06\x12^[ñ\rwcW¬&\x04\x11Oó7Åð¶Ð‡‘Юc<6TÞØ^Š³NøÒHx\x1c¯D'1\x04u´­³¹\a^[\vÑ\x161£\x01‘#lƒÝOéFc-•ëá±Þ¸;Òƨ/ÜÅ´1ö\x19Âü„Ñ7h\x03¢‰ôúV\x02ʏ”`D\x05\x13š|\x183I\x1a3Ôim¯†I„#Há#i\x17‹\x18†×_Ç¿åmŽ«Æ{}>å\x15^"?ætµÃ‘õXû\r6t\x12Æ\a?S^[^[%\r¤Œ—”9.ò©^[mMè©\x1fwµëÀÄykG³–5¿c¨ŸÊÚïCOôÁxÐ\x7fiÿ‘öj¶3ì\x13µ˜uñNÌ\x05•bÚñm\x04IŒ®kßýŠ\fÌ\x161L̐\x1d\x1c¦'b\x0f;zØK»I¨¶*Íu{\x03ßGCïGÈÿ\x11ò€\x04} !/H­\x1fds‡nš\x17„\x16\vé\x13¿;¤Þ!²…\x7f7Ñ\x1d"É­÷t\b¨îj<êFIu:\bgCì¹#ÿ\x03%In“èê7\x01×Ön\x15Ó¥\x12|•iW3@ê«pÿ\x1aSCÔÛüÑL\x14փ<\x1fÝtá£ïó¤Qç>ÿ¤¦Ž\x10åŸ'Ô	Äû:×#N#Æ m:™xÎ$™/2É7‰D³Öw›ïG†E&Õý\x1e›I<o\x19Š$t \x03b­û\aj1,\fKVιösňU2ÿ)Ý\x04dß.nääõ\x13ó‡\´–T!VdÍ^ʔX„š—‹;Zä‹›5\x04‚2cb`dsPÂÃ"ò\x1f\x06^ìjéM¿÷\x03¤ˆW;ôˆ\x15õ0B\x12€—·Ä5¦œOb.ý—ŠÄùd½$§d¾¾š”#›à³Ë.\Æuy!(¿$³9\x1fKY;SïŠÞ¡7FïÛâû{9KޑCr?!s˜Žötµ¨bô8‰à—îïv»°ÅH‰Ìîþ€6œj‡‹Ú	¹¾‡{N»\x1díì^[´–n
ÎFF›CÚ¹~2Nk´11§ö½\x01\r‡ó†ÌØP\x02\fñ¯‘‚d!ð\r€zAp'©Ðì´^[9ØeÓ½sõ6‚°13ÌٚøÎJâ%‰ðÄé\x19îç.Ղâg†ì}XÂk?›Y>»ö»û<ˆì	5„NòÊöí\r7Æl*|Œ\x17’ꛪëmÜÜzÔµÍnB\x05\x1a8«¼}d7\x16™¨^[j\r¬‚Ó—9ŒûUl$2=[EÕ_Hƒ`UË\x11ÉvWMõˆÕº\x0fЬ´%tL§T`“IVÕ­šï\x1a.˜w b\f\x06{ԍÝ\?Ç·àvM\aì@ó\x04&}$+H:ëôóÙ\˜\x03\x1cÞ7\x7fm=\x15eÉšˆ¶òìq\x18æ›:Tg¤ö›º\x1c¼–›ëwÐoçXɓº§!MòÔC1Vò¤î…«˜\x11jçMK8Ö\x102Îõ£5Ê[ih\x19uㅿº~䆢I\¡AIGŸ41d½}î<f¢Çš\x10r¥yX\x18ë\r¤PR»>ì¹âè™Û\x11û¤*Oï'i\x13졗6s”zÍw6ÜXcwò¬³W«mò¨³­Ó<òÑO\x1acè)<ÔwžÎ\x06ˆjh%-\x05ø\x10ìûú\fo\x13…\x03\x02¼\x17ñ¿
ï]áòÉ{Qî+\x06¾POy¹t‡°Âp{â|µ€ßáŠùÿ´·^[Îm­†ð4ëm^'Å\x02î¬fé´6ßðËhÙìôTn\x1eÂ;®YÆϑµÙ_ґNÅËv[NÌð–\b«\x0f/÷PTOFÅbAÎÎȳÙzEf×àž¤«ñgTPÌ\x03ÒzRܕ«¬×Ægµð¶¢o›ÁZEŒ\vÕbJÿÕ\x1aöºeCQ\x13ÆŤ ED~èj\x04þErÅ þ²‘$ü\x1aWÅMYÁs¯\x143C¨\x0eæ»\x04RY\x1dSÀ]âð\x02’“É\x02\ai„\r&\x16þ‡‚KD\a%£\bU¡Z–Û„8K`Ó\x0fÎî'pûg©ûgiP¶\fôOK®®¨Ê\x1dÂZ…ëGs9,º)Ö;\n@§ÁòÏ¡ëî˜Û6š<ž24ˆ¼;VßÕ«¿Q¢µTYäß\x1d+Ѻ;†§‡ÛžVˆ\x16üSŽ\¸À.gž\x1a(Ûb\x15A~ù\x15Ú#ìM‹	¼Ývl©ä†\A{éBK´œ›ÊªÁ,Cý28mÿ'J­$^[¦íc™CÍçy—œHëÚS•±&T‘wSÙԕ
»°ZñrÎ,©©\x11Ëô0LN\x16K\x14ú#\x02Q’éBµõ7Y(Vµ”ì¨\x18\x18³lÆhP.…(T‹‹\x0e(%yþf‡É\fò4Dmµ!¢ƒ<Ž4\x02áðˆ¥^gÉñð˯bþÂ,šÓ¹$ȏ0\x04ël·\rÇ7L*nƸw ñaèŒ\r@Tý–Zœ\x19ët™	\x18d+[Z3eì„\›þ%ÄT,„´Éï¿?ÉÌ¥IöÌ,õŒtŸ„¬æ.é}õ\x15ìŽýøÓ_//ÿwøï\x7fÿÛ_.¿ÿáoÔ:oÃ@k·‰vÒPNÙªÌÐJ•«*]›ížé\abçìeY6á@uqíN1aw-ë"'\x03KT´Ç
&Q—ÅXÁâc\x16-u·\x12ãT¾¾£+!)ÉóÙÒ½—]»\x12hvÉ®==‡¯Çà‹Ë´ïk¹Ê\x17+\x16Ó5Wi×Ô\x14YÞòDº˜FښfÒa3œ]ËpvUÈÐÜò_\x06æé¹U§íL^zÅ!*uIGV?¢‹yµ	f.]2Ù´.хåwU§ƒ\x18p'\x13\x0f\x0fQ«\x1eXÏ9TißĤ€ÊÌ\a˜µÿDúÂ\x13H\x7fÖ“Sb»8¨¬ôNȟàŸSbæIü²s¸ë‘‹\x12Åò«Ì÷¬õ2ÞU]¢[Mk#Ö(\x1e\x02ÐCÍ\x1dÊ\x15¦»(¹m½»ëÇas”á°€1:ÚÌË2¼’+CN¤Ó\ažqg\x0e5Úvo×ȑ$Î[ðÑô VjX­\x144<\x11i¡ÔƄÔWÅâ­¥°ö«ªúýdU¥\x19s†Ô©Wf´ÄH\x1d×zâe¶ÅF¯¢{0Ì[©^¸Î1õ\x11­t(K/e™î™™/OR˜)9\x16VhÈãËõ£=bt¯ð‰â\f1îഉIZöÕa“l0‘
^\fLNø\x0e\x06jrxCÍӒj¥lV\x17(‰\x057À\a‡ç4ƒ&\x19/á\x1c]p‚ˆ\aF\x02A\x16 \x18E\x01h†\x1c1ÉÉ:\Ú\x0e\x0f\an!ÖQR•‹‚GGbº‡\x1eåiðpæ‰VybæÁý©\x12QwŠyÆÐVôÿª•ª:•ºŽ¬¨TÒ\x17äÕIH#ùt\fñú\x10šÿ\x17ôr\v\x1a\f\r%Ò´Ÿ^[åQÊNOµ\x1fœ*iá8náRHÇ©"„—¦i¶ã\üÑ~ó\x1f\x7fò{—áØ5åЂN,÷\x03Ô>å÷\x1eå“bL)gtS„<Ápm×yèë¼ôM<õqo=ÎU!y’[§§zvwüø55-§~ÈÉ_\x03EÛP–\x0f¾¦žå\rò»ÿk`x\x1c\x1eþý€$Z\x1ch¡\r\x02ܵ°‘v5»Y/mQd‰ä{¸öÛÅ"¿ÿ©¸†"r¬â1+”’\x18Ol\x0e—^UIcÖ6üٞZÂÌ÷T­p]>dµÆëÕbÌf‹ÐÆ+Öâ¥ãÆ[»‰7‹Îª\a’Ú[ۓ“\x04$µ¿¶''	ˆ³ê	ëïí)Jƒ’¬Áw@Ðîº,ßIŸ¥AI\x1ffÅÝ|kšR`¤)h¶\x1f\x19ƒU»Áé%pC°i4³Êzà\rIÞ\fj"ų›­û<\x05F25½“]Г(3~žž†‡€E˜@©\x1a\x06EuÙ°}؀5\rµšÁš#—5G{e3è#¬†mɚ\r¤†\rîkx'Xð¨ÃXDŽ\x14‡:ŠA2Å,\fòe\x14F\f^Àká×{b®£(cÌÝFîB\x048
8B
èg#¥ÖH\x11¼Ú•"ÏÇ<ª™RӊævJãVìÂP©iEsK¥q+vaªÔ´¢¹­Ò¸\x15Û^[+5mhl­4nÂ\x0e̕š64¶W\x1a·Ác°Ø\x11í|\x06>=­w\x10´ê¦è\x16LÑÚ 
\x1ffÜÈ šìÉ"š$›DضðÛEøx¢0ŽpÒ£XHõ\x1d™\x04è³Ù\x147›Œ®ŽÛN†\b$\x1aP&øÏVT­\x15…\x19¶;SÊ8oü¨öTJ{š^[U›µg\x17–UJ{š›W›µg\x176VJ{š^[Z›µg{k+¥5M®Í\x1a³\x03»+¥5¯ÍZ³½\x05f{4ÒÌ0^[‰àr(K\x02gUqÞ]\x17˜\a\a@ƒd\x13¯}™õàôçH\rðC‚ý=cÂ\x16†¶ýq¦õÍ\x11"§™\x1f—i¹mŠF)‡¶„‹
ŸeÏàÀÃRº"…÷\b¤´É3\x14Ä=c/äÑñöÍ7΀ó¬µ\x7f¨Šïäð.&lö1և"팕s\x16|Ž‰\vÅNOõx"X„9¨\fÊ\x1c)7cKmÁ¾-FÙ\x14Ύe%ì¥Ãä<\x15Q³*lˆ{D èñ5åIV\x1a±›ÒÍ\x01¡F´Ê\x13™¦<¸ðÆ@»õ„É3x\x02¹kâ	‹hU©0,\x15X\x1eOÙzbea!RòCs½ò"ßêFu(‡ô0\x04u€7	Q3ØuúN\v\x14;:’\x1fŒº·Þ\x10P#Ïà`Ig¥Å*ãþ4ª–Þ¶uÐU"ñ‡^[Pï¡ýP\x11øx¤wvCzG\x11è`u¬^[°F|¤<—ª˜[#ےôœþ9~+ƒ¡“˜ñ|7Ìx~Nšá=Ú\rÞ£˜ü\x1c%	P>i.Bæ\fšoÒ
k\bçºßP˜}„nV¡\x1dà¸a•sµKa@Üw‹Ø:[­Š¤»6”O[$Íz\x16¤É­#áҍM/|yã›dŒœ]L5\x06@ÑIªýb⑽e\x01´–è¡	\a÷1dÚóT`æ1æ\x1d^Ô;¿¨‰\a\vrúìƒEÁ\x11„h‡5°YDw1£eÁ›Î­\x16ÅQ]\x04:*+øÅÁ¦¡²9\x01¦ÔDÈ°\v6 \x06\x1d#ԇ\b<gÕ$ô¿3\x13Î8´FŽÈeVø\x1f*HG`6b'h\x0e^[¶ãp\x17\bêÛÑ\x18M§a;:»@PߎÆhž7lÇó] ¨o\aBÓJ]~÷ÍE\x04K«ïàâ{1{\a”MôÌâYw÷yÌðì\x1d_uÓâÞå·]‰ÁçÚ\x7fä,ÂÅ"\x04€.\x04̑½\x1c·\x01º\x0etZûî˜þ+ Ü\x1dÓ\x7fý«òÀ¢œ\x04Vå\x14&[~Ó¿|~ €Y‚àUò\x12=m=Ý\x0f­}\x19\x1d°ò…/p\x1e\rȀß@‡X\a?¨P¾þ‹ˆO\b»„à\b\x06ö\b9Ž åjl\x1fc\x10ÇtØé\ry¶Ç\x14]Y~o/+Ä¿zÊH_]ÿË0¹–·­aT£ÕÜõªœ,ÝöÆ®µƒ*åê^^gWÿá€)È\x13\x17mß(‰)^[\x17Wë^[³q&@ህbƑ.\x19\x7f\x01\x19\x19“-ÁB*’×95e`|̪L¤ÒNÀV\fs5ÿÀ·‚fp€Šê’ˆSà%®¯u\x11\x06Սe(—?T®%4«hɁe	ñ! Næ„\x0få`£’7ð …L\x13œNÆèð:^[¼-n\fŽ9]\όŠ\x05{ˆân€\x0eQÕñyRƒ’88•y”u†×me-µÅU\x0ea
¨Ý:q‰ð 'Qüål)qÃ×Mñ²AØ\x0fÉ«7f¸9§¬œÛj¦9¿Á†\x7fB÷Û\bAçÌg¹ó¼\œÑ©¢Kÿ£+˜|2\x1a²ó"C¸\x05@:rá\x0fE:cñHv%r•WãwåxuË]zøx
\x1cm/©Å¦Š\x1c‹3\rÜÀç\x11×\x15\x1c±ƒsç%œXV%—\x05åþ˜&õº\x1c9¯\x02§¨\x19ô\vVµ­pÁ/dê
®¼)†@-¯Óe5x\x17Ø\x03À‰Àa÷ãÌ\x17”Æá[¶Ó“©PŸû.Ñ߇à†c-\x1fÍÖ+æªü…y*Å	Aq8ÖáEõ‰=^ºs/\x1cž|*;<¼—3˜‚÷ë3-KlìÔÜÈá’.oøq/M0¢<ˆsŠ2Ú¦R\x1føwZUZ­*›·ê¿Ø¾¯U£Ùl1\x16£“—: ßZmãér¥;Í_Ï\x16z½ûíð͛¯ô\x7fA9\x7fÐ
­Ä\x1a\x01u)›¾ålâ9³Lî@¹.-F[(\v)6QP\x14Dց2mót©\r„2Y–3YXÉýçPH­Äµ\x13‚0Ré*°Œ\x0eP!»@®Ó\x0f\x0fE3¥‹\b\x128³¨ùаŸòÉdÈwßüÅõËk,hß\x1eWÔæZ
Z4jw‰4.0†dâäkˆC.ÏO\x06T–\x1148m[ÚB*„ZTz\r•^\x13„\x0e*½vÙý-\x15ü׆GÞ¨Eõ]¯Ýz¢È1ð`âþõ\x19r±`Ry}«‡»F#\r·™,#3w5È ó@\x1d\x17ÎHã3ÂdÆÿ®çpóêM²‡îä÷8„;T\x1dÝ\x11sÎ	¥Œ²q2“n, 7çÙt¤±`iE\x05”=„V\fbÂÁIˆ‰‡\x14\x04NÈï¿ÓÂ\x17ç\f-’†\x13Ó\x1fö‡\x16)fËrYb\x13x3…\r5R\x146”k¦°\x19-ö솛^[Ñã¼®3Ý)aÙ­bï(]l(f£\x13£’\x10ìlC«oÙ¹à\x0ehÒµ´ü°ÿ]}×þ4{\x17ïØf5„Gߒ\x06¡M6\x11\x06^u#Yàä \t\x15…GNxñOV@¨\x12[O«F2«$‰É_XÑF*€Cß´ßUíÏjÀÐñÌÆýèŒòæ:Þ²Õÿèû\x05é¿úÊqFx–ȼ;¾•>wþóÏÊtd¯Ï\x0f…½?,þ±Î'†4|Ë,Gœòç\x03òç.øZáÖ\x14¯¤|^[œ3Êҫĝ\x0e(\x03ÚÚE\x14›<^‹\x0e/K«Ã\x1d„¯»ª Ýãêγ\x0e\x7f+\x163éÌDž°˜õrzj™-ðS„Z\x05M\x17UæÌ4\üs‹a¶h<|B‘ üFê\x02\D¸5«t\x18\x14&îR\x1d/,m,ër\x1cTu‰¬¬™±aÞ´§jšb3Ô7]«b©S¶=ck„œ³\x12 Ÿ³#ÎY]ÈæìÈáìÈ⬬ۈ³^¾²›.LžS^;íE\x1a\x18ßßü\x05ùò«—¾ÁDõ­\f'øʎ\x18è\a¶19åbÄ\fT¼¤ìõº÷Q„\aÈÀù;_z>BÝO¬¿\x11qÀ4Þ\x16‹)°¨b¤ÐZ\fh—#…šj(f\x02†Ò	LžÜ
qÉû@Â\x1fóv2QÙ^PÄöùêô\x14¼5¾éCššL\x11žž\x1aâIË/=U–·ù¼¨ÛV‹¶Á{óP¤\x11L‚\x12›Q7\x1aZ‘\x0eÇÝííloW\a;\x1a&#}sÔKûæ(ýñ^‘D´\x7fP8”éšb8»¾¦<ðÕBÙì@%7œØ­`ð\x02\v7bÔÏÉ8³ÏUblà)6À)¦7£†$1cW
…²}ïÅ\x11öœ\x1d¥’½r\x01o\x01w\x01\výEÿe¡Þtm\x7fw<\x19³w\x17 5² ä
ÅywÌ¿è×~%êânNÛX®Z˜çú®\x14ñ\x02Ñd<ä_¨…€˜×\x15gH$ç–\x0eɂعpAŒ‡šJDÞl©žG=\x1aIEÝ\x1a5x$+Ò\aZÃ=U0E#EfúR–ë+y\x05\x12\x13·¡ð˜0Û\x05ÿPö®9\x1c˜—Åbö£w\b\x1crzF	Çl{Tò\x05Û^[9zù›·ã·pyH¦\x06vÕÞÌë‹I\rÀ®L)Á\va\x04Q<Ø\x19ؙP¯b=˜µø#XÁZò¬\a{Õ¥—ZžéO9 Ù\x03#Þ#\x05ìÚU‰\x06mñºK3¾]Í^a\x13\x13—H\x11ï¢ÉÙÌ.g¬ÐÄ^[n¡¥\b\x06å[7X«C-Ž-"/×Õ<…­#Ÿ\x10\x13,ÅH¢„lò®i†Jì7ÕcCÈÄ}KÉȢÑÍñs/\x01¡ÖB;\x1ft\x7f\x19¬\x7fïöI¤×tW?~—á[«ößgM\x05dW}†•“¥içê\x1eƒ¹Œôæ:Š*
R©n_†~»À/\b	eÀd?\x7fã\x7f~þûŸå—\x1féT\r\x14¯—euC\f+©V½D\x1aYG«•=ÃQ¡ T\x18;ß:§š¿õœiö\x03â»ÿ
\x1cŒPvø\x19A$4õ©HV`é@|ҁ҇‡#ÙñìÀô0ŸL†œ\x19e\bk>múaÉÇûæm"Û¨Ñl½"ggäYö\fþ¼>æç\r!¥+RÔqBHlSà,rƒþKaM8?¨p11™æ€3Úñ\˜™ìPh_\x0eŒ¤¿¹I”©4±g'þH\x13û\x02 h\x04»ËŠ™ÙÏ0uÒؕ\x11µò™ÔñŒ\x1aµÅ…ïÞ6cŸŒÝ*£÷qáèúOœù


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

* No Subject
@ 1998-12-31  0:15 Alex Zepeda
  0 siblings, 0 replies; 97+ messages in thread
From: Alex Zepeda @ 1998-12-31  0:15 UTC (permalink / raw)
  To: egcs-bugs

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

zippy:~#uname -a
FreeBSD zippy.dyn.ml.org 3.0-CURRENT FreeBSD 3.0-CURRENT #0: Wed Dec 30 14:00:18
 PST 1998     alex@zippy.dyn.ml.org:/usr/src/sys/compile/ZIPPY-SOFT-ELF i386

zippy:~#eg++ -v
Reading specs from /opt/egcs/lib/gcc-lib/i586-unknown-freebsdelf/egcs-2.92.33/sp
ecs
gcc version egcs-2.92.33 19981229 (gcc2 ss-980609 experimental)

zippy:~/mico#gmake
for i in admin include; do gmake -C $i adm || exit 1; done
gmake[1]: Entering directory `/usr/home/root/mico/admin'
eg++  -I../include -I/usr/home/root/mico/./include/ministl  -O -fno-exceptions
 -I/usr/local/include  -c mkdepend.cc -o mkdepend.o
mkdepend.cc: In function `void print(class basic_string<char>, const class sset
&)':
mkdepend.cc:39: Internal compiler error.
mkdepend.cc:39: Please submit a full bug report to `egcs-bugs@cygnus.com'.
mkdepend.cc:39: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

gmake[1]: *** [mkdepend.o] Error 1
gmake[1]: Leaving directory `/usr/home/root/mico/admin'
gmake: *** [system] Error 1

Attached is the preprocessed output.  This was with mico 2.2.3. Ironically
enough I upgraded from 2.92.21 b/c it gave an internal error (#192433 or
somesuch) with Qt 1.42 (at least this was fixed, and non sjlj exceptions
work, thanks!).

Thoughts, comments?

- alex

[-- Attachment #2: mkdepend.ii.bz2 --]
[-- Type: application/x-bzip2, Size: 20276 bytes --]

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

* No Subject
@ 1998-12-17 16:47 Fredrik Ax
  0 siblings, 0 replies; 97+ messages in thread
From: Fredrik Ax @ 1998-12-17 16:47 UTC (permalink / raw)
  To: egcs-bugs

//
// Filename: egcsInternalCompilerError.cc
// 
// When compiling this file with the commandline 
// "g++ -c egcsInternalCompilerError.cc" you get the following error:
// ---------------------------------------------------------------------
// egcsInternalCompilerError.cc: In method `A::A()':
// egcsInternalCompilerError.cc:24: Internal compiler error.
// egcsInternalCompilerError.cc:24: Please submit a full bug report to 
// `egcs-bugs@cygnus.com'.
// ---------------------------------------------------------------------
//
// egcs version used (g++ -v)
// ---------------------------------------------------------------------
// 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)
// ---------------------------------------------------------------------
//
// Bug report submited by Fredrik Ax <fax@df.lth.se>
//
class A
{
 public:
  A::A() : funcp(&thefunc) { this->funcp(); }
  
 private:
  void thefunc();

  typedef void (A::*afunc)();
  afunc funcp;
};




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

* No Subject
@ 1998-12-16 13:48 Martin Wilhelm Leidig
  0 siblings, 0 replies; 97+ messages in thread
From: Martin Wilhelm Leidig @ 1998-12-16 13:48 UTC (permalink / raw)
  To: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2158 bytes --]

Hello,

I tried to compile jade 1.2.1 on my PowerMac 7300/200 running MkLinux (DR3,
Generic Kernel #5 (2.0.35)) using egcs 1.0.2e.  I put jade-1.2.1.tar.gz
into /usr/src/redhat/SOURCES/SP/  and unpacked it.  Got a new folder
jade-1.2.1/, cd'ed in and did a 'make' which failed with "error 4413".  I
then did a 'make clean' and another 'make all &> make-all.log' which gave
me the following:

--
make[1]: Entering directory `/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1'
make[2]: Entering directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/lib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/lib'
make[2]: Entering directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/grove'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/grove'
make[2]: Entering directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/spgrove'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/spgrove'
make[2]: Entering directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/style'
/opt/egcs/bin/c++ -fno-implicit-templates -O2 -ansi   -I. -I./../include
-I./../grove -I./../spgrove -DSP_HAVE_BOOL -DSP_ANSI_CLASS_INST
-DSP_MULTI_BYTE   -c primitive.cxx
primitive.cxx: In method `void Interpreter::installPrimitives()':
primitive.cxx:4413: Internal compiler error.
primitive.cxx:4413: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[2]: *** [primitive.o] Error 1
make[2]: Leaving directory
`/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1/style'
make[1]: *** [style] Error 2
make[1]: Leaving directory `/mnt/local1/usr/src/redhat/SOURCES/SP/jade-1.2.1'
make: *** [all] Error 2
--

Could you please help me?  Should I install some newer egcs version (1.1
Mk-patched or anything)?  Thanks for all comments.


mit freundlichem Gruß aus Kulmbach
-MWL-

--
Martin Wilhelm Leidig, Obere Stadt 3, D-95326 Kulmbach (Germany)
Phon [+49|0]9221 8 16 28 -- Fax [+49|0]9221 879 110
MausNetz: Martin Leidig @ WUN (no mail larger than 16K, please!)




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

* No Subject
  1998-12-08 13:29 D Maley
  1998-12-09  3:04 ` Martin von Loewis
@ 1998-12-09  3:08 ` Horst von Brand
  1 sibling, 0 replies; 97+ messages in thread
From: Horst von Brand @ 1998-12-09  3:08 UTC (permalink / raw)
  To: D Maley; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1596 bytes --]

D Maley <d.maley@stmarys-belfast.ac.uk> said:
> #include <vector.h>
> #include <numeric>
> 
> template <class T, class Alloc = alloc>
> class vector1 : public std::vector<T, Alloc> {
> public:
>   bool m();
> };
> 
> template <class T> bool f(bool valid, T t)
> {
>   return false;
> }
> 
> template <class T, class Alloc> bool vector1<T, Alloc>::m()
> {
>   return accumulate(begin(), end(), true, f<T>);
> }
> 
> int main()
> {
>   vector1<vector1<int>> yy;
>   yy.m();
> }

> [Gets ICE 980715 at line 17 with egcs-1.1b]

Same with egcs-1.1.1; the 19981206 snapshot gives:

vonbrand@sleipnir:/tmp$ c++ -c -O2 -Wall -W xxx.cc
xxx.cc: In function `int main()':
xxx.cc:22: warning: `>>' should be `> >' in template class name
xxx.cc: In function `bool f<vector1<int,__default_alloc_template<true,0>
>>(bool, class vector1<int,__default_alloc_template<true,0> >)':
xxx.cc:17:   instantiated from
`vector1<vector1<int,__default_alloc_template<true,0>
>,__default_alloc_template<true,0> >::m()'
xxx.cc:23:   instantiated from here
xxx.cc:11: warning: unused parameter `bool valid'
xxx.cc:11: warning: unused parameter `class
vector1<int,__default_alloc_template<true,0> > t'

Thanks for the report!

PS: It would probably be better if you sent in a preprocessed piece of
    code, so vagaries of the #include:d files won't alter the results. But
    I guess for this kind of stuff (using libstdc++ only, which is part of
    egcs) is fine.
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616


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

* No Subject
  1998-12-08 13:29 D Maley
@ 1998-12-09  3:04 ` Martin von Loewis
  1998-12-09  3:08 ` Horst von Brand
  1 sibling, 0 replies; 97+ messages in thread
From: Martin von Loewis @ 1998-12-09  3:04 UTC (permalink / raw)
  To: d.maley; +Cc: egcs-bugs

> Just another case where I think maybe a syntax error (if that's what it is)
> could be caught, rather than falling into an internal error. (If someone
> responds to this, please let me know if these things are worth submitting,
> as it does take a bit of effort to create a 'toy' version for submission).

Thanks for your bug report. It is definitely helpful to report
internal compiler errors, please continue to do so.

Again, I tried this on egcs-2.92.21, and it reports

a.cc: In function `int main()':
a.cc:22: warning: `>>' should be `> >' in template class name

and then goes on compiling it.

Regards,
Martin


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

* No Subject
  1998-12-08 13:15 D Maley
  1998-12-09  0:32 ` Martin von Loewis
@ 1998-12-09  1:18 ` Horst von Brand
  1 sibling, 0 replies; 97+ messages in thread
From: Horst von Brand @ 1998-12-09  1:18 UTC (permalink / raw)
  To: D Maley; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 585 bytes --]

D Maley <d.maley@stmarys-belfast.ac.uk> said:
> #include <vector.h>
> 
> namespace xyz {
> 
> template <class T, class Alloc = alloc>
> class vector : public std::vector<T, Alloc> {
>   class empty {};
> public:
> 
> };
> } // namespace xyz
> 
> void main()
> {
> using namespace xyz;
> using xyz::vector;
>   vector<float> vv;
> }

> [Gets ICE 42]

Same with 1.1.1, 19981206 snapshot has this fixed.

Thanks for the report!
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616


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

* No Subject
  1998-12-08 13:15 D Maley
@ 1998-12-09  0:32 ` Martin von Loewis
  1998-12-09  1:18 ` Horst von Brand
  1 sibling, 0 replies; 97+ messages in thread
From: Martin von Loewis @ 1998-12-09  0:32 UTC (permalink / raw)
  To: d.maley; +Cc: egcs-bugs

> Back again, easy one this time (to describe). If I create a class in a
> namespace which inherits from a class of the same name from another
> namespace, and my class has an inner class, I get error #42.

Thanks for your bug report. I tested it with egcs-2.92.21, and it
could compile your code; so this appears to be fixed. I didn't test
egcs 1.1.1, though.

Regards,
Martin


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

* No Subject
@ 1998-12-08 13:29 D Maley
  1998-12-09  3:04 ` Martin von Loewis
  1998-12-09  3:08 ` Horst von Brand
  0 siblings, 2 replies; 97+ messages in thread
From: D Maley @ 1998-12-08 13:29 UTC (permalink / raw)
  To: egcs-bugs

Just another case where I think maybe a syntax error (if that's what it is)
could be caught, rather than falling into an internal error. (If someone
responds to this, please let me know if these things are worth submitting,
as it does take a bit of effort to create a 'toy' version for submission).

As usual I've tried to make the example as simple as possible, which has
destroyed the semantics: I presume this doesn't matter if its a syntax issue.

I'm using egcs 1.1b on a P200 under Solaris 2.6.

The code below passes a template binary function to accumulate(iterator,
iterator, T, BinaryFunction). I've used a

template <class T>
struct f : public binary_function<S, T, U> {
    bool operator() /* ... */
};

structure as suggested in documentation and that works. I also see examples
using a function instead of a struct. I wondered if a function was
acceptable, why is a template function not?

#include <vector.h>
#include <numeric>

template <class T, class Alloc = alloc>
class vector1 : public std::vector<T, Alloc> {
public:
  bool m();
};

template <class T> bool f(bool valid, T t)
{
  return false;
}

template <class T, class Alloc> bool vector1<T, Alloc>::m()
{
  return accumulate(begin(), end(), true, f<T>);
}

int main()
{
  vector1<vector1<int>> yy;
  yy.m();
}

gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include
-I/usr/dt/share/include -I.  -c -o test.o test.cpp 2>>err
*** Error code 1
make: Fatal error: Command failed for target `test.o'
test.cpp: In method `bool
vector1<vector1<int,__default_alloc_template<false,0>
>,__default_alloc_template<false,0>
>::m<vector1<int,__default_alloc_template<false,0> >, alloc>()':
test.cpp:27:   instantiated from here
test.cpp:17: Internal compiler error 980715.
test.cpp:17: Please submit a full bug report to `egcs-bugs@cygnus.com'.



        --- |================================================|
      ----  |-=|         Dave Maley, M.A., M.Phil.        |=-| ,---I
      ---   |================================================| |== U-----
        --- | Computer Manager, St. Mary's College, Belfast  | |== U (: |
      ---   |________________________________________________| |   U----'-----
     -----  |________________________________/   ____====______|   U'  ()___(|
        ---  #__ //,-,  ,-,  ,-,\\         \|   ///,-,  ,-, \\ -------/,-,\_[
                ''( 0 )( 0 )( 0 )'          o  -''( 0 )( 0 ) \\#####====( 0 )
     --------------'-'--'-'--'-'-------------------'-'--'-'--------------'-'----




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

* No Subject
@ 1998-12-08 13:15 D Maley
  1998-12-09  0:32 ` Martin von Loewis
  1998-12-09  1:18 ` Horst von Brand
  0 siblings, 2 replies; 97+ messages in thread
From: D Maley @ 1998-12-08 13:15 UTC (permalink / raw)
  To: egcs-bugs

Back again, easy one this time (to describe). If I create a class in a
namespace which inherits from a class of the same name from another
namespace, and my class has an inner class, I get error #42. If I remove the
inner class, or don't use the same name for the superclass and subclass,
there isn't a problem.

P200, Solaris 2.6, egcs 1.1b.

#include <vector.h>

namespace xyz {

template <class T, class Alloc = alloc>
class vector : public std::vector<T, Alloc> {
  class empty {};
public:

};
} // namespace xyz

void main()
{
using namespace xyz;
using xyz::vector;
  vector<float> vv;
}


gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include
-I/usr/dt/share/include -I.  -c -o test.o test.cpp 2>>err
*** Error code 1
make: Fatal error: Command failed for target `test.o'
test.cpp: In instantiation of
`::xyz::::xyz::vector<float,__default_alloc_template<false,0> >':
test.cpp:18:   instantiated from here
test.cpp:18: Internal compiler error 42.
test.cpp:18: Please submit a full bug report to `egcs-bugs@cygnus.com'.
airforce1% 


        --- |================================================|
      ----  |-=|         Dave Maley, M.A., M.Phil.        |=-| ,---I
      ---   |================================================| |== U-----
        --- | Computer Manager, St. Mary's College, Belfast  | |== U (: |
      ---   |________________________________________________| |   U----'-----
     -----  |________________________________/   ____====______|   U'  ()___(|
        ---  #__ //,-,  ,-,  ,-,\\         \|   ///,-,  ,-, \\ -------/,-,\_[
                ''( 0 )( 0 )( 0 )'          o  -''( 0 )( 0 ) \\#####====( 0 )
     --------------'-'--'-'--'-'-------------------'-'--'-'--------------'-'----




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

* No Subject
@ 1998-11-30  2:11 Trevor Spiteri
  0 siblings, 0 replies; 97+ messages in thread
From: Trevor Spiteri @ 1998-11-30  2:11 UTC (permalink / raw)
  To: egcs-bugs

egcs-bugs
My system specifications are:

/proc/cpuinfo:

processor : 0
cpu  : 486
model  : unknown
vendor_id : unknown
stepping : unknown
fdiv_bug : no
hlt_bug  : no
f00f_bug : no
fpu  : yes
fpu_exception : yes
cpuid  : no
wp  : yes
flags  :
bogomips : 16.54

/proc/meminfo:

        total:    used:    free:  shared: buffers:  cached:
Mem:   6758400  5566464  1191936  2199552   360448  3629056
Swap: 133017600  1449984 131567616
MemTotal:      6600 kB
MemFree:       1164 kB
MemShared:     2148 kB
Buffers:        352 kB
Cached:        3544 kB
SwapTotal:   129900 kB
SwapFree:    128484 kB

/proc/version:

Linux version 2.0.34 (root@porky.redhat.com) (gcc version 2.7.2.3) #1
Fri May 8 16:05:57 EDT 1998

When I compile the following file:

> class b;
>
> class a {
> public:
>    a();
>    a(b);
>    operator b();
> };
>
> class b {
> public:
>    b(a v);
>    operator a()  { return a(); }
> };

with the command

> egcs -v a.cc

the following message is given:

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)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cpp -lang-c++ -v -undef
-D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Di386
-D__ELF__ -Dunix -Dlinux -D__i386__ -D__ELF__ -D__unix__ -D__linux__
-D__i386 -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Di386
-Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -Asystem(unix)
-Acpu(i386) -Amachine(i386) a.cc /tmp/cca02117.ii
GNU CPP version egcs-2.90.27 980315 (egcs-1.0.2 release) (i386
Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/i386-redhat-linux/include
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cc1plus
/tmp/cca02117.ii -quiet -dumpbase a.cc -version -o /tmp/cca02117.s
GNU C++ version egcs-2.90.27 980315 (egcs-1.0.2 release)
(i386-redhat-linux) compiled by GNU C version egcs-2.90.27 980315
(egcs-1.0.2 release).
a.cc: In method `b::operator a()':
a.cc:13: Internal compiler error.
a.cc:13: Please submit a full bug report to `egcs-bugs@cygnus.com'.



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

* No Subject
@ 1998-11-19  4:28 Patrick Barron
  0 siblings, 0 replies; 97+ messages in thread
From: Patrick Barron @ 1998-11-19  4:28 UTC (permalink / raw)
  To: egcs-bugs

           Hello,
I have a big problem and I don't have any idears to resolve it.
I have a programm written in C++, and using STL,  and I compile it with
egcs 1.1 b. It built all file.o , but when it try to link. To show you
my problem this is an simple example which generate the same problem :

in file f.h :
template <class T>
T& foo( T* )
{
static T my_data;
return my_data;
};

in file file1-a.cpp :
#include "f.h"

int& i1 = foo( (int*) 0);

in file file2-a.cpp :
#include "f.h"

int& i1 = foo( (int*) 0);

int the file main
#include "f.h"

int main()
{
return 1;
}

So, when the compiler try to link then I have this error :
g++ -c -I../stl -fguiding-decls principal.cpp
g++ -c -I../stl -fguiding-decls file1-a.cpp
g++ -c -I../stl -fguiding-decls file2-a.cpp
g++ -d -Wall -o essai principal.o file1-a.o file2-a.o
file2-a.o(.bss+0x4): multiple definition of `i1'
file1-a.o(.bss+0x4): first defined here
file2-a.o: In function `global constructors keyed to i1':
file2-a.o(.text+0x0): multiple definition of `global constructors keyed
to i1'
file1-a.o(.text+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [essai] Error 1

I read that the problem comes frome the static variable. But in the
programm where I try to insert the STL is very big and need some static
varible. So, how can I resolve this problem ?

Sorry for my bad english, but I hope you have understood my problem and
that you have time to answer me .

                   Thank You.
                                    PATRICK BARRON


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

* No Subject
@ 1998-11-13 15:43 hanwen
  0 siblings, 0 replies; 97+ messages in thread
From: hanwen @ 1998-11-13 15:43 UTC (permalink / raw)
  To: egcs

#include <typeinfo>

signature S
{
  int foo ();
  int bar (int);
};

const char *classname (S* e)
{
  return  typeid (e).name ();
}

/*
cd ~/usr/src/lilypond/
g++ -v -fhandle-signatures bug.cc
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)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Di386 -D__ELF__ -Dunix -Dlinux -D__i386__ -D__ELF__ -D__unix__ -D__linux__ -D__i386 -D__unix -D__linux -Asystem(posix) -D
GNU CPP version egcs-2.90.27 980315 (egcs-1.0.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/local/include
 /usr/i386-redhat-linux/include
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cc1plus /tmp/cca02656.ii -quiet -dumpbase bug.cc -version -fhandle-signatures -o /tmp/cca02656.s
GNU C++ version egcs-2.90.27 980315 (egcs-1.0.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.90.27 980315 (egcs-1.0.2 release).
bug.cc: In function `const class type_info & __tf6__sp_S()':
bug.cc:15: Internal compiler error 252.
bug.cc:15: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Compilation exited abnormally with code 1 at Fri Nov 13 23:04:18

*/


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

* No Subject
@ 1998-11-13  5:37 Antoine BUAT
  0 siblings, 0 replies; 97+ messages in thread
From: Antoine BUAT @ 1998-11-13  5:37 UTC (permalink / raw)
  To: 'egcs-bugs@cygnus.com'; +Cc: 'jason@cygnus.com'

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

Bug in egcs-19981109 (full snapshot) (compiled for linux 2.0.35 with gcc
2.7.2.3 / glibc)

Problem when compiling C++ files with position independent code option
(-fPIC)

> /usr/local/bin/g++ -fPIC -o main main.cpp
main.cpp: In function `void func()':
main.cpp:22: Internal compiler error.
main.cpp:22: Please submit a full bug report to `egcs-bugs@cygnus.com'.

 <<main.cpp>> 

it works fine without the -fPIC options


 	best regards,

			Antoine BUAT

[-- Attachment #2: main.cpp --]
[-- Type: text/x-c++, Size: 256 bytes --]

class A
{
public:
  A( int x )
    {
    }
};

struct cleantype
{
  const char	*m_str;     
  const A	*m_class;
};

void func()
{
  const A clA (1);

  static const cleantype table[] = { 
    {"a", &clA},
     { __null }
  };
}

int main()
{
  return 0;
}

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

* No Subject
@ 1998-11-12 22:59 laurent
  0 siblings, 0 replies; 97+ messages in thread
From: laurent @ 1998-11-12 22:59 UTC (permalink / raw)
  To: egcs-bugs

Internal error when by mistake some parameters are in destructor, example :

class CTrace
{
public:
	~CTrace(void);
};

CTrace :: ~CTrace(int, int)
{
}


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

* No Subject
@ 1998-11-09 12:02 Donna M Lanasa
  0 siblings, 0 replies; 97+ messages in thread
From: Donna M Lanasa @ 1998-11-09 12:02 UTC (permalink / raw)
  To: egcs-bugs

Hw6.cpp:125: Internal compiler error 9.
Hw6.cpp:125: Please submit a full bug report to `egcs-bugs@cygnus.com'.




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

* No Subject
@ 1998-11-08 18:11 Alexandrescu, Andrei
  0 siblings, 0 replies; 97+ messages in thread
From: Alexandrescu, Andrei @ 1998-11-08 18:11 UTC (permalink / raw)
  To: egcs; +Cc: 'egcs-bugs@cygnus.com'

OS: Windows NT 4.0
Release: egcs 1.1, Release date: Sep 5, 1998.
Command-line options: none
Problem: The following code doesn't compile:

template <typename T>
class X
{
public:
	void foo(T)
	{
	}
};
int main()
{
	X<void> x;
	x.foo();	// error here
}

Error is:

no matching function for call to `X<void>::foo ()'
candidates are: X<void>::foo<void>(void)

I don't know whether this is a bug or the behavior should be that way.
Please let me know if I can help.

Andrei


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

* No Subject
  1998-11-06  9:01 Dragan Milenkovic
@ 1998-11-08  2:30 ` Horst von Brand
  0 siblings, 0 replies; 97+ messages in thread
From: Horst von Brand @ 1998-11-08  2:30 UTC (permalink / raw)
  To: Dragan Milenkovic; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 994 bytes --]

Dragan Milenkovic <mg94c11@alas.matf.bg.ac.yu> said:
> By a miss-use of pointer-to-member-function I have discovered
> a bug in Your program. There is a sample program in this message
> that causes the bug.
> 
> Program:   gcc or g++
> Version:   egcs-2.90.29 980511 (egcs-1.0.3 release)
> System:    Linux i586 2.0.35
>            or at least this is what it writes when I login
> 
> I must say that I am not familiar wether or not this is
> the latest version of Your program.

At least egcs-1.1b (the latest stable version) here gives:

vonbrand@sleipnir:/tmp$ g++ -c bug.cc
bug.cc: In function `int main(...)':
bug.cc:16: pointer-to-member function bug_causer.Some_Struct::f cannot be called
bug.cc:16: without an object; consider using .* or ->*

My (strictly limited!) knowledge of C++ tells me this is right. What do you
see?
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616



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

* No Subject
@ 1998-11-06  9:01 Dragan Milenkovic
  1998-11-08  2:30 ` Horst von Brand
  0 siblings, 1 reply; 97+ messages in thread
From: Dragan Milenkovic @ 1998-11-06  9:01 UTC (permalink / raw)
  To: egcs-bugs

By a miss-use of pointer-to-member-function I have discovered
a bug in Your program. There is a sample program in this message
that causes the bug.

Program:   gcc or g++
Version:   egcs-2.90.29 980511 (egcs-1.0.3 release)
System:    Linux i586 2.0.35
           or at least this is what it writes when I login

I must say that I am not familiar wether or not this is
the latest version of Your program.

Regards,
Dragan Milenkovic
>From edana@bgs.com Fri Nov 06 09:38:00 1998
From: Eric Dana <edana@bgs.com>
To: egcs-bugs@cygnus.com
Subject: Command line parsing bug in g++ egcs 1.1 (resend)
Date: Fri, 06 Nov 1998 09:38:00 -0000
Message-id: <Pine.A32.3.91.981106123746.40734A-100000@aix7.bgs.com>
X-SW-Source: 1998-11/msg00183.html
Content-length: 4733

The EGCS 1.1 g++ compiler seems to be reordering the order of libraries
specified on a command line. This has caused us some problems :(.
The g++ 2.7.2 compiler does NOT perform the reordering. Both the gcc
and EGCS 1.1 gcc compiler do NOT perform the reordering either. Look
for 'Read Here' in this message (2 instances) to see the ordering
problem. The details follow.

--Eric Dana--

Configuration:

    SparcStation-20
    Solaris 2.5
    gcc 2.7.2 (this is the default compiler)
    egcs 1.1

g++ -v test1.C -lc -L/usr/ucblib -lucb

 gcc -v test1.C -lc -L/usr/ucblib -lucb -lg++ -lstdc++ -lm
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/specs
gcc version 2.7.2
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/cpp -lang-c++ -v -undef
 -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dsun -Dsparc
 -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__
 -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc
 -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc)
 test1.C /var/tmp/cca004.g.ii
GNU CPP version 2.7.2 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/g++-include
 /usr/local/include
 /usr/local/sparc-sun-solaris2.5/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/cc1plus
 /var/tmp/cca004.g.ii -quiet -dumpbase test1.cc -version -o
 /var/tmp/cca004.g.s
GNU C++ version 2.7.2 (sparc) compiled by GNU C version 2.7.2.
 /usr/ccs/bin/as -V -Qy -s -o /var/tmp/cca004.g1.o /var/tmp/cca004.g.s
/usr/ccs/bin/as: WorkShop Compilers 4.2 dev 13 May 1996
 /usr/ccs/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/crt1.o
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/crti.o
 /usr/ccs/lib/values-Xa.o
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/crtbegin.o
 -L/usr/ucblib -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2
 -L/usr/local/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib
 -L/usr/local/lib /var/tmp/cca004.g1.o
------Read Here----
 -lc -lucb -lg++ -lstdc++ -lm -lgcc -lc -lgcc
-------------------
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/crtend.o
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/crtn.o
ld: Software Generation Utilities (SGU) SunOS/ELF (LK-2.0 (S/I) - versioning)


/bmc/tools/egcs/bin/g++ -v test1.C -lc -L/usr/ucblib -lucb

Reading specs from
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/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) test1.C /var/tmp/cc9Gbpd6.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /bmc/tools/egcs/include/g++
 /usr/local/include
 /bmc/tools/egcs/sparc-sun-solaris2.5/include
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/include
 /usr/include
End of search list.
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/cc1plus
 /var/tmp/cc9Gbpd6.ii -quiet -dumpbase test1.cc -version -o /var/tmp/ccs8kwMa.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release)
 (sparc-sun-solaris2.5) compiled by GNU C version egcs-2.91.57 19980901
 (egcs-1.1 release).
 /bmc/tools/egcs/sparc-sun-solaris2.5/bin/as -V -Qy -s
 -o /var/tmp/cc0cdweZ.o /var/tmp/ccs8kwMa.s
GNU assembler version 2.9.1 (sparc-sun-solaris2.5), using BFD version 2.9.1
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/collect2
 -V -Y P,/usr/ccs/lib:/usr/lib -Qy
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/crt1.o
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/crti.o
 /usr/ccs/lib/values-Xa.o
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/crtbegin.o
 -L/usr/ucblib -L/bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57
 -L/bmc/tools/egcs/sparc-sun-solaris2.5/lib -L/usr/ccs/bin -L/usr/ccs/lib
 -L/bmc/tools/egcs/lib /var/tmp/cc0cdweZ.o
------Read Here----
 -lucb -lstdc++ -lm -lc -lgcc -lc -lgcc
-------------------
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/crtend.o
 /bmc/tools/egcs/lib/gcc-lib/sparc-sun-solaris2.5/egcs-2.91.57/crtn.o
GNU ld version 2.9.1 (with BFD 2.9.1)
  Supported emulations:
   elf32_sparc

test1.C
#include <iostream.h>

main()
{
  cout << "This is a test\n";
}



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

* No Subject
@ 1998-11-05  8:52 Moedl Raimund
  0 siblings, 0 replies; 97+ messages in thread
From: Moedl Raimund @ 1998-11-05  8:52 UTC (permalink / raw)
  To: 'egcs-bugs@cygnus.com'

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

Hello !

c++ -v test.cxx gives this:

Reading specs from
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\cpp.exe
-lang-c++ -v -iprefix
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\ -undef
-D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Di386 -D_WIN32
-D__CYGWIN32__ -DWINNT -D_X86_=1 -D__STDC__=1
-D__stdcall=__attribute__((__stdcall__))
-D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x))
-D__i386__ -D_WIN32 -D__CYGWIN32__ -D__WINNT__ -D_X86_=1 -D__STDC__=1
-D__stdcall=__attribute__((__stdcall__))
-D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x))
-D__i386 -D__WINNT -Asystem(winnt) -Acpu(i386) -Amachine(i386)
-D__EXCEPTIONS -remap -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386
-D__i386 -D__i386__ test.cxx C:\TEMP\ccWEhXVb.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\.
.\..\..\include\g++
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\.
.\..\..\include
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\.
.\..\i386-cygwin32\include
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\include
 
\Cygnus\b19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\..\
..\..\include\g++
 
\Cygnus\b19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\..\
..\..\include
 
\Cygnus\b19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\..\..\..\
..\i386-cygwin32\include
 \Cygnus\b19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\include
End of search list.
 
C:\Cygnus\B19\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\egcs-2.91.57\cc1plus
.exe C:\TEMP\ccWEhXVb.ii -quiet -dumpbase test.cc -version -o
C:\TEMP\cc3ZOobh.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (i386-cygwin32)
compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
test.cxx:11: Internal compiler error 892.
test.cxx:11: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Raimund

 <<test.cxx>> 


[-- Attachment #2: test.cxx --]
[-- Type: text/x-c++, Size: 54 bytes --]


class X
{
public:

    ~X();
};


X::~X( void* )
{
}

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

* No Subject
@ 1998-11-02  5:19 informant
  0 siblings, 0 replies; 97+ messages in thread
From: informant @ 1998-11-02  5:19 UTC (permalink / raw)
  To: egcs

Nov.2nd,1998

                       
Y2K  Solution!
8  Pine  Circle  Dr., Silicon  Valley, Calif.


OTC  Company  "TCFG"  21 st. Century  Frontier  Group  has
through  several  members  of  their  administrative  research
department  leaked  vital  information  about  their  companies  
efforts.

Everyone  was  tight  lipped  and  interviews  were  refused,
and  through  un-named  sources  we  have  learned  that  the  
technology  and  software  solution  are  in  the  process  of  
being  patented!

In over  1640  trials, using  various  data  systems  the  use  
of  the  new  technology  and  software  solved  the  Y2K
problem  100%  of  the  time. 

This  small  publicly  traded  company  "TCFG"  which  is  just
3  years  old  is  through  various  sources  now  negotiating
with  the  "Big  Boys"!

"TCFG"  the  letters  to  look  for!







  
 
 
 
 
 
 
 
 
 
 
 


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

* No Subject
@ 1998-10-29  6:39 Adrian Bowyer
  0 siblings, 0 replies; 97+ messages in thread
From: Adrian Bowyer @ 1998-10-29  6:39 UTC (permalink / raw)
  To: egcs-bugs

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

Hi - a little problem with the gnu C++ compiler.  Attached are a minimal test 
program and a (non-minimal...) .h file.

Compiling as it stands gives

$ g++ -c gpp_test.cxx
In file included from gpp_test.cxx:1:
gpp_bug.h:204: Internal compiler error 9.
gpp_bug.h:204: Please submit a full bug report to `egcs-bugs@cygnus.com'.
$

Correcting the code (i.e. comment out line 204 and uncomment line 200 in the 
.h file) gives

$ g++ -c gpp_test.cxx
In file included from gpp_test.cxx:1:
gpp_bug.h:200: warning: friend declaration `class sv_linked_list<D> merge(const 
class sv_linked_list<D> &, const class sv_linked_list<D> &)'
gpp_bug.h:200: warning:   will not be treated as a template instantiation
gpp_bug.h:200: warning:   unless you compile with -fguiding-decls
gpp_bug.h:200: warning:   or add <> after the function name
$

I chose to follow the last line of that advice, which provoked the internal 
error 9.  Then I used -fguiding-decls, which works fine, so I'm OK.  But
I thought that I ought to follow the request and submit a full bug report to 
egcs-bugs@cygnus.com...

I'm running Linux Redhat 5.1, though I get the same results from g++ on a Sun 
running System V Release 4.0.  Compiling the erroneous program using CC on an 
SGI running IRIX 6.2 gives sensible error messages.


Best wishes

Adrian

_________________________________________________________________________
                                     |
Dr Adrian Bowyer                     |        email - A.Bowyer@bath.ac.uk   
Senior Lecturer                      | web - http://www.bath.ac.uk/~ensab
Department of Mechanical Engineering | telephone - +44 1225 826826 x 5453
Faculty of Engineering and Design    |              fax - +44 1225 826928
University of Bath                   |
Bath BA2 7AY                         |
UK                                   |
_____________________________________|___________________________________


[-- Attachment #2: gpp_bug.h --]
[-- Type: text/x-c++, Size: 3544 bytes --]

/*
 * SvLis - base classes and templates for:
 *
 *   reference counting, 
 *   linked lists,
 *   input lists, and 
 *   parallel locks
 *
 * Adrian Bowyer
 *
 * See the svLis web site for the manual and other details:
 *
 *    http://www.bath.ac.uk/~ensab/G_mod/Svlis/
 *
 * First version: 8 October 1998
 * This version: 26 October 1998
 * 
 */

#ifndef SVLIS_REFCT
#define SVLIS_REFCT


// No need for locks if not on a prallel machine

class sv_lock
{

public:

  sv_lock() {}

  ~sv_lock() {}

  void shut() {}

  void open() {}

};


// The svLis reference counting template and base class
// This owes a lot to:

//  More Effective C++ by Scott Meyers, Addison-Wesley, 1996
//  ISBN 0-201-63371-X

// template class for smart pointers-to-T objects; T
// must inherit from sv_refct (see below)

template<class T>
class sv_smart_ptr
{
  private:

   T *Pointee;

   void init() { if (Pointee) Pointee->add_reference(); }

  public:

   sv_smart_ptr(T* realPtr = 0) 
   {
	Pointee = realPtr;
	init();
   }

   sv_smart_ptr(const sv_smart_ptr& rhs)
   {
	Pointee = rhs.Pointee;
	init();
   }

   ~sv_smart_ptr() { if (Pointee) Pointee->remove_reference(); }

   sv_smart_ptr& operator=(const sv_smart_ptr& rhs)
   {
    if (Pointee != rhs.Pointee)
    {
      if (Pointee) Pointee->remove_reference();

      Pointee = rhs.Pointee;
      init();
    }

    return *this;
   }

   T* operator->() const { return(Pointee); }

   T& operator*() const { return(*Pointee); }
};



// Base class for reference-counted objects
// This also includes the flag word, which is common
// to all such objects, and record locking for
// running on parallel machines.

class sv_refct
{
 protected:

   long ref_count;  // The reference count
   sv_lock lock;    // Record locking
   long f;          // Flag bits

   sv_refct()
   {
	ref_count = 0;
	f = 0;
   }

   sv_refct(const sv_refct& rhs)
   {
	ref_count = 0;
	f = 0;
   }

   sv_refct& operator=(const sv_refct& rhs) { return *this; }

   virtual ~sv_refct() {}

  public:

   void add_reference() 
   {
     lock.shut(); 
     ++ref_count;
     lock.open();
   }

   virtual void remove_reference() 
   {
     lock.shut();
     if (--ref_count <= 0) 
     {
         lock.open();
         delete this;
     } else
         lock.open();
   }

   long flags() { return(f); }

   void set_flags(long a) { f = f | a; }
   void reset_flags(long a) { f = f & (~a); }
};



// The template for the linked list class
// Actual linked lists will be derived from this as they will need
// special members

template<class D>
class sv_linked_list
{
private:

// This is the data struct that gets ref counted

  struct sv_linked_list_data : public sv_refct
  {
        friend class sv_smart_ptr<sv_linked_list_data>;

	D d;		        // The data
	sv_linked_list* next;	// The next one along

        ~sv_linked_list_data() { delete next; }

// Constructor for when it's a single set.

	sv_linked_list_data(const D& a)
	{
	        d = a;
		next = new sv_linked_list();
	}

// Constructor to put a new set at the head.

	sv_linked_list_data(const D& a, const sv_linked_list& ll)
	{
	        d = a;
		next = new sv_linked_list(ll);
	}
  }; // sv_linked_list_data

   sv_smart_ptr<sv_linked_list_data> linked_list_info;

public:

// Null list

	sv_linked_list() { }

	// Correct:

	// friend sv_linked_list<D> merge(const sv_linked_list<D>&, const sv_linked_list<D>&);    // Union

	// Error:

         friend sv_linked_list<D> merge<D>(const sv_linked_list<D>&, const sv_linked_list<D>&);    // Union
};


#endif

[-- Attachment #3: gpp_test.cxx --]
[-- Type: text/x-c, Size: 31 bytes --]

#include "gpp_bug.h"
main() {}

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

* No Subject
       [not found] <informant@earthlink.net>
@ 1998-10-29  5:07 ` informant
  0 siblings, 0 replies; 97+ messages in thread
From: informant @ 1998-10-29  5:07 UTC (permalink / raw)
  To: egcs

                             10/29/98

Y2K  Solution!
8  Pine  Circle  Dr., Silicon  Valley, Calif.

OTC  Company  "TCFG"  21 st. Century  Frontier  Group  has
through  several  members  of  their  administrative  research
department  leaked  vital  information  about  their  companies  
efforts.

Everyone  was  tight  lipped  and  interviews  were  refused,
and  through  un-named  sources  we  have  learned  that  the  
technology  and  software  solution  are  in  the  process  of  
being  patented!

In over  1640  trials, using  various  data  systems  the  use  
of  the  new  technology  and  software  solved  the  Y2K
problem  100%  of  the  time. 

This  small  publicly  traded  company  "TCFG"  which  is  just
3  years  old  is  through  various  sources  now  negotiating
with  the  "Big  Boys"!

"TCFG"  the  letters  to  look  for!





 
 
 
 
 
 
 
 
 
 
 
 


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

* No Subject
@ 1998-10-24  8:35 explorer
  0 siblings, 0 replies; 97+ messages in thread
From: explorer @ 1998-10-24  8:35 UTC (permalink / raw)
  To: egcs

                             10/24/98

Y2K  Solution...
8  Pine  Circle  Dr., Silicon  Valley, Calif.

OTC  Company  "TCFG"  21 st. Century  Frontier  Group  has
through  several  members  of  their  administrative  research
department  leaked  vital  information  about  their  companies  
efforts.

Everyone  was  tight  lipped  and  interviews  were  refused,
and  through  un-named  sources  we  have  learned  that  the  
technology  and  software  solution  are  in  the  process  of  
being  patented!

In over  1640  trials, using  various  data  systems  the  use  
of  the  new  technology  and  software  solved  the  Y2K
problem  100%  of  the  time. 

This  small  publicly  traded  company  "TCFG"  which  is  just
3  years  old  is  through  various  sources  now  negotiating
with  the  "Big  Boys"!

"TCFG"  the  letters  to  look  for..... 



________________________________________________________________


  
 
 
 
 
 


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

* No Subject
@ 1998-10-22 10:56 Bernhard Stegmaier
  0 siblings, 0 replies; 97+ messages in thread
From: Bernhard Stegmaier @ 1998-10-22 10:56 UTC (permalink / raw)
  To: egcs-bugs

Hi!

I have encountered a problem compiling the little test file, which I have 
attached to this mail, with egcs version 1.1b (egcs-2.91.57) on Solaris 2.6. If 
I use egcs version 1.0.3a everything works fine... and because the header files 
are identical, there is probably a problem with the compiler...
I get the following error message:

lupus:~>/public/local/programming/egcs-1.1b/bin/g++ test.cpp 
In file included from 
/public/local/programming/egcs-1.1b/include/g++/stl_rope.h:2107,
                 from /public/local/programming/egcs-1.1b/include/g++/rope.h:18,
                 from test.cpp:2:
/public/local/programming/egcs-1.1b/include/g++/ropeimpl.h:1085: warning: 
decimal integer constant is so large that it is unsigned
Undefined                       first referenced
 symbol                             in file
rope<char, __default_alloc_template<0, 0> > identity_element<char, 
__default_alloc_template<0, 0> >(rope<char, __default_alloc_template<0, 0> 
>::concat_fn)/var/tmp/cct2QrlY.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status


Bernhard Stegmaier
>From jason@cygnus.com Thu Oct 22 12:17:00 1998
From: Jason Merrill <jason@cygnus.com>
To: Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
Cc: vavasis@CS.Cornell.EDU, egcs-bugs@cygnus.com, egcs-patches@cygnus.com
Subject: Re: possible namespace lookup bug
Date: Thu, 22 Oct 1998 12:17:00 -0000
Message-id: <u9g1cge83y.fsf@yorick.cygnus.com>
References: <360A8102.5607@cs.cornell.edu> <199810212147.WAA08360@mira.isdn.cs.tu-berlin.de>
X-SW-Source: 1998-10/msg00615.html
Content-length: 20

This is OK.

Jason


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

* No Subject
@ 1998-10-12  6:30 Professor W P Jones
  0 siblings, 0 replies; 97+ messages in thread
From: Professor W P Jones @ 1998-10-12  6:30 UTC (permalink / raw)
  To: egcs-bugs

I have tried to compile DDD 3.0 on my system running Redhat 5.1 with Motif
2.1 installed.   However when I run ./configure (which is part of DDD) I get
the following config.log output:

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:613: checking host system type
configure:634: checking target system type
configure:652: checking build system type
configure:685: checking for a BSD compatible install
configure:738: checking whether build environment is sane
configure:795: checking whether make sets ${MAKE}
configure:834: checking for working aclocal
configure:847: checking for working autoconf
configure:860: checking for working automake
configure:873: checking for working autoheader
configure:886: checking for working makeinfo
configure:900: checking whether make sets ${MAKE}
configure:2250: checking for c++
configure:2281: checking whether the C++ compiler (c++  ) works
configure:2295: c++ -o conftest    conftest.C  1>&5
/usr/bin/ld: cannot open -lstdc++: No such file or directory
collect2: ld returned 1 exit status
configure: failed program was:
#line 2291 "configure"
#include "confdefs.h"
main(){return(0);}

This presumably is a problem with egcs?  I have egcs-1.1b-2 including
egcs-libstdc++-1.1b-1 installed on my system.  It seems however that c++
cannot 'find' libstdc++.  Any suggestions?

Many thanks
Bill Jones

Professor W P Jones
Combustion Research Programme Coordinator
Department of Chemical Engineering
Imperial College
London SW7 2BY
Tel:	+44 (0) 171 594 5574/5603
Fax:	+44 (0) 171 594 5637/5619
E-mail:	w.jones@ic.ac.uk




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

* No Subject
@ 1998-10-08  5:55 Han-Wen Nienhuys
  0 siblings, 0 replies; 97+ messages in thread
From: Han-Wen Nienhuys @ 1998-10-08  5:55 UTC (permalink / raw)
  To: egcs-bugs

template<class T> minmax (int d, T, T);
/*

  I am not sure if this is a bug, but I am sure the warning message cuold
  be more helpful

  
dokkum:~/usr/src/lilypond$ g++ -Wall bug.cc
bug.cc:2: warning: ANSI C++ forbids declaration `' with no type
bug.cc:2: abstract declarator `int' used as declaration
bug.cc:2: template declaration of `int ._0'

 */

-- 

Han-Wen Nienhuys, hanwen@cs.uu.nl ** GNU LilyPond - The Music Typesetter 
      http://www.cs.uu.nl/people/hanwen/lilypond/index.html 



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

* No Subject
@ 1998-09-17  5:20 Han-Wen Nienhuys
  0 siblings, 0 replies; 97+ messages in thread
From: Han-Wen Nienhuys @ 1998-09-17  5:20 UTC (permalink / raw)
  To: egcs-bugs

class Graphics;
typedef void (Graphics::*Meth_ptr) (int,int);
struct Graphics  
{
  Meth_ptr SwitchMode;
};

void
bla()
{
  Graphics g;
  g.SwitchMode (1,1);
}


/*
cd ~/usr/src/lilypond/
g++ -c -v -Wall foo.cc
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)
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Di386 -D__ELF__ -Dunix -Dlinux -D__i386__ -D__ELF__ -D__unix__ -D__linux__ -D__i386 -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Wall -Di386 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -Asystem(unix) -Acpu(i386) -Amachine(i386) foo.cc /tmp/cca02947.ii
GNU CPP version egcs-2.90.27 980315 (egcs-1.0.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/g++
 /usr/i386-redhat-linux/include
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/cc1plus /tmp/cca02947.ii -quiet -dumpbase foo.cc -Wall -version -o /tmp/cca02947.s
GNU C++ version egcs-2.90.27 980315 (egcs-1.0.2 release)
(i386-redhat-linux) compiled by GNU C version egcs-2.90.27 980315
(egcs-1.0.2 release).
foo.cc: In function `void bla()':
foo.cc:12: Internal compiler error.
foo.cc:12: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Compilation exited abnormally with code 1 at Thu Sep 17 14:19:53
*/

-- 

Han-Wen Nienhuys, hanwen@cs.uu.nl ** GNU LilyPond - The Music Typesetter 
      http://www.cs.uu.nl/people/hanwen/lilypond/index.html 



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

* No Subject
@ 1998-09-12  3:39 dwhitney
  0 siblings, 0 replies; 97+ messages in thread
From: dwhitney @ 1998-09-12  3:39 UTC (permalink / raw)
  To: egcs-bugs

#ifndef _LINALGEBRA_H_
#define _LINALGEBRA_H_

/*
 * LinAlgebra.h
 */

#include <math.h>
#include <string.h>


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template <class T1,class T2>
void CrossProduct3(const T1 *v1,const T2 *v2,T1 *r);

template <class T1,class T2>
inline T1 DotProduct3(const T1 *v1,const T2 *v2) {
    return v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2];
}

template <class T1,class T2>
inline T1 DotProduct4(const T1 *v1,const T2 *v2) {
    return v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]+v1[3]*v2[3];
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template<class T> class Vector4t;

template<class T>
class Vector3t {
public:
    T vec[3];

    Vector3t() { }
    Vector3t(const T& t1,const T& t2,const T& t3) {
        vec[0]=t1; vec[1]=t2; vec[2]=t3;
    }
    void set(const T& t1,const T& t2, const T& t3) {
        vec[0]=t1; vec[1]=t2; vec[2]=t3;
    }
    Vector3t(const T *tp) {
        vec[0]=tp[0]; vec[1]=tp[1]; vec[2]=tp[2];
    }
    Vector3t(const Vector3t& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
    }
    Vector3t(const Vector4t<T>& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
    }
    Vector3t& operator=(const Vector3t& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
        return *this;
    }
    Vector3t& operator=(const T *v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
        return *this;
    }
    Vector3t& operator=(const Vector4t<T>& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
        return *this;
    }

    friend int operator!=(const Vector3t& v1,const Vector3t& v2) {
        return (v1[0]!=v2[0] || v1[1]!=v2[1] || v1[2]!=v2[2]);
    }
    friend int operator==(const Vector3t& v1,const Vector3t& v2) {
        return (v1[0]==v2[0] && v1[1]==v2[1] && v1[2]==v2[2]);
    }

    Vector3t<T>& operator+=(const Vector3t<T>& v) {
        vec[0] += v.vec[0]; vec[1] += v.vec[1]; vec[2] += v.vec[2];
        return *this;
    }
    Vector3t<T>& operator-=(const Vector3t<T>& v) {
        vec[0] -= v.vec[0]; vec[1] -= v.vec[1]; vec[2] -= v.vec[2];
        return *this;
    }
    Vector3t<T>& operator*=(const T& f) {
        vec[0] *= f;  vec[1] *= f; vec[2] *= f;
        return *this;
    }
    Vector3t<T>& operator/=(const T& f) {
        vec[0] /= f;  vec[1] /= f; vec[2] /= f;
        return *this;
    }

    friend Vector3t<T> operator-(const Vector3t<T>& v) {
        return Vector3t<T>(-v.vec[0], -v.vec[1], -v.vec[2]);
    }
    friend Vector3t<T> operator+(const Vector3t<T>& lhs,
                                 const Vector3t<T>& rhs) {
        return Vector3t<T>(lhs.vec[0] + rhs.vec[0],
                           lhs.vec[1] + rhs.vec[1],
                           lhs.vec[2] + rhs.vec[2]);
    }

    friend Vector3t<T> operator-(const Vector3t<T>& lhs,
                                 const Vector3t<T>& rhs) {
        return Vector3t<T>(lhs.vec[0] - rhs.vec[0],
                           lhs.vec[1] - rhs.vec[1],
                           lhs.vec[2] - rhs.vec[2]);
    }
    friend Vector3t<T> operator*(float lhs, const Vector3t<T>& rhs) {
        return Vector3t<T>(lhs * rhs.vec[0], lhs * rhs.vec[1], lhs * rhs.vec[2]);
    }
    friend Vector3t<T> operator*(const Vector3t<T>& lhs, float rhs) {
        return Vector3t<T>(lhs.vec[0] * rhs, lhs.vec[1] * rhs, lhs.vec[2] * rhs);
    }
    friend Vector3t<T> operator/(const Vector3t<T>& lhs, float rhs) {
        return Vector3t<T>(lhs.vec[0] / rhs, lhs.vec[1] / rhs, lhs.vec[2] / rhs);
    }
    friend Vector3t<T> operator*(double lhs, const Vector3t<T>& rhs) {
        return Vector3t<T>(lhs * rhs.vec[0], lhs * rhs.vec[1], lhs * rhs.vec[2]);
    }
    friend Vector3t<T> operator*(const Vector3t<T>& lhs, double rhs) {
        return Vector3t<T>(lhs.vec[0] * rhs, lhs.vec[1] * rhs, lhs.vec[2] * rhs);
    }
    friend Vector3t<T> operator/(const Vector3t<T>& lhs, double rhs) {
        return Vector3t<T>(lhs.vec[0] / rhs, lhs.vec[1] / rhs, lhs.vec[2] / rhs);
    }

    operator T *() { return (T *)vec; }
    operator const T *() const { return (const T *)vec; }

    T operator [](int i) const { return vec[i]; }
    T &operator [](int i) { return vec[i]; }

    T length() const {
        return (T)sqrt((double)(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]));
    }

    void scale(const T &t) { vec[0]*=t; vec[1]*=t; vec[2]*=t; }

    void normalize() { scale(1.0/length()); }
    Vector3t<T> normalized() const { return ((*this) * (1.0/length())); }

    T dot(const Vector3t<T> &t) const {
        return DotProduct3(vec,t);
    }
};


template <class T1,class T2>
Vector3t<T1> operator*(const Vector3t<T1>& v1, 
                       const Vector3t<T2>& v2)
{
    Vector3t<T1> r;
    CrossProduct3(v1.vec,v2.vec,r.vec);
    return r;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template<class T>
class Vector4t {
public:
    T vec[4];

    Vector4t() { }
    Vector4t(const T& t1,const T& t2, const T& t3,const T& t4) {
        vec[0]=t1; vec[1]=t2; vec[2]=t3; vec[3]=t4;
    }
    void set(const T& t1,const T& t2, const T& t3,const T& t4) {
        vec[0]=t1; vec[1]=t2; vec[2]=t3; vec[3]=t4;
    }
    Vector4t(const T *tp) {
        vec[0]=tp[0]; vec[1]=tp[1]; vec[2]=tp[2]; vec[3]=tp[3];
    }
    Vector4t(const Vector4t& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2]; vec[3]=v[3];
    }
    Vector4t(const Vector3t<T>& v,int i3=0) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
        vec[3] = i3;
    }
    Vector4t& operator=(const Vector4t& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2]; vec[3]=v[3];
        return *this;
    }
    Vector4t& operator=(const Vector3t<T>& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2]; vec[3]=v[3];
        vec[3] = 0;
        return *this;
    }
    Vector4t& operator=(const T *v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2]; vec[3]=v[3];
        return *this;
    }
    void set(const Vector3t<T>& v,int i3) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
        vec[3] = i3;
    }
    void load3(const Vector3t<T>& v) {
        vec[0]=v[0]; vec[1]=v[1]; vec[2]=v[2];
    }

    friend int operator!=(const Vector4t& v1,const Vector4t& v2) {
        return (v1[0]!=v2[0] || v1[1]!=v2[1] || v1[2]!=v2[2] ||
                v1[3]!=v2[3]);
    }
    friend int operator==(const Vector4t& v1,const Vector4t& v2) {
        return (v1[0]==v2[0] && v1[1]==v2[1] && v1[2]==v2[2] ||
                v1[3]!=v2[3]);
    }

    Vector4t<T>& operator-=(const Vector4t<T>& v) {
        vec[0] -= v.vec[0]; vec[1] -= v.vec[1]; vec[2] -= v.vec[2]; vec[3] -= v.vec[3];
        return *this;
    }
    Vector4t<T>& operator+=(const Vector4t<T>& v) {
        vec[0] += v.vec[0]; vec[1] += v.vec[1]; vec[2] += v.vec[2]; vec[3] += v.vec[3];
        return *this;
    }
    Vector4t<T>& operator*=(const T& f) {
        vec[0] *= f;  vec[1] *= f; vec[2] *= f; vec[3] *= f;
        return *this;
    }
    Vector4t<T>& operator/=(const T& f) {
        vec[0] /= f;  vec[1] /= f; vec[2] /= f; vec[3] /= f;
        return *this;
    }
    
    friend Vector4t<T> operator-(const Vector4t<T>& v) {
        return Vector4t<T>(-v.vec[0], -v.vec[1], -v.vec[2], -v.vec[3]);
    }
    friend Vector4t<T> operator+(const Vector4t<T>& lhs,
                                 const Vector4t<T>& rhs) {
        return Vector4t<T>(lhs.vec[0] + rhs.vec[0],
                           lhs.vec[1] + rhs.vec[1],
                           lhs.vec[2] + rhs.vec[2],
                           lhs.vec[3] + rhs.vec[3]);
    }
    friend Vector4t<T> operator-(const Vector4t<T>& lhs,
                                 const Vector4t<T>& rhs) {
        return Vector4t<T>(lhs.vec[0] - rhs.vec[0],
                           lhs.vec[1] - rhs.vec[1],
                           lhs.vec[2] - rhs.vec[2],
                           lhs.vec[3] - rhs.vec[3]);
    }

    friend Vector4t<T> operator*(float lhs, const Vector4t<T>& rhs) {
        return Vector4t<T>(lhs * rhs.vec[0], lhs * rhs.vec[1],
                           lhs * rhs.vec[2], lhs * rhs.vec[3]);
    }
    friend Vector4t<T> operator*(const Vector4t<T>& lhs, float rhs) {
        return Vector4t<T>(lhs.vec[0] * rhs, lhs.vec[1] * rhs,
                           lhs.vec[2] * rhs, lhs.vec[3] * rhs);
    }
    friend Vector4t<T> operator/(const Vector4t<T>& lhs, float rhs) {
        return Vector4t<T>(lhs.vec[0] / rhs, lhs.vec[1] / rhs,
                           lhs.vec[2] / rhs, lhs.vec[3] / rhs);
    }
    friend Vector4t<T> operator*(double lhs, const Vector4t<T>& rhs) {
        return Vector4t<T>(lhs * rhs.vec[0], lhs * rhs.vec[1],
                           lhs * rhs.vec[2], lhs * rhs.vec[3]);
    }
    friend Vector4t<T> operator*(const Vector4t<T>& lhs, double rhs) {
        return Vector4t<T>(lhs.vec[0] * rhs, lhs.vec[1] * rhs,
                           lhs.vec[2] * rhs, lhs.vec[3] * rhs);
    }
    friend Vector4t<T> operator/(const Vector4t<T>& lhs, double rhs) {
        return Vector4t<T>(lhs.vec[0] / rhs, lhs.vec[1] / rhs,
                           lhs.vec[2] / rhs, lhs.vec[3] / rhs);
    }

    operator T *() { return (T *)vec; }
    operator const T *() const { return (const T *)vec; }

    operator Vector3t<T>&() { return *(Vector3t<T> *)&vec; }

    T operator [](int i) const { return vec[i]; }
    T &operator [](int i) { return vec[i]; }

    T length() const { 
        return (T)sqrt((double)(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2] + vec[3]*vec[3]));
    }

    void scale(const T &t) { vec[0]*=t; vec[1]*=t; vec[2]*=t; vec[3]*=t; }

    void normalize() { scale(1.0/length()); }
    Vector4t<T> normalized() const { return ((*this) * (1.0/length())); }

    T dot(const Vector4t<T> &t) const {
        return DotProduct4(vec,t);
    }
    T dot3(const Vector4t<T> &t) const {
        return DotProduct3(vec,t);
    }

    void cross3(const Vector4t &v1,const Vector4t &v2) {
        CrossProduct3((const T *)v1,(const T *)v2,vec);
        vec[3] = 0;
    }
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template<class T>
class Matrix33t {
    static const int MATSIZE;
public:
    T mat[3][3];

    static const T identity[9];

    Matrix33t() {}
    Matrix33t(const T *tp) {         // ctor takes array of 9 T's
        memcpy(mat,tp,MATSIZE);
    }
    Matrix33t(const T& t1,const T& t2,const T& t3,
              const T& t4,const T& t5,const T& t6,
              const T& t7,const T& t8,const T& t9) {
        mat[0][0]=t1; mat[0][1]=t2; mat[0][2]=t3;
        mat[1][0]=t4; mat[1][1]=t5; mat[1][2]=t6;
        mat[2][0]=t7; mat[2][1]=t8; mat[2][2]=t9;
    }
    void set(const T& t1,const T& t2,const T& t3,
             const T& t4,const T& t5,const T& t6,
             const T& t7,const T& t8,const T& t9) {
        mat[0][0]=t1; mat[0][1]=t2; mat[0][2]=t3;
        mat[1][0]=t4; mat[1][1]=t5; mat[1][2]=t6;
        mat[2][0]=t7; mat[2][1]=t8; mat[2][2]=t9;
    }
    Matrix33t(const Vector3t<T>& v1,const Vector3t<T>& v2,const Vector3t<T>& v3) {
        mat[0][0]=v1[0]; mat[0][1]=v1[1]; mat[0][2]=v1[2];
        mat[1][0]=v2[0]; mat[1][1]=v2[1]; mat[1][2]=v2[2];
        mat[2][0]=v3[0]; mat[2][1]=v3[1]; mat[2][2]=v3[2];
    }
    Matrix33t(const Matrix33t& m) {  // copy ctor
        memcpy(mat,m.mat,MATSIZE);
    }

    Matrix33t<T>& operator=(const Matrix33t<T>& m) {
        memcpy(mat,m.mat,MATSIZE);
        return *this;
    }
    Matrix33t<T>& operator=(const T m[3][3]) {
        memcpy(mat,m,MATSIZE);
        return *this;
    }

    operator T *() const { return (T *)mat; }

    const Vector3t<T>& operator [](int i) const {
        return *(Vector3t<T> *)mat[i];
    }
    Vector3t<T>& operator [](int i) {
        return *(Vector3t<T> *)mat[i];
    }

    void setIdentity() { *this = identity; }

    Matrix33t<T> inverse() const {
        Matrix33t<T> m;
        Invert(*this,&m);
        return m;
    }

    Matrix33t<T> transpose() const {
        Matrix33t<T> m;
        Transpose(*this,&m);
        return m;
    }

    Matrix33t<T>& operator*=(const T& f) {
        mat[0][0] *= f;  mat[0][1] *= f; mat[0][2] *= f;
        mat[1][0] *= f;  mat[1][1] *= f; mat[1][2] *= f;
        mat[2][0] *= f;  mat[2][1] *= f; mat[2][2] *= f;
        return *this;
    }

    friend Matrix33t<T> operator+(const Matrix33t<T>& lhs,
                                  const Matrix33t<T>& rhs) {
        return Matrix33t<T>(lhs[0] + rhs[0],
                            lhs[1] + rhs[1],
                            lhs[2] + rhs[2]);
    }

    friend Matrix33t<T> operator*(double lhs,
                                  const Matrix33t<T>& rhs) {
        return Matrix33t<T>(lhs * rhs[0],
                            lhs * rhs[1],
                            lhs * rhs[2]);
    }

    friend T Determinant(const Matrix33t<T>&);
    friend void Invert_rational_terms(const Matrix33t<T>&,
                                      Matrix33t<T>*, T*);
    friend int Invert(const Matrix33t<T>&, Matrix33t<T>*);

    friend void Transpose(const Matrix33t<T>&, Matrix33t<T>*);
};


template <class T1, class T2>
Matrix33t<T1> operator*(const Matrix33t<T1>& m1, 
                        const Matrix33t<T2>& m2);

template<class T> const T Matrix33t<T>::identity[9] = {
    1, 0, 0,
    0, 1, 0,
    0, 0, 1
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template<class T>
class Matrix44t {
    static const int MATSIZE;
public:
    T mat[4][4];

    static const T identity[16];

    Matrix44t() {}
    Matrix44t(const T *tp) {         // ctor takes array of 16 T's
        memcpy(mat,tp,MATSIZE);
    }
    Matrix44t(const T& t1,const T& t2,const T& t3,const T& t4,
              const T& t5,const T& t6,const T& t7,const T& t8,
              const T& t9,const T& t10,const T& t11,const T& t12,
              const T& t13,const T& t14,const T& t15,const T& t16) {
        mat[0][0]=t1; mat[0][1]=t2; mat[0][2]=t3; mat[0][3]=t4;
        mat[1][0]=t5; mat[1][1]=t6; mat[1][2]=t7; mat[1][3]=t8;
        mat[2][0]=t9; mat[2][1]=t10; mat[2][2]=t11; mat[2][3]=t12;
        mat[3][0]=t13; mat[3][1]=t14; mat[3][2]=t15; mat[3][3]=t16;
    }
    void set(const T& t1,const T& t2,const T& t3,const T& t4,
             const T& t5,const T& t6,const T& t7,const T& t8,
             const T& t9,const T& t10,const T& t11,const T& t12,
             const T& t13,const T& t14,const T& t15,const T& t16) {
        mat[0][0]=t1; mat[0][1]=t2; mat[0][2]=t3; mat[0][3]=t4;
        mat[1][0]=t5; mat[1][1]=t6; mat[1][2]=t7; mat[1][3]=t8;
        mat[2][0]=t9; mat[2][1]=t10; mat[2][2]=t11; mat[2][3]=t12;
        mat[3][0]=t13; mat[3][1]=t14; mat[3][2]=t15; mat[3][3]=t16;
    }
    Matrix44t(const Matrix44t& m) {  // copy ctor
        memcpy(mat,m.mat,MATSIZE);
        for (int i=0; i<16; ++i)
            ((T *)mat)[i] = ((T *)m.mat)[i];
    }

    Matrix44t<T>& operator=(const Matrix44t<T>& m) {
        memcpy(mat,m.mat,MATSIZE);
        return *this;
    }
    Matrix44t<T>& operator=(const T m[4][4]) {
        memcpy(mat,m,MATSIZE);
        return *this;
    }

    void load33(const Matrix44t<T>& m) {
        mat[0][0]=m[0][0]; mat[0][1]=m[0][1]; mat[0][2]=m[0][2];
        mat[1][0]=m[1][0]; mat[1][1]=m[1][1]; mat[1][2]=m[1][2];
        mat[2][0]=m[2][0]; mat[2][1]=m[2][1]; mat[2][2]=m[2][2];
    }
    void load33(const Matrix33t<T>& m) {
        mat[0][0]=m[0][0]; mat[0][1]=m[0][1]; mat[0][2]=m[0][2];
        mat[1][0]=m[1][0]; mat[1][1]=m[1][1]; mat[1][2]=m[1][2];
        mat[2][0]=m[2][0]; mat[2][1]=m[2][1]; mat[2][2]=m[2][2];
    }

    operator T *() const { return (T *)mat; }

    const Vector4t<T>& operator [](int i) const {
        return *(Vector4t<T> *)mat[i];
    }
    Vector4t<T>& operator [](int i) {
        return *(Vector4t<T> *)mat[i];
    }

    void setIdentity() { *this = identity; }

    void restrictedInvert() { ::restrictedInvert(*this,this); }
    Matrix44t<T>  restrictedInverse() const {
        Matrix44t<T> m;
        ::restrictedInvert(*this,&m);
        return m;
    }

    Matrix44t<T> inverse() const {
        Matrix44t<T> m;
        Invert(*this,&m);
        return m;
    }

    Matrix44t<T> transpose() const {
        Matrix44t<T> m;
        Transpose(*this,&m);
        return m;
    }

    void translate(const T &x,const T &y,const T &z);
    void translate(const T *v) { translate(v[0],v[1],v[2]); }
    Matrix44t<T> translated(const T &x,const T &y,const T &z) const {
        Matrix44t<T> m(*this);
        m.translate(x,y,z);
        return m;
    }
    Matrix44t<T> translated(const T *v) const {
        return translated(v[0],v[1],v[2]);
    }

    void rotate(char axis,const T &angle) {
        *this = rotated(axis,angle);
    }
    Matrix44t<T> rotated(char axis,const T &angle) const;

    void scale(const T &x,const T &y,const T &z);
    void scale(const T &s) { scale(s,s,s); }
    Matrix44t<T> scaled(const T &x,const T &y,const T &z) const;
    Matrix44t<T> scaled(const T &s) const { return scaled(s,s,s); }

    friend int Invert(const Matrix44t<T>&, Matrix44t<T>*);
    friend void restrictedInvert(const Matrix44t<T>&, Matrix44t<T>*);

    friend void Transpose(const Matrix44t<T>&, Matrix44t<T>*);
};

 
template <class T1, class T2>
Vector4t<T2> operator*(const Matrix44t<T1>&, const Vector4t<T2>&);

template <class T1, class T2>
Vector4t<T2> operator*(const Vector4t<T2>&, const Matrix44t<T1>&); 

template <class T1, class T2>
Vector4t<T2> Transform(const Matrix44t<T1>&, const Vector3t<T2>&);

template <class T1, class T2>
Vector4t<T2> Transform(const Vector3t<T2>&, const Matrix44t<T1>&); 

template <class T1, class T2>
Matrix44t<T1> operator*(const Matrix44t<T1>& m1, 
                        const Matrix44t<T2>& m2);

template<class T> const T Matrix44t<T>::identity[16] = {
    1, 0, 0, 0,
    0, 1, 0, 0,
    0, 0, 1, 0,
    0, 0, 0, 1
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


const float identmat9f[9] = {
    1.0, 0.0, 0.0,
    0.0, 1.0, 0.0,
    0.0, 0.0, 1.0
};

const double identmat9d[9] = {
    1.0, 0.0, 0.0,
    0.0, 1.0, 0.0,
    0.0, 0.0, 1.0
};

const float identmat16f[16] = {
    1.0, 0.0, 0.0, 0.0,
    0.0, 1.0, 0.0, 0.0,
    0.0, 0.0, 1.0, 0.0,
    0.0, 0.0, 0.0, 1.0
};

const double identmat16d[16] = {
    1.0, 0.0, 0.0, 0.0,
    0.0, 1.0, 0.0, 0.0,
    0.0, 0.0, 1.0, 0.0,
    0.0, 0.0, 0.0, 1.0
};

typedef Vector3t<float> Vector3f;
typedef Vector3t<double> Vector3d;

typedef Vector4t<float> Vector4f;
typedef Vector4t<double> Vector4d;

typedef Matrix33t<float> Matrix33f;
typedef Matrix33t<double> Matrix33d;

typedef Matrix44t<float> Matrix44f;
typedef Matrix44t<double> Matrix44d;

typedef Vector3f Point3f;
typedef Vector3d Point3d;

typedef Vector4f Point4f;
typedef Vector4d Point4d;

const Matrix33f IdentMat33f( Matrix33f::identity );
const Matrix33d IdentMat33d( Matrix33d::identity );
const Matrix44f IdentMat44f( Matrix44f::identity );
const Matrix44d IdentMat44d( Matrix44d::identity );

const Vector3f Xaxis3f ( 1.0, 0.0, 0.0);
const Vector3f Yaxis3f ( 0.0, 1.0, 0.0);
const Vector3f Zaxis3f ( 0.0, 0.0, 1.0);
const Vector3f Origin3f( 0.0, 0.0, 0.0);
const Vector3f Zero3f  ( 0.0, 0.0, 0.0);

const Vector4f Xaxis4f ( 1.0, 0.0, 0.0, 0.0);
const Vector4f Yaxis4f ( 0.0, 1.0, 0.0, 0.0);
const Vector4f Zaxis4f ( 0.0, 0.0, 1.0, 0.0);
const Vector4f Origin4f( 0.0, 0.0, 0.0, 1.0);
const Vector4f Zero4f  ( 0.0, 0.0, 0.0, 0.0);

const Vector3d Xaxis3d ( 1.0, 0.0, 0.0);
const Vector3d Yaxis3d ( 0.0, 1.0, 0.0);
const Vector3d Zaxis3d ( 0.0, 0.0, 1.0);
const Vector3d Origin3d( 0.0, 0.0, 0.0);
const Vector3d Zero3d  ( 0.0, 0.0, 0.0);

const Vector4d Xaxis4d ( 1.0, 0.0, 0.0, 0.0);
const Vector4d Yaxis4d ( 0.0, 1.0, 0.0, 0.0);
const Vector4d Zaxis4d ( 0.0, 0.0, 1.0, 0.0);
const Vector4d Origin4d( 0.0, 0.0, 0.0, 1.0);
const Vector4d Zero4d  ( 0.0, 0.0, 0.0, 0.0);

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#endif


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

* No Subject
@ 1998-09-12  2:25 dwhitney
  0 siblings, 0 replies; 97+ messages in thread
From: dwhitney @ 1998-09-12  2:25 UTC (permalink / raw)
  To: egcs-bugs

#include <math.h>
#include <stdlib.h>
#include <iostream.h>

#include "LinAlgebra.h"


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

template <class T1,class T2>
void CrossProduct3(const T1 *v1,const T2 *v2,T1 *r)
{
    r[0] = v1[1] * v2[2] - v1[2] * v2[1];
    r[1] = v1[2] * v2[0] - v1[0] * v2[2];
    r[2] = v1[0] * v2[1] - v1[1] * v2[0];
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Vector3t */


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Vector4t */


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Matrix33t */

template<class T>
const int Matrix33t<T>::MATSIZE = 9*sizeof(T);

template <class T1, class T2>
Matrix33t<T1> operator*(const Matrix33t<T1>& m1, 
                        const Matrix33t<T2>& m2)
{
    return Matrix33t<T1>(m1[0][0] * m2[0][0] + 
                         m1[0][1] * m2[1][0] +
                         m1[0][2] * m2[2][0],

                         m1[0][0] * m2[0][1] + 
                         m1[0][1] * m2[1][1] +
                         m1[0][2] * m2[2][1],

                         m1[0][0] * m2[0][2] + 
                         m1[0][1] * m2[1][2] +
                         m1[0][2] * m2[2][2],

                         m1[1][0] * m2[0][0] + 
                         m1[1][1] * m2[1][0] +
                         m1[1][2] * m2[2][0],

                         m1[1][0] * m2[0][1] + 
                         m1[1][1] * m2[1][1] +
                         m1[1][2] * m2[2][1],

                         m1[1][0] * m2[0][2] + 
                         m1[1][1] * m2[1][2] +
                         m1[1][2] * m2[2][2],

                         m1[2][0] * m2[0][0] + 
                         m1[2][1] * m2[1][0] +
                         m1[2][2] * m2[2][0],

                         m1[2][0] * m2[0][1] + 
                         m1[2][1] * m2[1][1] +
                         m1[2][2] * m2[2][1],

                         m1[2][0] * m2[0][2] + 
                         m1[2][1] * m2[1][2] +
                         m1[2][2] * m2[2][2]);
}


template <class T>
T Determinant(const Matrix33t<T>& m)
{
    return
        m.mat[0][0] * (m.mat[1][1] * m.mat[2][2] - m.mat[2][1] * m.mat[1][2]) -
        m.mat[1][0] * (m.mat[0][1] * m.mat[2][2] - m.mat[2][1] * m.mat[0][2]) +
        m.mat[2][0] * (m.mat[0][1] * m.mat[1][2] - m.mat[1][1] * m.mat[0][2]);
}

template <class T>
//
// Invert the matrix m, but return the determinant separately rather than
// dividing through, i.e. return the numerators in the result matrix res,
// and the single common denominator, det, separately.
//
void Invert_rational_terms(const Matrix33t<T>& m,
                           Matrix33t<T>* res, T* det)
{
  // 9 floating-point ops
  T d01d12md11d02 = m.mat[0][1] * m.mat[1][2] - m.mat[1][1] * m.mat[0][2];
  T d01d22md21d02 = m.mat[0][1] * m.mat[2][2] - m.mat[2][1] * m.mat[0][2];
  T d11d22md21d12 = m.mat[1][1] * m.mat[2][2] - m.mat[2][1] * m.mat[1][2];

  // 5 floating-point ops
  *det =
    m.mat[0][0] * d11d22md21d12 -
    m.mat[1][0] * d01d22md21d02 +
    m.mat[2][0] * d01d12md11d02;

  // 19 floating-point ops
  res->set(d11d22md21d12, -d01d22md21d02, d01d12md11d02,
	   m.mat[2][0] * m.mat[1][2] - m.mat[1][0] * m.mat[2][2],
	   m.mat[0][0] * m.mat[2][2] - m.mat[2][0] * m.mat[0][2],
	   m.mat[1][0] * m.mat[0][2] - m.mat[0][0] * m.mat[1][2],
	   m.mat[1][0] * m.mat[2][1] - m.mat[2][0] * m.mat[1][1],
	   m.mat[2][0] * m.mat[0][1] - m.mat[0][0] * m.mat[2][1],
	   m.mat[0][0] * m.mat[1][1] - m.mat[1][0] * m.mat[0][1]);

  // 33 total floating-point ops
}

template <class T>
int Invert(const Matrix33t<T>& m, Matrix33t<T>* res)
{
  T det;

  // 33 floating-point ops
  Invert_rational_terms(m, res, &det);

  if (0.0 == det) return 0;

  // 1 floating-point op
  T det_inv = 1.0 / det;

  // 9 floating-point ops
  *res *= det_inv;

  // 43 total floating-point ops

  return 1;
}

template <class T>
void Transpose(const Matrix33t<T>& m, Matrix33t<T>* res)
{
    for (int i=0; i<3; ++i) {
        (*res)[i][0] = m[0][i];
        (*res)[i][1] = m[1][i];
        (*res)[i][2] = m[2][i];
    }
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Matrix44t */

template<class T>
const int Matrix44t<T>::MATSIZE = 16*sizeof(T);


template <class T1, class T2>
Vector4t<T2> operator*(const Matrix44t<T1>&m, const Vector4t<T2>&v)
{
    return Vector4t<T2>(m[0][0] * v[0] + 
                        m[0][1] * v[1] +
                        m[0][2] * v[2] +
                        m[0][3] * v[3],

                        m[1][0] * v[0] +
                        m[1][1] * v[1] +
                        m[1][2] * v[2] +
                        m[1][3] * v[3],

                        m[2][0] * v[0] +
                        m[2][1] * v[1] +
                        m[2][2] * v[2] +
                        m[2][3] * v[3],

                        m[3][0] * v[0] +
                        m[3][1] * v[1] +
                        m[3][2] * v[2] +
                        m[3][3] * v[3]);
}


template <class T1, class T2>
Vector4t<T2> operator*(const Vector4t<T2>&v, const Matrix44t<T1>&m)
{
  return Vector4t<T2>(m[0][0] * v[0] + 
                      m[1][0] * v[1] +
                      m[2][0] * v[2] +
                      m[3][0] * v[3],

                      m[0][1] * v[0] +
                      m[1][1] * v[1] +
                      m[2][1] * v[2] +
                      m[3][1] * v[3],

                      m[0][2] * v[0] +
                      m[1][2] * v[1] +
                      m[2][2] * v[2] +
                      m[3][2] * v[3],

                      m[0][3] * v[0] +
                      m[1][3] * v[1] +
                      m[2][3] * v[2] +
                      m[3][3] * v[3]);
}


template <class T1, class T2>
Vector4t<T2> Transform(const Matrix44t<T1>&m, const Vector3t<T2>&v)
{
    return Vector4t<T2>(m[0][0] * v[0] + 
                        m[0][1] * v[1] +
                        m[0][2] * v[2] +
                        m[0][3],

                        m[1][0] * v[0] +
                        m[1][1] * v[1] +
                        m[1][2] * v[2] +
                        m[1][3],

                        m[2][0] * v[0] +
                        m[2][1] * v[1] +
                        m[2][2] * v[2] +
                        m[2][3],

                        m[3][0] * v[0] +
                        m[3][1] * v[1] +
                        m[3][2] * v[2] +
                        m[3][3]);
}


template <class T1, class T2>
Vector4t<T2> Transform(const Vector3t<T2>&v, const Matrix44t<T1>&m)
{
  return Vector4t<T2>(m[0][0] * v[0] + 
                      m[1][0] * v[1] +
                      m[2][0] * v[2] +
                      m[3][0],

                      m[0][1] * v[0] +
                      m[1][1] * v[1] +
                      m[2][1] * v[2] +
                      m[3][1],

                      m[0][2] * v[0] +
                      m[1][2] * v[1] +
                      m[2][2] * v[2] +
                      m[3][2],

                      m[0][3] * v[0] +
                      m[1][3] * v[1] +
                      m[2][3] * v[2] +
                      m[3][3]);
}


template <class T1, class T2>
Matrix44t<T1> operator*(const Matrix44t<T1>& m1, 
                        const Matrix44t<T2>& m2)
{
    return Matrix44t<T1>(m1[0][0] * m2[0][0] + 
                         m1[0][1] * m2[1][0] +
                         m1[0][2] * m2[2][0] +
                         m1[0][3] * m2[3][0],

                         m1[0][0] * m2[0][1] + 
                         m1[0][1] * m2[1][1] +
                         m1[0][2] * m2[2][1] +
                         m1[0][3] * m2[3][1],

                         m1[0][0] * m2[0][2] + 
                         m1[0][1] * m2[1][2] +
                         m1[0][2] * m2[2][2] +
                         m1[0][3] * m2[3][2],

                         m1[0][0] * m2[0][3] + 
                         m1[0][1] * m2[1][3] +
                         m1[0][2] * m2[2][3] +
                         m1[0][3] * m2[3][3],

                         m1[1][0] * m2[0][0] + 
                         m1[1][1] * m2[1][0] +
                         m1[1][2] * m2[2][0] +
                         m1[1][3] * m2[3][0],

                         m1[1][0] * m2[0][1] + 
                         m1[1][1] * m2[1][1] +
                         m1[1][2] * m2[2][1] +
                         m1[1][3] * m2[3][1],

                         m1[1][0] * m2[0][2] + 
                         m1[1][1] * m2[1][2] +
                         m1[1][2] * m2[2][2] +
                         m1[1][3] * m2[3][2],

                         m1[1][0] * m2[0][3] + 
                         m1[1][1] * m2[1][3] +
                         m1[1][2] * m2[2][3] +
                         m1[1][3] * m2[3][3],

                         m1[2][0] * m2[0][0] + 
                         m1[2][1] * m2[1][0] +
                         m1[2][2] * m2[2][0] +
                         m1[2][3] * m2[3][0],

                         m1[2][0] * m2[0][1] + 
                         m1[2][1] * m2[1][1] +
                         m1[2][2] * m2[2][1] +
                         m1[2][3] * m2[3][1],

                         m1[2][0] * m2[0][2] + 
                         m1[2][1] * m2[1][2] +
                         m1[2][2] * m2[2][2] +
                         m1[2][3] * m2[3][2],

                         m1[2][0] * m2[0][3] + 
                         m1[2][1] * m2[1][3] +
                         m1[2][2] * m2[2][3] +
                         m1[2][3] * m2[3][3],

                         m1[3][0] * m2[0][0] + 
                         m1[3][1] * m2[1][0] +
                         m1[3][2] * m2[2][0] +
                         m1[3][3] * m2[3][0],

                         m1[3][0] * m2[0][1] + 
                         m1[3][1] * m2[1][1] +
                         m1[3][2] * m2[2][1] +
                         m1[3][3] * m2[3][1],

                         m1[3][0] * m2[0][2] + 
                         m1[3][1] * m2[1][2] +
                         m1[3][2] * m2[2][2] +
                         m1[3][3] * m2[3][2],

                         m1[3][0] * m2[0][3] + 
                         m1[3][1] * m2[1][3] +
                         m1[3][2] * m2[2][3] +
                         m1[3][3] * m2[3][3]);

}


template<class T>
int Invert(const Matrix44t<T>& m, Matrix44t<T>* mo)
{
    int i,r,c;        // Inverts matrix of arbitrary size N using
    int bigrow;       // Gauss-Jordan elimination with partial pivoting,  
    T big,d;          // inverse returned in mo.
    T *mi[4];         // Beware : nearly singular matrices are more likely  
    T *tmp;           // to fail in single precision than in double precision,  
    const int N=4;    // and double precision isn't bombproof either....
    Matrix44t<T> &Im=*mo;
    Matrix44t<T> mt(m);

    Im.setIdentity();

    for (i=0;i<N;i++)         // set row pointers for swapping
        mi[i] = mt[i];

    for (c=0;c<N;c++) // start column sweep
    {
        big=0.0;
        for (r=c;r<N;r++)  // find candidate partial pivot element
	{
            if (mi[r][c]>big)
	    {
                big=fabs(mi[r][c]);
                bigrow=r;
	    }
	}

        if (bigrow>c)       // pivot element not on diagonal: swap rows
	{
            tmp=mi[c];
            mi[c]=mi[bigrow];
            mi[bigrow]=tmp;
            tmp=Im[c];
            Im[c]=Im[bigrow];
            Im[bigrow]=tmp;
	}

        if (0.0==mi[c][c])   // problems?
	{
            cerr << "singular matrix: bailing!"; // something more graceful, perhaps?
            return 0;
	}

        d = 1.0/mi[c][c];    // normalize row[c] so diagonal element is unity
        for (i=0;i<N;i++)
	{
            mi[c][i]*=d;
            Im[c][i]*=d;
	}

        for (r=0;r<N;r++)   // zero the off-diagonal members of col[c]
            if (r!=c)
            {
                d=mi[r][c];
                for (i=0;i<N;i++)
                {
                    mi[r][i] -= d*mi[c][i];
                    Im[r][i] -= d*Im[c][i];
                }
            } 
    } // end column sweep  

    return 1;
}


/*
*	Invert a resticted 4x4 matrix.  4th column must be 0, 0, 0, 1
*	Based on code by Doug Kerr.
*       m and res may or may not be the same matrix.
*/
template <class T>
void restrictedInvert(const Matrix44t<T>&m, Matrix44t<T>*res)
{
    Matrix44t<T> &r=*res;
    Matrix33t<T> c;       /* matrix of 3x3 cofactors */
    T d;                  /* determinant of the 3x3 */
    register int i, j;

    /*
     * compute the 3x3 cofactors
     */
    c[0][0] =  (m[1][1]*m[2][2] - m[2][1]*m[1][2]);
    c[0][1] = -(m[1][0]*m[2][2] - m[2][0]*m[1][2]);
    c[0][2] =  (m[1][0]*m[2][1] - m[2][0]*m[1][1]);

    c[1][0] = -(m[0][1]*m[2][2] - m[2][1]*m[0][2]);
    c[1][1] =  (m[0][0]*m[2][2] - m[2][0]*m[0][2]);
    c[1][2] = -(m[0][0]*m[2][1] - m[2][0]*m[0][1]);

    c[2][0] =  (m[0][1]*m[1][2] - m[1][1]*m[0][2]);
    c[2][1] = -(m[0][0]*m[1][2] - m[1][0]*m[0][2]);
    c[2][2] =  (m[0][0]*m[1][1] - m[1][0]*m[0][1]);

    /*
     * compute the 3x3 determinant
     */
    d = 0.;
    for( j=0; j<3; j++ )
        d += m[0][j] * c[0][j];

    /*
     * compute the 3x3 inverse
     */
    T mp[3];
    for( i=0; i<3; i++ ) {
        for( j=0; j<3; j++ )
            r[i][j] = c[j][i] / d;
        mp[i] = -m[3][i];
        r[i][3] = 0;
    }

    r[3][0] = mp[0]*r[0][0] + mp[1]*r[1][0] + mp[2]*r[2][0];
    r[3][1] = mp[0]*r[0][1] + mp[1]*r[1][1] + mp[2]*r[2][1];
    r[3][2] = mp[0]*r[0][2] + mp[1]*r[1][2] + mp[2]*r[2][2];
    r[3][3] = 1;
}


template <class T>
void Transpose(const Matrix44t<T>& m, Matrix44t<T>* res)
{
    for (int i=0; i<4; ++i) {
        res->mat[i][0] = m[0][i];
        res->mat[i][1] = m[1][i];
        res->mat[i][2] = m[2][i];
        res->mat[i][3] = m[3][i];
    }
}


template<class T>
void Matrix44t<T>::translate(const T &x,const T &y,const T &z)
{
    float (*m)[4] = this->mat;
    m[3][0] = x*m[0][0] + y*m[1][0] + z*m[2][0] + m[3][0];
    m[3][1] = x*m[0][1] + y*m[1][1] + z*m[2][1] + m[3][1];
    m[3][2] = x*m[0][2] + y*m[1][2] + z*m[2][2] + m[3][2];
    m[3][3] = x*m[0][3] + y*m[1][3] + z*m[2][3] + m[3][3];
}

template<class T>
Matrix44t<T> Matrix44t<T>::rotated(char axis,const T &angle) const
{
    Matrix44t<T> rotmat(Matrix44t<T>::identity);
    int left, right, top, bottom;
    float tangle;

    left = (axis == 'x' ? 1 : 0);
    right = (axis == 'z' ? 1 : 2);
    top = (axis == 'x' ? 1 : 0);
    bottom = (axis == 'z' ? 1 : 2);
    rotmat[top][left] = cos((double)angle);
    rotmat[top][right] = sin((double)angle);
    if (axis == 'y')
        rotmat[top][right] = -rotmat[top][right];
    rotmat[bottom][left] = -rotmat[top][right];
    rotmat[bottom][right] = rotmat[top][left];

    return (rotmat * (*this));
}

template<class T>
void Matrix44t<T>::scale(const T &x,const T &y,const T &z)
{
    for (int i=0; i<4; ++i) {
        mat[0][i] = x * mat[0][i];
        mat[1][i] = y * mat[1][i];
        mat[2][i] = z * mat[2][i];
    }
}


template<class T>
Matrix44t<T> Matrix44t<T>::scaled(const T &x,const T &y,const T &z) const
{
    Matrix44t<T> m;

    for (int i=0; i<4; ++i) {
        m[0][i] = x * mat[0][i];
        m[1][i] = y * mat[1][i];
        m[2][i] = z * mat[2][i];
        m[3][i] = mat[3][i];
    }
    return m;
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

static void _LinAlgebra_force_instantiation_hacks()
{
  abort();

  Vector3f v3f1(Xaxis3f), v3f2(Yaxis3f), v3f3;
  v3f3 = v3f1 * v3f2;

  Vector4f v4f1(Xaxis4f), v4f2(Yaxis4f), v4f3;
  v4f3.cross3(v4f1,v4f2);

  Vector3d v3d1(Xaxis3d), v3d2(Yaxis3d), v3d3;
  v3d3 = v3d1 * v3d2;

  Vector4d v4d1(Xaxis4d), v4d2(Yaxis4d), v4d3;
  v4d3.cross3(v4d1,v4d2);

  Matrix33f m33f(IdentMat33f);
  Matrix33f m33f2 = m33f.inverse();
  m33f2 = Matrix33f::identity;

  Matrix44f m44f(IdentMat44f);
  Matrix44f m44f2 = m44f.inverse();
  m44f2 = Matrix44f::identity;
  m44f.restrictedInvert();

  Matrix33d m33d(IdentMat33d);
  Matrix33d m33d2 = m33d.inverse();
  m33d2 = Matrix33d::identity;

  Matrix44d m44d(IdentMat44d);
  Matrix44d m44d2 = m44d.inverse();
  m44d2 = Matrix44d::identity;
  m44d.restrictedInvert();

  _LinAlgebra_force_instantiation_hacks();
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


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

* No Subject
@ 1998-09-11 21:26 Martin Habbecke
  0 siblings, 0 replies; 97+ messages in thread
From: Martin Habbecke @ 1998-09-11 21:26 UTC (permalink / raw)
  To: egcs-bugs

Trying to compile the kdelibs-package of the K Desktop Environment (KDE) the 
following bug occured:

> g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdecore -I../kfile -I/usr/local/qt/include -fno-rtti -fno-exceptions -c -DPIC kpopmenu.cpp

/usr/local/qt/include/qtextstream.h: In function `class QTSManip setw(int)':
In file included from ../kdecore/kconfigdata.h:42,
                 from ../kdecore/kconfigbase.h:74,
                 from ../kdecore/kconfig.h:53,
                 from ../kdecore/kapp.h:183,
                 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'.

Compiler:
Reading specs from /usr/local/egcs/lib/gcc-lib/alpha-dec-osf4.0d/egcs-2.91.57/s
pecs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

The compiler was configured with:
configure --prefix=/usr/local/egcs --enable-shared --enable-haifa 
--without-gnu-ld --without-gnu-as

System:
Digital Alpha-Server 1000
Digital Unix V4.0D

I attached the output of g++ -E to the mail. Hope somebody can help !

greets

Martin


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

* No Subject
@ 1998-08-26  2:31 hanwen
  0 siblings, 0 replies; 97+ messages in thread
From: hanwen @ 1998-08-26  2:31 UTC (permalink / raw)
  To: egcs

begin 644 b.cc.gz
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
0R%)0I(/C_Q^\Y2^4FE4"`('D
`
end


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

* No Subject
@ 1998-08-20  6:33 Elmer Joandi
  0 siblings, 0 replies; 97+ messages in thread
From: Elmer Joandi @ 1998-08-20  6:33 UTC (permalink / raw)
  To: egcs-bugs

RH 5.1 here


If you want to build the programm do
  make mindseye
If you want to build the documentation do
  make doc-all
or
  make doc-html
  make doc-tex
  make doc-ps
[elmer@www MindsEye]$ make mindseye
cd matrix; make
make[1]: Entering directory `/home/elmer/MindsEye/matrix'
(cd src; make)
make[2]: Entering directory `/home/elmer/MindsEye/matrix/src'
rm -f vector.o
c++ -c -g -O2 -fno-implicit-templates     -I/usr/local/include
-I../include vector.cc
rm -f matrixMat.o
c++ -c -g -O2 -fno-implicit-templates     -I/usr/local/include
-I../include matrixMat.cc
rm -f list.o
c++ -c -g -O2 -fno-implicit-templates     -I/usr/local/include
-I../include list.cc
rm -f libmatrix.a
ar scql libmatrix.a barray.o  barray2d.o  error.o  cvector.o  image.o
matrix.o  mlapack.o    specialType.o   vector.o   matrixMat.o list.o
make[2]: Leaving directory `/home/elmer/MindsEye/matrix/src'
make[1]: Leaving directory `/home/elmer/MindsEye/matrix'
cd nurbs; make
make[1]: Entering directory `/home/elmer/MindsEye/nurbs'
(cd src; make)
make[2]: Entering directory `/home/elmer/MindsEye/nurbs/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:3191: Internal compiler error.
nurbsS.cc:3191: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[2]: *** [nurbsS.o] Error 1
make[2]: Leaving directory `/home/elmer/MindsEye/nurbs/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/elmer/MindsEye/nurbs'
make: *** [libnurbs] Error 2   



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

* No Subject
@ 1998-07-28  7:59 Ozgur Demir
  0 siblings, 0 replies; 97+ messages in thread
From: Ozgur Demir @ 1998-07-28  7:59 UTC (permalink / raw)
  To: egcs-bugs

g++ -c -I/usr/local/qt/include -I/usr/X11R6/include -O2
-fno-strength-reduce -O2 -fno-strength-reduce -fPIC -o
widgets/qscrollbar.o widgets/qscrollbar.cpp
widgets/qscrollbar.cpp: In method `void
QScrollBar_Private::drawControls(unsigned int, unsigned int, class
QPainter *) const':
widgets/qscrollbar.cpp:868: Internal compiler error.


Ocd



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

* No Subject
@ 1998-07-26 14:40 Rich Lee
  0 siblings, 0 replies; 97+ messages in thread
From: Rich Lee @ 1998-07-26 14:40 UTC (permalink / raw)
  To: egcs-bugs

Code: (which is compiled correctly by KCC.)
-----------------------------------------
#define ITER  3

template < class T >
inline T playee(T& a)
{
  return a + 1;
}

double player( double a, double (*f)(double&) )
{
  for (int i=0; i<ITER; i++)  a = f(a);
  return a + 1;
}


int main()
{
  double a = 1.0;
  double b = player(a, playee<double>);
  return 0;
}

-----------------------------------------
compiling error message:

 Internal compiler error 980715.

-----------------------------------------

g++ --version

egcs-2.91.51




--Rich


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

* No Subject
@ 1998-07-19  6:03 Alexander Favorov
  0 siblings, 0 replies; 97+ messages in thread
From: Alexander Favorov @ 1998-07-19  6:03 UTC (permalink / raw)
  To: egcs-bugs

Hi!
I found a very special effect in EGCS 1.0.2. for CYGWIN b19 on NT4.0.

Such a code:
/*************************************/
#include <stdio.h>
#include <stdlib.h>
main()
{
	char buf;
    buf='\13';
    printf ("Char value is %3i",(int)buf);	
    return 0;
}
/*************************************/

gives :
Char value is  11

All conversions with '\nnn' works in such a strange way.
Another unconvinient thing is that gets() leaves \13 before
end zero. Of course, we can treat only \10 as end-of-line,
but it makes some problems when reading Win/Dos texts...

                With best regards, 
                                Alexander.



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

* No Subject
@ 1998-07-17 13:27 David C Binderman
  0 siblings, 0 replies; 97+ messages in thread
From: David C Binderman @ 1998-07-17 13:27 UTC (permalink / raw)
  To: egcs-bugs

Hello there,

For the egcs-980715 g++ compiler on Linux/Alpha, I got the following
crashes by running the G++ test suite

./g++.old-deja/g++.gb/scope10.C:9: Error: Please submit a full bug report
to `egcs-bugs@cygnus.com'.

./g++.old-deja/g++.mike/p4104.C:14: Error: Please submit a full bug
report to `egcs-bugs@cygnus.com'.

./g++.old-deja/g++.mike/p5611.C:11: Error: Please submit a full bug
report to `egcs-bugs@cygnus.com'.

./g++.old-deja/g++.pt/explicit69.C:2: Error: Please submit a full bug
report to `egcs-bugs@cygnus.com'.

./g++.old-deja/g++.robertl/eb133.C:10: Error: Please submit a full bug
report to `egcs-bugs@cygnus.com'.

./g++.old-deja/g++.robertl/eb56.C:8: Error: Please submit a full bug
report to `egcs-bugs@cygnus.com'.

Regards

David C Binderman MSc BSc	+44 1293 534847		dcb@pncl.co.uk



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

* No Subject
  1998-07-05 10:24 root
@ 1998-07-05 18:59 ` Horst von Brand
  0 siblings, 0 replies; 97+ messages in thread
From: Horst von Brand @ 1998-07-05 18:59 UTC (permalink / raw)
  To: root; +Cc: egcs-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 737 bytes --]

root <root@pc2.adsl954.tku.edu.tw> said:
[It is a _very_ bad habit to work as root...]
> when i compile this program , egcs tell me "internal compiler error"
> -------------------------------------------------------------------
> 
> #include <iostream.h>
> 
> void main(void)
> {
>    char * const ptr = "A"; // ptr is constan , *ptr is not constan
>    
>    *ptr = 'B';
> 
> }

egcs-19980628, i586, linux-2.1.108, glibc-2.0.94, binutils-2.9.1.0.7:

[vonbrand@sleipnir /tmp]$ c++ tst.cc -o tst
[vonbrand@sleipnir /tmp]$ ./tst
Segmentation fault

(This was to be expected ;-)
-- 
Horst von Brand                             vonbrand@sleipnir.valparaiso.cl
Casilla 9G, Viña del Mar, Chile                               +56 32 672616



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

* No Subject
@ 1998-07-05 10:24 root
  1998-07-05 18:59 ` Horst von Brand
  0 siblings, 1 reply; 97+ messages in thread
From: root @ 1998-07-05 10:24 UTC (permalink / raw)
  To: egcs-bugs

when i compile this program , egcs tell me "internal compiler error"
-------------------------------------------------------------------

#include <iostream.h>

void main(void)
{
   char * const ptr = "A"; // ptr is constan , *ptr is not constan
   
   *ptr = 'B';

}


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

* No Subject
@ 1998-06-17 13:25 David C Binderman
  0 siblings, 0 replies; 97+ messages in thread
From: David C Binderman @ 1998-06-17 13:25 UTC (permalink / raw)
  To: egcs-bugs

Hello there,

The following code used to not compile, but on egcs-980615 it does.

void
function() {
	int var = 0;
	return (void) ++var;
}

I think that this code should not be compilable, and would like to find
out which bit of the ISO spec says this is ok.

I've checked with other C++ compilers, and they don't compile the code
either.

Regards

David Binderman MSc BSc    +44 1293 534 847       dcb_AVOID_JUNK_MAIL@pncl.co.uk
There is no substitute for skill, taste and experience when programming
 - Dr Stroustrup, inventor of C++



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

* No Subject
@ 1998-06-08  7:05 Niall Smart
  0 siblings, 0 replies; 97+ messages in thread
From: Niall Smart @ 1998-06-08  7:05 UTC (permalink / raw)
  To: egcs-bugs

~s
~h



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

* No Subject
@ 1998-05-23 14:47 Michael P. Gorse
  0 siblings, 0 replies; 97+ messages in thread
From: Michael P. Gorse @ 1998-05-23 14:47 UTC (permalink / raw)
  To: egcs-bugs

Egcs g++ 2.90.28 seems to have a problem with operator functions being
declared as friends of classes.  I was trying to compile a program (from the
Edinburg Speech Tools Library) with the following definitions:
class EST_Pathname : public EST_String {
...
public:
...
  friend EST_Pathname operator + (const EST_Pathname p, const EST_Pathname
addition) {return append(p, addition); };
...
};

EST_String, which was apparently implemented as a string-handling class since
not all c++ compilers have such a class, contains the following functions:
    friend EST_String operator + (const char *a, const EST_String &b);
    friend EST_String operator + (const EST_String &a, const EST_String &b);
    friend EST_String operator + (const EST_String &a, const char *b);
(these functions are defined in a separate source file; I won't bother sending
any of them since I don't think that they're important)

g++ gives an internal compiler error on the following:
       if (check_for_directories && 
           stat(this->as_directory() + name, &buf)==0 && // *here*
           (buf.st_mode & S_IFDIR))
this->as_directory() returns an object of type EST_Path, and name is of type
EST_Path.

I tried moving the EST_Path operator+ function declaration outside the class,
and it did not solve the problem, but the program compiled when I made
operator+ a member of EST_Path rather than a friend, like so:
  EST_Pathname operator + (const EST_Pathname addition) {return append(*this,
addition); };

Let me know if there is anything else you need to try to track this down...


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

* No Subject
  1998-05-18 14:14 John Wehle
@ 1998-05-18 14:19 ` Ian Lance Taylor
  0 siblings, 0 replies; 97+ messages in thread
From: Ian Lance Taylor @ 1998-05-18 14:19 UTC (permalink / raw)
  To: john; +Cc: egcs-bugs, law, wilson

   Date: Mon, 18 May 1998 17:13:51 -0400
   From: john@feith.com (John Wehle)

   > I think feature tests are always better than version number tests.  I
   > think version number tests are a last resort.  That's because you
   > don't actually care what version number you are using.  You only care
   > whether a particular feature works.  You might be using some weird
   > mutant gas which thinks that it's version 970813 or something (and
   > believe me, there are plenty of such mutants out there).

   Is merely checking that:

	   .p2align 4

   and:

	   .p2align 4,,7

   assemble sufficient or should nm be used to ensure that the expected
   results occurred (assuming that a working known nm is available which
   uses "standard" arguments and has a "standard" output format).  My
   concern is that some non-gas assemblers may assemble this fine, however
   they may use .p2align to mean something completely different.

Personally, I wouldn't worry about any assembler using .p2align to
mean anything else.  We have to make some assumptions.  After all, we
don't test whether getrlimit, for example, actually gets resource
limits; we just assume that any function named getrlimit does the
right thing.

So I would just test whether it assembles.

If we ever run into trouble, we can change it.

Ian


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

* No Subject
@ 1998-05-18 14:14 John Wehle
  1998-05-18 14:19 ` Ian Lance Taylor
  0 siblings, 1 reply; 97+ messages in thread
From: John Wehle @ 1998-05-18 14:14 UTC (permalink / raw)
  To: ian; +Cc: egcs-bugs, law, wilson

> I think feature tests are always better than version number tests.  I
> think version number tests are a last resort.  That's because you
> don't actually care what version number you are using.  You only care
> whether a particular feature works.  You might be using some weird
> mutant gas which thinks that it's version 970813 or something (and
> believe me, there are plenty of such mutants out there).

Is merely checking that:

	.p2align 4

and:

	.p2align 4,,7

assemble sufficient or should nm be used to ensure that the expected
results occurred (assuming that a working known nm is available which
uses "standard" arguments and has a "standard" output format).  My
concern is that some non-gas assemblers may assemble this fine, however
they may use .p2align to mean something completely different.

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------



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

* No Subject
@ 1998-04-21  5:15 Johannes Leebmann
  0 siblings, 0 replies; 97+ messages in thread
From: Johannes Leebmann @ 1998-04-21  5:15 UTC (permalink / raw)
  To: egcs-bugs

Hallo EGCS-team!

We tried several times to install egcs-1.0.2 on a sun solaris2.4
host. 

The compilation ends with:

Links are now set up to build a native compiler for 
sparc-sun-solaris2.4

While building egcs-1.0.2 with the command *make*
the error...

gcc  -o makeinfo makeinfo.o multi.o -L../libtxi -ltxi 
ld: elf error: file ../libtxi/libtxi.a: unable to locate archive symbol table: Request error: offset out of range 
ld: fatal: File processing errors.  No output written to makeinfo
collect2: ld returned 1 exit status
make[2]: *** [makeinfo] Error 1


...was reported.


We cant find any way to gon on. Please try to help us to
take the next steps. 

With our sincere thanks Johannes Leebmann.


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

* No Subject
@ 1998-04-18  7:52 Bernd Schellhaass
  0 siblings, 0 replies; 97+ messages in thread
From: Bernd Schellhaass @ 1998-04-18  7:52 UTC (permalink / raw)
  To: egcs-bugs

make[2]: Entering directory `/home/xchaos1/soft/egcs-980411/objdir/gcc'
/home/xchaos1/soft/egcs-980411/objdir/gcc/xgcc -B/home/xchaos1/soft/egcs-980411/
objdir/gcc/ -O2  -DCROSS_COMPILE -DIN_GCC    -g -O2 -I./include  -fPIC -g1  -DIN
_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions   -I. -I/home/xchaos1/soft/egcs-9
80411/gcc -I/home/xchaos1/soft/egcs-980411/gcc/config \
  -c /home/xchaos1/soft/egcs-980411/gcc/cp/new2.cc -DL_op_vnew -o opvnew.o
/home/xchaos1/soft/egcs-980411/gcc/cp/new2.cc:37: Internal compiler error 374.
/home/xchaos1/soft/egcs-980411/gcc/cp/new2.cc:37: Please submit a full bug repor
t to `egcs-bugs@cygnus.com'.
make[2]: *** [opvnew.o] Error 1
make[2]: Leaving directory `/home/xchaos1/soft/egcs-980411/objdir/gcc'
make[1]: *** [libgcc2.a] Error 1
make[1]: Leaving directory `/home/xchaos1/soft/egcs-980411/objdir/gcc'
make: *** [cross] Error 2




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

* No Subject
@ 1998-04-17  7:54 harry eaton
  0 siblings, 0 replies; 97+ messages in thread
From: harry eaton @ 1998-04-17  7:54 UTC (permalink / raw)
  To: egcs-bugs

Sorry I can't seem to prodcue a smaller example, but I get the message:

dialog.c: In function `AddButtons':
dialog.c:170: internal error--insn does not satisfy its constraints:
(insn 310 110 311 (set (reg:SI 0 r0)
        (high:SI (symbol_ref:SI ("*.LC3")))) 380 {elf_high} (nil)
    (nil))
gcc: Internal compiler error: program cc1 got fatal signal 11
make: *** [dialog.o] Error 1

When I compile ( ftp://ftp.linuxppc.org/users/harry/PCB/pcb-1.6.2.B.tgz )
under linux-ppc.  The gziped distribution is about 1/2 Meg.
Simply untar, cd into the pcb-1.6.2.BETA directory, type "xmkmf -a",
then cd into src then make.

It only occurs with -O2 (and higher).  I compiled egcs-1.0.2 with
--enable-haifa, but it might do the same without this since I haven't
tried it.  I haven't tried other architectures either - perhaps they are
better (or not, who knows).

harry




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

* No Subject
@ 1998-04-08  9:51 Alex Solomonoff
  0 siblings, 0 replies; 97+ messages in thread
From: Alex Solomonoff @ 1998-04-08  9:51 UTC (permalink / raw)
  To: egcs-bugs

/* -----------------

uname -a: Linux localhost 2.0.32 #1 Wed Nov 19 00:46:45 EST 1997 i586 unknown
OS version: Red Hat 5.0, glibc2.0.5
compiler version: egcs 1.0.2

[asolomon@localhost examples]$ make gcd
/usr/local/egcs102/bin/g++ -Wall -pedantic -ansi -g -o gcd gcd.cc
gcd.cc:22: Internal compiler error.
gcd.cc:22: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [gcd] Error 1

 -------------------- */


#include <iostream.h>

template <int i, int j>
int gcd() { return gcd<j, i%j>(); }

template <int i>
template <> int gcd<i, 0>() { return i; }

int
main()
{
	cout << gcd<4, 4>() << endl;
	cout << gcd<16, 12>() << endl;
	cout << gcd<5, 4>() << endl;

	return 0;
}


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

* No Subject
@ 1998-04-07 18:45 Alexander Samoilov
  0 siblings, 0 replies; 97+ messages in thread
From: Alexander Samoilov @ 1998-04-07 18:45 UTC (permalink / raw)
  To: egcs-bugs

Dear developers,
Below is the bug report

Reading specs from /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.21/specs
gcc version egcs-2.91.21 980404 (gcc2 ss-980401 experimental)
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.21/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTION
S -Di386 -Di586 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__ -D__i586__ -Asystem(unix) -Acpu(i386) -Amachine(i386) t.cc /tmp/cca01029.ii
GNU CPP version egcs-2.91.21 980404 (gcc2 ss-980401 experimental) (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-gnulibc1/include
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.21/include
 /usr/include
End of search list.
 /usr/local/egcs/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.91.21/cc1plus /tmp/cca01029.ii -quiet -dumpbase t.cc -version -o /tmp/cca01029.s
GNU C++ version egcs-2.91.21 980404 (gcc2 ss-980401 experimental) (i586-pc-linux-gnulibc1) compiled by GNU C version egcs-2.91.21 980404 (gcc2 ss-980401 experimental).
t.cc: In method `int List<int>::length<int>() const':
t.cc:32: Internal compiler error.
t.cc:32: Please submit a full bug report to `egcs-bugs@cygnus.com'.


And the file t.cc:
---------------------------------------------------

template <class T> class List;
 
template <class T>
class ListIterator
{
public:
     
    
    ListIterator (const List<T>& aList);
     
     
    ListIterator (const ListIterator<T>& rhs);


    bool operator! () const;

     
    ListIterator<T>& operator++ ();

    ListIterator<T> operator++ (int);

};

template <class T>
class List
{
public:
    
    int length () const {
        int len = 0;
        for (ListIterator<T> li(*this); li; ++li)
            len++;
        return len;
    }
};

void test(List<int>& vals)
{
    int val = vals.length();
}


This example has been extracted from the BOXLIB library
( http://seesar.lbl.gov/ccse/research/software/ ...)

egcs snapshot 1998-03-02 and earlier compiles this example ok.

Regards

Alexander Samoilov



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

* No Subject
  1998-04-01 21:12 Rahul Sahadevan
@ 1998-04-06 19:10 ` Jim Wilson
  0 siblings, 0 replies; 97+ messages in thread
From: Jim Wilson @ 1998-04-06 19:10 UTC (permalink / raw)
  To: Rahul Sahadevan; +Cc: egcs-bugs

	I get an "illegal instruction" when I run the following program
	after compiling it with egcs-1.0.2 on a sparc running solaris 2.4. ( It
	works normally under an i586 running redhat-4.2 & egcs-1.0.2 ( compiled
	on both machine as gcc -o program program.c )

The program uses builtin_apply_args/builtin_apply/builtin_return.  These
are builtins for gcc internal use only, and are not safe for use in user
programs.  They only place where they are intended to be used are in the
objective C runtime library (and frankly, they shouldn't even be used there
either).

The `unimp' instruction is part of the sparc calling convention.  A call
to a function returning a structure must be followed by an unimp instruction.
I think the unimp is there so as to make the use of these functions in the
objective C runtime library work on the sparc.

A much better way to write your example is to use vprintf instead of printf.

Jim


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

* No Subject
@ 1998-04-01 21:12 Rahul Sahadevan
  1998-04-06 19:10 ` Jim Wilson
  0 siblings, 1 reply; 97+ messages in thread
From: Rahul Sahadevan @ 1998-04-01 21:12 UTC (permalink / raw)
  To: egcs-bugs

Hi,
	I get an "illegal instruction" when I run the following program
after compiling it with egcs-1.0.2 on a sparc running solaris 2.4. ( It
works normally under an i586 running redhat-4.2 & egcs-1.0.2 ( compiled
on both machine as gcc -o program program.c )

-----------------------------------------------------------------------

/* Relevant part from:   gcc -E program.c   */

extern int	printf(const char *, ...);

typedef void (*builtin_func)();

int myprintf( char *format, ... ) {
  void *ARGS, *RESULT;
  ARGS = __builtin_apply_args();
  RESULT = __builtin_apply( (builtin_func)&printf, ARGS, 64 );
  __builtin_return( RESULT );
}

main() {
  myprintf( "%s: %d\n", "Hello world", 10 );
}

-----------------------------------------------------------------------

Using "dis" to disassemble  the binary shows:
        10ac8:  40 00 44 2c        call         printf
        10acc:  01 00 00 00        nop    
        10ad0:  00 00 0f ff        unimp        0xfff
				^^^^^^^^^^^^^^^^^^^^^^^ ??? Any ideas?

-----------------------------------------------------------------------

Output of "gcc -v"
Reading specs from /opt/EGCSgcc/lib/gcc-lib/sparc-sun-solaris2.4/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)

-----------------------------------------------------------------------

Output of "uname -a"
SunOS bhrigu 5.4 Generic_101945-56 sun4m sparc

-----------------------------------------------------------------------

egcs-1.0.2 was configured as:
$SOMEDIR/configure --prefix=/opt/EGCSgcc --enable-shared

-----------------------------------------------------------------------

I get the same error with gcc version 2.7.2.3.f.1 also.

-----------------------------------------------------------------------

Any hints/comments would be appreciated,
Rahul S,
( srahul@csa.iisc.ernet.in )





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

* No Subject
  1998-03-19 20:41 Mike Shirobokov
@ 1998-03-21  1:50 ` Martin von Loewis
  0 siblings, 0 replies; 97+ messages in thread
From: Martin von Loewis @ 1998-03-21  1:50 UTC (permalink / raw)
  To: root; +Cc: egcs-bugs

> egcs_bug.cc: In function `int main()':
> egcs_bug.cc:13: no matching function for call to `B<int>::a ()'
> egcs_bug.cc:8: candidates are: B<int>::a(int)

The compiler is right, your code is wrong. There is no B<int>::a(),
since A<int>::a() is shadowed by B<int>::a(int). One possible
correction is

template <class T> 
struct A {
  void a() {}
};

template <class T> 
struct B: public A<T> {
  void a( int ) {}
};

main()
{
  B<int>().A::a();
}

Regards,
Martin


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

* No Subject
@ 1998-03-19 20:41 Mike Shirobokov
  1998-03-21  1:50 ` Martin von Loewis
  0 siblings, 1 reply; 97+ messages in thread
From: Mike Shirobokov @ 1998-03-19 20:41 UTC (permalink / raw)
  To: dixon!cygnus.com!egcs-bugs

=== cut ==
template <class T> 
struct A {
  void a() {}
};

template <class T> 
struct B: public A<T> {
  void a( int ) {}
};

main()
{
  B<int>().a();
}
=== cut ==

egcs_bug.cc: In function `int main()':
egcs_bug.cc:13: no matching function for call to `B<int>::a ()'
egcs_bug.cc:8: candidates are: B<int>::a(int)

Reading specs from /usr/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)



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

* No Subject
@ 1998-03-16 16:26 Oskar Enoksson
  0 siblings, 0 replies; 97+ messages in thread
From: Oskar Enoksson @ 1998-03-16 16:26 UTC (permalink / raw)
  To: egcs-bugs

Hi! I just subscribed. I have good news and bad:

First the good news: I compiled the egcs-980309 snapshot with no problems
on a mips-sgi-irix5.3 and a i686-pc-linux-gnulibc1. Very nice!

Bad news: I've found what must be a bug. The problem is template function
overloading. A short source file is attached to this mail. One overload
ambiguity is resolved fine, but not the other. There is practically no
difference between the two cases, so it must be a bug.

Exactly the same happens with gcc 2.8.0 if that is of any help.

Suggestions? Thanks!

/Oskar

*/              Oskar Enoksson, Linkoping, Sweden                  /*



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

* No Subject
@ 1998-03-09  5:02 ÇÑ ¿µ¸¸
  0 siblings, 0 replies; 97+ messages in thread
From: ÇÑ ¿µ¸¸ @ 1998-03-09  5:02 UTC (permalink / raw)
  To: egcs-bugs

I could not compile my C++ source code with g++ compiler(egcs-1.01 release).
the source code is below.

// tcategory.c

template<class V,class S>
class AdditiveCategory{
public:
  friend V operator + (const V& lhs,const V& rhs){
	 V temp(lhs);
	 return temp+=rhs;
  } 
};

template<class T,int i>
class AClass: public AdditiveCategory<AClass<T,i>,T>
{
public:
  AClass(const T& t):val(t){}
  AClass(const AClass& a):val(a.val){}
  AClass& operator+=(const AClass& a){val+=a.val;return *this;}
private:
  T val;
};

void main()
{
  AClass<double,1> a(3);
}

The compile time error is below.

tcategory.c:5: Internal compiler error.
tcategory.c:5: Please submit a full bug report to `egcs-bugs@cygnus.com'.

How can I fix the error? I would greatly appreciate your advice.



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

* No Subject
@ 1998-03-03 11:08 Shmuel Tomer
  0 siblings, 0 replies; 97+ messages in thread
From: Shmuel Tomer @ 1998-03-03 11:08 UTC (permalink / raw)
  To: egcs-bugs; +Cc: 763iadg

The attached code causes the following error:

g++     bug.cc   -o bug
bug.cc: In method `void X<T>::operator ()(long int ...)':
bug.cc:17: Internal compiler error.
bug.cc:17: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make: *** [bug] Error 1

Compilation exited abnormally with code 2 at Tue Mar  3 13:56:31

----------------------------------------------------------------------

#include <stdarg.h>

template <class T>
class X
{
  public:

    void operator () (long a, ...) 
    {
	long j, d;

	va_list args;
	va_start(args, a);

	for (d = 1; d < 10; d++)
	    j = va_arg(args, long);
    }

  private:
    T *_data;
};

----------------------------------------------------------------------

Platform: SunOS bear 5.5.1 Generic_103640-14 sun4u sparc SUNW,Ultra-1
Version:  gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)


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

* No Subject
@ 1998-02-06  8:31 Utilisateur FNET
  0 siblings, 0 replies; 97+ messages in thread
From: Utilisateur FNET @ 1998-02-06  8:31 UTC (permalink / raw)
  To: egcs-bugs

===============================================================================
This is a bug report for egcs-1.0.1/gcc:
===============================================================================

Thierry Bravier              Dassault Aviation - DGT / DPR / DESA
78, Quai Marcel Dassault       F-92214 Saint-Cloud Cedex - France
Telephone : (33) 01 47 11 53 07   Telecopie : (33) 01 47 11 52 83
E-Mail :              mailto:thierry.bravier@dassault-aviation.fr

===============================================================================
Local configuration:
===============================================================================
% uname -a
SunOS scdprs20 5.5.1 Generic sun4u sparc SUNW,Ultra-2

-------------------------------------------------------------------------------
% egcs-g++ -v
Reading specs from /logiciel/GNU/LOCAL/gcc/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

-------------------------------------------------------------------------------
egcs-1.0.1 was installed with:

% SOURCES_EGCS=/logiciel/GNU/SOURCES/gcc/egcs-1.0.1/distrib
% LOCAL_EGCS=/logiciel/GNU/LOCAL/gcc/egcs-1.0.1
% OBJ_EGCS=/logiciel/commun/egcs-1.0.1.SunOS.5.5.1
% cd ${OBJ_EGCS}
% ${SOURCES_EGCS}/configure  \
   --prefix=${LOCAL_EGCS} \
   --with-local-prefix=${LOCAL_EGCS} \
   --with-gxx-include-dir=${LOCAL_EGCS}/include/g++
% gmake bootstrap CC=gcc
% gmake install

===============================================================================
Bug description and report:
===============================================================================
When using nested functions together with blocks returning values, the
-O3 optimizer seems to produce erroneous code.

As shown in the code, `&f' generates correct code but `f' (taken as a
function pointer) does not.

Moreover, the -O2 optimisation is correct.

Contextual considerations (useless to fix the bug):
Although my example is a strange looking one, this technique has proved very
useful to me to simulate LISP lambda's. It makes it possible to define a
macro LAMBDA defining a local function that can be directly used as a function
pointer.

PS: Thank you for your great work, I hope this mail will help.
    Could you please let me know about this mail and its implications.

-------------------------------------------------------------------------------
% cat -n nested-function.c
     1	main () {
     2	  ({
     3	    void f () {}
     4	    f;			/* strangely, `&f' is accepted ! */
     5	  });
     6	}

-------------------------------------------------------------------------------
% egcs-gcc -E nested-function.c
# 1 "nested-function.c"
main () {
  ({
    void f () {}
    f;			 
  });
}

-------------------------------------------------------------------------------
% egcs-gcc -o nested-function-O2 -O2 nested-function.c
% ./nested-function-O2
% egcs-gcc -o nested-function-O3 -O3 nested-function.c
Undefined			first referenced
 symbol  			    in file
f.2                                 /var/tmp/cca001ap1.o
ld: fatal: Symbol referencing errors. No output written to nested-function-O3
collect2: ld returned 1 exit status

===============================================================================


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

* No Subject
@ 1998-02-06  8:31 Utilisateur FNET
  0 siblings, 0 replies; 97+ messages in thread
From: Utilisateur FNET @ 1998-02-06  8:31 UTC (permalink / raw)
  To: egcs-bugs

===============================================================================
This is a bug report for egcs-1.0.1/g++:
===============================================================================

Thierry Bravier              Dassault Aviation - DGT / DPR / DESA
78, Quai Marcel Dassault       F-92214 Saint-Cloud Cedex - France
Telephone : (33) 01 47 11 53 07   Telecopie : (33) 01 47 11 52 83
E-Mail :              mailto:thierry.bravier@dassault-aviation.fr

===============================================================================
Local configuration:
===============================================================================
% uname -a
SunOS scdprs20 5.5.1 Generic sun4u sparc SUNW,Ultra-2

-------------------------------------------------------------------------------
% egcs-g++ -v
Reading specs from /logiciel/GNU/LOCAL/gcc/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

-------------------------------------------------------------------------------
egcs-1.0.1 was installed with:

% SOURCES_EGCS=/logiciel/GNU/SOURCES/gcc/egcs-1.0.1/distrib
% LOCAL_EGCS=/logiciel/GNU/LOCAL/gcc/egcs-1.0.1
% OBJ_EGCS=/logiciel/commun/egcs-1.0.1.SunOS.5.5.1
% cd ${OBJ_EGCS}
% ${SOURCES_EGCS}/configure  \
   --prefix=${LOCAL_EGCS} \
   --with-local-prefix=${LOCAL_EGCS} \
   --with-gxx-include-dir=${LOCAL_EGCS}/include/g++
% gmake bootstrap CC=gcc
% gmake install

===============================================================================
Bug description and report:
===============================================================================
This seems to be a parsing problem relative to a default constructor call.

Apparently, when a default constructor is called while surrounded by
parentheses, g++ rejects the program.

Is it a bug ?

It does not seem coherent to accept line 2 and reject line 3.

PS: Thank you for your great work, I hope this mail will help.
    Could you please let me know about this mail and its implications.

-------------------------------------------------------------------------------
% cat -n default-constructor.cc
     1	class foo {};
     2	foo f_without_parentheses_is_ok = foo ();
     3	foo f_with_parentheses_causes_a_bug = (foo ());

-------------------------------------------------------------------------------
% egcs-g++ -E default-constructor.cc
# 1 "default-constructor.cc"
class foo {};
foo f_without_parentheses_is_ok = foo ();
foo f_with_parentheses_causes_a_bug = (foo ());

-------------------------------------------------------------------------------
% egcs-g++ -c default-constructor.cc 
default-constructor.cc:3: parse error before `;'

===============================================================================


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

* No Subject
@ 1998-02-06  8:31 Utilisateur FNET
  0 siblings, 0 replies; 97+ messages in thread
From: Utilisateur FNET @ 1998-02-06  8:31 UTC (permalink / raw)
  To: egcs-bugs

===============================================================================
This is a bug report for egcs-1.0.1/g++:
===============================================================================

Thierry Bravier              Dassault Aviation - DGT / DPR / DESA
78, Quai Marcel Dassault       F-92214 Saint-Cloud Cedex - France
Telephone : (33) 01 47 11 53 07   Telecopie : (33) 01 47 11 52 83
E-Mail :              mailto:thierry.bravier@dassault-aviation.fr

===============================================================================
Local configuration:
===============================================================================
% uname -a
SunOS scdprs20 5.5.1 Generic sun4u sparc SUNW,Ultra-2

-------------------------------------------------------------------------------
% egcs-g++ -v
Reading specs from /logiciel/GNU/LOCAL/gcc/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)

-------------------------------------------------------------------------------
egcs-1.0.1 was installed with:

% SOURCES_EGCS=/logiciel/GNU/SOURCES/gcc/egcs-1.0.1/distrib
% LOCAL_EGCS=/logiciel/GNU/LOCAL/gcc/egcs-1.0.1
% OBJ_EGCS=/logiciel/commun/egcs-1.0.1.SunOS.5.5.1
% cd ${OBJ_EGCS}
% ${SOURCES_EGCS}/configure  \
   --prefix=${LOCAL_EGCS} \
   --with-local-prefix=${LOCAL_EGCS} \
   --with-gxx-include-dir=${LOCAL_EGCS}/include/g++
% gmake bootstrap CC=gcc
% gmake install

===============================================================================
Bug description and report:
===============================================================================
`int operator + (int, int)' is not a defined function,
its address cannot be taken.

When trying to take its address I get:
`operator +' not defined
which is correct.

I would expect the same kind of message when dealing with `::operator +'.

PS: Thank you for your great work, I hope this mail will help.
    Could you please let me know about this mail and its implications.

-------------------------------------------------------------------------------
% cat -n operator-2.cc
     1  static int (*f_correct_error_message) (int, int) = operator +;
     2  static int (*g_bug_in_error_message) (int, int) = ::operator +;

-------------------------------------------------------------------------------
% egcs-g++ -E operator-2.cc
# 1 "operator-2.cc"
static int (*f_correct_error_message) (int, int) = operator +;
static int (*g_bug_in_error_message) (int, int) = ::operator +;

-------------------------------------------------------------------------------
% egcs-g++ -c operator-2.cc
operator-2.cc:1: `operator +' not defined
operator-2.cc:2: undeclared variable `__pl' (first use here)

===============================================================================


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

* No Subject
@ 1998-01-28  6:52 David M. Gay
  0 siblings, 0 replies; 97+ messages in thread
From: David M. Gay @ 1998-01-28  6:52 UTC (permalink / raw)
  To: Greg Lindahl, egcs-bugs

> Whoever did this missed libI77/backspace.c at the very least:

Whoever sent me the above message didn't notice that I fixed this
bug just last week.

-- dmg


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

* No Subject
@ 1998-01-10 12:03 Dan Weeks
  0 siblings, 0 replies; 97+ messages in thread
From: Dan Weeks @ 1998-01-10 12:03 UTC (permalink / raw)
  To: axp-list, egcs-bugs

bug-glibc@prep.ai.mit.edu
Bcc: R & D <rnd@blueskystudios.com>,
    The Mighty Mighty PSItones <psi@blueskystudios.com>
Subject: dlopen() bug on Linux/Alpha
X-Mailer: VM 6.34 under 20.3 "Vatican City" XEmacs  Lucid
Comments: Hyperbole mail buttons accepted, v04.023.
I-Am: danimal
Precedence: special-delivery
Return-Receipt-To: danimal@blueskystudios.com
X-Face: $Y&:wju!9uUmZ{k1W-gF%uw'0!`!U#dbXZ&FeSqfjdsKw.[[6ZAqb<p/|4Xp&eS5O(?<]z{
 PR="@wd$A:Ebe0o%S_d;mPk?%%Pep:V+Q'S`.I4^^7._<YUg`H(N-<I;{,f/*8PAC=c|?H+k=J"[wf
 ZK7c9>>n;&:+7x)Kk)u%)MWoKruZ7(v*y|-_f'i:~c[QgOX!>Z:ChYd)


Hello:

	I am using Red Hat 5.0 on a 433 MHz Carrera computer running at
kernel level 2.0.32.  Currently I have the latest glibc (2.0.5c build
13) rpm from Red Hat.  I have also built a new set of the glibc
libraries using these sources.  The only compiler that I have used for
both building the libraries and our code is egcs-1.0.1.

	The problem that we are running into is that when we attempt to
open a shared library (*.so) that we have compiled the dlopen() call
fails.  These shared libraries are dynamic procedures for a larger
program that we write in-house.  During the linking phase for the shared
library we use the options -shared and -ignore_unresolved so that any
symbols that are in the larger program will be passed over and an .so
will be produced (I'm not sure that -ignore_unresolved is supported on 
Linux, here is its entry in the SGI man page:

    -ignore_unresolved
          This option causes an executable or DSO to be produced and ld to
          exit with zero status even if there are unresolved symbols;
          resolution of these symbols will be completed by rld . If linking
          -call_shared, a list of the unresolved symbols will be output (as it
          always is for -call_shared).  If linking -shared, no such list will
          be output.  If linking -non_shared, this option is ignored (and
          -no_unresolved is used, as it always is for -non_shared).  This
          option is the default for -shared linking, but not for -call_shared
          or -non_shared.

).


I looked at the GNATS system at GNU but the only dlopen reference I
found was at
http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl/full/387 .  This
seems to be like the problem we are having, but I can't tell exactly.
I guess that what could be happening is that the shared library is
loaded, can't find symbols in the main program and dies, killing the
main process.

I noticed that a glibc-2.0.6 was available on prep.ai.mit.edu but it
looks to not have a fix for dlopen in it.

If anyone has any insight into this bug i would appreciate some
feedback.  Also, if a bug report at GNU is needed I will gladly submit 
one.

-danimal

-- 
Dan Weeks <danimal@blueskystudios.com>
Blue Sky|VIFX http://www.blueskystudios.com/ http://www.vifx.com/
Harrison, New York 914/381.8400 - Los Angeles, California 310/822.8872
"There's no off position on the genius switch!" - D. Letterman


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

* No Subject
@ 1998-01-02 16:02 David
  0 siblings, 0 replies; 97+ messages in thread
From: David @ 1998-01-02 16:02 UTC (permalink / raw)
  To: egcs-bugs

Hi,

I encountered this bug attempting to build MindsEye (available from
http://www.ptf.hro.nl/mindseye/ ). I ran configure without errors.

David

make[2]: Entering directory `/usr/local/src/graphics/MindsEye/src/3dlib'
c++ -c -g -O2 -I../  -I../include/matrix -I../include/nurbs  -I/usr/X11R6/include -DHAVE_CONFIG_H  s_object.cpp
In file included from generic.h:44,
                 from s_object.h:32,
                 from s_object.cpp:33:
math/g3d_ray.h:54: Internal compiler error 243.
math/g3d_ray.h:54: Please submit a full bug report to `egcs-bugs@cygnus.com'.
make[2]: *** [s_object.o] Error 1
make[2]: Leaving directory `/usr/local/src/graphics/MindsEye/src/3dlib'
make[1]: *** [me_subdirs] Error 2
make[1]: Leaving directory `/usr/local/src/graphics/MindsEye/src'
make: *** [mindseye] Error 2


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

* No Subject
@ 1997-12-18 15:47 Dirk Herrmann
  0 siblings, 0 replies; 97+ messages in thread
From: Dirk Herrmann @ 1997-12-18 15:47 UTC (permalink / raw)
  To: mmitchell; +Cc: egcs-bugs

Hello Mark!

Big 'thank you' for your extremely quick response. But definition after
declaration fails...



> cat test.cc 
class X
{
  public:
    virtual void f() const = 0;
};

template <class T>
class Y: public X
{
  public:
    virtual void f() const;
};

template <class T>
void Y<T>::f() const
{
}

template <>
void Y<bool>::f() const;

template <>
void Y<bool>::f() const
{
}
> g++ test.cc
test.cc:24: Internal compiler error 892.
test.cc:24: Please submit a full bug report to `egcs-bugs@cygnus.com'.




Best regards, Dirk Herrmann
----------------------------------------------------------------------
Beat the following spammer sites at their own game! SEND SPAM MAIL TO:
postmaster@agis.net postmaster@ascella.net



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

* No Subject
@ 1997-12-11  6:49 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-12-11  6:49 UTC (permalink / raw)
  To: egcs

/*
/*	gcc version egcs-2.90.21 971202 (egcs-1.00 release)
/*			alpha-dec-osf4.0a with -DHAIFA
/*
/*
/*	-O2 error:	internal error--unrecognizable insn:
/*			(insn 1309 1286 1287 (set (reg:DI 22 $22)
/*			(plus:DI (reg:DI 30 $30)
/*			(const_int 160072))) -1 (nil)
/*			(nil))
/*

/*-----------------------------------------------------------*/
/*--- Block recoverer program for bzip2                   ---*/
/*---                                      bzip2recover.c ---*/
/*-----------------------------------------------------------*/

/*--
  This program is bzip2recover, a program to attempt data 
  salvage from damaged files created by the accompanying
  bzip2-0.1 program.

  Copyright (C) 1996, 1997 by Julian Seward.
     Guildford, Surrey, UK
     email: jseward@acm.org

  This program 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 Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program 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 General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

  The GNU General Public License is contained in the file LICENSE.
--*/


#include <stdio.h>
#include <errno.h>
#include <malloc.h>
#include <stdlib.h>
#include <strings.h>  /*-- or try string.h --*/

#define UInt32  unsigned int
#define Int32   int
#define UChar   unsigned char
#define Char    char
#define Bool    unsigned char
#define True    1
#define False   0


Char inFileName[2000];
Char outFileName[2000];
Char progName[2000];

UInt32 bytesOut = 0;
UInt32 bytesIn  = 0;


/*---------------------------------------------------*/
/*--- I/O errors                                  ---*/
/*---------------------------------------------------*/

/*---------------------------------------------*/
void readError ( void )
{
   fprintf ( stderr,
             "%s: I/O error reading `%s', possible reason follows.\n",
            progName, inFileName );
   perror ( progName );
   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
             progName );
   exit ( 1 );
}


/*---------------------------------------------*/
void writeError ( void )
{
   fprintf ( stderr,
             "%s: I/O error reading `%s', possible reason follows.\n",
            progName, inFileName );
   perror ( progName );
   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
             progName );
   exit ( 1 );
}


/*---------------------------------------------*/
void mallocFail ( Int32 n )
{
   fprintf ( stderr,
             "%s: malloc failed on request for %d bytes.\n",
            progName, n );
   fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
             progName );
   exit ( 1 );
}


/*---------------------------------------------------*/
/*--- Bit stream I/O                              ---*/
/*---------------------------------------------------*/

typedef
   struct {
      FILE*  handle;
      Int32  buffer;
      Int32  buffLive;
      Char   mode;
   }
   BitStream;


/*---------------------------------------------*/
BitStream* bsOpenReadStream ( FILE* stream )
{
   BitStream *bs = malloc ( sizeof(BitStream) );
   if (bs == NULL) mallocFail ( sizeof(BitStream) );
   bs->handle = stream;
   bs->buffer = 0;
   bs->buffLive = 0;
   bs->mode = 'r';
   return bs;
}


/*---------------------------------------------*/
BitStream* bsOpenWriteStream ( FILE* stream )
{
   BitStream *bs = malloc ( sizeof(BitStream) );
   if (bs == NULL) mallocFail ( sizeof(BitStream) );
   bs->handle = stream;
   bs->buffer = 0;
   bs->buffLive = 0;
   bs->mode = 'w';
   return bs;
}


/*---------------------------------------------*/
void bsPutBit ( BitStream* bs, Int32 bit )
{
   if (bs->buffLive == 8) {
      Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
      if (retVal == EOF) writeError();
      bytesOut++;
      bs->buffLive = 1;
      bs->buffer = bit & 0x1;
   } else {
      bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
      bs->buffLive++;
   };
}


/*---------------------------------------------*/
/*--
   Returns 0 or 1, or 2 to indicate EOF.
--*/
Int32 bsGetBit ( BitStream* bs )
{
   if (bs->buffLive > 0) {
      bs->buffLive --;
      return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
   } else {
      Int32 retVal = getc ( bs->handle );
      if ( retVal == EOF ) {
         if (errno != 0) readError();
         return 2;
      }
      bs->buffLive = 7;
      bs->buffer = retVal;
      return ( ((bs->buffer) >> 7) & 0x1 );
   }
}


/*---------------------------------------------*/
void bsClose ( BitStream* bs )
{
   Int32 retVal;

   if ( bs->mode == 'w' ) {
      while ( bs->buffLive < 8 ) {
         bs->buffLive++;
         bs->buffer <<= 1;
      };
      retVal = putc ( (UChar) (bs->buffer), bs->handle );
      if (retVal == EOF) writeError();
      bytesOut++;
      retVal = fflush ( bs->handle );
      if (retVal == EOF) writeError();
   }
   retVal = fclose ( bs->handle );
   if (retVal == EOF)
      if (bs->mode == 'w') writeError(); else readError();
   free ( bs );
}


/*---------------------------------------------*/
void bsPutUChar ( BitStream* bs, UChar c )
{
   Int32 i;
   for (i = 7; i >= 0; i--)
      bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
}


/*---------------------------------------------*/
void bsPutUInt32 ( BitStream* bs, UInt32 c )
{
   Int32 i;

   for (i = 31; i >= 0; i--)
      bsPutBit ( bs, (c >> i) & 0x1 );
}


/*---------------------------------------------*/
Bool endsInBz2 ( Char* name )
{
   Int32 n = strlen ( name );
   if (n <= 4) return False;
   return
      (name[n-4] == '.' &&
       name[n-3] == 'b' &&
       name[n-2] == 'z' &&
       name[n-1] == '2');
}


/*---------------------------------------------------*/
/*---                                             ---*/
/*---------------------------------------------------*/

#define BLOCK_HEADER_HI  0x00003141UL
#define BLOCK_HEADER_LO  0x59265359UL

#define BLOCK_ENDMARK_HI 0x00001772UL
#define BLOCK_ENDMARK_LO 0x45385090UL

Int32 main ( Int32 argc, Char** argv )
{
   FILE*       inFile;
   FILE*       outFile;
   BitStream*  bsIn, *bsWr;
   Int32       currBlock, b, wrBlock;
   UInt32      bitsRead;
   UInt32      bStart[20000];
   UInt32      bEnd[20000];
   UInt32      buffHi, buffLo, blockCRC;
   Char*       p;

   strcpy ( progName, argv[0] );
   inFileName[0] = outFileName[0] = 0;

   fprintf ( stderr, "bzip2recover: extracts blocks from damaged .bz2 files.\n" );

   if (argc != 2) {
      fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
                        progName, progName );
      exit(1);
   }

   strcpy ( inFileName, argv[1] );

   inFile = fopen ( inFileName, "rb" );
   if (inFile == NULL) {
      fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName );
      exit(1);
   }

   bsIn = bsOpenReadStream ( inFile );
   fprintf ( stderr, "%s: searching for block boundaries ...\n", progName );

   bitsRead = 0;
   buffHi = buffLo = 0;
   currBlock = 0;
   bStart[currBlock] = 0;

   while (True) {
      b = bsGetBit ( bsIn );
      bitsRead++;
      if (b == 2) {
         if (bitsRead >= bStart[currBlock] &&
            (bitsRead - bStart[currBlock]) >= 40) {
            bEnd[currBlock] = bitsRead-1;
            if (currBlock > 0)
               fprintf ( stderr, "   block %d runs from %d to %d (incomplete)\n",
                         currBlock,  bStart[currBlock], bEnd[currBlock] );
         } else
            currBlock--;
         break;
      }
      buffHi = (buffHi << 1) | (buffLo >> 31);
      buffLo = (buffLo << 1) | (b & 1);
      if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI 
             && buffLo == BLOCK_HEADER_LO)
           || 
           ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI 
             && buffLo == BLOCK_ENDMARK_LO)
         ) {
         if (bitsRead > 49)
            bEnd[currBlock] = bitsRead-49; else
            bEnd[currBlock] = 0;
         if (currBlock > 0)
            fprintf ( stderr, "   block %d runs from %d to %d\n",
                      currBlock,  bStart[currBlock], bEnd[currBlock] );
         currBlock++;
         bStart[currBlock] = bitsRead;
      }
   }

   bsClose ( bsIn );

   /*-- identified blocks run from 1 to currBlock inclusive. --*/

   if (currBlock < 1) {
      fprintf ( stderr,
                "%s: sorry, I couldn't find any block boundaries.\n",
                progName );
      exit(1);
   };

   fprintf ( stderr, "%s: splitting into blocks\n", progName );

   inFile = fopen ( inFileName, "rb" );
   if (inFile == NULL) {
      fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName );
      exit(1);
   }
   bsIn = bsOpenReadStream ( inFile );

   /*-- placate gcc's dataflow analyser --*/
   blockCRC = 0; bsWr = 0;

   bitsRead = 0;
   outFile = NULL;
   wrBlock = 1;
   while (True) {
      b = bsGetBit(bsIn);
      if (b == 2) break;
      buffHi = (buffHi << 1) | (buffLo >> 31);
      buffLo = (buffLo << 1) | (b & 1);
      if (bitsRead == 47+bStart[wrBlock]) 
         blockCRC = (buffHi << 16) | (buffLo >> 16);

      if (outFile != NULL && bitsRead >= bStart[wrBlock]
                          && bitsRead <= bEnd[wrBlock]) {
         bsPutBit ( bsWr, b );
      }

      bitsRead++;

      if (bitsRead == bEnd[wrBlock]+1) {
         if (outFile != NULL) {
            bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 );
            bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 );
            bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
            bsPutUInt32 ( bsWr, blockCRC );
            bsClose ( bsWr );
         }
         if (wrBlock >= currBlock) break;
         wrBlock++;
      } else
      if (bitsRead == bStart[wrBlock]) {
         outFileName[0] = 0;
         sprintf ( outFileName, "rec%4d", wrBlock );
         for (p = outFileName; *p != 0; p++) if (*p == ' ') *p = '0';
         strcat ( outFileName, inFileName );
         if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" );

         fprintf ( stderr, "   writing block %d to `%s' ...\n",
                           wrBlock, outFileName );

         outFile = fopen ( outFileName, "wb" );
         if (outFile == NULL) {
            fprintf ( stderr, "%s: can't write `%s'\n",
                      progName, outFileName );
            exit(1);
         }
         bsWr = bsOpenWriteStream ( outFile );
         bsPutUChar ( bsWr, 'B' ); bsPutUChar ( bsWr, 'Z' );
         bsPutUChar ( bsWr, 'h' ); bsPutUChar ( bsWr, '9' );
         bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 );
         bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 );
         bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 );
      }
   }

   fprintf ( stderr, "%s: finished\n", progName );
   return 0;
}



/*-----------------------------------------------------------*/
/*--- end                                  bzip2recover.c ---*/
/*-----------------------------------------------------------*/


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

* No Subject
@ 1997-11-26  4:10 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-11-26  4:10 UTC (permalink / raw)
  To: egcs

//
// This is an old bug that has not been resolved yet
//
//
// This is really a strange bug, I was unable to focus it better
// gcc version  egcs-2.90.18 971122 (gcc2-970802 experimental)
// alpha-dec-osf4.0a
// there is something wrong in virtual functions
//

class base;
class Expr;
class Plus;

class base_iterator {};

template <class T> class binary_iterator : public base_iterator {};

class Expr {
public :
	Expr() {};	
	Expr(const base*){};
};

class base
{

public :
	
	virtual double& output(double& stream) const = 0;
	virtual base_iterator& begin()	const	
				{ return * new base_iterator;	};
	virtual Expr power() const;
        virtual Expr operator-(const base& in) const {return this;};
	
};


class binary : public base {

public :
	double& output(double& stream) const { return stream;};
	binary_iterator<int>& begin() 	const
		{ return * new binary_iterator<int>(); };
			
};

class Plus : public binary {
public :
	double& output(double& stream) const
		{ return this->binary::output(stream); };	
};

class Minus : public binary {
public:	
	double& output(double& stream) const 
		{ return static_cast<const binary*>(this)->output(stream); };	
};

Expr base::power() const	{ return new Plus; };

void main(){Expr	a = new Plus; }


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

* No Subject
@ 1997-11-24 12:57 Thomas Weise
  0 siblings, 0 replies; 97+ messages in thread
From: Thomas Weise @ 1997-11-24 12:57 UTC (permalink / raw)
  To: egcs-bugs; +Cc: Thomas Weise

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

Compiling attached code I get a nasty error what as I remember has been
in gcc-2.7.2 but already fixed in previous snapshots.  

tom@hermes:/home/tom > g++ -v
Reading specs from
/usr/local/lib/gcc-lib/i486-pc-linux-gnulibc1/egcs-2.90.18/specs
gcc version egcs-2.90.18 971122 (gcc2-970802 experimental)
tom@hermes:/home/tom > g++ -fsjlj-exceptions -c bug.i
bug.i: In method `bool foo::bar(const class x &, class x &)':
bug.i:4047: Internal compiler error.
bug.i:4047: Please submit a full bug report to `egcs-bugs@cygnus.com'.


[-- Attachment #2: bug.i.gz --]
[-- Type: application/x-gzip, Size: 9649 bytes --]

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

* No Subject
@ 1997-11-18 12:26 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-11-18 12:26 UTC (permalink / raw)
  To: egcs

//
// This is really a strange bug, I was unable to focus it better
// gcc version egcs-2.90.17 971114 (gcc2-970802 experimental)
// alpha-dec-osf4.0
// there is something wrong in virtual functions
//

class base;
class Expr;
class Plus;

class base_iterator {};

template <class T> class binary_iterator : public base_iterator {};

class Expr {
public :
	Expr() {};	
	Expr(const base*){};
};

class base
{

public :
	
	virtual double& output(double& stream) const = 0;
	virtual base_iterator& begin()	const	
				{ return * new base_iterator;	};
	virtual Expr power() const;
        virtual Expr operator-(const base& in) const {return this;};
	
};


class binary : public base {

public :
	double& output(double& stream) const { return stream;};
	binary_iterator<int>& begin() 	const
		{ return * new binary_iterator<int>(); };
			
};

class Plus : public binary {
public :
	double& output(double& stream) const
		{ return this->binary::output(stream); };	
};

class Minus : public binary {
public:	
	double& output(double& stream) const 
		{ return static_cast<const binary*>(this)->output(stream); };	
};

Expr base::power() const	{ return new Plus; };

void main(){Expr	a = new Plus; }


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

* No Subject
@ 1997-11-10  2:57 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-11-10  2:57 UTC (permalink / raw)
  To: egcs

//
//	gcc version egcs-2.90.14 971023 (gcc2-970802 experimental)
//	g++ -c -freg-struct-return bug.C does not compile
//
//	class smanip<int> setbase(int) : Internal compiler error
//
//

#include <iomanip.h> 

void main()
{
cout << setbase(3) << endl;
}


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

* No Subject
@ 1997-11-01  9:12 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-11-01  9:12 UTC (permalink / raw)
  To: egcs

//
// sorry, I forgot to save version by my editor
// this is a comnpleted copy of the first message
//

//
// gcc version egcs-2.90.14 971023 (gcc2-970802 experimental)
//
// with -DTEMPLATE the compiler does not compile
//

#include <vector.h>
#include <algo.h>

template <class T> class Expr 
{
public :
Expr(){};
Expr(const T&){};
};

#ifdef TEMPLATE
template <class T >
inline bool compare(const Expr<T> a, const Expr<T> b){ return true; };
#else
inline bool compare(const Expr<int> a, const Expr<int> b){ return true; };
#endif

void main()
{
vector<int>	a(3);
sort( a.begin(), a.end(), compare );
}


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

* No Subject
@ 1997-11-01  9:07 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-11-01  9:07 UTC (permalink / raw)
  To: egcs

//
// with -DTEMPLATE the compiler does not compile
//

#include <vector.h>
#include <algo.h>

template <class T> class Expr 
{
public :
Expr(){};
Expr(const T&){};
};

#ifdef TEMPLATE
template <class T >
inline bool compare(const Expr<T> a, const Expr<T> b){ return true; };
#else
inline bool compare(const Expr<int> a, const Expr<int> b){ return true; };
#endif

void main()
{
vector<int>	a(3);
sort( a.begin(), a.end(), compare );
}


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

* No Subject
  1997-10-07  7:50 Miloslav GRUNDMANN
@ 1997-10-07 21:35 ` Mark Mitchell
  0 siblings, 0 replies; 97+ messages in thread
From: Mark Mitchell @ 1997-10-07 21:35 UTC (permalink / raw)
  To: Miloslav GRUNDMANN; +Cc: egcs-bugs, jason

>>>>> "Miloslav" == Miloslav GRUNDMANN <grundman@mip.ups-tlse.fr> writes:

    Miloslav> // // gcc version egcs-2.90.10 970924 (gcc2-970802
    Miloslav> experimental) //

    Miloslav> template <class T > class X { public : bool
    Miloslav> operator==(int i) const { return true; }; };

    Miloslav> // this line causes the bug : template <class T > bool
    Miloslav> X<T>::operator==(int) const;

By the way, this is illegal, although g++ doesn't warn about it, even
with -pedantic.  You are not allowed to redeclare member functions
outside of the class, without a definition.  You are allowed to
explicitly instantiate a template, but that's not what you did.

None-the-less, the compiler shouldn't abort!  I've attached a patch
which fixes this problem.

    Miloslav> bool main() { X<int> a; return a==0; }

-- 
Mark Mitchell		mmitchell@usa.net
Stanford University	http://www.stanford.edu

Tue Oct  7 21:32:25 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (duplicate_decls): When declaring a function after it
has
	been defined, copy DECL_SAVED_TREE to the new declaration.

Index: decl.c
===================================================================
RCS file: /home/mitchell/Repository/egcs/gcc/cp/decl.c,v
retrieving revision 1.11
diff -c -p -r1.11 decl.c
*** decl.c	1997/10/05 00:46:26	1.11
--- decl.c	1997/10/08 04:31:35
*************** duplicate_decls (newdecl, olddecl)
*** 2805,2810 ****
--- 2805,2816 ----
	  && DECL_INITIAL (olddecl) != NULL_TREE)
	{
	  DECL_INITIAL (newdecl) = DECL_INITIAL (olddecl);
+	  if (DECL_LANG_SPECIFIC (olddecl)) 
+	    {
+	      my_friendly_assert (DECL_LANG_SPECIFIC (newdecl) != 0,
+				  0);
+	      DECL_SAVED_TREE (newdecl) = DECL_SAVED_TREE (olddecl);
+	    }
	  DECL_SOURCE_FILE (newdecl) = DECL_SOURCE_FILE (olddecl);
	  DECL_SOURCE_LINE (newdecl) = DECL_SOURCE_LINE (olddecl);
	}


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

* No Subject
@ 1997-10-07  9:43 Max Lawson
  0 siblings, 0 replies; 97+ messages in thread
From: Max Lawson @ 1997-10-07  9:43 UTC (permalink / raw)
  To: egcs-bugs; +Cc: egcs

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 61

	Hi !

The added file is test.ii.gz (gzipped file) obtained with the command
$g++ -g -Wall -O6 -save-temps ...

my box is given below:
<<--
Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.11/specs
gcc version egcs-2.90.11 970929 (gcc2-970802 experimental)
-->>

With gdb (ggd a.out core) I obtain:

<<--
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i586-unknown-linux), Copyright 1996 Free Software Foundation, Inc...
Core was generated by `a.out'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/libstdc++.so.2.8...done.
Reading symbols from /lib/libm.so.5...done.
Reading symbols from /lib/libc.so.5...done.
Reading symbols from /lib/ld-linux.so.1...done.
#0  0x40021f5c in basic_string<char, string_char_traits<char> >::replace ()
    at std/bastring.h:157
std/bastring.h:157: No such file or directory.
-->>

and when I ask "where", I get what seems to be an infinite loop
<<--
#0  0x40021f5c in basic_string<char, string_char_traits<char> >::replace ()
    at std/bastring.h:157
#1  0x40025ed7 in basic_string<char, string_char_traits<char> >::basic_string
    () at std/bastring.h:398
#2  0x40021fac in basic_string<char, string_char_traits<char> >::replace ()
    at std/bastring.h:157
#3  0x40025ed7 in basic_string<char, string_char_traits<char> >::basic_string
    () at std/bastring.h:398
#4  0x40021fac in basic_string<char, string_char_traits<char> >::replace ()
    at std/bastring.h:157
[..]
#297 0x40025ed7 in basic_string<char, string_char_traits<char> >::basic_string
    () at std/bastring.h:398
#298 0x40021fac in basic_string<char, string_char_traits<char> >::replace ()
    at std/bastring.h:157
---Type <return> to continue, or q <return> to quit---
-->>

I did use the following patches (hope I've not forgotten any):
<<-- 
++ j. buck -> libstdc++ test failures
++ d. herrmann -> problem with strings in 970929
++ m. hollstein -> small changes to bootstrap handling
++ j. merrill -> undefined reference in libstdc++.so (to __IO_outfloat)
++ m. mitchell -> blitz bug/internal compiler error
-->>
and have moved to libc.5.4.39.


Enjoy, Max
----------
X-Sun-Data-Type: default
X-Sun-Data-Description: default
X-Sun-Data-Name: test.ii.gz
X-Sun-Encoding-Info: uuencode
X-Sun-Content-Lines: 1072

begin 600 test.ii.gz
M'XL("*=A.C0  W1E<W0N:6D [?UK=]M(DB ,?Q9_1=IU2@U2I"12MLLV1?7I
MJ9F>M_=L]\QN:?<YSU/MPP.1H 29!%@ *$MVN7[[FY'W*Y#@1>WI*7:7!2 C
MXY:1D9'W[] 0O:R2LCJ=S5YV4*?3^0Z^G)Z>K3;355G%53)=%_DZ*:HT*4_O
M[EZB(0'3(0$@KO)B^CE)5G&FP^F@<7:[6<;%=)6ODJR*158-N<SIHF*@5Y$O
M;Y.;(I8 2&/V;%,69\M\%B_/TFRVW,R3L]N3D[-9OEHODT><!5V(''49RFK.
M,U6G=TH^Q/YG/HAWC:5U$=^N8I1F55(LXEG2Q.8JKNXT)BWHUV_?#-:SP3+-
M-H^#VVRS3&]F0X%D^N_369XMTEO!LZ+GZFF=S),%$C_,%OX7Y\$/;Z<5FD[C
MJBK2FPTVB6D437$)SN%I.OU??YE.N]WN6.#89&5ZFR5SB@.CV+3'H?-!V1B^
MJ<7Q_ZOE@['1%H>+CXM1+8Z?0OAHB\/%QYM7M3C^-82/4!S3*3;V!"/(L^D4
M<8S+/+NE_V!T2WCP00K:6I8-RV,8(4^>8;O^.*T<$I1W>4%DF"</*@#)R<1;
MK/.R/O-M.G<"</IIEM<C('JJA<AP9?QH<8@3\L5"_<QX7E..%%WPA*J8IWH6
MBUW\6B:5D=\L]#+]G+CXJ=)5@R@;75NJJC_-[K!/K\8=XV<(49K$3>8^X;]J
M^D.>SE$/4A[BZ3(M;0K8";YI<IDC[.L49\DA(%&Z;^NGM2]:QD425YL"VD-O
M9J,5J_DAQZ/:""(79!TZF]_RJ3R;874V,;R=J#C3Q9N:;$3WHU=U/)$"TN2D
MH<CK\[I<. ]"+E$P1^=-.1TJUPQ[GF]NE@GVC/ VI6_$P#'RT=LFY,A";FK,
MU(>J,:8.K#53K]QD*03XV2)#+W]\B;X@KC?V$7$)XEE>(A0)>1Z["(U=<&6:
M!<%5L06G-R HBG"<45;=+D;@P3!243SU43 Z!SZ'@#48[/P.P5OE;ZD0&@0Z
MA+C;58K=$& QVB#PV9J%PV=L#D"/L;@@/=:>/*ZW-$[EQ[(O"A-;G[13/8AP
MUCZ&EW-WKOI,^6V0-C#<\#P($A-;#7>KIT#,TF:3TG!$M#"D9\]8;2F.8ECQ
M><IOG7]RY\9>PB=J^0N.3YP68E6R&X!L65==>))TN9MN%_%-&Z?EPK#,\V)'
M%+BPZK3=I!F!C]IWBBNU5O8/\7*3A'/%L62Z/PW!8J-9I%E:):WQB+::H1.Y
ML6B4+U:7BR*GILP ]:"!0B\=X(YBF.)N^?H) F&],#I'\$,J8%.I"-1&W*+0
M *;L5$[MB%9F&^ ) >D.2_6W*KIA",8+TFT--E830<OL+BW?/:WS:FMKU\UK
M&TNW$;A+HCVJ]O7%1K ?7K:J=&9!>6I:" 93 E\U;,%-?=4,-2 OARUJI:-.
M=IMKI"G/O$A6V]:"N@ZH,ZC%K?EHMR8*8[ #GG8HDF+1JLUW8ICMB.+^?%<$
MPUT1P#.K!UF+#I<C+KR-5ZO88L<)^[2KW$^[ROVTI=S^.@N]'$]]52,"1T;L
M];?+6/D\=$/&;3G=EM$&/NMU>K>U4FMSUJMU.Z);<]O$;)UFM\N(.X+;YEL-
M_3F;FQPS'^E.U\095N?:RQKI8OM:3*.S[4>2WVZE%](%#\AI)D/'N%9Z,Z$'
M_8@&(7#SZ-6#.UZHLTW<C]Z^(HW<69]<C#2HF(3J+>7:JE>$&_;MZ@8."+8S
M'M)T;I7U/L3H[&Q/VV6[KZGZ==2VRW:OQ.C9%@;SM&-^&!?:SO+)&-FV?L13
M91HR0E"];<9ZSZ5&3Y:*DG2Y56M0AQ1&P?:/% ;&]H\5^^^&3EI[Q^0;1-NZ
M-^X93ML>7^>K9!$00E\5^["QX]MR[)Y]O-O<)D"K:?*QXYI_3+)Y"@N*0B=:
M70S</%5)F3QR)#91:S).4ATY,B@Y1S_4"#M2I@(;&:_]819'H]JI0.127M:H
M.9,%I/R_CIVWYL0D(W7!N:V?N$36TJ5E>G-V.X.E2S>^94S)[:P<C$[?G9\.
MY9HF7-GC2A42D4EA\K27/X?)W]ED:0XQ(JYJ#TE1J743?<%08F&$$V2:_OSJ
MPQB#Z:/.+LCYN/-UW(YC4H#OZ@K0-C7B2QK7%R#G=+UJ6,.A.7$O,;MK(K&E
MMQ<!N;!8%R9VW2YW^ME*29,D^>'UJR:M4%M@P*S<L*J^D +APW9C6CQ(_%M6
MQ696T0\8EO^.4.=(6U6SBK,J+<MX^/YB-/:DG;\?G9MIN .59TE6O1\.S:0L
MN8VK]"%Y/QQW& -?"?_C W V?&>F_;))DVJ*/<Y[B[-MF 9,P/C7L:\8+]Z^
M(66Y6-<7)2O(B[<_3(E?$H5(WM"BJ0S=*G@_NO"*^;9.2B$D9FC<GJI5)B%Z
M#V;(TOH;T^,HM4?63ER'WYEUO<$U 9ZW;6KA6[L6JGXVO"IN8>UVFC3IUW6Z
M-3*MUM73^^$;9_WT<_X=>FTN;5*T=[&M3)9OJ;$D+&M=M=Y=!Y;A7;PSPS_G
M*BN8U,4128*VGK?MT(;==O8PZ+5Y1!,4N5.[Z!CC'=?E?FK(_42T &0&5P!P
MRO6&\T%VXRN!+I)J0P3'I+^Z]-!^DMDU>(,<NGE;JYNW#;IY6ZL;*_<>= -V
M](,6T/J6H3K6_:.7%*"CK.@[.7E)ZN/%VR:L@).5"&UF$"PMB=@S[O%^X<R2
M-2?18W>,OHHL3!$DA3U[LX",C=L3+@1JU6<2-.H'+Y&OB"[]%'VRYNT7LG68
M+>.R1"GV:@GT4>EKSE]-[5;80RSC*D&7%'#ZY_]Y?87H,\,_]@'1Y$OR=DRL
M9Y['ZR6*M)0>JN[*/B+]:2,/*KKMD*_20R(_).?SAY;(W=@[6LE@A['&EI3.
MWF,R[!OV.1@0%;C>GO=))I3"<_<]-C44%=T^2E<H2L'VOLILQXCO+$(G$Q1I
M;!UWQT[ 02A@+Q3PS U()4IB7$!=IC%1<8ID3.2@DJ[B6P=,N@*8=9$^8'V^
MEPA!%<23+8HTR>:2(6;)EU>BT%#/*"O*F3/C*MTVX[84YP]-&;^2@2G->BZ)
M>[P:&U^I<[(^*X[KRFN=S.L956 ;OT#:0@PPN,)6BRVR."U(Y$8^80,FGZ#T
M1#/4PTG0#K7A3'M]_]Y?!0S&1,O'!*ON4BP*5-NO6ZBFI5?35#.P53,XJ&JL
M2E^C&A!L1]5L836D<B^PS^,ZZA$5H8'04$\HB'_1@<&^-&!%P05$1(L#*==R
ME'7*W<7N? Q8#KB& 6C2FAE C %XZ5#_["2 @R'/$+S/VX1C5EE_/&6-1"#+
MM-DY!,NUF'666=O7S+*&IR/]F8^.IR8];2W9WAA0%: EXAB&: -K_X0%!4\D
MJ(%2)1_IXU/W(/HBWN4Y]<,(ANGC22IB)^D)T>>TC@:"-=(_.LQ@E[(?_*/K
M2GL&0FQCX*HK@\/JZS!UI9E@F#[V4E<&SUU7F@G6UA75#/91^KU_=&UIST"(
M=?2$FH26R%>N,#*^B1!2,O DT0!I: ZBX</4KV:"81I4ZA>\[:2!YZUCS01K
MZUA/J6./BF74:<##R=G^"W]K2B&E?J:5^MDNI>X-B9XM]M*#\/TWD,_6,-85
MW8"7'6X/6C2'-WF^E)0GOF[C_JOLSH1570B[Q7B$PS\^EA:,O_/:NT^=[.BX
M6Q/RR?QD"GN^C90'<LZM"6G5U5VD3]M)^>(?9=];$':6]0M%&;_^*HO\Q?;V
M7<?:7NT[@)!/YB=3V*U*_EGL.X"0;M_.(GU2I$1RKN^EO@&8S7+RC6"[#6.1
MB<M#C(_5(595P622[5B+9HP2*@XT*%F'6)6 '@83<;[[PH9;1T_K?!D7? J0
M58]J3W&&&W==5(AC7SB7)JI )/P"A\Q$57NI,+OW_A+:CW3U- )BWW;Q$[&/
M+"]6A[&\6LQ.;]E#RC"BU>-][#*7$M2I0*BI6^'V<34RMR<+WPY$AACUH3#?
M'0@UG,AS&,QP<,]A,,-).,]I/S7TX.\A\:=9G9]N@?Z =D_\]Z$P'\KNR<E(
M;5'[7"Q=1J6L6+G"+0#_VC?Q^UC,+327ERC*%30.9L=T69BVR<6]+FS!<CJ/
MY=WV8%[TDJ-UK-%SK2MQ+TZB2_+8ZB3Z4KL\"38YI[.TDAATY; 5*73-5#.X
MNHJ%K;-RK$.R5T!A4+F<R%[VX5Y)9:^/LM%H2R3<:.S54PXTS=S8:ZML--J4
M/JQ$Y,OV&Q9?L8(,7'W%4?[W6GXE%G6^\Y_5ZES5V53=YX>I[O/0ZLZJD[N^
MLWXGJ_#L+61!HEESJ5,!FV7Y^*((EK_@ZSI"/<?OKJ"M*^!E6>\+>!D'.@.!
M]+^7-S#795'S?O^^N9GK--E_!^Q?>AO_DORMO,WR0.YF&>QOU(KK=CKJ(GOF
M>=1/S^)^F@LR"-'O/JG>)VE%7>^8-!,(]$XZ^M]=5(V+,MO3,#]E$F$(]DQ%
M>D/_5B+/CIK:/4W,8YE'D5.O!?Z.'Z>NZY!&P%/V<6Q!,?F8G'XX51E(W5,F
M<M =2["?W+X<9M1PU0I6R#*]\5RV(DY])T!--P@@]65?QQY@TE@9^HD6M)B'
M[_9,X(+C1BJ9-_N6XT*GX%0E/YD"SL\_$/WF$SF<5U?P>RU\C->B#3T%A)PW
M<GX8N;%_.!\=PG)\TCE.79'U23LYQ7$H3%%D><#-'8ZL1 (=@1,N+E<6U#_V
M]QTR]67(0I6&16F XW=+F$?7&(BT$WZ>RFF&T\6Q/W#="^K!9_P5[F7Y^<-8
MSS+UY)GZ,O%;+-@KW/QRM"8']I*]Q*PIQ#C@7+Q2/>F*?#R"$40&+0[[S7)^
MVKS&&TGAE?4K=6BOS/-U3&NT+MO@CD#LH:='!=#][7DUAE62XDN1K/B'KVB>
MDCN+_#C$U3H,$=*_4F04UY(C,[PG]SOZ.>8XVEP8ZH0MTAD_EQ^I:L+ :1"P
M8 SG6-;E,+*H^7ZIS2<ST@$TK"^_)'WV!D=)9G.+6Z8*@F+>"H7$81V=",B6
MVV(3>J!H0K'PA;C\J*^;N$QT4?4;H@2%C9=$1QX!;U$SJ?@*DY#P%:=;B*,P
M 0PIO#3H 0R-_),Z8I[S3\UB2GKG&835-7KR4+@M\LVZ.]8MEF%>-&&NTX^!
MV#Y+@9EA$/='_B(VZ BU<P+;R:#9J8>4;;",YJ:1J#QUH\YR53"= [<Q,_*_
M;"?R44N!+:D;Z8KSX9ME/K(D5L\?%,=ZZ.XQT)]UE,$*1PVBF21OYV0(PZ1L
MNL$MJAZIW!8SRUIF>/FXF?*[T.WJEIO#31L6+1ZU-G';$EML46*^9G!;'I8A
M9F/+[VQ_0NLI"OK5%=XO>S,OJX'SV%@8S\W-N&V';63Q^H[8:X<*1>HF!)&(
M\0D+$W#_<HF<ZA)A:1/VB*PID8[$0Z2/A@V^*/9Z(E.6(#H-MAM[+=>D]DL(
M,35P)AV'.(,8%?I6>IQ%[MDL6;)^*>>T3)(Y#_@ZKJAU.H6,^<J/&2,1(/78
MU5P]1-245N0>:G?6O@)*P&XV"]9$T#$9_GV99(PQFT:9"!(V-A8KFD+;(ENJ
MK!778&);,5DE=\MJT&@AIET/F$!47-5OT(3(68LT73A5@3$)XXC8-R\F34].
M-?% TZ$MAXY4,13$7.5J9B57'7M"Q2X-:]XV4:AQ *O.<B2K>+G,9[C<I SX
MP6//,!M H24/Q%&X,AMY9Q:A;)6L;IKS+HHD,2F:77>2.*N!=(W# 3]Q^+VU
MOP^K?[/#ZG!,[V&&F.4@^W=H]/KM 6C\<XV\6Y<QRUKFO5C8]A73*<WF=$L:
M<3;$.FH<\7=0>?"[/A6<N?SX)B=W@8I&V0B L*-]3#D BG!LM=ADLR[+((>%
ME"QY-O7DX1WUN-J4:@,=%[=LD[S^S1IT8DPS]"HZDW<:XMTF59(]N$:]XI4<
MT]+97V\\>7 4F6:W4I':>'\=(6@,]:_T IN.&.\HDO4RGB6N BB?RHI<0&?B
MF.6K%8X"Q'@]TNZ.CRC$.BZFBVR*(WN)@.E8<L4^<$P<C88 T>>TQ*4+[WJQ
M\V*[*9.XF-W9Q#"RC\F315(=;]'#,E<K*L%TUOB;J$<J5[^4TL 5B@&4ZHB 
M$[*FC63EO-!K&JE(Y/I:6MS&M2,B9%Q2(*6?H-S=K%[4!C,8\*^\PV6S2D1/
M=9YD^<H@0;,L:1Z% ,NH?)&Y32-?X:YJYJH8JC:-&(OFJ_)/X)$^00YV4=/Z
MT\RN%TV8/LVJ?'6#> ^.9.!(IU/RY G+)?\-[,N8D[$=2;:5#B/)!O L!!6E
MPU"M;DK(7=I2EV%BZ^AP-I"\U$7G>&P*!CI]4ATN +CXX76#]79T5]K#_BTM
M\LR8G23#)"Q!GUY,9@_:[;'LTB[)V3R]32MQA]D\F:TKX1)!/MQ7L2<M%P?!
M>AN(E>M>=/^TR9"C.73+7KUU]'$90"( 1%^LO /_Q&I[N;E)?[[XH.;D-?-H
MZ44N0+(=T*^:T=^W1T\FI4N13QVNQSU&K&85V,8*!=<#2#]52!V^>7#17>+:
M<>O/B9UYO/KYAP]:28*<.S;F^4-2?"K2*K$8PFPT!R1T9AO]@KO.*S*[K7WH
M_3)=Y,6GL>/[33S[2$[*!92_3.=Q%?\\_$!7YZDM8IJ5OVR@1ZDCP!49_^TC
M\^NZ2!ZLP9$B6?EQ\$""1;'^'0QBU5C-0=\,1(VQ^8HY_>!L<HPWM;#'[M&1
M<../Z&J"SM$?\<-[-'BD2T'EL=G#H6>Y&^TCXR3<ARC+Y=GJKS$. .E*9F=/
MP83_OPENK8H&>(]F4K:_*^0**%-I3;@I9NS" I [L2.DCCR2/D\M05Q^:=WJ
M(R]M]#H *>UMOKD(@_1V\6H6>VH(Q,\OB#.%593I7_YC>K]9K7$$+6HP?/OS
M7_[GO_%VF@?@="08)V*6/K+%<DC#M(J+CTFA>@GE:V^:X2(:=RPZL*8(%_^8
M%B0B-UL0U[7.R[%CU,&GBZ]CC1F"^@O'M5C&MR59=,-)(.:;>@0:V^ <1K+&
M1X[O239W?H?0W4P@KK8FQ4&#)CB(8*TX,<%W <Z3L!IQ4AD_,.I& KCCS9HG
M.3(!0EH KK*C#^6XXRP_C"K-2!I5=HHCVWS,7V^6'R%T(:>A__LT7RQP$(/@
M+VY^QJ(\C$9Q.ML4N%%:;E:9:$6F&^S+DKE\)Z!8&Z1AX?8C311S!@_L!JV.
M91[3]7)3BI;$E4C>L,]/LVF?/^>;2KXD13$=\WIFK ;[0@4N6=R&.\%@-5W9
M3$D-\N&'OIJ!AMX&"MZ4NW"HG5D/I@6N5!01CE0^>O"(4F);NQ$ORJ@W6^:E
MFSP!^TH^S/+\8YI,TYR,M%0I9HNMEU-R,2"PE<X7AU5! CUI7PKU4,4W]"M]
MISC&K-"=9)'ZRBU!:ROT98_8QN9PK6S^"<(B73H=+@ &8B\+3"K5^JF9,?QM
M4LVTK%-<?A85G+K>$$!*=-9'S3D6"5U^%P#(EW#:H!8;V*1FI,HE<T\.:Y*0
MT( L4-Y>=4K03=8(+%BOBB<_L%_M#XMR%F<+H]#4 )E4D8=X"HM@$>O=N3AX
M6*P+_!R,2L6A5GNBW'B>V79D5W,ENY*[Q+9D9E<=A8) P<"]!<& "Q=[!0.'
M[BJD:?MQX%<;!P-2JH95\$62\$8LQG[45:#L(I^+NDW*2K!)POROWLC)N9&/
MWTV#D'$[#;MW1A PHR?9\E$0_#)6$[F::"H)?91480DTF3:G]E8&TMW E6U5
MT7C'AJ#MYA0"^KA*E(@)?\&^.%G.R\X7>;D8E04BM*K@,1H7&<<B5<JN)",&
M_RF=5W?T7?+ 0R^*D33M)$!8<D#&"IHRCHROR>,L63/G+2CA3N L+=,\8W>#
M44O&=E'$3R64S5?+N4+7ZG6874!<S4H;V^I[1'=IJBJB<65>RBV DPA>NRRT
M2N4A._PS_BIW>R(D1[6%HF2IJ0 @KR@M,P%3SU;YW)&BV@FD)=EF!4TAU>J7
MSM%MGL]OT@JVDZ)^YP@W!_1M"&^+.%W2UQ&\WL0,]!6Y=DW@ _)3H \(TXSG
MQ@$2SPG$(!L\KM?X\2T\8I/+9@#]!MZR?(9Y)8 7(_J!34#@+V](WAN*?(1S
M8TW":UP\L2\:1^!@IO,4]T'037*+/>VFZ..4^5==0SHL/."_ZA6+!. +*C^F
MZT\E5A&1"P:NDT6%7S&;J$AO[^#Y%?5:9,T50)XST'DR TC\BO(9 83'N^21
M '$H7",^04Q.0 $ /JQSC)#DX&";-;:S&87#F25@23,*=+,TR:ITD<YH=@!<
MI(_)G.43^+(4XF:6F:##06[.,IT3SP5PJFZ_$-5C'D@=F&#Y3K!@)U@BL!A8
MPD@2<+%(+DX(<2C]^?VF% "@QA.BP!.N.D('JBVNJ&_J=CH:%55S2-@?V1MC
MB9<BNV@-2/%"!OZ^R$3H#TUH-OAW@M/'8O$63F/[=[FQ,*\&3LVF'M'4+O5Y
MC TU!WO.DD^+;N?H"WO-EW.X!L;(3?[ 9S*U %D$7Y!A3+%+CP+_.A1"W0QR
M0HM7C'U*%8-+EW^$%9[X(URLQY#0O_@#@U<9HN]?A=\6;MO!DW3IS@PIN2KR
MT[JK77A*M8,I@6M14<AG>G>@"@]Z6X\[1Y+/M:4+W#-=2%6XU( =8BG5T#EB
M>OAU@@PE & S_KY,6\7EQU!R</ F?3I&O]&,OZ((2NB8XFGDA P"*[RTH7X\
MH41]1,@<&00%CO*FP8(%"$^L.I)F+*:W.#)H^A?I.A8ULJ,$ ]/JKL@_3:$A
MVQ2J4_BJ ,V625Q$/-2@_\+Q"B#^E+^RT ?]D0&\IW]_I8TB5D8*:V5IVK$:
MKW0M)KBX=%E=4@G2H$X0F:'!1@1?=L)-,C41 (_>G@04#(0/CE)E2H-C7!5@
M'%QX88\ANGG_GL8?:B8@6Y,K(MEH(?Q*GEG0HK&)TYLHLW+DF9C"BCE5H">S
M:$_X(6B@]IX-S83X(YW&ZG7/L?FPQV@PU%CEJ%[XL)@LRJ)R<*F$S:IA*'D$
MFBPFY^B"S<MD;/@TH;41ZEV''M8D_N/4(^E1\!;1S*!U/KIL7Z7>)\E)+"$0
M\8H*G\:T;L.]4X(@!E?XBRL<TM,5+=D,^Y7JCHSSY1%=,]0=JW"T4AF 4)_,
M;[)(64[A1;&-D950D8X9J#UJ"<0ZCM'Z4U[,R2IXY;/RE>J3ID&W#UNSD8/.
M;EH9Y+R "&!H9^<O."9D>E9[*H@F1/QP&!JE89@BKY)9E<S?,Q.F"QOR,E+*
MLKRA1]BH<=>TRHF7':OY'M*BVN!FZS= 8"316<*TTA'K2!E&UN\3/2&HX"+.
MG_(GOLY*.=I'[;VS06_<\:.'J9AS&_)@$K/+KSI@-L!-[8D\$@<,PQ\3]H':
MBJILE0&U"I0W3">_:1!=V2?&K6":W4;*L3-HJ+J7>;*LXDC-?:SDIJE,@6Q(
M0)*776 QK\(L1U-$FK.^J_Z57]]KI>3>%)5-FJR. A]/Z3BP*FPODA ][%S%
MX%"O"Z?NH!/$JZ9AMZP>*J9%AN)@;>28"2E0':-',M.A$F9S'ZJ3G6XRC"/[
MJ-9H1+Y,(2\3B,SFW*ZK@OM&5MN,,!UAGWO^"!U&W(IH,SRX6+29*\8"1;Q6
M$"LHM6DH+4.R+2M0:@HG9!I)0]S$BI5C#=+5Y:"36!H1&!G<AR():A6SGQ<Q
M.V=PXFSME%D[-3Q9)JZ^D 1& R<I8E&/ZTT%UE?0-5@S,,J>5L(G)]C5S%2"
MC[Q+:"K' 42", Q)_LHN'Q)]/G*9J(A1EF.5-^A4:%A$IE])+C\L'4XGW1!1
MD))@) M3]G<6LK>CX+V]V:S6M.-H8U)L(=*,X622==]':L6"+ZIL:P4O8%0U
M#K?O9F8H?A,Q4^H+&Z%"QI/SKMYHK!GH6H"N%=ZU"C#1"$]P'U:K4I-D;?)Q
M&TGRS/WP-63)K0RQ2+AGJ*GK'(,G!YIAI;.,6B6" /)FK'DH_.EVK'D* +I5
MZP]NZ=B4KF:C_*.(W\BH:,9X<9@SYYOC1@J%?V=56IZ<IB!J<@T.?,F_4P?7
MA,_O*%5L_]+,G=3Q>YU;79/_8K!EK0)PB&+F\1"7HLBE RKIOYE"U+"9_,W!
MIXD6RON.YK=*7"NO%Q.^*-;*RI8P:'G9-T<VL2M*,WBUNFZR4D/+PP6V:I\,
MC'M,\ZUBFB1XPUV(V1T.C&'*EV6DE/3.$?60@(9Y#CUV%#V*Q7)3WD$($SGZ
M,2(10A)HKA9)D<PE_R(4EV2YV"R%A+1L:INP!(/YT)]%%A)(%3/J-@V2[$]:
M@^Y)[Y=0 38T&#G+@5L1K/,LDE.KN(_05P$R0P@M+\R.1N&Y((AG\Z&1F,[K
MRPX&:\-P.4Y(%R3-Z!!%OJEJ\:U%[PF^X/\D(JQA!RK%/$B.S8W%%LH5QM"\
MCC4K<%*F?=GAE1@91@'9E9ZN0;ZE%#ZJ:W+]"J%*<'B(EKL5A(&H=0G8A4G[
MIPEIQ$1K3O93)*8U\?$'5P6;YW1[5D5\@705F$EP.7I7#L'?ONS*:1ULG G7
M#:A*,QXJ*DF;#):9J%W)32:=@L-]C2!H&F+_KXWQZ;[$Z?5&--[2LC)/*G*2
MAAWF04@8DG:1'%<?89>9++&/5T:?1[J_UIBH045YL='Q[U(L609T_@M0L<;M
MUU\U376YQ.?CSA%!S-ZU@M0:7;KE#1)YP*.@GX@FJ<M14%>L"JPEJ)%1_$!'
M'K5:)=KN@;/G2-PZ;K@^Q6EEC"7H0>[ TQ=3_&:S-Y;(F>O& %G7@0H6OE"[
MQ4]>)'R)#/<8 .I$5^?K#2=$("D^C3FBXUN8IE:&V\BH>%*Q-8O:T(S\:HS.
M 06P6=Y!(#O5Y<*=C(7GN$JGJSX/+* B3\DGHX;/6"MI* 429GW$8G4EZ(!^
MS,PL9>(,;%CJ(PS,ZG*OB!# MJIE@R6_)!\;159[ U<3W2B/C]75=Y0'<G4B
M"2Q@.II/J<('HY)I';:3/F=8[P)5>5G.1#W3F+G4>.D:^%29'F!Q&/.CQ+Q[
MBU5UKBWC0C%X_+SL,>M"LBHK)>9"@TY/3Q68AT5>K!II*1F<\ RIF!^S R X
MTQ&D5>U0388=N][H"3(37Z!6=S6_/^3!.:$]<S;=SJ:RG)(%J*[VDB##82Z;
M7N&K@,@(+QU5A'6 VG"F'.'\8@\,RF%G7Z3-%OBP=3B0G<>PC!)GD[^2$IH[
M/_(>N18JL +[S8VNA^*JBF=W3K0]PI-2(M@48%4VV3*D?J5157!6&OFP94<D
M+&)^"4L/0<>;-Z\<9:/V ()[$M+5EE/"D6,A UEH3G;4:%.'CDD_B>2/(M][
MYDKXG#B7WVMC>DQV^'Y!0"BY31=HNZZ/'JS*VH)0!ZEE!8[$"!_X\.R+"1]G
MU@=-8:V_.?*@(OHCXB/E[]G(MCUZT2/E9Z)A@S-&W+4_#]C6C>W@-SU.KM9)
MPD\Y#I_Z-&IY]?-ITRHGK;9<!U'>X&(@>?G2P??Z!+HR,SR!&/B(3<A.RANZ
MC@HCH9CY0@X,1I<T3?Z _H"Y/&(+2VCEH(OO: 69)S,B#(80*WLF;W!NNN03
M,0?0D;.06$1S*M(E(9M8Q&GLDX6&SDC2'7[$RB%TH&2[$)DE6#L_?^"<P+'U
M9"\?[,@/VD_G/'_?6&QLS)<ITYO'Y&B%59REZRY;@BJ32W95&X"D'(9]5.!R
M%2YG<+F$$ZO:.=RG4J"![9OR-$R!B8PQ"1S0JW!!X4AK&0)46D#ZXFMLB;P&
ML)8=:Z+SQ>QIS?-I7BX>[?:<H5&FN/F7&ON9NX*Z? WX>;C[@JZ2L7N&+ #%
M6+JD9@RNJ,*@0HL9E>'XJQJ]4M:A%PIUB]HAG\WARV'8LDY:9\B*A&ZWPP\9
MD^+K0O+2ZH[UK[@Q46:66&4>7-&>QDPNK.A!I,X78.DH3/>&>NXFQIE!7[-N
MY32'C6A6U9=V::?MJY\$W8 /FU4.1X/.6>\+,QFCDB-4IO[49&<[)%NM*EDN
MUU:ATPZ$&OKA#W&E]$L$Z(,'UNB>%+<E'[^R[HZ\O-0'I%P NAFHO=NH1_N(
M< $E61 [LRQ;P6.4]?:(-'.N8=QMQ61 RD57+?EF\I;E[@DOM=9UC5ATXC.@
MO)H R0A($"8!24"G4V@B,@@!IE,_9@U]<Q['0:Y9G=W2I<<P9,37OLHT,LQC
MUUT7M5HTJBHI/B_"FSQ?HAO%IDUV;N3B/%=^=M9(77'04XHS#PV*H)O5DU'O
MI%)ZN.[Z2D,11$_K4HR;?& V7E_C-01F1JWY\F.1(0#E]ZN(/M*0Z,,855"W
MY=W.\DU6*6/[4PAYIY]*.T))>83RGF=#T;D,5WBR)UQQ1BM<5-S_XWU+?KHP
M[EVJ(X\XNO[#W[,_N#)JWJT9@^*C(#>EVR6Y2 XVJJE+)5D\EC,77B:.-<\N
MJ!QW9TZ\RNAK>_%)YIU40#"T48/N]XFP+:0ULA^RP(ADNY%KI1S1><>M%SDL
MU8XR=5BC8;8SF2$:R:6RDWFX,-OF/:)FS?->$$*!"H=Q3!Q&B-&7_+SJL@8>
M1H*@*T2W[21SL:U"ZQ9]X9L@U,7[HJ^$^66]);(5;=QAG1XRE'",NSP4,6Q@
M_/57OLQ\<*5,?ET2VEVSC\41O2 ( )/L1RDC#[+?IOIEG%>==QCB+VQ5M";Y
MN3IAN >!?3*X.=^!\>&>&0?]NLIF0BS"%LK#'AVYDEU@=2L*YHS/Z;Q@(@@-
M\+DBT>^&,>8[N6T ]V?9--A8=)0))@#B0]%2>+I-185E=&9WXMM7A3>8(N-]
M+*7IITVX-I_&@@&SDLII1I1-AF*&GU0X<YP<!F=19%99Z #>6CU&9W) C_'6
MPL]F)%E'[D[4<K9#"&;UU*$#O@Q!F=J3^[#X8&)7;L]3PS-!DZQ9B&I)\64-
MNY"A4W1UG6$!^N"!=7>&Q4B)R,\#SJLKYK7'WG0SX' $Y!B*.W_;[RM 1ON\
M"RI/?.;CFX9I'EHD? GE>A=,N-8<UW!,]M6XNYT^<,3SA&6Q>YV"G@N<]!;K
M.%9[C$%P*KNU@(*T%Q2ZH+4 I -91XQV#)M*!#6#H?9=/[>AI2VZH,X"4SN/
M2L]1#ESS+B/]T.?O#(!T([6.H#U6+3X%]OXD&[#(@1$FF]CP-US8%E-(O:C<
MG4<["$/.'(2 ^R"*NY*&M99+@FWQ9 9^.HO+ZI+3NT(1Y"'EH<N8U\B8>V2T
M\ZA,YZ:,]> ^B& 9<X^,_)@==T'.X% VI (Y-('C#CA*EMSTV02ZS&^AY7),
M"<$J(,^DD-)JUT#E&J:F22&&RIH6*NG6M;]PYE.RIQ&'9.1@%F5>[QC.YR 3
M9K!&$,>%IV0;/)]L9 L=\!.=2[E+'ME,_4R)?%,H!A4G!O/@A%,RML.)4STX
M<4H+G/R$T=&YYUC0ACNUY\F"+'[PG)R)'/]CY^[LY7*$+/FD4]XC8NV><->Q
MKP!S\$M*^(,\'/O;N5K$]5./&UI7Q3R%XZW&)H)GO#R$W![RYC!$=)&U.0[T
M"?_+)7_."T&4:[+W<V<*J0ID/<*^;%TL"6FL8A+2>;0R:\T%E-9>RZ\B+!*;
M6&K2U(52G^YBLL>=;9*7\<,-K @5.$38X&9$![:9<:9_'1MG[.*X,BE6:197
MR?0NSN;+I.B2?KT!M<F2QS696]#!.E9VL@19?$61C7_<(4@5&'+N^KAC$R'(
MY&<X7L?B@Z%3H1@^,E&%H^=X<WM7:<H8LR:*6O1^[FN2%NTT*G[T 90+O:?&
M6<!Z".XS'['FD!R*H0[NO!3X7]+.PE?U'-TLIZ=HX$"%'+?%KP(@N&0B>P((
MPP[@Y"6N>#H\HYQOJB22@E/?(S6G.,66958!IVJV<4=!SZX'A.!@LS2PLQ+'
M*.FPM3@L!4/Q^X"XI3@3^Z82CKM<N:YL/W^HQ2J3F_&*?&R!%QMX;P #"A8@
M%E^[9$YE2?##QO7IK3N6_9#O2ESHDJTM*AX.[J>]9-'92&DN<6/\+BB8W&N#
MHP=7N"D>_;#_IAA:^&U$L^\V\1Q!SR[L^@Z]&O[@S7O1L,CP8#I>IJNT*E7V
ME9M<]E2,3Z5-I7-@$>"(T(L]H[_0N?;3=UF K56>?YV7Z>-PBM$$X4"R/Z'^
MY_QH +AXQPHP)+!^WZ$?1K4\C^0-BBZ6E2IFZXR[&8]>1@UZ$92<^E ,.N1R
M",RH>?&6S2BO'Z#.UQ=><'IWA#RGUF-.7/:+M_5P@&H_[MVE^CWY5;6BCX0&
M#L2U4<IZ_U<O;7>* ]"R%63\I4;BO\/"\M.UPS#Q\C:'/9=A%YBXVAZX-C#(
M:SAND?S]HM:]C*9@,4>'&*CX)QQRX93^$:,J%Z:KEI5GI%W?@ZRK)U?):I4_
MZ!<ESY.R<MTY618SUY63\L($Z^)6C'TV6S^UQ\[6&<(=$28A6X#M2'@)*'U+
MA0CND^KWF??]&*2Z'<S>%<Y[/NOP=8S[67'Q4I'9U3B&P/PK%E>_%5'DS@*S
MNT2S.(FKG3@)RU[#24J/D9^MUJY+-H<.=".=&88@:X,A@)]\N=R2(88:(WE<
M%*OMU./0]7SCE,]O8YJI"GAAJ)XB#<NG^"(I[JQ<>VY*-3\5R7TRJXR[3B6B
M8#SQ#(;//)*L;XJ/>T"#_^_ <A<_E54\^V@C@^5^R\2#K,H_NF\SE38"ZTZM
M.Z!5AZ]=C"Q=D."(^TAA4SP%%K;R1#L_Y=O.3;_#5F##TF1Y>6[(]?D<?M</
M-2C\EFU6;C-.LWGR&&2-6K8B-!\.7EZ]\[:^%U8C<#/+B>MU-T[(;,,H+=/#
M4$R?DR)W-TDNCW2C>S<EU]#95(X,9&J%)7O7%_)BYM3C 7'XW]HK*V1D!4K6
MPN;%C>+K>M-WN/>6[-3%.A:'Z6T6+^7EZNFM!W+=IN&V= &RK[=NO$U6]AD%
M+ H55:G<^>X*@A9%?F.:;EV<5WZ*;YS&BQ&MU%I3Y7VVQ-S^20(W3U7"FSUV
MVVK-0*G:DSW\^.3!!O=85R&LQ^Z44P7F5]6U[=[_5Q\U5^5N5%)9+<%B%VG=
M.(;6I=OE?S"]_BJ0%\=(J%%>-0-!-BIH!>LN,VM!NMY&+?5WJF2U7L)$\"6=
M(KV^XK-/9 97W%8P88N>KX_1(Y]7P\]/_#Q9-N_T(GJ$E=A/,,L;C/PJ#/<3
MND2/;?!>!C--4+?CN85"+GWZ^%,!)_.2Q_^=E)ME=<57MFW@YBMQH25#R>>#
M<3988KY9); @!7\<:\D4%68 _K!TLOC IC[DY/'SR,,*O86KAI<A6J0%'*7N
M9PG0(QP^Y-F\#LS-.6U^G"7#6"17N(HI?8/AR^L^@O]?,<ZO11E&76\9&J<*
M/:(3],078_KY6&%?>6A&!D&,8/VEZV6:')J;7@@W\_0AG1^<E;,Z5O@E$]<(
M<Y)5:?5$[HS'CQ$8S^7UE3)Y?AV=T^W-K?!(G9O8ACYLHKCR^>;P)OQ]2%EE
MR2V]_8AQLK$9:>#"HCQX;":;_+*)EW!C2(,*P =S^IH_;J,(:* "-)%7TV=E
MZT406[<%7*)8/ M'5R$,+9.RT7+WPLUE"_70DGL>)045&VCI&9FZ#&,JOTUQ
MB#B-R3GOA^?J^+@-5_GS&/FOO[9A"GN%.N<8QI'%Q0NOB_S/(IFG<!+A%5NH
M2FE2-XW)^'B!X F.<I0(WK_7(B_)JW%TA<@ US+.QQUU363RB!NX65II7##!
M1#XBX'N2.\)/7[[6:$-CR:D9AB9 /ZQI5EF[E,G@SX<VJX">ANR,H"=[1 "=
M4;Q"@R\F3A4D]&0RKR6["LH13\O1-%<&5VCM'\E!O#RV+7U-OEV*WR$HJ;!L
MCS4%<@FG5F6QN9?92A^Z6XAM*@^S&4T@PVA& 4;CRU]C-?]!=($M0+6:>5(,
MR<5&C=5:9&]?^"X<2I?+810"$)>@[+&9.!R%"1=X;A+=BH283*\" Y2\P39;
M:!U&#&R"Y7^/&<7&UZ?THR=AAHJ<+9R1O$1V'1&,?1@MJ#,QP2GO5%^KMD;E
MOU1, #XZ59*OE>;KD1H=[RZ'%@)^&XK>MK18BXL(B E@K+]VECO*YBTMU^_G
M#F6CKKKB-U(LT4Y&ZO5<G:,#6N@C0[JCA6+A30MUZJ.MA3J+ +^-W":JL\%-
M=!1HHF* 2WP9Z8'4+(<S+_P=7EN"D1E(U;>SC<YW&&S90ZSKX5C_-L+?1KKM
M:H*9Y354 F*)A!@EF.20V"1&N4^+'$: D)15@#TZBTR+[9AHEVH6!1BQ]*%#
M=LQ,'[4J,+.>JTK#8CEBQP;V(L(#9&UMNM:7BRL]XF2D6[GA-O9\(.O5OEW@
M;Q>6-][&I'D<:21='*//MK7#WXOHLSQO86]F3S'O8/ZN8M<#UWJ3ZZLY<9M-
M@4>^ZN&T<^OS!7R^<$7!+9@1=8'H*'B2A+ZM<[*O%*Y3,Z9+?,9/4#$DMJ6R
MV8<(SEWK1ABVJUNAEUXD7*7H(?EA!95'2H/TE:I"Z2HQ",7F8,+'[AK37+Z.
ML4-MS&:\O.GZP>@AQ<&P4N1AN"+/W%K3#)15SN9<E+=733%3G.$%SK+XR]T@
M4U_P)K"A2$XLT "&X.3(/)H]B$6RTVZOUQAJ%6U;1HA".QX3D9*Y+24 M\]B
MY( <GW\)FJH0\6G8<)Q_-"Y."\%!F2RQ,>$NE)<% .\K S;XE7=Z>&MI=1],
M( ?/ "+9QBBT&>?'4Y(9&IM@(4;J '"($"R(;Y!"@=I"#)K;+X=IU'(ZN,CO
MS9*ILSEXIE*0>F8Q"E^5& ,R'8?;3!.;H[K!=X/-D6!SY&%38]+A*KQ#W<:L
M/\D6XP '%H<!/QVU7^>:J-<C)MP#'7.S4-$P7A708_0 +A!GB!Z8"W3 *-):
M,@$M(A79Z^P63"D!$KBAB9"XT[&$%E6@+I0@>-3FI5X# L$>5. *0OUJ"5'*
M4"A$M57\D50.EXZDJ;9MANOU)''L35&NP<* ;F#-\+.,]Q67Q22IKU^LJ;4J
MQB77#T\Y9\S3[\> O=M1&E0O!ABB=+>>/AZ$:3(4?9.782@O/DSM>9)FH*.R
M>!N%\M:$4?+(QS7+S4U5Q-B4'Y)ID=UZG8%Z3E!?.S6(1IWI \S2=)!^H% 5
MWRR3GU^__@!&PU;7DG7S0_.#-L"CX5!,7?M.%J_RI6@4*9PDRYY.T+"+OD>O
M7X]E^DBDC\QTRBC-^P%N=]+>!^K[Z,-8K1$ZY/>4+5I'.LK5>VF\Q-+J$I1P
MI+,("K2DCYB'H<K:ZU? %N1@9]DRW=&W15Y@R>C=42FZ1*]?X;\G)UP[:@: 
MBD9#U(,,0@M=+".CIZ@C!9H?Y>>/C 4,K'PMZ:G8(@\? Y",06GE^9KR1YXN
MT2OZI#-IR?&:RJ'Y,49(*2990A&4/,AU<4X%T[@15G)N6,7%4)2842$<)<:N
MVF(E2C[1LW#,K ;D\,WP[?G%Q;NW&]&)H1M<M26ZUII=>02=Z5=^4L:UZ<,J
M64&5G=9,X/?ZZ*<KX\PIUK$3N:.?4'3]_GUOO>A&I/.VB/ C;8Q^4BOD-3FT
MUVB4H_7@J@<Y04K%,S"D),79?MCR$,S39JE81Z=&-@.3)B%-K).3X]].6O4H
MKA:%6"2+NH)L+D>"(+PLCU%A2U><'J0HMY;-@6:[LMQ.6K4H_3*+^-(HTN&T
MIKL&UONGQD(=ZO+^J;%Z8J2.[C^WVD>_K']J+%I+3*UP:H65%;9&9!.=+GB;
M6KN#$G8M<</2':N\0@K=,O2&@L?6[9&9FOA!RWTGD5VXMBSXG92@.6W7()W1
MXEY"J$?&X^J:7@!J;'WI87@^IZT=UV:UP;[F2.+T.VU?L]LLFJS.-0*:3; A
MIK-836%=#7&8R'7UV-WT!I1H4(%2$VY9J%KSY&F7=BC3O0CH:HMW*-3V(M>6
M:4TCS 7'WN&JL4%N+N&A);?EG5V5UO!-WM9(D]GGG9L;XS"AM88YM.Q="FA9
MG;=4QI86H)E_@Q4$&X&K C0;@MU(^5JG_=C!/D5WMM6[&,+6RM!;:])=KNN2
ML)$XV<+]U,=>D+U&2KP/77@YSJ;#1POW<)^#D-F@^LAQ79EC>].M*>L.7Z4+
MGYI%E?FV%K>9=*/8;;A0*H"N@R%%T?^3X&,8J1&?4P$RTS:4+1]<1[])"[NQ
M8C@ @Q&C1+S*4#/O02%AO#0KQL56_5&%K8XR6,=I$;8_W^&0Q<SHM3(OBA$:
MNXRO^1YC>\_PM=A83--((H>GH *$O@+^B+A< (FNX1ZY/H.(KD>DLG^5D,S[
M#H]1+!:ZCH[A$EZ.(9;9;TA>RH0I[/\1POX?+*R!'QXO 0*G'4, SY&OZ72^
M)+%F$^.4DK.9T[3JVKT^F:AD ?X:R(HI;OWS$[-W<XD!V4C)'H^/Q8P]_<PT
MCIRK.!H9O-P+?Y>"O5]_1=&+Z$E\9Q!=C>]+P7:W!=\J+V@5?TRFAMD\JF9C
MG@^@YF9K>'C]O-A/_4PKJM+_;D>-J'+S@V'YVJ%LO:FF'&!:Q;?D3'Z6FF^J
MNN1%7GR*B[F>+N_2JD5]D\[3(B$!9+ST8'#B5W 4<3;/5^3(M++TX*BA\Z4V
M,/[7%.9*9\D5<JI*6]SO$%6\P.ZGV[QX4J\QN+9GV,D^!>'4.2!G0@&$6V>2
M(L$?+6C<03)_;*V9!G5L0>%VD:*DD;&[]#6)7991*S()Q(-D=D'6".T"=TCM
M C/$#C<%TS UU3BMMJTYM#"(MB81:A26?EHHR%WK-#755,SVRFJMLNT4UTY]
M3B6&Z]#MW30=UCC ?V8=?H?>A37R%\Y0^R\,0BZ@%8HKXK0JW?NV>*[W[RW5
MUBO;@4$JN5[MCJR&NNL+P)&?*;Z^*!SY1!$$&[9/O9?7O:M_C!6+.]N^"2L.
M5Q@?_OPOI38Q9AND-C&PUUIMLC;S.R0-[0D 1\WM6%]8;X5G.M:&$]J@CMRC
M'FW8-;3;Z\R9&Z9;/NLXU:Z+#:=P!><][<JVM*)>1S[O@UT%L^#T.S0:^?N'
M9FM@RO5CGE4QEJ<0VP?CV<=IFI5)H46^QGX9D:T'EDL?]:TRK0/E-J%RZV Y
M.%P.#I@)K#P&PZ&U2"B)G8,A-!4=*Z=A.')>RE(Y)D#R7N&9OKE" *JV<<PV
M??.A$/@)VH.K]::\FP+9B.T-[TCQE$NRR=<P'@5_/?7B,8JF+8J3D[W@P 7J
M0D.C)_,"BRTK#!^MJF=+34],HU"W3-:C\6V#LBKPHL!??J_!;6NP4VUA5=B9
M]1GJ,*$;7(D;N0RHQ>$X:JIQ*R3U]?B=_Y3>]O6XB2\-H*XF-R$*KLI;5F)>
M!TSK$GC2ZK]E7:^KW/T&C75E-32\0)\H*$J%.SB\(P#4:*+Z THS@@1QY(L 
M/SE)A;[J/,1NOF%'K[ /?W!Q\7IW?\#'H^R(W^\9G#ZA+U" ^3C'5/R54W:Y
M:MR(,#TV4V3*]"_J$"-GQIIU_M]B9&.".Z#:9CA]9 ZGBZ[P%9T[H@!%\I 4
M93*M&?54NNVUP)<>GJ_[DL]6Q^PHPXK)<L&V 15IDLT]\Z  ILS4T5>8BS-\
MKY-1--L4F,?*[5W;#OEN,6:Q[9!EV^$>=0.P.3 F?J8#KB]ZQQ$*#1G<1? H
MCWYCI:$<J.#. C.HJF?BI8CX*0Q<1-4-SI1MGW[4U0KV<PFSD*JA#FPPP #<
M"7<4)0M2@RM[F_-QI#!"CY2&K-16=6<K* X&7B;,A@#PV$Y79"/)5"XE:ST-
M14J;T\% X_3D9#M.,9I@3OTT%$YIJ_)J%#[8OJ,'5CV;,2OB6[Q!<LS8SN=G
M]*R",7I*YS^>"W,YQ>,I*V&Z"$44]U>^\A&YUS_*=E]OW$1S)B?X?0-U'2-0
MKVL=N!O]B]K^4ZS&@++)B*3'FC8%JPG+?:OE606 1I9U=C7OZ<*JM9A:%JYO
MGM6EY2L_2J>L5TU$$-BA+@CS[(;_U/Q[T>C=ZYRYY<@))ULZ\4Z-#S=\J^D1
MOW9J_;;;$[IQ"D%J_+3A/QNYT7VSFQLW3E6MNH"1.1>8.<]B@$P1]P4##.06
M[F3BPD<QB=P3E(4*O UW)U[N!@'<G=1R9YOYSQ^<.$7NB.2G3*&ON')]A6-$
MFZ=&W'&UWWW)%L3Q:\[\I V^/)ZR*D^\/GT.F]%QKCK<CNNV3'-&R7+$-CS[
M25AS6QUIF6U%VUJ<P=[$01U9[5L(C;)^*SGT@3P_9/0H1<SX/-R;U]L/1_Z9
M+IJR0D01A<2?IB5.B&\3M6-M]$D-+/]=!_IDE./06F0JB<049"!%=A-=&2^M
M,KH.&AAKCTNY4(Q=*:1V:D@:K).(CGMTP(\#U?:7>-*6/!F]R= QQ5!"-=W-
M8!2>CIZ34:N7]^;=]I/HUAHV8Z2,C>;#=;OQ2JV^M0-1)CSL,]-Z7?5-9D-V
MQX@6R]%#]"_5SS4_$QU>"*.8X^DJ+CYRK9(:B3/,-0.14'"03H^B[*(_(FRZ
M<,;V(EZ6B2R6=($BF:6+6 9T=:72;XGXJ]/UA2Y6;K%<N>V"Y=I50DZWYU@?
M9$UO& 5.-K;0;]'Q+,VZ?45W$5&3G+,P\[(/QZA4L934QT%1"^]6UWM2CD/#
M1;B'$:X&HS;F&91*3UEN=%>U^"T?I9A[?4:G9V),-7JF'UZ]W9]GNNKLR]D$
M>AGK*$]:K^G&(/I,-MZHU1K2E/=??Q7$33ABQ>0R*5>"[]Q8^I#;_MAPB+G+
M(5*YX7YF\CW-;O\;1EBF[J+<XR_Z3$?1N? U-7G[FG9G'E1PI;<'UZ4GC++G
M4'D#<WEI-C#0%/%KMQ4H7M9&=;5<2"U+_BBQ-IM[WA0%973/F"+N7-Z^"U])
M_AVZ\/=PK)UHM5O1P-C8N&G=;K2F7:1\Q?!T"JT_[?)]4??P3*?$$Z@IID. 
MI"L%D>2,V0NO&"H14F&P*J?SS6KU!#ML;Y)BNMJ4U?0FF2H[3LT?DTL\42$U
M*@K'^'<7EYAN^I#&RRE.C^%P4]$%R&G=#<D[R]=/6V7$.DIO,W+@*3>KX+SS
M)(@<UN-__L>_*A<4\Q%Z9[%<@GM@YWE[RJ:=TKQ9&W3FS=>LLAIN0XA9"G/J
M";^R0QG1[RH+4YDXQO)WA84IK+S+B^IW1;6PK-\U%J@Q=FCR[VH*-*S?]16D
MKV6>W?ZNIQ9V];O"PA2V6.;Q[S4P0%'S?'.S3'[75)BO0K^KR]E#].\?UG7(
M]PW_KCIQ?,!HY!_'450GCQ#X#EWXM\S9(S\-L]OB["3C^ZAO'9%'!B.G9'!K
M6GZ*U^;L[1".XC+1H)L^NN[QH>=K/OP>TQ&97@PO-^SE!JY'@"%WQU!Q*-LZ
MMVUYY7RJ4F+ F[XR]AO%GNMM#4V1S-?D?++K8XF:JX!I !3 Y%?%]U0J]4@Z
MP+I*,SFP*@]"4\CQ'8WH$I/Z(_[['BC7<B^QQX]AV#'J2XQ:15\S__%COEK'
M1=)&FC[/A. :2X,Z?(HP2-RM%["9OE?>9OI@)?7T_P)SG>:B$FM-,:MD?'=]
MI.6BA\_U=50((ZKD3,\QROPKN.SY5B[+I[MTF:"(GL3V8D*0PECUR0D=0,4/
M&=G=X[@KB!S^\"=R]D-K^5R9N9C.-"HMO4(6?IK<_G,HN)P9+,T#'&C #R/<
MK:QV*BGI;P0:EI&"9GU[GHI"\'U&]:S[CTC0H.P%:MM8H,^X6M+&1<1NN_'8
M)-&89I<=OJR2U,?,?:.5PYB\ZG$"UVII.SM6ZVF3[3+IVMGNU@;0MO@U'CWF
M[/1*38S9]A]F^DT>*)X_V/(=HU363U+[FAQF-AAT86&3M]6NW7;2Q)PSL\6D
MQ]O[M[B)*\@66 !TA:M;MW-D"000R;),9!+<?#48^&7=IB7@HKKRVI)RM]_L
MZ%.V!GLW[QYB)=*)<^C4X[E33^3H9.@_R*(%JR+KGS%1Z.P$.VE?8$!_!NZ"
MW3SIJ 3D*C]R]1D:(\U!@T?F&9F3IIL >_0K!/QB3E8L[H648+?MUI"W('6P
M#M78=+ZSR_9HB]/O*4J2QH*,Z -_N8*KXP:#K._0''H6U?F,B^EJ1TUY]%13
MA3M:6\**2PN,.!+]%"HU,MJJCHE!"THS+==Q-;LC[!A2*!<![*7N.95D=#18
M:3@541,F\N5K=7V^ZQX7NI(W7#!"XIU2Q ^<J#*Z05E=):M5_I!$'(!A@(L<
M\T5TW84K'%7SI^QIIHQ.#)"&WNJVG,M5#T;H4F=ND5A*W.LBS_%DUSXS(K>S
M7/>NB#EA7O2[51@]FUFG$6!A70PZ3<P8@L,Q5<.85Z1:3;AX7-L^(4-+IXW 
M[MAG-XGWVC[OK75V.PB7I^3EH7-ML(O+PZ%/:M%\7(2N_ ,!U*6 6NG13Q0%
M?5;+T.,.C.H=Y  83Y^ "*Y]*EOBF\:9^%JC60$3P#3S82S+_CR9,\07PYO.
M5#G(Z4[FE@#'F,$ I[L;,>22U<>$UL^#C(W+[ '72"L.]R! ;S"0,=%@0 )/
M9U"T)WWK+H\K5H\0/,(H'G /Y;"[]@-T;KH484ANE]$NP!#*:]%>UPIF12$4
MC3PJ]F]FT&W5<ISR-V>T\C='M<:PP3') 82M#UP:BBHD7K&L>R^!2X?S;^HE
M.(YA97W(6,86_3!!S;>@C.=IB@[6$.VO&0IPB.XZ)JW$I[D /CQJ->.SE@VK
M_JNK_L[8]B?L GUQKG, :IJY@UQ A&U@D]68L7M\P ON&Y+EHU&$&A]4H:3Y
M<(H<83G4D%2=XNH&\+#^Z@990M2XG3:YA81-/JCC#S0B.V%L[=?&_'VI70S-
MKQ]7+<\BX=(5 9LFY,(/$R#CRXMTN;1VP3.ZYF?6RS+W4=4-Q*K#K^QR,+[%
MRL&K>SQ5+:=KJ_J# %A5UE=9*%D]S_KX9PW#\DS7L*DOT7!I7W&#12[W,D$-
M(+1*RQ6X=MW:6%,U['>.X$<MRH  W=< C"B*D6OB?<C+;@C[*'OLVX2[)Y+G
MB"EI.!:/(SI7\U4),%"(D(QHGW.TM4YEB "WL?YGD<Q3J!S?BJHU"(-'?H/L
M&G]H+A(%..IQ[?'"^59+1S]5)_EE$R\]JO;JM]:&->\C]27\SU!4[%%73#OV
M)'1/39.UG)\=P/=B%QZOM9.!'DHS_68[VTIM+^HM\( J9+O5E\EC.LMOBWA]
MA^6"I99D751;M1W5U%;S,V2J-S6HFC0S_S1RJE&9]N;V=^DQ/ZHK'7HDH(<^
M37\UFBGBO;T\[FK.8B7;/[1H9"9[D=S^"HRLLFNR>+W4E"RCOBBY_16=ZCPZ
M/NW3V$?;R]@339LO2'5F8B74*@]O %L3&M&I!7:J)([CIA4VL&R(N$[86-IP
M[( :,:@1AQI)J#2KD.AVK9+5#)>1WM+UR4)0(-8GR%Q#Z[@<SM$?^=LE?GE/
MV;LD6:SBJ2\=K5"LF8T:G=NJU-1NH2):5=9R>;AB;.E;AGO=1K,1/Q^"4'%J
M&:@QIR &()2AOQT"FLJGO.G%I_BIG<]KE*9-.]5IBB$-3Z(>U.1NF+BU#(9C
M!Z3:*'%()?J4\806AT)^EGVB,'+$$+R(#!?(SL;Y2A:$J0>"Z:Q]5>H=+B.?
M4Z1EM)5G)+]MW*,_8Y!1ASE*:I>U7I*!'-Y%3JB+I/P,*,WWZKB6+*?ZNK1'
M'RDUN0\_2=DCG;M=/>:.#G-7?[FUNS3VG)!=2/D33,NP\X2X>V&O@ZO?KCTG
M@#JO42=8Y2F'UT.,6+TX71G002A+/J$(!W[70W$34O.(F$8*5E13$:;QYK'=
MP)@],Z8/BUVZ1L6XPHY[-5/T)L?(W,S@9]EBUEHTU6K,T$FWG9KX9BR=;6VN
MH7Y>2>YTB\+&/-TFVH)I@V&=665CECH.ZR))*E6?UZTO7YU ?$U(7ZP.84>:
MNXY;=HUK^Z0W)<.VOLG2+*VP4G'D/*>CSE 8NR\7,FDUS@)8<^B. ?_FJ>0P
M?7SCBC"]B(EBMH'3+GD[B@&JX@E]H>=(U0_$]^FQZKP#JAX>BS_S'BH+M>3Q
M^(0(A&TS,DIZ>GK*'2ZW63XU <AI[NJNR#_17JUS%4Q(2=E^QP!P%MR.A>8I
M,.&VQ!R-QV1:3:!K]F^X/&6KKL_/[5+],4_/I+M&O;D75BI^E>%Q+ YT( M9
M*MA8(,^ZE- KQ/8+"_7?M[#,L'$*MM%-.ZO<KK.Q3<8;G-VW*F ;[RU6$"#W
M$@)PL^CYG?BVZQ!"/9*G@'=<E]"R7 ,7(OB]&&UZ][,L(324.VC%J-%B<Y/H
M6<302+M^D8,K%@[JM%@V1I8/M.[J^=D7*PT>]8X6W8H%BRVTQLYS^VO]HHUG
M%D*)1SM^C\8617@<&@91@M&Z&!0TTN2IN$F%.BJ?.L7#T.S9VOK=EVY=.KX>
MBCZQIV!UHZFM/D8D.0P+)<.Z_(=6BU2*7Q^F+GP=\!8^PEAA%-@\T95'=?6.
M+3^JD]KG+[0[I.D2)X8T:^LU#.G^ 6*%]6AK/8B^2JO)@4!"F]!G3PY%T[3#
MN31%M*R@MU=[0TD(/^-IL96B5XPMC.)>W4Y0A71XH_TJS_1&M5K3-%;GDUS7
M3+98<K%3,&WW\;>?FFRU0,./IBZP---6N F:>$/O89\Q+6-NW9<TA.ZC/N,6
MZ 1$(;R_1*$AQ? :;:)49Z&'#]T2&R2B^,:O'+JL*Q;%;83:0-/9+(ZF7%&A
MB/S""XS'  <LKNV&*9U!.JF 1&J'ULSZUUS]G'YNY Z\:BN@Z>4<AC(*JG5L
MM8!9B(YB!Y2BL@4'_+1BCCP#S+7W4<!1CDO\69Y*6+]YC@#C1+G=GHR+J2<)
MEDDUS9)/T[LXFR^3(CIG?.'<]'R]",-&[]_SK4\P.1E%=(E2E_Q%/;G3K]OM
MRF5C)#^<B0,+(F9)4<"5(R_S387R!0S;X=[P2_B48,ICU#E*'M,J$BLDU)HC
M3O-KG+85$F/^;S9P%!,75!%AGBP3#,+2ZV_480CI53J.*W&NO;?9R+EC_;O8
MV48>IDX8;,;*]32.W,<LMP>*+2&C?RS.I#4X;]?A=UD)70HT]"Y5L;KE_7L!
M8MZZVLW@D <V=7ZNE:E94IP<K'3$*-44<2.78&D^Q_ZOC.0-78_*13""X/$C
MSZCIF+UQ)(8&*2HA7*1E)2@5(:1*P"M,UW"1'WR+-!QP$** Q*;=E_FB5^?O
MWIPI%<>#'J/@B/EU8D'HH]'PU0^OWEZ\>?4#QM=#H_^#3M"PBYPD81NC8>Z7
M4$Q7'J.'-,6ZZ2Y(.(-UB%Z>GI[=9INR7)ZM_F\"L]O$6;&;<V1B7!3Q$[D#
MD9RQ.O1=B\,KIJB7K)5:Q>5'67=\4+1N!H*%H2RQ4XX+">< ["@L2O_1^>*X
M(OWZZ.A(=R \1>7F\OKJ2/$3>BT_.E*J>:>I^F( =F,4AV.7^E2G\70"*T^N
M?\X^\$_Y= +?F:%4IRL,<\[>N&_F:WYKZS5UN>CG#VA-\*GO*_B@;RPVO3!5
MD="E6Y7.L,"M7,TN:K5KXM-<:H.GU-2\CK*NKKEUD.;6I[^Q=WI!8;.:=+O;
MDZZ"S7$'A7602V>'51FKSOM3E^X?GE=5AGFA RF+YP==%>D#!@1E72-<CQ7E
MZ< 1NRO/^*JM>$?*#L=X<AUUX;*\>!K%M7FUC\=P>C'-A/T,R_=;""OV'7L.
MS$+MV \" <TXV3UT3.G7Q^JE]%Q")5JA7@_TYH3CK;T![6/:?9U>38;!H&6&
MDXE+BA!*]1F=!N=JOPU[XS$N*81KU(NG_5ZN6:"6.V)V<8[#I)S^*:?B"D<=
M5+/*TF65.&M)$=$FL_R@&T?.3&.1%USX>]QRWE]B=N_A^,]X^O/]ATDL_)F#
MOO:-&78)AEU.5=+P;E-'0>1Q X__"IO]S=28VG#GS (-MLQ:8W,M.(,2'UR9
M1*BB2JA0F#M,9J+(-=Y%'&<5S+0J"+&.MQ9FCEHH,GC4P.IA/#TY&8M^";'U
M;FT^5AWCZ6#0*I^LE1FC.\G:$381#-P(ZMH%-3BP6@5>,9&LLZL2?R)AG_%3
M*B^[1UP/9G!S.I9ISLAD?'1$+I]4/SOJ_BJ6E5\%;5&2[FR-!>FA%ER.'K*!
MQ5A;+=)%M()64UK[BEC\AW'[&M,"%P]10#+J#^2KW QW6]WUV5MOY8;*%XLR
MJ?K./'#7[3P)R9<),@;5.A0,E&R2(^P%QNF\UKQ'U/3-?I]2FY0*5#K:.<O@
MK>9-@VAJX^B@F<E.1)O-DDY;\OU+\11-<,7"__#6D.^P:FS_Y*B'ET<[@3<K
M2&D1E?9/9X:V(R1I1=+.V4L)+_'IJ@QLJWGK GX*_L$6'I\2&V?"?C&<V=&*
M=:DIUI]7A)$CB\Z*$UIQ2O2!*_&K".0=FG"WORYM.1IAW6;TEIB\&%'&>)<(
M@ZA\HBC\^12HQS>ZU$(S6JAC?%G16+^I$ );_RU;CEK*JO]7Z@)I1M1>"L<8
M((W:IG3$N!%M6KPHW>&\\)>*+WG_GCK\CE'L5E!@%@0BK2",1*E#]T'$?,T)
M\-"A!DK3QL+9]A 9I9PP$W"9)&2UC)+A4>URQ:L"MGR"] 77<*][KKO41ALG
M^7^F+\+0I9Y(LK*9U#%*V:RF@/;T>11'&3FY9TWPMZ)#JL)."QTVQ18=6LF8
M1LEV5TN*C,E03GM,Y[Q90FUUS_ ^D$!,5C<?R0=0VOE8HT0@.FRC=O3P\_D'
M5H#XB14'XOY=*TW!L5%4'S&^CYCB1UE0)Y.'GS]^8#K"3[RH,-^#X0?PM8:_
M,% N)QANO+PZ'R\'@V[GZ MI7(@)/?R\_'#%U;C$'!_QAJASQ(DLN= J$9GJ
M8N&(&LT1O?D#W11)_!'F.+]R[NZ5+-3"OA&;#O>>/-957,"YTV#5"@W= LP9
M,5^L@MV<17^FJX!'%8P"UL'LY.3#Y-[O+YA>M]&J0Z=?Z84N<!FA?R+,F-B2
MUZJQ-6,3M;>+Q'S77V-L_8^NPU?%:C-W3L3(*R/;G5UF N#M6('5IJ#U:6HS
M@V/.FF> OUF\2M!/[]_S/I'RPSFK.,V2PF)*S2B'R,5/G1L3PQ(=$R&:3?MH
M/97F"-_*:7\-H:JJ-J9+TK]:*Z.(.+?H;BE@RIA]WYQNCB?*ZCIQFLY[S$KT
M4]0]%:/U69<2T4;]IY/9='S$)O)PQ2OY6 KY,AC,IKIW66C,W..6Y?YR0N>5
MJ9TKZT^C&5AYMQ^SB$Z1AQ8K>T/'Z*%+&7XXG<&8I-3( QVDU)3RFU2>C"9-
MQJ#RK7GE$[O*HS5AB?4_0#WJ=,:4SGQ\1?2H ZY@Y71AA8*Z7D# =F>TER(C
M8@+LPV","BJ9=;,ZEN_J8/ML*H!A/U]-%HL0&RY1C%1?&\  2SY6"[Z\2 B0
ML8H#&TVF R7%0]+28K4NI2A>UN$@%,C3;#HQ3'JLF+%JI\R66UGQM(4%(ZO#
MK,AW(T5JK"^LSQ/==R<W_LX0^=405Y/(9:#MB>-_G/2!.ALGU5J0R^O^3U?8
MJ7V5$8MG<0;VKIZE&<B.&WCKQ?[^"">"QU4Z0S\>TQM<#7D1X0.N!_WQF"_N
M-&/D%=VH@QONB*PXZ1['N/%FC^KYP\[@B&@M/E7U1O. VF)0F[ K?K(S-DR<
MLNJ.]:\K^,IMEL1I)*C32(MFZ,?W[Q4/4DT$9M5!JP0%$9MJ)==-^8]3]I8 
M4HO@+EU4(64 I]AD[/ EY3]RN(W49@<N /U^@I9C6C[99&+$J;6%AN@8#B"]
MGV#30^-[=#E!&)V[F(1B5!T(97[M^-7?K]88"9#HBOX&D$W[Z1I;"#)_+,2D
MG!$+HCSQCHPLP'02I>N3K/O]TNH:" VDEU@M*#V9Z# <8#U)3X UY42J"G.;
MKKL68PK.-5%5)M2$P6'$5K5F8IX4]@J&.&FIG62$FI51S:0D56N/8%BEE:TY
M0["]6>YL6]-UF.SWD_]J!OLMFFNSM9I>SF%.^[*EFJ9(FE&. X,D7LGF]_(R
M$M_*OL^VQ,6#D;N3H9F"UM+0^ <6-X-!P-\__+WZPQB1#@9]S=@KC]AJ:X84
M)35%N;J*4BG*/H7 G%Y=$0&"^>SS@Z_X!_[P(_O[9ZUN=ZHBSDK,V\KH6<CJ
M;7T?]7\:7<%5XK+B__D8+1QB_MBBK&0-7D0@<1_B*ON,B"#WY135E/3:*1P1
M.D T?PG>:"5HRW9PP7Q%>+VC8"%E]KQR'=0 /:*TJ'E2&KOV=&)RJ8U7-#N'
M"+>%F!R&9-I*4L.U;".F4F;7(Q3/9IO5!O)Y)<-0L&)_1_LC.$X<107?M_.0
MUQ<.D2YP237+Y/>1&$&=M*VJ&R""NZ ]#K*UY U%5^L@MR[%&W<I'ER:6J]X
M )O4?6&C- KS9%=)?414RUD'5@:M1-T&26"NPV=52OB]NB2U2<FL!7VK0 F6
M>7:+YOGF9IF@<N,?> B31<6&&;LI:97O5PW"&:,#,N=8%;@":>U>?H.H+DDS
MV5+M0]1R0A &REJ>*.!;!+77Y!C>9S$Z9%H=Y+E<[=7JTFSQ#5M=1:5M;75*
M:96;76WMFO0=FTL+.S0C2@AW9.LBG\-PL)=3M%]6>VY6MPK9R-RJ&"RV1HO-
M9L35^.\87;.J\8*,,(MEG.>*>$/> 5>&A>WIR1_%=G,^(;DA-Z^(N<IQ0)9_
M39;QTY1DM)<7*?&[DX!S2X]G_(7]W/.?"A>7/_;_[-S9XPS^M2UZ#5M[.L^P
M"0KY-*=(V$)KGAV,RNSOT=%1V#3QT5'('+'6L=)U:\$",%<,QB[W22JR\AU!
MZJ>ZB;!*GPBS,U.YE"_H>$[6H$?ST[C;QS'T_'3AS3=C,X&W_3^C13:C&6])
M-O)*LNDY[9DE+7&NK@F<8!ZH02WPX\(_>^6AH&\UTE8H.N'UG4;-\"=2]^WH
M-.>S)X?%VG4Q,<KR?89(^N?L0]<[*VQF->9@E>S*?@A:MH@4 "[=L8[Z\]A=
M3X=\J&)DUEAVCU6=-_5GIFJD* +)=MQD&[S%,,!=J,Q<8M*8*&:TUL4.51\;
M[F*?9:-I@!)5B?>@0,V-!KK;(&_K5[,35O&VPQK(D8#$@"/3+U.MZ(Z9?=O2
M,[/<JG>DG[AO'H)SAE,4XA$\C9Q^6L/"Y,.>>L@",28(_C+BSIN8%4%_RY#?
MCC1?;N#VN7*>JOGR(3AS-A\3C^!EU,JUFR0;?;N9H=&Y6Q1"O;M%:?_N?8@=
M=#\>[>CE#2RJLQ\R;T_OK1FQMU&M\^_HAZMY>@W*>)/6*S"#W\N?P(LB#!VO
MU\LG?T="#CZI:4YL5XCXX^*4K2SBG0?:]SE5%C!-M)@9,F-@);V_T : 0T;<
MO(*;3=*EN;7_\OJJS_C7E$'&X%KJI0VQMLIB3: /8]0YLLX8$%C[-]W^\VGX
MI[Z+25O#]<.?@1JN(;:EAGT8L89U'=;KN[V&[='_-CK_:=1&Q<YY@6"5<UI;
M:Y@@,"H]NFFR4#ZJ\!UZ]<Z[,HVDO[YX[4]WQ&+\QL^1'@.OEU,T/@J!1QA4
M1MM'YEB$C/:NCAP9CKX<L3#OJ"'(<PQ%B"R29QHHRS#9C=45O1W5A\A?C)-%
MY*$B7X_:Q,1'7T-T) 4*5]"12S.>&%BD-T? +318&_V*'P^"'> C%S@+A8^D
M3D@4K+XKZ]RM"!A9$;"B72V@A ^(Q).NX-<@&1#P=JTH5\?A"VQIVISL?63Q
MK(AE[3#/B= 7MCJ!?2&K&W-#U.FFT)2I3: *FY0AQ$3H!&)\NF=^BTC51G+$
M0]4C)5 ]4L+4(RTZQ579/EG4[U)7:;!+Q:#M7*J:89\N%7C^IW*I(-#O+E5W
MJ: 3U:62]ZU<*LFINC+X$.)2E8Q;NU3 X7.I-*VE2]41-KA4';C!I1J8PURJ
M0>$P+G6P#Y<Z>#:7N@EWJ9NV+G5S()>Z^6=SJ9O?7:KE4C>&2]UL[5(WIDO=
M!+K4S1Y<ZJ;&I6ZV<:F;-BYUT\:E;K9QJ9MG<*F]?;C4WG.YU'EXE#IO&Z7.
M#Q2ESO_9HM3Y[U&JY5+G1I0ZWSI*G9M1ZCPP2IWO(4J=UT2I\VVBU'F;*'7>
M)DJ=;Q.ESI\C2CW;ATL]>RZ7ND["QU*3MF.IR8'&4I-_,I<* OWN4HVQU,08
M2TVV'DM-S+'4)' L-=G#6&I2,Y::;#.6FK092TW:C*4FVXRE)L_@4K_?ATO]
M_KE<:IP%NU0,VLZEJAGVZ5*!YW\JEPH"_>Y2=9<*.E%=*GG?RJ62G*HK@P\A
M+E7)N+5+!1P^ETK36KI4'6&#2]6!&URJ@3G,I1H4#N-2C_?A4H^?RZ7F1;!+
MS8N6+E7-L$^7"CS_4[E4$.AWEZJ[5-")ZE+)^U8NE>1471E\"'&I2L:M72K@
M\+E4FM;2I>H(&URJ#MS@4@W,82[5H' 8E_KK/ESJK\_E4I?ABZB6;1=1+0^T
MB&KYS[:(:OG[(BK+I2Z-153+K1=1+<U%5,O 153+/2RB6M8LHEINLXAJV681
MU;+-(JKE-HNHEL^QB.KR<A\^5<5R6*=Z>QOL5#%H.Z>J9MBG4P6>_ZF<*@CT
MNU/5G2KH1'6JY'TKITIRJLX,/H0X527CUDX5</B<*DUKZ51UA U.50=N<*H&
MYC"G:E XC%.]NMJ'4U6Q;.-4'0O^C8WMOG7^PH42B!HG*ERG#ECK&UR^L\9Y
M;MC"_BMT5.,[&PX[_P?Z4-US;II7]?]C7*?G" $GI-RGJGG C;4Z?[/#^OR-
MO4)_HZ_1)X<'6,2,,P/X:0$FG/>$ &W]/3D;P.M+3$R!+LC,UNB$/-3J7:E%
MQ>=,6[HXLF*>.:7VKDW-+5T:\V)!D:'IPCSKZA475K^<7G%AP<OH6[LPNI#^
MG\6%-:ZB_R_LPLS5\)L=UL-O[!7Q&WU-O.7"U)7P=2ZL;K7[1EOOWN3"MEJ,
M;F8+=F&M%M5;5/;EP@8[N;#!OEU8U>C"JE 75AW,A57_5"ZL^B=V897EPJH=
M7%AEN["JUH55@2ZLJG5A50L75FWGPJKM7%C5SH55AW%AO^WDPG[;MPN[B9M<
M&(8(<V$JX'Y=&##YS^/"0)I_5A<&LNDNC'S9TH61O+I[@4]^%Z9DJ'5A .=W
M830US(7IF()=F)XMV(49U)I<F$%E7R[LQ4XN[$5+%T;/SWAS7G,^!J0/?V@^
M/\,^9=5U5@F<.L*%P?W>2>0Z?AW=='$=WNI\:W*5!IQ ?C,^X@.'6%33;]2>
MK[HMW_ZS5/8@#IP:&R21BW^X_U$[8L1]K W"_SM2I.35O?9H'I!-.XTFC ["
M#8WCK)@CYTDQ9+#3@RIJ<PZ/U&'15H>6"IUG+X%D#@W6'A]5KT$OF=8*=&.*
MVIP4%:@_1ZTZ"M HG 34U@1]U:W.) F5;0P09S2.*;KQ:P?MY!H'!W*-@P.[
M1C??!W.-@[VX1G6,,\@U#K9SC6%T6EDF&43]!ERC)EJ :QQLYQK#R+16X+?H
M&@UC,5UCLPD&N487E6T,\!E=8^] KK%W8-?HYOM@KK&W']>X:>D:>UNZQB Z
M[2QS\XVXQDT[U]C;TC4&D6FMP&_2-6YJ76.S"8:Y1@>5;0SP&5WCV8%<X]F!
M7:.;[X.YQK.]N,9YVZCQ;#O7&$:GE67.OY&H<=XR:CS;SC6&D6FMP&_1-<[K
MH\9F$PQRC2XJVQC@,[K&[P_D&K\_L&MT\WTPU_C]?L8:DY:N\?LMQQJ#Z+0;
MZDF^#=>HB1;@&K_?<JPQB$QK!7Z+KM$P%M,U-IM@V%BC@\HV!OB,KO'X0*[Q
M^,"NT<WWP5SC\5Y<HWJ41I!K/-[.-8;1:669Y+2.;\ U:J(%N,;C[5QC&)G6
M"OP67:-A+*9K;#;!(-?HHK*- 3ZC:_SU0*[QUP.[1C??!W.-O^[%-:I'8@2Y
MQE^W<XUA=%I9)CEUXQMPC9IH :[QU^U<8QB9U@K\%EVC82RF:VPVP2#7Z**R
MC0$^HVN\O#R0;\2(#^L</9P?S#L2@79WC\NV"W@N+[?SCV&$6IGG\AM9P;-L
MN8)'JK"=@PRCTUJ#WZ*#7-8OX0DPPB /Z2*SC0D^HX>\NCJ0A\2(#^LA/9P?
MS$,2@7;WD.I9%4$>\NIJ.P\91JB5>9+S,+X!#ZF)%N AI0K;><@P.JTU^"UZ
M2,-:3 \98(1!'M)%9AL3;.DAVRT!)_54/QCA\J?@19]=9,CLP-1*9':0 LX7
MU=A NV: B:BOK I>O.40T<+44D2Z1.L (E8U(O[62D0+4TL1JT.)J&Z\,D5\
MT4I$"U-+$<E&K4818;_&4-_/P?@XO7N)1AW^^PZ-SC6@O\95D3XJ0 W;VXK9
MV ]2S)1];0X'P<!^FAA-)OW,>"%WSR+Q']O3I=P3?XU<O\:+[Q58YZ7V,W.'
M%SW9R-CEY;JO7@UZCI1]7AY8Z_0D0H66K)61E2(QL*,CN@?'A.$E<PD@\QH4
M6@%18SPJV'XSN&N>E4 $^[N*_-,T.N_B,LN7]&&>QK?TJ6 I\(==4\^SRNBO
M2/OR999:F]1B?9,:N8^^GFP\C8JTAU'%E(<BI4S,4LC]!6F,T.)D;^CXH8O"
M*#R<QE.*_N&TF%("#Z>SJ2!!KF$WR2BE!+0ZH;1H[>_QAVZ_PRQ4)G(6V!N(
M06H(@L!;#;:'X_O+23&E 3;;BQ;=]^^[DP>(L7$>HJ#?9"E_ 8-@VS#)7LM.
M1ZD<(MJ+NOYB[0IV^"8XD;^+)9Q->[B8!L/N"0:E+"#7*5"U)&@E- FYL7?,
MRG2,%+>IG"LU5=WIF/!%R[(N^\PXG,I"@K'(.GI,GW6R*BD7J$6"%PO??8EM
M2M45M4NBF'01O0"+ZS(C^M(Y@M=)E"6?<+E0!+WNS\7T0W<P''>.I 69Y@/Y
M?K[_,)&YSL<,ZU>-UL_%!X,<_H(F"$@*UW(4<=#!%6OX<(72OZN-'_5AD:[>
M?E3@DN[-IOUA5^>%J:HGL*FF@)7)^+ T)^V*ZD^!HP3PPZG*+__6CE>D,LEP
MZT6*O8/"V(S6<5FFX#P4)<.K5:8S?YG.6)E"OL8R)4"S#P8Y_,4N4PXJRK2@
M92J_!^AI-L":[0OM6D7*D7F*U-*<IT@Q'"6 'TY5=OFW]JPR%AEFO4#!R^=9
MO(R,VDF\OZ);\FYIEGP56EVE&685Z'9E6C.[F%F<Y\1;5R@KW"7K6I7L^_0)
M$!0Q/)VZ6!6)K7EE/'(:1+5*O:4-H>DH"^99%6MP \X8(#F#@#%>W[P)T653
M2;],)T4ZQ@@GLY1^P7)QXX) 1;9XC%92/-00LT*D&RM$8KQ0.@0;C8ANI)MA
MY/MJD\B:?&M_ODI+MN1Z8%&DV(W@?W'CP$;P\ OV)\RL=. 9 9YAX!D'GJ5J
M/$(9F]QH)<TWSE-V]0C+/E- )#"6GXUG1:L>UA6NJR+.RG5> KY.AV_+ETZB
MUR.-[%C[ MY._4+#Q;$654!(H%<(J#QC866:F7X=\RX&(EU$K>]'.&4[^M&P
M@SK&S]MO[A!*3%02]+Y_K])%I ^''1Z)1JAA?G'JOJ!#Q 49(L95N "]=XY8
M5A)<'!%/2;Q)LDRJ!+$4;/!'K$&&5[U9.^+^3N3Z^0,B.-$)ILAK"\TMLXHF
M\2NB LBFU\W_C/(_(_SC4I@)_D5#:O'/4CC_[#6$?P U^*?!@)=_I<'YHN,3
MEL7]]-0.#+YVOM99@6H QX8Y*.8OC('6K@FO9HPM::!"P4BORJ#B$U*?J9EH
M51J1D ?I]9D4"GY EXAX:%+WCR@QJO5K5$WT^DUK"DTU:CY_Q8ZV@/JOP="/
MDTHI-/@W69:)(:#^8^)*M1F#(A6..?L0HQC*L753JQF?8L!>=7<'_%=<')=N
M-+Y%7"QYM& .S:U13)6/VZ\=RU^C.M/F1WU?=7X\1N6G>*VW/&*4'J=B-6R6
M%6O&43$43R-N]RB*P%WVNL?QBPE_I-E\G@6[Q>&XN)S$IUQ'A:DA['F&XQF 
M<+T0UT/Q1D5_UIW$Y,]8:* IL\8,U ^,8 @8/);+:0T9L9&@)M/@&U0-HQ1H
M\CBX##K;%<),*0[QC14,P1B?LFYWGZ(0KU@JZ, )!9U@5%@:X]N(R-M:)G7N
MJ,.&H(54=)ZG,\O73]-R<^,1VB6J@8)K!5<4AQ($AE)\*[O:T*MFCN?8'(N2
MF*$1;F%;.L>V-"MU SR!H@<-P4G@\#J$UZ%#8:0FHKKI)*ZCO*R*)%[)B/#R
M,A+?RKY34U0F_QRU%H 8]:V$50SX6_XI*@CCY,,?_I[]88P4.<K:,I?LIR;[
M5U=1*MEW,LY)P&RA,-:@>L/^_EG2_Y$%I5@9J\:Z].=CM* LR#S>VK+8N1[4
M<MUI8MOXRJ=*@\6YV;-@@6(H,^?M"N*FO^^BV$GQUZUT'<IQ&R^*?&X4IZ>W
MF8=[M\/$#HXPS[+Z-+TKUXJFKT<HGLTVJPWD\_"*8=(L597+!XAE3LDJ 5T$
M.0J[$EY?.%B\0)U&'GW5$&=NP?O-3E(TJ+6FRH5H6*UX!^"NIGJU*_^;(.X4
M9M J?G0SH1$#J%BI 4'(EWEVB^;YYF:9H'+C">/TYFZS;D\&RY!Z:KHN0YKM
M)D.:+0+( -06,I0;CZ\U%+3:!OFZR.>;6>4A@%0*'-2@LI53OLGSI1S%F[3S
M'KJQ<VXFDQLM&N)C5_[%'LWN[J<+.QJ_Z..OQYUY[E&:U^<9&'C;@F2G4.\*
M3D37$!?$K[\B;_)-5^^H><</<,9(!+2PEHNO-%''6389-'+)O"X.=L)K U\W
M=C^2=0)I3Y2:*XVC>["J;!G-MF'D*)R'(]D'!0XX*[(G*L=GGI&-.D5LU3T.
M-&>^/"'4G#F\-&<=@\.<O>:J6ZM8*%%GK:II!!4)-353OUNA(67%#(:7#/+8
M2Z"Y2*Q._OXQ!:^L6*GU8]L6?-RBX)W.*:B"D>R\8CE=2S :*"+F*69FP=M3
M&$%81='[.'07O3H:LL=E>+5PN#SME79BR*3Q?/F.8S4:G"XOCI?W8)4#,>*G
MK9^K/V*^P\M$.VE>G9Y;:S.P@2?.=[[:BQ<M_>]/8<^R1C% UZX\KK6*<KT@
MUP4YGEY]5T@%'$ZOYIPIQ\87,W1,3Z6?PK'TL!@OAZ<<GC["T\>I.[\XJ5Z9
M7\^5YX\,ZRU%F5-\'RDR!9WO0'M(F?/YJW@*)]I/QQC3!)@;8UP3X&TLEUO 
MI,/XJQ.S[\AY)[#OP/F.:]V>]\CY>/IS/CW)>A^G'\:^%7E-]S+J*)3Y;7[P
MO#%+G4_[6".NJF4V;7]V#.?TT2:+BR=MIP.&P^U'O%XOGSS1C.PLRQ0G'EB4
M#2J4R[)YW!QK39-[C39@)'B,_1/ZR%9(J^X6_28U>';N=J%R=%1]U(QVN%33
MALX.^J)DO,BCCK%K1V*7<R_6[IW#*=NY.<NA[)K!FR!EU]#97=D^Y%C9=7O,
M?*IOKVP[7@U6/\X1JFT[?@U4/:>Q#TT37(8K0#=-QMJAFSA>O7KE7:-# 5Z_
MJ0.HG4BSU&W=;V$-BM(-9V+<94^7;+3@P#<L9',E!H3:[2;EJ'>\+<-?_<F.
M/6GA6UV4X;##P]R9X:KN;;>6*L+NY>X,<Z"R1I^!.TK;J;/-YM+FEFKW?:9>
M_=;<I-&B6OEMU;6WM*UE[GLCOL^5#$*<V5ZNQ6C!09@S&^S)F6U_OT6P,]OJ
M:HM@D]GUEHM].[-]W'91[\RVN>BBG3J_96<6>O?%=LXLX,Z+MI;Y7,ZL%^+,
M]G*110L.PIQ9;U_.;.L;*<*=V3:7482;S([W4NS=F>WA?HH&9[;%U13MU/E-
M.[/ VRJV=&;-MU2TM<SG<F9G(<YL+U=/M. @S)F=[<F9;7^'1+ SV^KZB&"3
MV?4FB7T[LWW<*%'OS+:Y3**=.K]E9Q9ZO\1VSBS@7HFVEOE<SNS[$&>VE\LB
M6G 0YLR^W]>8V=:W/H2/F6USX4/XR,2.=S_L?<QL#W= -(R9;7']0SMU?LO.
M+/1&B"W'S)IO@FAKF<_ES(Y#G-E>KG=HP4&8,SO>DS/;_IZ&8&>VU14-P2:S
MZVT-^W9F^[BUH=Z9;7-A0SMU?LO.+/0.A^V<6<#=#6TM\[F<V:\ASFPO%S*T
MX"#,F?VZ)V>V_<T*P<YLJTL5@DUFU_L5]NW,]G'/0KTSV^:*A7;J_):=6>BM
M"]LYLX#;%MI:YG,Y,[B[H-F;[><*A38\A/DSPM<^'-H.=R$$>[2MKD$(MIM=
M;T38MT?;R\T(]2YMFTL1VNGS6W9IP?<D;.?3 NY':&N;S^73X+:!9I^VGTL/
MVO 0YM,(7_OP:3O<7A#LT[:ZN"#8;G:]PV#?/FTO=QG4^[1MKC%HI\]OV:<%
MWVRPG4\+N-&@K6WN_W(#K0X'WFQ@VA32Q&Z^U"!8:G&_P8X'XQM"!MUMT"1D
MT[4&+81D-QSL5\B@VPV:A&RZV*"%D-4AA RZWZ!)R*:K#5H(R6XY"+CDX-U%
M_?T%!(C"D#42M\E-$9_>40#C!$QQ/@T_ !-U[%,P.4XUXS*%<;%;<6ZF,Y.1
M9U.ER[1*D[(^%\UVMBF+LS2;+3?SY*Q\*L^J=)60C.C" X5YVCR>P5ZK4@'T
MP:WS,GV<FM *1RIS+D;Y;L&R*C:S"BWFTS*IX*1+L3.6G)FQF)?3F[0JT<_1
M\'ST"F:*WZ(>V1>6+R(-MMM%7?1AW/F*IM./29$ERRG%.G:)$9>K>B$X@X)&
M>9<7U9' /4\>IABU!0:L2*@TRYU0!K)5/D]"X#*L_8\J(*$FT_/%0DW%;;R2
MN$[G(30V86"W'C"@*8"@G/P,E?7)ZZJ8I[I AKA@U37),^Q</OKQS^/YO%"3
M9W=Q@7HJ @[1T4@89;QD6K>,^@O8T1%5R$.\_'F$K5,SSY+JL.;W'7KU-J0"
MCGAU?55?K0F<NS:8]<!M &C#;955% XVG5*PZ93J$;^_=9@'2]N\'3NS4AKX
MP_"-SP0A-Z2ZLF-=P^O%R&V8D!72G'E%R<+'-Z\\59M#; !"[+H:U>F3E<SK
M@)+1.-.<V-$1=V86 /%$1T>&0])=T-&1X8D,UW-T9+H@T^<<6;Y']SI'1X;S
MT?W.T9'A?G1_<W2T\23?TN1;3S*KQ$=SNZH:%?3H2%94M46RP)E;.A+NR0]*
M'=#1$7=$3B#FAHZ$.W)#,4$4GX/<U0?K:@I_O3X:IY,'CW?&R?B/K^G"J?!W
M7$<^:R!?3[V6.*/-BXAYT@V$H1 =6.6."W11)'#M@6GP. 4_S2&)LHV_+.!@
M@I_??-"^K>/91_(--I<[*JH:/WG\)ZO+1I#%N8?OY3J9@0!$S.H!5^79^.@(
MR0\9^8(H$TI&W'! /E"=FHV];Y1<2J;/>9:(7)]Q1R?;5$GY*2FKL<C\>3HO
M*P 65-6?J"$,*TH!M&!BB ,@6**0,*VF9& !<ZT=/.T&)><&B/.!%2&.*#4F
M._O&M:'2 &GL9(J7B_4=>M-4HJZ?%K7:1:X6MB/ 1?Z<9CS^'7I;!T(,;O2#
MA[R7?;WXJA4S!_Q$C$B\8-N0+W?YIE"2YO&3\I8K@$])K !^T@"?M+>TQ&8&
MAYM34V?-,$ZX757@CZ>DZM(>(PW 2"I8\)0=^(!_R2,N\(P!5)])-89PBGT'
MI)CJ,KV]J\1'08[7B+' \_+'EW 7AI(=6Q&&0BBBKKP'/.( M(N0S*4Y<@P*
MA\(0 );.6@,-$:*85##$3P*$Z%8'GI(69=3O',$/(>WS$"/!CW&%NZPWN#[C
MF"6B76W<]3&96'UDF*4!*)SH^CR*RQF#YB7AS*5G,K-XY>7-:55P:2D&B+/Z
M_'!I_+R*'XG@NC7@E,6JZJ,6G&&0M<&<2M&)'P@;J%>:JJ"PL=.$7JI2\D)&
MGK5WA.W:K1A++S(/C((L&_5)O0K22YK\N5WI)2VR4!?LR$$H>C*Y_ ?SVF.%
M/E2M+,[R<IDD:X?M<$>/$1>_5&M0L2MIQ:FR(9J+=^W;7P)B]%\\8#>I!H@L
M5]_B9V<^(F]'/+I!U,B4'U;:6XCNCIRQE0I)HC0=EO9_7#\,.GSCQFMD(F@-
M6"A)]P^G7(S<>(U,!"^%510@NTP.S&]>N3$;F0AF"DOU[0G1S)X4+R,W?MR=
M6L7E1QH@O#IOC!#\+<=T>IN00"I?X#9(J5,L(*$U6/,P/$0C29]5IP (]XQN
M"OU&%:&CHA+$./.#YH$M_"[T^T=N,K],('",:.3P*9U7=WT^8 @2%TD\7\Q+
M@ESY_*E(JP2^J[#)XRQ95QS:I5D095/90OZCF+ LC8;&DI6[=':G(I*A<V]*
M(V&'?>V.A%B5%XU1R#8Z+['<2>W@M'31XOF]$3XII9,R0W8DY=6#R?FNJ'3&
M-J3I%"'4=+J.P1#-_-7#VN2C94[>&H]>>2<A1II3A%)1'9<E;M^J\-VQTD:3
M@ 1WI&_.;F>S ?Q-7[]],UC#,^Y<#S '^.-L>);<SLK!Z/3=^>EP*/UU-><7
MD9$>U87H,.T++^V&O:G3AB4-QW)[<G(VRU?K9?(HXP[$@I31VSJ<YJ5K?X(5
M(YX+U[2?;TH/+E31EEAT: *BJ.O/I6Q[_?0W?=>V)"(^T6NL_\06Z;Q':WK7
M<DG_K$OUQFH*);%E35=4\QND9]/HIZA[RDHAB;(N)9'I1]ZNIW#U*A"=E%,^
M2*(>-BU)WT_.Q_>7=)*47-8*UZYFM+Y%Q]$,[FWM]F-Q:JQDG\W4DA=TC!ZZ
ME#]R8W5?$?_AM)R:&OB-*ZHC+I9T\H4ST1MDYPEF*7_"'*T)1XP?4(9ZM"J[
M5A0%W"9]KYYF*6^.)@)[CZ8T,<STHRF5S+IA>ZZ"GDVWO/YYQN]FEMS0(C0!
MR]HK1\G)G-A(LG'=7:&-UBD.PX4S00=7HG!I&1'\Y&DVG1C62[\S<U7,E%FN
MWS!*<;.PQU852T5;73YJ50QYL7G8):(>VDJ*_Q;1>N+L3G4/??5 5,VBL/[[
M:^-LU!)_*J?UMW72"T#]EW76'/S'_OYXI5SMHURHQE6!Q#(MZTJUC#^LQ&V.
M[2^U8]=1QZ>J1MD!V?=P@]P]O6JNPQL.DI)!RLJ\6&X%7[/Z8[H]AS%7$X%Y
MK/ED25 0L:GN=I>=>KE2>9<NJH B(*,T^M5LY')/_'DIE8F_9+"CFUQ&C8LG
MFTS.]9*H+3-VMR @O9^@<QQ WJ-+A+&Y"TFH1;O(#2G7+?J4WZ_6& E0D!=;
M M6TGZ[A&E[SUZ$F1!DC]D-Y8F<O*\673J)T?9)UOU]Z;J/$"D@OL590>C+1
M83C >I*> &L(;E)G1H2Y3=?>.Q !YQHTE0DM8>C)=:29,K%-"GJ%HS=69B<9
M(69E5#,I2=7:(Q?6:&4KSI!K;V8[V])N'?;Z_>2_F+5^B[;:;*JF@W,8T[XL
M:7_7.%J6U721HVH(6A-#PQ]RE2,V!WJ#8\5N<#SHA8[[$X'=_\@BCB NO<<N
MA][T9U9L\W/M)8N:C#^&%Y.LNHL(Q.U#E+7/&PT=5S#:HA&) P3S%MZ-5GBV
M9 <7RU-ZWHL:MZU6=GD]JU2'-+V]WDIIUAKC7DI3+@M>OYD21&0@E_2V]?9"
M&L[D$#=8FE+95QANXPH!Q8FCC.#[H>^[#/:)]HV7FJAMJAC@@>/-/0ZQM=C-
M%V1Z'>*V!7CC+L"#RU+G!?=OC+KO:Y3%??FF)V:HY:L#M[6O1(T&.3!S/GM2
M NS5):E$2EXMKEOM=+_GEI*HR#!?-R6MZ/VJ7C2CYR\SCE5Q*Y#5[L$W".J2
M,Y.MTAX$+2<$7YBDY8D"O474JMZ3>E!S0Z:]09;+U5[M3=[%^NW96T5E;6UO
MSMM@MRZI*J2DL!,S H)PYZ5?*FOSB?;*:,_-Z![OI?4U&XYV?K?@F=6(%V0H
MN<OE.5=D&VIWV[*E,Q?O1KYQ80+1/!"L-)NJL-XKMK2+=VSU*%?LR*3 :[;X
MOL#.L]ZMI4F]C]NU I6RRP5;39IJ>ZL6W3GNV2Y^2/6&WJ=5&[Z%J;?%E5J!
MZMWR'BU3V7N^/ZM)X<X;M%KXN6!U^Z[1"M;N]G=G?8=>OZYSC+"+X/QU#0!.
M'_[@3V_<86WJ4[O5RM$;IL<>;-/K(..8^[F(JR73_I9P9U&@56]WBHID8\>K
MN^H\#3F:0JE=6]W>5;_[?=<KN[8^,T5S&WNYJ<N._NK4%WAN2H#VVAR6<K 3
M4FK467,Q5\M*5F.+KG-2@BQOWP<^^9W*X""><"^W>+5D^D"><+ /3[C]O5]M
M/.%65W_5V^.N]WWMR1/NXYJO1D^XS4U? =K[!CUAZ*U>.WC"@*N]@BSO^3QA
M[R"><"]7@+5D^D">L+<73[CUI6&M/.$V]X8UV...EX7MRQ/NX8ZP9D^XQ35A
M =K[%CUAX)5@NWC"YGO!@BSO^3SAV4$\X5[N#VO)]($\X=D^/.'V-XZU\81;
M73I6;X^[WC2V)T^XCPO&&CWA-G>,!6CO&_2$H?>)[> ) RX5"[*\Y_.$WQ_$
M$^[E\K&63!_($WZ_EW'"K:\K:S5.N,V-90VC-3M>4[:O<<(]W$[6/$ZXQ05E
M =K[!CUAZ&5DNXP3-M](%F1YS^<)CP_B"?=R<UE+I@_D"8_WX0FWO^NLC2?<
MZKJS>GO<]8ZS/7G"?5QMUN@)M[G=+$![WZ G#+W); =/&'"=69#E/9\G_/4@
MGG OUYZU9/I GO#7?7C"[2]*:^,)M[HKK=X>=[T@;4^><!_WHC5ZPFVN1@O0
MWC?H"4.O0=O!$P;<A19D><_G">'ZL0.XPOW<F=:6[0,Y0R+,SMYPAUO6VKC#
MK2Y:JS?*76]7VY,[W,NE:HW^<)M[U0+4]PWZP^ [U'9PB $7J079WO,Y1+B[
M[  .<3\7KK5E^T .D0BSLT/<X8JV-@YQJUO:ZHURUZO9]N00]W(C6Z-#W.92
MM@#U?8,.,?@"MAT<8L M;$&VM_^KUXS:&7CYFF-GDBYP\_UK]?**2]?0CG=U
M6?(%W;L6(%_3U6M-\K'[UO8N7]"5:P'R-=VZUB1?=2#Y@FY;"Y"OZ<*U)OG8
M+6L-\L%6B'=OW8=6BDO6X-S+=[5G:9*M:.Q*-<2WKY%'N/^"_H/8@>AB)\MB
MF<?D#+Y[IA7ZX3A6SNN+X9P\!L]V;BH9V!=O#G7#IY)-_>S-2YE1]OZZN.LY
M^%.R.&GT?!PJ&?T<]FP>BR1>MM*@DJ&-!I5L+328KN);E;MC. 5+P)^?GMO\
M*5GHE[H\V@YAF5'Y[,S-#E*]_;>BR OM'%4X<K>'5DE9QK>)<D(2G!I(P<EI
MHPR G; IDNB!O:OR5H4AKQ@*[L<@=#NW/Z79[0:'%'!N*2'M8D65K<K5LZ& 
M($=!V,')$1:-,R/2>&X.4WDA^AKK3!QXZRL9-0D^)W[N@4-QACNY'+)/+H8<
M*^R# \,8Z-61<';IC#T)%O&;1-*7I^_+;(7(-FO.IHNHR^A&I\C[EPK<>)IG
MM44F3]S'X.:Y6Q('$1Q I+0R3>"H!%15!U4GEI*;WLZ"??F%YWK+4?/>ZO^-
M?< 5ZI!S2SNW,<8PO<^+>9QI-VNCXWR]Z@,LF$Z?[+U>;)9+-$%#?KIDH;[,
MX(5M.A1XC,Y0AA' ;D"-*M"!A#[0 1+]HC_K;K?)LHULYK7&\7;2ZO\C!PGD
MR\M)!,BZI#KC]PF*%$?0'9Z>)X/A*[*3?O5_DQDH". 5?5%)<(R">RT)Z(A?
MS\I/MK-/ZE2 V-$3).]]=X+IG<%1'P0B_\0//N"D*1J%./U R']:Z\0#*>-L
MF.X]XY5!+]/5! ZS4, 'Q<FP#^_LRMG![&3H(8)S _)^@?^; 9$OYH%WZ[BH
MINOT@9@4$1Y,J8^9 =LR3]H3F_HY+U>XK&*B'V"_Z';/0##V B:I9N2JK =U
M4P3+FDR&F@3L' I%[(]8[(^7Q?@C/X" Y28Q!J?V$:AU7ZCF)F\+JQ/O8[<[
MF&A8>IKL8P6+*JLCGZ$*F?-K1_ZK"88+'8NFF0U(J2JBE:#[$',[(4$X^ _W
M#U:;*J&6]\EYJB.7SF269XUIQI#C,82_^^E"=WQPEF5'5 .'SU.=#0P1'--J
MPEV<<&]]PS?\='$%AQ"OA8]T^+YMO!\P#&<;_VVSF@SE*<L(LY]7$]GZXA1"
M&7^?)LN$'OVB5;ENC[H[I8 T'P(VYW)5["1U*M=JK2&^-Q'?"_=+95VMKSA'
MNC\RZS65YWXL7ZD8&(,\;^8KU2!/O 0UTTMM 6*6% 6,G;\4Y=M]C_Z_I,@I
M<I1DLWP#0UO)_/3OV4N*-GE,JP@\JH8^KZX*V_L(55$5UO@P"D#@"#9^:+EX
MYY*RHNU-!D.U*)7#=1A$TW&DGH:>V/MR,Z\Q=6[ HWH#_B_5<&->E3PO)DH#
MZC(84!"VE3\5MYM5DHF+XE%:X@XKKG^_;.(BJ;$9LXXJ$LSPE]FERL#8:INE
MU3!C<+33,U<[;38<!296Z.HJ+&*LAADA!PTI:9)5 "RRD*VLYE@&:M-^3UH"
MZ1R4\Z.**]S?T'+*H& F8;TMAKM.-%:(*Q;M<GQJ38!Y'&]-8"<]\0/* X+!
M-)N#-.KQ( '&#+GNF4>PP"UHK1CA6&62^\6$>5]7F'3OBR;4^ #P?.Q..!XM
M2B*'ZX.FX+_[_D?#]:GQ%,5"F1H;"?==AMUYU#3_W11)_-$7'BB07W?O "TW
MTS)?/B2M.C_4+#J!)K&?_@$X*%8/[$A=J2NQ*[8"BN7FAB"(W;J_J4UO?1X9
MU2Y!&J)9TIN<I_$M[C.>2_4R)6O^37-M5^#N!H.N==,&]KJ:P[TJQC. HY%M
MP3Q6(8-=[GMP/7@!C$C0,P9:L(LP6MF<4,5B&U4,ZU7A<?6V*J !*FBK\RP*
M8%7L&G7F"8ZV<.L29U7-V D7\_FJ$Z%<WF8LEG'6+J6UN<UZ_%! P SZR;-X
MR2(6I9+0>8&:0P:YA+3MZ2SO\DV)O8_R%1T_B&+OD&,$<<C]@*.-'AG<AR=;
MZ!$(_: ?++A:G^!\]R(?BXP 7?E+44%H[HQ@.=%1!($^H6?!=7AP/X'X?-1%
M#X/)@^UUR(T/SJ!?PB $)": ;#291-<DL/PC?GL/W]$)2>Y!\ADA1<WTX8SH
MI*83J430#TU'/QJE4C26"BNW!X_YZ24!JI\HA1#&5HTS62:+:LIX]$;UU*5@
MONVNJ^E6Q+06DB(;XY(/\?P^XF+!8#D)3:TQJ6OTL-K&6!]6MJTB3U_ R F,
MJ?H](;G/'E8&73I8-*E$]H\\,"8&A07"80O!-J01+':.)Q\'0V9PC=4-\I],
M&#L4P<G]8*@@^1H@#K)C>C?C)H$!U1]A8UN[*N"R\KT9UA;FI QY_H/-:<^F
M!$4D^C=;F1)! .7=TI0"#4FB'RBN*L"<A/',\N6T2%SC#/;0&0ERBF26%_/)
MT#0:Z"A.U!:<GR1K]3G\YN6TIB _K=0K;C/2V>OD%3<,8C[061F]B:1"=AO+
M7"5+3)>&("&*QU':WA0_F^@C)=LIOGFFPJ=X;N*43.%0/'Q6W-1^%,_(ABG>
MZT!)%2!G]O/C^AOB?73\B\.'6FTS%0CR3R;'O[B&KR3A[GOT4[XIX#+%;$ZN
MM\3!-YG/C6'%2XFJNP25\2HY]0QE@;YFDQGN,D&W83#HT_Z5$JZUK'6$>:YS
M,J<#*W72;).,E>CO&@8.P]RCL);[DT+QJDIM_(68Q'"'#ANI5/^0HI2$PXO2
M.RX)JBPF!>TH;U.89DT^7&$6_?N3F8BVC,*<M2A,68:_%,Y1;_F%%)M62"#>
M+_JHL6B$[+(" KB4_IJ6J[B:W25SM +<LZ2LG5Y0L%XVC$LS"O\GFR<%[TMS
M,H]U5;AA\)DWUJ"0&54OM0CI22#I%W7B67UFE] %4%*\LC%\@6W*.8#!!R;D
M$$5C]TT;T.W<)6699#=)<>LH?J4%-!8HM)TS4,C@(OI;G@WH- $OG=I:R;20
M8JVEF@X&HW$JAW'4<DI/AOU4EE2P(TZ[=MU$YJ^MYTW[J63$;I"'P*V^'  &
MEGBCK%$UZ*8G(^<(#J&+J;(A AX%L[XT3FUI)3<I#.-L92',**X:W .CL$O]
M5>QCUF@?^'],P10O#PQ9(C8?)?EK1\^MDA@:;THVO8Y<:57$@TY[5E 9)8=<
MDYO<E=^F#TE6#J-K=#SKXW]*42HL:F7C1EPM6AM4JB8CKBZE"U&[5^1O*>8[
MX-J.\FS&<Y*1LEEO=@;_G)2]DB]LF$W*7J5@E+EG9Z4 @=PXDY6[G,Q8;I?1
MZE*//%*76TM=,JEGFM0#P7CI9]PO]D!H;>;76KW<5CBF1F-%[AI"YO6$/]S#
M/5B@K9%4EZ,/K#93'V5UHH.MX&E2F.,BW_@;<+Y:HP$J>]05J0#W%( _HA,,
MQ18NM).4U*&]2%H_/R E+?JI(@B\&9+BR$P#N.>2PF.HI%I14KL.ZK#R+R,N
M(1T=P.^>V)GAQD[W7^(YN$#L9W[9X.#9WQY?HS+MSW+FWHHKBIRZ5ZJBD>AE
ME*D2E< '7D=G.>95;_&XU8)D& 7.0V',VL.I6$1&!I6A0<5-"6@IE$(*!:RN
M?:',U$+!/GCF+!0%-RL4_&6SRMJ6R^QJ9I5+?S;:HEQX'2/![PCBWY;E(LDV
ME(M&B="J+9<?<_R://+2&3JGKCL,JI.DMTDV7>>?DD*4&L?PTY 5'ON '<6F
M$".X HKV6\6B7F59]U_C1QS[G.,?TAJ==@N !,),\T,=&;MR5F0$R[Y '/L9
M;K3'P%R(=9$\]+&S&<(_(TCYY6P2L=0N:71(N_:+/6'%BH1CBGJS=9=U[=FW
M8SJ'8$ZL@T?5EKM#1 :[(R=$2>19NM4Y*^Q?^I_K5H>!(!-<(C735]AX-L4$
MKDNC5]S\TL<<]U2L!.B7R6=JB:&:X+$XS.UA"@-@I7O&WKIT01V/RUF$1A@E
M)DOJMJC9J@&2'A ,!CS@_E"2S<2@A*S4[>U=K-W\Z15_>%U3%=+L(:T"JD+R
M$"_==2%Y2&;]CH7A B=MC)6AKV!EZ$/?@GU-9D8ZP76*<T4NH9\ :Z U?99Y
M,"&IUC#L1A8Y"_0V2BZ9R&+"A\D&_JS+9#//05M)P3ILFSX6Y8%L+R!L\JZ=
M6L( 1S1'E&2#XB3*)FQ054EWSXA4ZH0Z%7,_#G!?I1Y68L@DY'1<&[63I(^;
MA*+0QM]L% TK*[7<)(=M*P_VESKKJ34M7JY*B>CV8EM8<_';"[9HD6.D.'"P
MB]S<D=-0];9<CMUND$AEN-THD3*\!%*=LR$W@A#2R%>]&CH7:@4JE:#<ATJ?
M3ZV$Y79*99'K35Y5^4J-2; FU\%QR4,TTMMA.K1FU FMUWD.O4X:,>B3Q42U
MJS2;L$7,++"$+UAC/?@//\-_8KA-&Q^BHHS3J\EHG/+1?=9^JSM$TGXZ&':[
ME[#6MXODE\%$/E/2=#?*I[MTF404.\;M7D*L$J"@??H'2%T12G0Q)X-GB0.5
M$,;!BL/8[Z,2<LU#:B 4%R[$"6=@K(B!OPL9'*SC9"A_13\:UY"DL1QF)-,2
M?^$J'& D3+]ZBV^IKCN64@4L;*-##O<B1K#S@67?7S([N=>,3V[J&(E='8!,
MY4'9^"'C2@%X(E]/AO"A.^;9G)6")HSD>B_A(/XH0&'M%R=PPA^L%6 ,CR1]
M)JLE!V!%< _:/R'SNR.QM@]^U@P^4)( 7STE4:O1>K%-EL8RHVL4_5X"^)BI
M-XL3:1;.\%UMFMJ&[[5;3^P07EEG1T-HV##5*1_FK@7YZB3=,3*#;PC(YRK0
M*PSTT*Z9\K=2]#6PJ6J:P0/Y6L\ L,+-B^HNGVQ$R4K+Q?^RV070UM <>0 6
M(:\Z32!G]39ULWJ<A)R'IK:H34'H\P,L,OG:$?2YQQAWV$CC3!F L:8WU,'8
MU+EM5=UU!C-/<BX:ISAW/ )-NI!)Y#D3.\GXH&[:[4U4YA3/P !P#64@LME@
MFMV<8JU&@(*0 2!>#&J+I'-^,MR&=\A%N _AD'P_&=;R_D!YEQ *S_"?RK7/
M5EBI>^70I?!BD:52!Z8*8A:!#F<6AF*84G?-/2AMHH^M2 HT7CH0A"UC0LX2
M,6QV829PDP NYYHP$LQ?!KRRQ7'_YJ8_(YO$^BO2S[=C78Z"Q$E#AT@T3B5.
ML^>9(L':_SB96""*Z[.=G[MI@9_J^!S[H-GTIPCI4KJB0-HS&"EH%,=M$"F3
M=U!]]X0]@78Q<P SF,"_8VD,'),6ZLH85%+A$2JV \W0W;&MY0/T"%??W61S
M4QO#<NXD;W-(T-E2XE6DCF<+::P<7S1&H/93('W='?_1M($%HX(8X1+=6>R)
MF.AO-A$>SJF<<C(W-HYIR6(DOE]J;EB'HEO08,+J9-:3^#08K"(>W.F;X+AN
M!F5O4<<*:.@>7)%N:U]-*LR+\4F"#?1!< 3*).BX<LHG848=->6K8 :4?B+2
M15FP(E#LZOX*2E&VN:K9DT617HN_%[TBA>CD7E$IJ'(RX;H42\440G&,BU74
MKI[RK$+=W @H"6/L@IW-)G'<4ZJJ^CQ6H$@O)HKCP<T-[E70OR>O3L][,S[/
ML]I,\/<K_!W]$7-X<G,SF,W0>_IX,IMQJ#.FFA$/\F<36AU[],\ .V+=1$I6
M:1B NTL/W8N4=R^4-D69U))&KMB)++GTQ804*GZ"$ISUZ,. 3M6JP&#/X# =
M&WS@1YHQ,AU,C#[5JQ9MS'AULI-99:%NV/8E<Q:!S SB5KC":\@#6\:BUY 9
M%8"]E;8;49'6:]"3:9L4ICGXHZI=!Z*>UC%QR%3+-5^O0<6A:6!>/6Z<>@2[
MN9151KH$(:MP?@8W!MC"4ZXZU,R2W 7E*T[;[77$G]KU4VJ%(LUGVKW46T(5
M/2G%@6I?4IN:R,T]\@U=O3:@?^5PDG/%EZM+9#H*6"HG2,U44E\DK]#&79&(
M2&G*')5>I!&)];W;I-%4.D]V_])2 EMFL]&WFW_123%69I--]+%O1F;T&TFZ
M=R11CHP6EB![<""CWTB2B>S!C4PT:;R8Y%_=V)A$M@',M:63K"A@?A574ZA=
M\#H0FF83*//0W0?J$,O(&ED9D9$5=O;=U)@OJ3WK)G00Q7^"V:;_H @$/0#W
M#&/GJS2^74>6.E3U'6-JLW'QMVM<29G4O:;3O&T&EMK/?/@U)(P+%ON18<6)
MZ:F( >+<REH_H7JQ1'9S6A5Q5J[SD@\B"<7#\(RZ%N*:KX+ *233 H9W-YBY
M&1^^ECW+#0;XJ 4X9+$$?-5\$OD".Q#( \Q14('(:_>,B(8-ARP]$ &F7:$H
M.>I+V5$O9R!WR7?M:)$0\;_T&%FS]^P_;<:S9L[TO-XC71@'?-40=CBP#:6W
MB8;>$\]$>V^MO5;DY0A/",9[P'@O]Z?YM@,Z%-93%6:9AJ_0F4%1?.WF;1MJ
MYG83C;]/PM=-P@>M[Z"G%7R'1J_58S)%Z;.#,K]#0S4Y>5SC]#3/('G(1M$[
MYL]:S=SA5@(J8JY2GB4*MQ[,DX6W03DZFN,4/EC%H>%;[PA^\[^NLZH8:ZGT
M>.=+FJ3@HQ\ Z1Q#4)P=Q#@CIY7&TX@MJNZC&^4Y+^9),27GMRZ3[+:ZFXHS
M31_2HMI@L_V-H4%=8.6+':Z=XTHY_]-4BPOFR3*I$H0_1W+FB2Q^/$9QI)XY
M/!VCKP[W(?SX,;I1X6\:X,44PQQ6;R'J_D5N*J[ (.&I\'8&IA26HZ.HA6Q2
M99Z8(^$K2'/[B+7M-(88QY.<-E*,G<F2G((LF;D65S)$74%&7F#QV(4#:)A;
ME7E627DGH,VA$EX^4?<DPB4PB&$8&D9.8.53Q/5%7BUF,,OI [;D?ULF*TX 
M<>6HYSFSYIU&H.(__ _4@V.!A^,@[ZP]XO_A1A=%).%J(G7J/I./MZ2\F)9S
M>%*RB5 9ZA&JYG^BF%W=0A,G%#"<ET9+%QZ[##_;_8Z1W4,YF"5,J$VA44^*
MAZ2)8"@Y2F5"J8X=V00TCND@-Z$KQS 56@Q5EGPBQ1*QNM5G?[43,6F!1 SY
MY9 R<MX=7*D.GF_6LC.,T#$K=C(H[)->R,$B&RH_Y4>&-CHHBVXT4!+>=(ZX
ME$/,IU*12*RCV3)=,]UQ\61IEG9B3=W"2MI>1%0*@Q%]^BR?[KM=I1,MJB%-
MI/9/Z]NZR"O<3B?S]R3:C:=]<(U!/\---F<S_61C#LQ=^H#;2N"-5"7,?4T>
M<KJUKWW]:Y[EJQ3[%7%R-VV0<"O:X5,:LMEU><(TFT,4IWA#X8#6.'Q\[&.#
MC @0%,F8+=)W.3'U2! QUC)[ 4>,=@V?II8>_E0 VJ]CU[4I,I# #!9PU\/\
M/_/E4XW4-$1QPI.VTE@1X01\C_[V']?H+W_]S__Y;W_]M[]=_]N_HO_WWZY=
MJR/JRN;'N^3FJ;Q+'GQLRH(1H(3#F+J! ?$#-XI/^-KQ%&)F%*!BF_S?;# 9
MCI6OL!9J,CG72^8U+1EV</[39# \&9V>]Z)'TL*=B;;.'M>DZ&1!/U%,UZ@B
M\52W7V6KX62(_TR>'.N52.<GTT>RJ@G0?NI5&1H@R.X8,258JTRLVLHFE<-!
M5$)U9JNN**C^7ZXEB,].$-94+\)%@AF;Y65T<3I\-7S];O3F]<7KM^]^>'<Q
MNGC[Z@WR1 00*G!%=@5GC35*YP>JUN6DZ&H=?_(YFIT4W>]':MF>:\5:35Z=
M]B)V.T(W@@WX:M%:BFNT<=RY4$R<FS*U<L/&,6A$0N@VI;$OW=N:;Q2-'"0<
M*!O /I]P&!(+AQ3+0D'R\9XND_+/^:9(D\)R40),=U0,7+@I!@87=/3/2;1[
MHWR%^HL\,C#PKQVY.-+OU_AV'>+=B-IXGHJ0'M11ZD798&@8-N[51I7MU[IG
M9**0*Y773D[,ZA/HA4>B%ED"9SXTS56=U^5B,IF)6JSJND'@NCIM%YG33NA(
MCF8D/Z6992<4S&DD&%PV9WP,DS5HY-7#/C4*,BKDMPA(5LR!CSQ#Z6'5R%H/
M:T%Z)>;$IZO,806LO.@R[?HROU?*6R,:KM8?\[*-6C'XLZG5;-7!/=DZEK5+
MK!IVE 1 ]6J=6D:JCZ,T%%YXOTKE2$Q3\58+9@^#2]"LM;I8B 5YWZ'1F[I1
MLZ;9C#]?(5;JUSRG?2"C4M9HD3FG4O40J,V 3LOQG$[-=$^^QBG]-'OXC[4R
M3.<]F@0*0(:>'.RGOG$+W"Q/%@%@\[B*.1@TM&+P&NL,1O.PXJ(%&Z;3$KF'
M54>B)#@?KEKV<S%F4SN*):?<:8^"0*=96OW'.C*NM](F7570GY+EXB^@QL@U
MI*%"_A6,N.[H4QWR&CVNTJP/?^2LDD8>:^53#"<-8=&AW\U+LP_Z[4-9=(DA
M</B;>/91RT"-  !)EJXR#*AU43 /OFVQ2D=8[T+WF>G23F'S7.&?Z<G#HKAA
M%J__YZOW[PT^4(?-H-69ZSI2!V\<L_QL?(1T5L@)PV!#]_U'[;!Z<HI8LNBM
M@T[F_+,XV<^6P6N!<B-^_D(Z1K[Z.UF(8;-<+#;%L,L7$Q&8,&"HH )XR7PY
M%*KQD6'04/SZJTJ=8R3&(7/W<[X"FEF99*TO4:O#N7(PE\Y:A'E8GPH=U1)U
M.W*/NU$5ZWS?9B$:"&V0SYOA8>$<%&RP*TP&MG),'A9L2P<_YH4Z&VZ\BD0*
M7>4KG91::"9M3!:)FK_!+O)AT<?_UR:N:9 (-7LW.S:T3*Y9:- "\VVN92:\
M$/1+#8C=T=4=M%*2QO^CF/=5[8]X>U=1<J )P;9K]?7X9&2?WL)O].*2$140
M ; XD%=&*X!B )^LZ89]<>LX7::6/ZSN4_8<RD->5D42KX[Q$W/3EY<1^XB.
M\[)OL@>'WM#K.7#(?'F)RE,>^<!(WM\K,C['DT240](R+8U$),H["3V4=Q)C
M2&>>EZ$BI5PD+M'5591RB5*G1/S&$>[6^^0P@+2$^Z]S^:A\+==" /&!2R ^
M<!'P(U\2P5PM_L+\H5W-I<QI*>:+AZ](Y+O:P'6*R4T1G]Z)2W3)8*N8H"68
MIC/>SV4/8PG!O21/ZB-EHG8F)^$Q+?8VI;NF7#BHVU,Q")>'\S-F[.S,=>K,
M!C#R0/)Y,34Q(K(SI:79,LT21$Z>PU!P_?HM;OYF=\GL8\1;J0>Z_($7RHL(
M?QD@,7:'R P*!D*TTADX[^+E(@RQS0#N6,$Y_(@O&R \\[4!&+Q<)[,T7DX7
MFVP&!Y26Q"B&<FT R< Y8E1QOF5^.[V-5ZLX0OI%N(^,(_-.Y&2Q^/G-!S21
M$^P_O#D=OCT_?S?\8?3NU0_#5V_Z:/#VS>GK\]<7H_,+_&WXYH<?^FCTZO1\
M^.K\W=O1J_.W%QB\3W)C-SFZ&/YP\>[U#Z-7K\^'KU_WL;##T?G;-Z_/W_UP
M\?;-F^$/[Y+!"&/%2L!PHXMWN(?Z[O5%,G@-H0J9Y.+1_6J-67L\>4W'SLD9
M6A,4/9[ ^%P/"TNO7%!RX+@'CA@\/>>_X3O\'\G-Q]T!(XL1D#HQCK#W?<WN
MML!83B9,/?<?T!DZ.7DB9%B)#H"5$P0<C+!JWKP9O1W]\.K-!2RJ>8UZ!,$9
M$JM":$U_/6RHZ4B+Q)#PA(B[0!R&@\DG)+)/<8 '5V3#[\_'N =VA/@K;@6U
MMSOZ=J1\.T9)4?!WL(T.G<]&+^X0G</D,P5B,D<CC3MW=Y@9;&(W< 5U-OB<
M%/E+@$NR^5+LE>'3.?!"NGU,X>7G:'ANA';(B.WBJ/S<Q_]G2T;&I.]S=Q?=
MD<<X&O:',*L=+;!!W-UUT0 _#/!#]^SN[@PF1D8L%P@P033&2R[.QWQ*(-(P
M__@??XL(S*NN:1XI' 5P.2D_DZ7#FG;N[M#9!/)RD8&O-(PO6CB+6*R3Q8^(
M(.LI"'4[)7,Y*;TZ[.@+3"#'9/DS$(PA?H$]F!C/@+W0L4KX0(4[ARCLB)+J
M*;2.@!6LJ HCPN$/SG%31A0U1P77"C@^DZ%_@@#LAZ"XG "J+IW>_D+_\&( 
M@#'_-"?5-68+N(^HE1S)Z7S$^4@IP9031%<$4X^K4]M(\[7#%_\F!:V!IG_]
M91//<02Q*1++LYI7SB!SZD++#A,5<CJ\P^;#8:U0[6T-\<TL+<NXQ*"?$MBE
M7D(&/D(%.54B.+B-^QCS#5M/%=.E5#<P6*"ME])S(9JN5#JRTL0<F!*\\)4H
M-(^Z8(?$LV5237%A,. XFT^!]>JNC&2EQB0GYV.1G62#N_;F4TXE4I1B5/AC
M8*5/IEF'],^(N"):U7":Z->:+/>OR27FO%+AEAM#@&%QN"[8>O0X&CP.N[0*
MXD8=7#S^=B*_T;XRX_Z:9Q?R%5[F3%5&!:9H$H0.AI\<4=8MUC$SB%I%?5*7
MQ'T2>N&VY%3+)ZP0:6R:H/2SE%-=*,6SD-LYV6W@GH9*J2'T'NPECGFR>9$H
M5BD'XS5CU>?\: 7PX@#+?F_EC]!UA%T#+AQ8_<SKQF]-B+XHPY%A)BX4C[AA
M,F/DQ8#;+%WSO%A\  SY"IQX^?D$&\A(3.,KC1#9>;.RVR#H]$)6NLJ 6%X\
M/;F9*HW,X]( N)D.8A4@69<I[K PJ NRG/ZM7'%TC3ZSI+JI4]3#'OK\= 23
MIU@.H$6"9X%C*)_7N!JM<1BX%KM@YCEKT=9#T5R31F$]HN_G[%UO$4FW&3?-
MM$G46AQ,Y0)GA9,-V1>":CV4[X04$8Q,J-)Y[6[O<P]#XB83OM_3R6V,JHN#
M.OJIJS17& N$J=@TL%YQQN$ [N_"D.AS[S-T*(@DB.;X# 0_TT=X&F( S,09
MT</15[:%E+:SGP>?R3I^7C9"D]+/D(;_<35X7/8^VZE@2P,"@F%.5!A1JTFJ
M>),9>,/:>UR>13QT&&"!NH17QC#5 .)^H3&"Y0__BX6RI%M4Q$L6R.(PEGW)
MYB* O:8>%SO<O@A@_Q=N5NZ25<(^=,6MHM=(H!0UC"69_J*'?IFN*X@_:*=H
M.HO+ZM*"NHHH*8G(42D)IL&5LK^,#<A27J"E82#,U:90"86L$4_E+4[:QS(_
MCDCE8521,GK T8HFAMGE2/8GC6%=JRA^0A.]49&^^R;?9/.X>-(=LAID< C%
M?R+E/RULD),$"$J9U3MV!XAV2]QL4Q1)5O4E%&^/XNRC\I6VP?K[B+_2 *2N
ME0K0P$ITO/TZD#":%CB(-DV#HCJ!%9ZUM?\FYZ+V_(NH1ORA1JAK*I!1TSQU
M#:%_.4:\=)6O_^N85;B^TH=T"C-=YRDK0];?U/J=(L*8#,7'YZB]]'IVB8O+
MR)A?IJNT*FUD.MA5Q-_U:DD]U"-ILRFF2-<&1(X4A&8,]R"\B>=#\!I>B#(G
M/M<A%PO+-OXA)F$ 5O^ECHD%C!!5'OW1,!AI)<(PF"WH0L)*U,[1>\6K:>DX
M3;#4X!?YF:U(=RW!W@]W](8C_U@+3G_+4WD=59-9)13>@,-8?3UF2_I8*NH5
MR9KTYOC\JX04'H&[ _GIF+;NVA?^-/'!J[[)(@$Q,K 211:/O>YTFFV62R7\
M53R;BD+$NFR3")4-/L 3&),?N=Z]803X\"]2J(CH.NV+<S40ZZ>:72Q"]H^P
MQ1)21445:KF*>M5=6G9/ ;"+:\,]Z(%3C<[U3A=?%D;,'UE=8\ QN)K)?K%T
M8+4YBOJ>-/3R\C535V2;T#$<9F8I $9#B% D=<+M#.F=,L5NH3>SBM?K-+LE
MIFN9HP*@6)CR51JE]M%EEPJ QS(U:JZA"P> $5BHFF1CWTHAYMC;E.L\FV,$
MH%_ )]MHT[!DF=V/=4HV!3+D'^.N(\:*,V?$!; Y!]DW1,)ZD2 "I2=63A5P
M4@M;\L2+R^Y$(\OQ ,TJ>:ST8$3,"_$:%5V_?]];;9:X5L# -5]^QKGJ.GS2
M=0^53[@:*4TCSTY'O]44M8!ZV C76F)N<NMP6CS)=G8RI<[I:?EKG)]@@8<=
M1-(J+J#F@<#)JB^33,G2.53$M0*AJYAI%^GJQ6$,@Z<M]WNJV4BCVNTSM484
M29^H,6(4R<B"&+6P]2E''@AJTBG6O"UBV*E?%H:@00!!YK=5J9U.F\\O<?$)
M.CE,E'_JR\JWU&Q>==FLT8^,V,J4#X=KTGL3 0=75-?8CP.M6;[LNMC;LO[[
MV.RUX1.TR;=\G=9S<"]7^2@3B8U>Q=$F6JSOP+.7?MJ_=VI;M&"T:$"\**B"
M=*T6C?J9B? TFG;$@-P6='0*4TZB5ARM]?&X!$O_[#N9,UE[)0A"+7"R"LH3
M&-.UXRM7'94D!+UPPX4,Y&1?V15(DA>E/^T*2*C[FN*0HU^'3+4WQ%NM(^$7
MOQA]'[8Q4B+73G]P=H#,O]+_\*$M.HL9@4>:<!X:JB9<VV5>O(D4F:-9?]:E
M,\(<'3A"\K5'Y0=ZS$,U<*PJ +NU"<X$]S;FGRXG!!.?AL%?Y"0?AR=W/,('
M,DY(1E2@-S=1F#WEL2FD'1\CT0C"U4TO0E6"NY:__LISON!YO-X"MJ>*[OS1
M41<5)R>$3]EV3--[9&H0LO6H_J2'/])47W#5X_QFVJQ?\&*YCP  <K,SA<0-
M>/55 QVJ;DA7U7.'8U@9K,V5N1Q5)%]")8$#<%S5!-N.45%4]3"3!!7I1HI)
MXMXS];]_E!R*9*7')+8?U%JN97Z&_9IF8-/FY6_0IJ/LO))YC81G]AD*%@S#
MU!H+#!N\%J,&[*2G5;Y*LBH6%E%J:S;4WI:>8[-R=[E,*"7(-9-DD&RGN()D
M9W['B 5;!W-OSSC;S'%8,IAP#WO$70,&=CZM]V;-(G,X>HZ61N4+IH+-XYYV
MMD7C[,YQK/7FP*SNIZPOQY=$&?GLOM_4Z/RQ!5)\D9>.P+',RXS$'F!EPGF7
M.%YKW=<#.%7/VK$'?F@Q;>D='416\];YI^D5YK/8S/2V]W],U\M-J2[S8@/P
M8J2!*[KO'7.0XST4%"XC( 72@SL!^.)UIESX/@!V6)LGU_:PQVC4@UQ\XLK5
M]'^63;WA8.CY"AB@D&Z$C(&< $DTF<!UX/I\'R\7,LPI[E:8#E:]:$5/A3ZR
M"=$EST0,LMH9<O=P_"7SPQS>ZN1C%[!\U/!@G=$&:B*=%LZO ,")KG*BD)P=
M3-]=6>EBI"-E1@WIM[B&&,$*QS#/:063>[/X(7K5#&"OQ4]*GMA F^(?[%C\
M U+\@X^#78O?*OVZXJ=.H,8$[%'JZ?]X!#\FEEEP[^OPTWUE*88VR.T=N,;(
M7<,R_^.1*/#*,:XCDVH'=C0,1K.D$N>VRQ: 6"W/?;>OC8*K#IITJ^ L&<OL
M^?$[+HY@FQ,'NY_VR:BK[!B[QLV)DIPMX*Z#W_Y^OM"?8_Q;'_'>V2>HU;RA
MEK.Y+77=)*FN=JMU.=05W<</Y$2](WN")=X\LI6ARK ^5!R''[3PXLP4;P12
MX7 0/D"%5VKA:T"&OY-N/2Q6U/W%"';(2(=!PENX8#BN +O@G$K[M>.8! F(
MA(2Z63RTC7VR2&(;'_)T2!_RY/0 3WX?\A3F0YY"?,C3<_J0I^U]B+FXXAE\
MR--_>Q^RE1,9N)Q(?]#2C_RCW$BSB:IN)-R#?#ZD!_GLK/^?7;[C<Y/7^%SO
M+SX_I[_XO+V_^/S\_N+SM^(OU YI"P^"8_"4;IT0]19.95OU2>>"1!00OYOU
M%@Z)_TCP\7J[(MMB"2:*]*,KL#]T36XV'E:3OT/#<W,!S/1SDJSBC ]O*7LE
MB%7$6>7>@X8ZZD8S]*>'_#:>%SEF\<WI^6@TO'CS0S*Z&%N _Y+?%3_]!8.]
M.QW]\.I\^/I5,AB]&L-2,0ON1RC85Z=OWKQ]\^KBAV3PV@/V[S\9^(8$T":]
MK#YC60GYX>G%V_,WK]]BZ L76@I*.#@_??/N]?G%VQ]JX @+$N?PS=C!P(]P
MU P%A;UQK\]?O7TS'#EYO9TF&&IT>G[.E(A!-( J*9?QB*QP!\H)J/ (\550
M#:7,!YGDLOUIE60E];_2'R;99H7*I]4JJ8HG[&/*]5U2I+@+WT?Q8QHO)Z,^
M*N[RU0W^=D%V\#F<M[91$\NEKAW@9!7_S#])ERZ_N/RY!F]N)!#HE9?W[X5$
M6'-,)*6:W<KE^KSN=\L^*1#IW7[3L.O^EU=IGC[E]/QLM*&NC(Z&4C@&$H:7
M+]E: !NZ>ZN>35LC%R[L;):NXR5W6K)Q<0R4WDXCN(L7.\E;>60NN,L'OUR-
M%(Z!A"'9 \;I)L8)=43+<?LY\K5_^CHSS8IQPW>+V[NA0,BQ/47>J?H ?, P
M+_.1PKA%YG%O9"XT,D@M[P7V51ENM\V]]Y>7D?(1]5U5D3^1?<[0]K"YN!V1
MJ8.;L[NX@$5,J^DRODF6/R/8S/SE):O/+_OH)7%1\,!<U$NVQQB.S,V7<^P;
MR0YKG"T_72SCVS+B?[N_IGF)*\1=_HDN81TKV=9%,DOAZ':24;Q%K^@,< Y;
M8?_P\Q_(D0>".R[#J5#W8/B!;*Y]CVUP0O;/2IC/49?&_P#PZ^V3F?[$SE_X
M]?;13'JD27_X\ ?*C<*@QCP12<@MM0%"\/,9^!9*UYI8UJ!HN[IXFAK8JPU+
M36!/L;G"=)KB"/!Y0FV0K^1NF!%#8B;([C3^C\?IV)?TY$_Z3))T6JM%FF!M
M:P1YBWZ75+"'='V7VE-TIJ;X#+V($R>XVRE6KGF;.SV!UA4Q?0__OM?:S1)Z
M.)3CB)[>3YED+\ I>92MBAW*WC=T8'C1NQO1@+A8SCZ)'D)$8V5Z9""=I,!E
MJ&[#LP81'<-L9N\?HQ#8GEIB>[*Q/4ELGUMB^VQC^SRUXX/GF3V5944L)=)-
MG90KLR'H)I$G.-5,8U3+>2RS<KKLPT34'T#@IC_-H>&"1@)6_ZEU2X0EV&X5
M^Z$FC7&3AS&Q:M@L>)?:"O52.-9)'%,:1F1!0#BA*:%$"<E]N7([:G:+&VX"
MJ4M!%&KRK''IR'HL\G*-FKRXJ&/.(DUG.)^B'1=5)8NF YJ32XM(P\)1+Q\=
M)@:GBU+>Z/F6D(\MQ>?9GAJRP;,CVV='-J# LG'FB&?><0R%V4N/=F9[8M$1
M--.])?R#?0K=JW#"DYX@"?[!#L)(^@Q)\ ^N[22))GCVD[??:> >;9FV&YZ5
M@RN&]";[Y.0'F-E-$0Z5/HL!%7J3,QQ-0]HELFP'VBB2=L(.V0#)3>W2/6>&
M;FF&$Y:F*Y>DT?-1Z(\L83/&:^%RP)&QU9BR><_'?>Z-P21[V$<,P/S >^8K
MB&-Q?2G M*HT*1TC,+*-7%B#,(Z(; $GWK8?5,7YG*'3HG1%7?"U/N1B^7:)
MMSZ/IF14Q!V,C>CH/&Y4 0PY0BG,PW2.0RGX2]R;$DZ9K0:!%6Z.ME<T/Q2I
MX>0TX&.D-E'0.M%\IC-E7 @:W(ES[N!P%,N)&YF.D>Z^J?,6\ATR<D(L?E+5
MWC:4&EFAE(J-Y8%B;QM568@_2W0:#9BM(7:E"F4$537('*Z/LJMLW"3XJ?,;
M*-Z +9XYN_A'!6B[MF+4JG'KQ>2#)DF87D]7,TW^5ELD)HDH)ZT!&@RU)F@D
M1O5/1EINO^20":8-E$8-6:V:UHP938;=\ESLVO+X'+[><93N;W+>5_W4Y%SM
M&,JIKC[31C3O2C<;X7]VZPL"9ZPC*)K,MXU-)I^38,OB-EE:Q<73E/1O$WFL
M =)&*\06;^N@5W'.(!EO\F 39]$$X)';'G^KP:8>2*.<L$RZYZ*9U0?T1-TE
M)R7(0_^&RO.('I2AGUWS."1S$.P*DT=RS@K@@#5V0[BKW7?0"[&$D?>2!/R3
M,T[*H0;RA 6S#)%1+,:X@&N2&,S$'=-8V)4 Q4J3T8W-E"O"<2/PASDP9:Y'
M.OP_JHU%^IAH?4DXQ?'_8P6E">>DWD/YIXP<YZV4JQLG%\*=>BR6Z7J2+674
MXE%W9WKY<0NT*M>D5E'!HA6<XOJ%73KTFP\5@- ,;$;#1BSV.#)_R%=7D']9
M:2DUSAS Z-"&A'I52FIPI0QXT#_"[_)S__/;2$#;S*]CS!MY$EMOQ'IIXKGA
MT2VSY[-M:ZS6Y;!J(4YQ;6+0XJ0&YMEE%9.'F]2YQ9U,M(8=4=G\(,)8:V&D
MQ=)^'T(!F#FH;<6U+&]ARK7X#F#/GM8#V<-9C<:NC7W)KK,C$>Y2[-="P-%X
M L"L/C!XX\3:A2U,_GIEZ38R*U6-]NO29/5B,U">IMS\[FP!2'O%CM%9:6?7
ML%K64RJ>&X!6Q%5\FR55^EECECS3LUJTZ7:C)WT7K])EE6=IG-D3#HZF5 L9
M76$A'\N_[[OF&?354B36N^^?]\^[?5;RI,%D4POLD\?316394;^VN!@,0]2H
MIVC4C]R*%F>FU/6;[T_$?CE5K=[NK#SCJ)DU>DHS_-B",N^YAIQG;O/&"J[&
M?+TK1BAJUA>6ESH&S\&)PW-EQ8)Z?I9M6,J^$WK:3 CU<9CRHJ&RX=*]H 'L
M+BG8P9!*\$9'VL$H85$7/!AC-(Z,QSRG&&=/R%G6-!A4AI;;C-/850Q7*E_O
MRNKK>6'W:\NTI#<E' 1C<6 /=K"!.P^\$U8[#0;4MUG/P914)OGX0FUE;2#'
MKAH+'F!0Z8NQ;T>1*4TR@8+^_(DMNP%F#"A )IV@'!)'2!DN-[EBHP^-?)'3
MO(X,LFQLQ,))!DD,=D9D4!UXF30)Q\9+F@8]#++W%M'@81"E>Q84DAOG,-9F
MMR,/?VX7K+18&E]8:^=<(51?BBHO'=!/_3NJ;2;IUG4C9J$?&WTK [/8@L_=
M,^\8P=DKURIAND1(JH@LEIS^/PEN6IAJ&3^S:;DI9\FZ2F_295H]1?RL06MX
MM&^EW$X7,>C23@$';7^EY*D/QYH6Z=;^7V9L?(5GCQ.2#YRI7L2?3NA5JH!]
M( DYEU#K%S[\2Y'BX'"3NFQN+\J@1>I6DD,'Y.0-3@>&D+"JR(9G-FM//RBW
M"[*CPL6M44]DR1Y3%)O.HYG/Y$K<,]("J_EN0 _02\**A$.'SS@/<#)@%6=W
MD=0UN3GBB7OM@0K-@>'6PR>],O%ES3V=.US HC@)$\8RZU?H9964U>EL)I;;
M^GH+KHCH_7M''P+_3][WX<@2Z,_$F9O^QE/W6CB>2S+2+I:1"BP\C^6G$MPW
MTT#YL14BBZ-5=<'+=I:@)#Y^8#5"L/V W$)^IB[;/C/&WYCN(FC\D\>U'.4!
MI/@#L,5/<Y_--JL-[':)"&&XR>2<=%XPG'9U2\L"<7K]+SJ#L!;/6NUB" %7
M6-!N4E+PI[OH-5,NO5MAI=T7XNE']1F!_ET?[FV0?46Q7D>R(Q*-JH%ZVBKX
M'HN8>_(2!C:G?;8IBS/HTR[/TFRVW,R3L]N3D[,2VUQV^Q)#7+ 1XWKH^=E-
M3// ):$T%^(;YK5'\YT]4AKK(KY=Q>10T0)7[:2![@P3GB<+A: -OTQOSFYG
MLP'\35^_?3-8PW.V>1S<XMY'>C,;GB6WLW(P.GUW?CH<"OP4-9?F.W0Q^F'/
M>"^ V3?-PHT $CAX'5P (XJ\OL0P>)S"1I+M"PS9189>ZK@)7/*(4S/T\L>3
MDY>X>3*/S()EP]=7?*:(BC&%CU.*AK1H_(1% HQH*OXD5G-V]*U-&&]ZFZ%(
M !ZCV9 O958_CMCH&DZ&$Y%&[&11Y>21Y!<X(<?,5X^,[]<"I("U:Z/%H<.V
M:%_4X5U6.[%[:6$5.5"2ERA2KJ,0*9&X057E)"VQNUO*(D"QDO><TH \1OG!
MHF[H-,2%K:$>*FU)\,>1F'7+C!.86(/&>QZDE8,U;Y@^=*.R,3HY@;X1Q$M0
M).7PY_0#QC;"?^B)1WSNH#(2T1_18(C>HZ$X94R()@8W59TP5NAM?2[)G)PO
M":_L&SMH#/CLE2<G?58BP.?)B3ATC3/,V7 490_K</VD5(_6BB6*'*-L,!C#
M$BU>W["&,JJA[(,U?#RLY6B5/R2[<*38&28^;FL 7()8*>+@3,PP8C53F-1E
M4C4)C6OJ=J4P\_,"83'UONS2QC%[S?EK;<L[ [X\#2\')#"R>;%^R'@2K01N
M(Y"63G^P\XU$9M.__+19KTE$%:%SA,OC+1Q>%@UAEP6"3@W^^Q9F>M1O5U?X
M6Q?UR1(VC&*9?V(HAB:*H0/%T($B7J[O8H)B9*(8.5",'"CFZ6U:$107)HH+
M!XH+!XI'B>.5B>.5 \<K!XYR#6TWH'AMHGCM0/':@0+VA5$NWI@HWCA0O'&@
MN"WB]1U!\8.)X@<'BA\<*&Z69,4$1O'61/'6@>*M \4LJPIZ-/\[$\4[!XIW
M+EU WX[:EF6?0Y>!#ET6&B]AKR?!8INHTT85(\5(M)/(906;TEW$:).!LTCF
MJ+S+BXHTNSV<!K5V>@/#NP:\!E#EI/Y ^%4/1FHJB=*<]9]EADS8$U&)$;WL
M$\&Z%3,=*IP_G1:=/YW6%'\Z]0G^=&J@_G1:!VK2B5WXTVDU]*=3M^=/?[0%
M-%5,*X@.T4$J$"M:"@+%VB50!@QC18>AI:K X2(K9VEJX]*1.8%,OM!44/4H
M8"I8U\7S_V#'2GTWC+5TO!<V/*_OABF]JL9>V$SO9O,J\AUZ]ZHYSP5K=,_]
MO+OXJ>EE7<++E=794OI:S]O)0O_@7A:@??&/[V2=V]1K.U91))SXS[061/A_
ML$Z]^P&K-++=/M03$0-T0>9SJ(%:Q+J?3IF8#TE6L]4:XM0^ <MT983VE$18
MB[U^ F&O1Z<[]'9DJ0FP+F$?\'G8WT>?QD>7(FPFO&6WPD>6H",X.%$(+N"0
MWG>A[N<"O"VY^?6BWF59(UGF^)'>;T%&OZ76Y:85G>HT?.YWZ%7X\";ER3F(
MQ6_^8AYUXG"SEW2T2]QPAC'#[!F!4Q?0(GZ@Z/].UOJL.3;U/BZG$OY9T/X<
M\0IELERDY1T;C2!D>F@>5['F3HJ$C-6MBX2=2$ 'U'I79&T..D%#9E,,A5RX
M]_,',3]0*@@YA9_+#UK&'L+1T@VE#8,KC#TQXS1;YN"<N]"5!D$,?!P7:6B*
M9)G$92*1#08X"YG$ZO+U*<"^6'S';Z-0&JN>$(0LV;$O9+'S8=5CUX'-JDK$
MP1]C54(A@T:5D*,>AQ.150^KVDV3GHE.JW?+7% [G;GZPFJZI&+\$%[S+ER*
MI$WUXRPIRRD.EM=!6F0VLRCRFRD\*ZH$&HK%(V+LQV*E*'?]Y"N=@U76Q"$E
M4&$5COYAP8HY9DQ/C3;3N$63/T;:NBKFZ6*!D^%/4B39S 9BM03;(P70TF11
M'+-30-QPU)S(P18P0^/$T&,8'%#L$^+NS<+ ,[$W%]S[]T7RD!1E(E(O^<,5
M,I,:,NI4KH3H-A+><A$Q12&@;)V;-P"*Q"NX65@]UXB:#9RMA>P;M2U_1V"O
M(NQFNFB ALKR,8Q@@U$0@#7U<(!Q<"7=SQC<$^R8'EPI?DJ:I%Y>W#7R_5-(
M98NB!A#].C,0GT<^M5DQD)F/5J^VN68QCOS2ZJDA)VYRS)RK^'%:0S,BQ8B5
MW#T#J'Q!XXIKD)=N):4.9;7V$N?8)Q,:")-:K[:9RL)R[B[T9/Q7'S.%]N,8
M?X5 EZQ'K2UI#'C*4UF#QILF,:Q*3MQ31GF3QS4VAU3G!&=\3W!&6;K$-G;*
ML/$UZ#JL3Q*&PL%5*SQ]I1!Q&:FO<(8.E!M?2^QA60PU S*"@@>C+@98A= )
MA5((0QV*S8E*X:K/IQ@#$69DG)T6/ \*64SXEVR]J?["O2"-U!2RD9:.;I+;
M%"/3/R;9O$M&0D)881@@#V/H-\,"1>6RS5W9'_TIQLE:SF-22U@D JL@,">B
MAIR2%_*';\^V*FF\7L/)58'V"#,M9*63SRQ5Y[2$;FLD7&8?9T7U5FFR4V.=
MC83:43"0<B",A88N[]]S]&6W%JW?8)LXWMY>.77#;A=I45:FW6)\E3!<FR5R
MC!DP)!X8%I+/;4%\L.E0%@2ZH;ZPR7@T3EH9CZ31#KEI-](UAMH-S]'";@2S
M.YD,(;P/DR'>K:716+%!DT*=RE.Q.%7&LP\51;E1G'BBE.+.YQL@I8ZIDT;9
MN,MH1N,6CN7W"Y=F95)4JG%ALQ$#3G95U>LEAAV1ZNH-0FQCH/@51S_RU2<G
M;WVT1=TE^>I<?A I SO/PYU"8'7VD&I3N[DXHG(CT7UDZ"/QOK:PF<YVC<-\
M7D''NE3,;AA] #^1D$UDZR1JP4-6ST.07R.QD8/%;5P;+X,^(&CT8D6BC@NI
M+5R[*D/T(+%T<7[6(3MW6AFG*Z6M1:^HGY3Z+I283E)=@V[2!%8C#M#X T/B
MX\.I:8;3=&6*GAL<&VKP;"->3N- ZF[BPG49-+/1GA#7V]&PC;<*(Z_*(.OZ
M5L*$.;],^*8:EJ5S&BKFF(Z\1N CF0XU$TU'^!5P0I:=.&C5B'FY\#5JK=EH
M37E;LFW*VT=\E\B6(?=S2$\"U%N"^Z'9-MR3_7;PT^9^Q(3>M34CS&L=_:X,
M8&ZR])>-,DLBN_D+= 5GR)#]Z]@#R@$_J,.;1$7"YFDH%H%Q+,8,>/J$Y#2'
M/PG#]HP1JZ3:$)\R'$>:LXD<]NQVCIBL3$9]O(V-J_Z,LWU0AMW$T'H- \P^
M-+G8U1I40(;5Q!B;P1;AR1C2=T!1$'VTFJ@9%_\JS<C,DC[PR4N7]RDD8T(]
M'\3"W[K19V*I%G:%K'O*C0V%JS,U1AT;UT#)"DB3,HU5F0\V+:L-,S]I21F5
M%E/VEG-S]/7I%)S\O$C;C38Y!Y\I$AAKI</T;%0 /M"R$&*Y";N8-YLJ82$M
MD30QS7CUMM 6,5JX?BJ&@HN6&L[,ZB]\]#9:+O:BYA L(:R'Z[IH4':F^0RS
ME*8DH)V2>93=+5O!UM[$+59VLO50;,'RM+-^E7Q3-7!5MEF?M@BF"R.XH2_2
MKLB\]J;CVZ+0#%YV*[,P9"WD:5EHDGY ;7)6W-IRHS:1Y?NN;QSCUG5.9VD?
M]2X(8RO9MJI_@HV639&TAM:E%6":.Y27@Z<]5+G0TFHCVS95K[&XS,9,FU$L
M-S<D/ T;TW*)H4]MDCEX;=JF@URK5H,FCOPLD.Z&&W/+H@W'X*UY(GM#^:EC
MK+P3#..GHJ<G>@+'[/; G\\_&&.S=,JE(9?LH=".B>SSR'ZQ8,!8J',L.SH6
M<3;A4Y/%I*QWB::V^ :J5!^2-G*YR3.N1%]17]V$6)>5(-978!J $<6CD;: 
M!!ZG'3BSZ'A]_,&$;BUW7#,-_%$\+;C3\%K]8S94H:]MZK.5KO%#TE56CTF@
MJ2.B7T,==SBI1Z-R8A-BETJ1U8N$TNPNF7V<PED6)C=:4R26BR*Z.&,LAD)Z
ML#:"+);FR^4TM\7V7-"W,=O24;=&$Q9?KJL]GK% -NPSK,WTS6,A.LWKN3G'
MSJ7<;!'T,K_%.DF* MN%./J49H0#,+\0'1.%33_=@4)E_5:RLF+GOAT@IW%Q
MVWU/<Z%(?&%+I?@1>-)<>HA"6G6=8#CE0RI\ 3SE?IZOXC0SV5=E^J(PK$'[
M65:S&XPK>W?A$)AT#DD;./JFF;J58T<.J-\-E5V#WI%ROH'P8UK$V6W23%F#
MWI%RL<FJ=)5L9Z]:YN>U6.54;),/3%&R'UD"@]9,<74MJ+I6P?T2ZOG]Q8R;
MC<4R_Q1.WLBQ,P>;;-Z6!3/+#CR0/3/$R;;=-:/^ G:K7"%^(Z3=0EWST/(*
M%GOST>Y./6#''@TGV_?G.9N>>!&1Z/9*&?A'W2ZJ[HK\DU%A7YJ +\F)(^P\
M#!P=*T=%\6"4S@Y\W:OPYH!_>Q6P".DY%*%/DWP--0,3R)@(JY/XN$%]G8!I
MO8#Y,FK37\2$AQ;#(44Y>A>:=J7(5* ,]S6(#+:GLLE!(P6F[>\AY9Z>]V(5
M'J%=6VH X2HN<O3,D&$8R&DJPHWX-C:(T@223UV&/P!6!1MZ@_NR)H^+,2H^
M;)<2>J793W &>F\KZ?]K,3*%[NIK[NF>"HP"/^!:Q+94,5 ^N[<>7-%)'[CN
MA-IN7TRU:0!D 0]9)L"W6)P@]@W;"V63 XEC8\5I*?=D7^_]"':>@7V=G!"5
M']DS;VM:>?JH=S]4)B')-I&U<H9YLBP335X^64I7M3P7N^H,ILHS[?Z)_1\P
MHD$T/^YTS#T,@>XRQ%MVQ-)"U]B+[3J6=["8!?%*70],UDM^,0>5##!$8I_E
M7<DZB\6IMJA2"H^3#BPZZXN"C/]L\I%^[B$$@[KQ+91=L]GJ$^__A<HN6#Y2
MR#L*ALMS'[+E^5+(,'$NIZ[Q+>ULE$>4./NI&&R%5+KU>%^\;^T<.'^%RM]R
M[_QM70$.JK\7A]3?BWWR=P#][8&_RW]0U;G<'^<'*/BKY]1KZV+?77=7!]3=
M'KD[@.[V4+*']#A7>ZC1A_0XE[OS=W5(_>V5OT.8W_.V*'MUV7MH;5K4[/:=
MP.>I],_=3CZO0>^5=VGL]8<U!0U(LLS'4BQL3/QCOY[9;B"-W*1QB9OQ7- (
M4$LH)2'-;5*1$@L5A??"YLDRA6-!__#W[ ]=98:@;GZ SMN.^*F!KT?&91BU
M9V;EJSA+US4G^8JI8,<!_O:<KS$[;6R[N/[/*Z:PDI E1X?Z87#?DE]XDI?'
M*.I-%]T('OL8JBLFWNA=,  =,3@5#,Y0G2ZB11=]82=[4'#"P"504ZY(NOY/
M.&Z/#=')<TH$;#1=]#$$GR*V6><UE1<[DF8M3 &N &=CVP+Q,5HI-F;CRTU\
MEY>1_.;#9QFM60"UZH44K)!IK$YQ<LVY5 W_@/Z8POLX:Q0;>E\49&4-4[%#
M3>@R1%,2%</D4!!@:M;15^485:$N54>7V.*OQ@T@.=P_LJH6R_BVO!IW]FT:
MG2]PD<HI*: ^P@^Q7*"5DB4V^S4=A5YNTLMA;Z6ECCJI#!J@3_"HNZ#0].U"
M5B=U(#]M4%C\!/C E/G &A>8*BZ0<\/JJ6#$=H4I<8427@7W>\34[Q%9'5-6
MQS5Y1-OAI)K#J17&XWA2YGC<@K5S0'[_XZB+J<-E. 1M5\%3L\*)&6Y:[Y"L
MZ%\#C"EO-J9<&E.NZS^O,2;(%>6:SO-F8\H;C4D(G+>WI5RUI7I9/+9$,?CD
MVLJ6POQLWLZ6MD%JVU)NFY)</JA$<:1-GTY94#@MD^H&3I!"K(FGZYK)\0N$
M.1X+H$N:<@5?1![Z#99%"W[L#)%-C2WQ1GZF%G +74NF6)XMF"(YFYE:%\DL
M+6&)54O.U(Q;L">S-_/XJ2UOG[;CZ9/DQ<,,[!*M\#?28*I<J0VICS\-YHK,
MR.O83!@_\P:JR,=ALV[W)LS^17$*PGN6KZV[$_4K,,E2:0"8DK4@_')[OMRM
M9#?JS?)-!?=4O/Q[UNNAE_!8DO<_HNCI+.N^I]\6RPV<8BR64,896?LR2S.X
MVX*]<>\%[S^??X#YI#\\_0'!I4RP+1V[Y$6\+!.Z[(D>K2MO RPYGQ9??\\&
M#;^7O%_"<L@+4*W+!@F1ESIX,WH,AQN,)5F;H7"V*M?1KZ/QSVF95YA&.NN/
M/HSGDV1R?M55,HG[",MU"@L]1O#)=1<B H0 1'=.X[=3\][MB_-S/=%QV:W_
M/MG3?DT:O:120QN-SCD]+K;JNJ+AJ*NJ<K5)%HNHG(S&=Q/(V:\FF-_^?_[E
M[!7Y!UIEK:S*7XH*1.H!V;![(,\ \>GYV>EP]/K\U=LW.@MV*;EYJN<DD*Y&
MT%#<\'QKS9&L!U$=P1RNNRT8WD*O#J;J%/N:*[:S#:NO#Z;;UX?1[>N==.M@
M"F=DS"BZ_;PHIV"S[ "-[74ZQ\8P6PV&!^=UL!=F!P?G5O7=KW7/O1>EOVY0
M^>MO1>&OF]2]+:<[V0!NK2E+?W\I+@O_^TN_.3@O,*Z[9GS4'_4I/:C!AY+D
M=0LY7N\DQ>MFNVDGQ"W^3Q4 _?VE<J.]1P:W!$H^)H,,!#<EV4ESDR[3ZHG*
MT^V]KO?78C6U$D:__&635B^[790\IE4TI/-IT)>"#601C5W-+.0/\@:E+]FZ
1;$<P3._0_O\#"N6'RL'+! "[
 
end


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

* No Subject
@ 1997-10-07  7:50 Miloslav GRUNDMANN
  1997-10-07 21:35 ` Mark Mitchell
  0 siblings, 1 reply; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-10-07  7:50 UTC (permalink / raw)
  To: egcs

//
// gcc version egcs-2.90.10 970924 (gcc2-970802 experimental)
//

template <class T > class X
{
public : bool operator==(int i) const { return true; };
};

// this line causes the bug :
template <class T > bool X<T>::operator==(int) const;

bool main()
{
X<int>	a;
return a==0;
}


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

* No Subject
@ 1997-10-02  7:18 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-10-02  7:18 UTC (permalink / raw)
  To: egcs

//
// gcc version egcs-2.90.10 970924 (gcc2-970802 experimental)
// Internal compiler error

class a { public : virtual int operator[](int) const { return 0; }; };

class b { public : int operator[](int) const { return 1; }; };

class c : public a,b {};

void test()
{
c x;
x[0];
}

//
// gcc version egcs-2.90.10 970924 (gcc2-970802 experimental)
// Internal compiler error

class a { public : virtual int operator[](int) const { return 0; }; };

class b { public : int operator[](int) const { return 1; }; };

class c : public a,b {};

void main()
{
c x;
x[0];
}


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

* No Subject
@ 1997-10-02  7:18 Miloslav GRUNDMANN
  0 siblings, 0 replies; 97+ messages in thread
From: Miloslav GRUNDMANN @ 1997-10-02  7:18 UTC (permalink / raw)
  To: egcs

//
// gcc version egcs-2.90.10 970924 (gcc2-970802 experimental)
// Internal compiler error

class a { public : virtual int operator[](int) const { return 0; }; };

class b { public : int operator[](int) const { return 1; }; };

class c : public a,b {};

void test()
{
c x;
x[0];
}



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

* No Subject
@ 1997-09-28 23:28 Jeffrey A Law
  0 siblings, 0 replies; 97+ messages in thread
From: Jeffrey A Law @ 1997-09-28 23:28 UTC (permalink / raw)
  To: egcs-bugs

------- Forwarded Message


Date: Sun, 28 Sep 1997 20:12:37 +0200 (MET DST)
From: Bernhard Rosenkraenzer <bero@in-trier.de>
To: egcs-bugs@cygnus.com
cc: beastium-list@desk.nl
Subject: 970924 g++ problems
Message-ID: <Pine.LNX.3.96.970928195811.2594A-100000@ufp.in-trier.de>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,
there's a problem with the g++ compiler in egcs/pgcc 970924. When trying
to compile the KDE libraries
( ftp://ftp.kde.org/pub/kde/unstable/distribution/tgz/current/kdelibs-970928.tar
.gz)
on an i586 running Linux 2.x with egcs, the following error message is
generated:

kprocess.cpp: In method `bool KProcess::normalExit()':
kprocess.cpp:201: member `status' is a private member of class `KProcess'
kprocess.cpp: In method `int KProcess::exitStatus()':
kprocess.cpp:208: member `status' is a private member of class `KProcess'
make[3]: *** [kprocess.lo] Error 1
make[3]: Leaving directory `/UW-SCSI/kdelibs/kdecore'


Trying to fall back to gcc 2.7.2.3 with -V2.7.2.3 creates, due to the
changed g++ include files from egcs:

In file included from kurl.cpp:10:
/usr/lib/g++-include/iostream.h:91: parse error before `__extension__'
/usr/lib/g++-include/iostream.h:208: parse error before `__extension__'


One "fix" is to copy the iostream.h from libg++ 2.7.2.8 to
/usr/lib/g++-include, but I really doubt that's a good one... (I'm not
very familiar with c++, just with c)

Any other suggestions?

LLaP
bero



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

end of thread, other threads:[~1999-04-30 23:15 UTC | newest]

Thread overview: 97+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-09-13 15:31 No Subject Graham Wilson
  -- strict thread matches above, loose matches on Subject: below --
1999-04-30 23:15 
1999-04-30 23:15 doemer
1999-04-30 23:15 Laurynas Biveinis
1999-04-25  8:01 Lukas Weberruß
1999-04-01 12:42 Alexey Pialkin
1999-04-01  6:08 Paul Janssen
1999-03-31 23:54 Anthony Shipman
1999-03-31 23:54 
1999-03-31 23:54 Simon Marlow
1999-03-31  1:34 Andrew Zabolotny
1999-02-28 23:30 
1999-02-28 23:30 Nathan Sidwell
1999-02-28 23:30 
1999-02-28 23:30 
1999-02-28 23:30 tej
1999-01-28 16:13 Christoph Hoegl
1999-01-25  5:24 Gregory, Allan
1999-01-25  1:16 Philippe Hoogvorst
1999-01-21 19:29 Frank Hunszinger
1999-01-20  0:02 Jeffrey A Law
1999-01-04 19:21 Jeremy Graham Siek
1998-12-31  0:15 Alex Zepeda
1998-12-17 16:47 Fredrik Ax
1998-12-16 13:48 Martin Wilhelm Leidig
1998-12-08 13:29 D Maley
1998-12-09  3:04 ` Martin von Loewis
1998-12-09  3:08 ` Horst von Brand
1998-12-08 13:15 D Maley
1998-12-09  0:32 ` Martin von Loewis
1998-12-09  1:18 ` Horst von Brand
1998-11-30  2:11 Trevor Spiteri
1998-11-19  4:28 Patrick Barron
1998-11-13 15:43 hanwen
1998-11-13  5:37 Antoine BUAT
1998-11-12 22:59 laurent
1998-11-09 12:02 Donna M Lanasa
1998-11-08 18:11 Alexandrescu, Andrei
1998-11-06  9:01 Dragan Milenkovic
1998-11-08  2:30 ` Horst von Brand
1998-11-05  8:52 Moedl Raimund
1998-11-02  5:19 informant
1998-10-29  6:39 Adrian Bowyer
     [not found] <informant@earthlink.net>
1998-10-29  5:07 ` informant
1998-10-24  8:35 explorer
1998-10-22 10:56 Bernhard Stegmaier
1998-10-12  6:30 Professor W P Jones
1998-10-08  5:55 Han-Wen Nienhuys
1998-09-17  5:20 Han-Wen Nienhuys
1998-09-12  3:39 dwhitney
1998-09-12  2:25 dwhitney
1998-09-11 21:26 Martin Habbecke
1998-08-26  2:31 hanwen
1998-08-20  6:33 Elmer Joandi
1998-07-28  7:59 Ozgur Demir
1998-07-26 14:40 Rich Lee
1998-07-19  6:03 Alexander Favorov
1998-07-17 13:27 David C Binderman
1998-07-05 10:24 root
1998-07-05 18:59 ` Horst von Brand
1998-06-17 13:25 David C Binderman
1998-06-08  7:05 Niall Smart
1998-05-23 14:47 Michael P. Gorse
1998-05-18 14:14 John Wehle
1998-05-18 14:19 ` Ian Lance Taylor
1998-04-21  5:15 Johannes Leebmann
1998-04-18  7:52 Bernd Schellhaass
1998-04-17  7:54 harry eaton
1998-04-08  9:51 Alex Solomonoff
1998-04-07 18:45 Alexander Samoilov
1998-04-01 21:12 Rahul Sahadevan
1998-04-06 19:10 ` Jim Wilson
1998-03-19 20:41 Mike Shirobokov
1998-03-21  1:50 ` Martin von Loewis
1998-03-16 16:26 Oskar Enoksson
1998-03-09  5:02 ÇÑ ¿µ¸¸
1998-03-03 11:08 Shmuel Tomer
1998-02-06  8:31 Utilisateur FNET
1998-02-06  8:31 Utilisateur FNET
1998-02-06  8:31 Utilisateur FNET
1998-01-28  6:52 David M. Gay
1998-01-10 12:03 Dan Weeks
1998-01-02 16:02 David
1997-12-18 15:47 Dirk Herrmann
1997-12-11  6:49 Miloslav GRUNDMANN
1997-11-26  4:10 Miloslav GRUNDMANN
1997-11-24 12:57 Thomas Weise
1997-11-18 12:26 Miloslav GRUNDMANN
1997-11-10  2:57 Miloslav GRUNDMANN
1997-11-01  9:12 Miloslav GRUNDMANN
1997-11-01  9:07 Miloslav GRUNDMANN
1997-10-07  9:43 Max Lawson
1997-10-07  7:50 Miloslav GRUNDMANN
1997-10-07 21:35 ` Mark Mitchell
1997-10-02  7:18 Miloslav GRUNDMANN
1997-10-02  7:18 Miloslav GRUNDMANN
1997-09-28 23:28 Jeffrey A Law

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).