HDTenEightyP/NetNews huggingface dataset:
From: berrios@phebos.aps.anl.gov (Joe Berrios)
Subject: g++ bug
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 14 Oct 1992 15:26:19 GMT

#include <iostream.h>
 
const int BOS = -1;
 
template <class T>
class data {
    T* dt;
    int top, size;
public:
    data(int sz);
    void push(T value)  { dt[++top] = value; }
};
 
template <class T>
class stack : data<T> {
public:
    stack(int sz) : data<T>(sz) { }
    void push(T value)  { void data<T>::push(value); }
};
 
template <class T>
data<T>::data(int sz)
{
    dt = new T[sz];
    top = BOS;
    size = sz;
}
 
main()
{
stack<int> a(8);
for(int i = 0; i < 5; i++);
   a.push(i);
}

Dear Sirs,
When I try to compile this program using gcc2.2.2, I get the following 
message:
 
hera 88: g++ bs3.C
bs3.C: In method `void  stack<int>::push (int)':
bs3.C:21: internal compiler error 15, please report

Thanks for your prompt reply.

Joseph    


----- End Included Message -----


Newsgroups: gnu.g++.bug
From: tilo@bernina.ethz.ch (Tilo Levante)
Subject: Re: g++2's vector memory allocation and malloc.o
Organization: Swiss Federal Institute of Technology (ETH), Zurich, CH
Distribution: gnu
Date: Wed, 7 Oct 1992 08:55:02 GMT

fjh@munta.cs.mu.oz.au (Fergus James HENDERSON) writes:

>If changing the "delete p" to "delete[] p" doesn't fix your problem, then
>you will probably need a new version of malloc.o for g++.

I have a similar problem (using vector delete). Where can I get
a this 'new' version of malloc?

Tilo
tilo@nmr.lpc.ethz.ch

Newsgroups: gnu.g++.bug
From: tilo@nmr.lpc.ethz.CH (Tilo Levante)
Subject: g++-2.2.2 profiling problem and bug fix
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 15 Oct 1992 15:17:49 GMT

Compiler: g++-2.2.2 (using LibG++ 2.2)
Machine: SparcStation 2 running SunOS 4.1.2

Description:

When performing the final link step on our large program we get
complaints from /usr/bin/ld that it can't find a number of symbols.
These symbols all match the regular expression:

	LB[BE][1-9][0-9]

These symbols are from the files
  sbufvscan.o
  sbufvform.o

I complied these files WITHOUT debugging (-g) and the symbols
vanished.

The new library links fine with profiling.

Of course, this is no real solution, but at least a temporary fix
for using profiling

Tilo


Newsgroups: gnu.g++.bug
From: maverick@mahogany.cs.berkeley.edu (Vance Maverick)
Subject: v2.2.2/sparc operator overloading restrictions
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 14 Oct 1992 18:34:04 GMT

This applies to g++ (gcc) version 2.2.2, sparc.

This is a rather minor bug -- g++ fails to warn the user when she
defines an illegal operator function.  From Stroustrup, "C++
Programming Language", second edition, p. 592:

	An operator function must either be a member function
	or take at least one argument of a class or a reference
	to a class.

However, g++ accepts the following declarions, given the class
Timepoint:

	extern bool operator>(Timepoint *, Timepoint *);

	extern bool operator<(Timepoint *, Timepoint *);

and compiles their definitions:

	bool operator>(Timepoint *a, Timepoint *b) {

	    ....
	}

	bool operator<(Timepoint *a, Timepoint *b) {

	    ....
	}

The problem arises when I try to call them.  If I write something like

	Timepoint *x, *y;

	...

	if (x < y) ...

the operator is not called, and no warning is issued.

Apart from issues of compliance with the standard, it seems clear that
the compiler should either warn me when I try to define these operators,
or generate calls to them once they're defined.

If you need them, I can send you the actual code in question.

Regards,
	Vance

Newsgroups: gnu.g++.bug
From: mecklen@oops.cs.utah.edu (Robert Mecklenburg)
Subject: Type conversion and overloading bugs in 2.2.2
Organization: University of Utah CS Dept
Distribution: gnu
Date: Thu, 8 Oct 1992 10:33:08 GMT

Does anyone have any wisdom on the following two g++ 2.2.2 problems?

Problem 1:
    gnu-bug2.c:
	// gnu-bug2.c: In function `int bazz ()':
	// gnu-bug2.c:12: undefined Estr operator & ()
	// gnu-bug2.c:12: warning: control reaches end of non-void function
	enum E { a, b, c };
	struct Estr {
	    E value;
	    Estr()				{}
	    Estr( int i ) : value( (E)i )	{}
	    operator E()			{ return value; }
	};
	extern Estr baz();
	int bazz() { return baz() & 2; }

    Here g++ fails to invoke "Estr::operator E" to convert an instance
    of the class Estr to an enum.  I believe the ARM indicates that
    one user-defined conversion and one automatic conversion will take
    place to try and satisfy an expression.  In any case, this code
    compiles under the AT&T (2.0, 2.1, 3.0.1), SGI, MIPS, HP, and IBM
    C++ compilers.

Problem 2:
    gnu-bug3.c:
	// gnu-bug3.c: In function `char * index (char *, char)':
	// gnu-bug3.c:6: conflicting types for `char * index (char *, char)'
	// gnu-bug3.c:5: previous declaration of
	//		 `char * index (const char *, char)'
	extern "C" char *index( const char *, char );
	inline char *index( char *, char ) { return 0; }

    Here g++ does not allow overloading an 'extern "C"' function with
    a C++ function which differs only in a const argument.  The ARM
    indicates that overloading on const is legal and that 'extern "C"'
    functions should not prevent other overloaded versions.  In any
    case, this code compiles under the AT&T (2.0, 2.1, 3.0.1), SGI,
    MIPS, HP, and IBM C++ compilers.

Thanks,
Robert Mecklenburg
University of Utah

Newsgroups: gnu.g++.bug
From: brister@decwrl.dec.com (James Brister)
Subject: Re: gcc 2.2.2 (C++)
Organization: DEC Western Software Lab
Distribution: gnu
Date: Fri, 9 Oct 1992 18:23:23 GMT

On Fri, 9 Oct 1992 11:26:04 GMT, mano@arch04.acri.FR (S Manoharan) said:

> Static members of user defined-type generate link-time errors.

> #include <stdio.h>

> class Foo {
> private:
>   int dummy;
> public:
>    Foo()	{ dummy = 10; }
>    int bar()	{ return 2*dummy; }
> };

> class Test {
> protected:
>    static Foo s;
> public:
>    virtual int show()	{ return s.bar(); }
> };

You need to create the instances. You've only declared the objects:

	Foo Test::s ;

James
--
James Brister                                           brister@wsl.pa.dec.com
DEC Western Software Lab., Palo Alto, CA                        decwrl!brister

Newsgroups: gnu.g++.bug
From: hal@mpl.ucsd.edu (Hal Skelly)
Subject: make problem
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 8 Oct 1992 00:17:59 GMT

I'm having a bear of a time making g++ (either version 1.40.3 or 1.42.0)
The last of the make output is:

triton# gmake
./gencodes md > tmp-insn-codes.h
./move-if-change tmp-insn-codes.h insn-codes.h
insn-codes.h is unchanged
touch stamp-codes.h
../gcc-test/gcc -c -g -DGATHER_STATISTICS -DNO_DYNAMIC_LIBS -O -B../gcc-test/  -I. -I. -I./config tree.c
tree.c: In function `get_unwidened':
tree.c:2542: `BImode' undeclared (first use this function)
tree.c:2542: (Each undeclared identifier is reported only once
tree.c:2542: for each function it appears in.)
tree.c: In function `get_narrower':
tree.c:2621: `BImode' undeclared (first use this function)
gmake: *** [tree.o] Error 1

I can't seem to find a definition for BImode anywhere in any of the
sources or configuration files.  What's the scoop?

Hal
         Hal Skelly, System Administrator for the Marine Physical Lab        
   	Scripps Institution of Oceanography, Univ. of Calif. San Diego
              Internet:  hal@mpl.ucsd.edu,  voice (619) 534-5954  

Newsgroups: gnu.g++.bug
From: girod@tele.nokia.fi (Marc Girod)
Subject: friend nested classes
Reply-To: marc.girod@ntc.nokia.com
Organization: kpd
Distribution: gnu
Date: Tue, 13 Oct 1992 14:29:21 GMT

Hi there!

Last June (Date: 12 Jun 92 17:38:55 GMT) in comp.lang.c++, in article
<88384@bu.edu>, model@bass.bu.edu (Mitchell Model) proposed a syntax
to make a nested class a friend:
  
>   	class Collection
>   	{
>   		// . . .
>   
>   		class iterator;
>   		friend iterator;
>   		class iterator
>   		{
>   			// . . .
>   		}
>   	};

However, when I tried it with g++ (2.2.2):
 ------------------------------------------------------------
// nested.C

class outer {
public:
  class inner;
  friend inner;
  class inner {};
};

main() {}
------------------------------------------------------------

I got a core dump....

------------------------------------------------------------
/usr/local/bin/make -k
g++ -g -w -H -v -DSYSV -c nested.C -o nested.o
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/specs
gcc version 2.2.2
 /usr/local/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/cpp -lang-c++ -v -DSYSV -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix -g -w -H nested.C /usr/tmp/cca04589.i
GNU CPP version 2.2.2 (sparc)
 /usr/local/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/cc1plus /usr/tmp/cca04589.i -quiet -dumpbase nested.cc -g -w -version -o /usr/tmp/cca04589.s
GNU C++ version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
cp-decl.c:2678: failed assertion `*ptr == NULL_TREE || *ptr == newval'
/usr/local/bin/gcc: Internal compiler error: program cc1plus got fatal signal 6
make: *** [nested.o] Error 1
make: Target `all' not remade because of errors.

Compilation exited abnormally with code 1 at Tue Oct 13 16:20:48
------------------------------------------------------------

Is this problem already registered? solved?

Cheers!
--
+-----------------------------------------------------------------------------+
| Marc Girod - Nokia Telecommunications       Phone: +358-0-511 7703          |
| TL4E - P.O. Box 12                            Fax: +358-0-511 7432          |
| SF-02611 Espoo 61 - Finland              Internet: marc.girod@ntc.nokia.com |
|    X.400: C=FI, A=Elisa, P=Nokia Telecom, UNIT=TRS, SUR=Girod, GIV=Marc     |
+-----------------------------------------------------------------------------+

Newsgroups: gnu.g++.bug
From: jim@garland.bt.co.UK
Subject: Problem with g++ 2.2.2
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 7 Oct 1992 18:08:07 GMT

In the following program the definition for the delete overload for class A
has to be the void * argument. If either of the alternatives (no arguments or
(void *, size_t)) are used then the compiler complains about the wrong number
of arguments when compiling the class B  destructor. Why should the B
destructor be referencing A's delete function anyway? It never called, as
running the code will show you. I think that this is a problem in the compiler.
Am I right? The code compiles fine with the AT&T compiler.

Thanks in advance,

Confused of Ipswich.

#include <stdio.h>

class A
{
public:
	void	operator delete (void *x)
		{ printf ("A delete arg = %x.\n", x); }
};

class B : public A
{
public:
	~ B ()
		{ printf ("B gone.\n"); }
};

main (int argc, char *argv [])
{
	B	b;
}
From: sudbrak@betty.gmd.de (Thomas Sudbrak)
Newsgroups: gnu.g++.bug
Subject: g++-2.2.2 - internal compiler error 116 on SUN4
Date: 14 Oct 92 13:50:40 GMT
Article-I.D.: betty.sudbrak.719070640
Distribution: gnu
Organization: GMD, Sankt Augustin, Germany

// The attempt to compile the following C++-program with g++-2.2.2
// on a SUN4 (SPARCstation IPX) running SunOS 4.1.2 produces an
// internal compiler error 116:

class A {
public:
  void func1 ();
};

typedef void (A::*funcPtr) ();

void A::func1 () {
  funcPtr ptr;
  *ptr ();	// <---- here the error occurs!
}

main () {}

// Replacing the above marked line by
//
//	(*ptr) ()
//
// lets the g++ compile without errors.
Newsgroups: gnu.g++.bug
From: dcb@us-es.SEl.DE
Subject: Page 154 ARM bug report
Organization: GNUs Not Usenet
Distribution: gnu
Date: Tue, 13 Oct 1992 19:51:33 GMT

Hello there,

I have ordinary gcc 2.2.2 on SUN 4 hardware.

Given the following code

class B
{
public :
    B( int i = 0 ) ;
private :
    int                 x ;
} ;

extern f( B& aB ) ;

void
g( int i )
{
    f( B( i ) ) ;       //      This should be an error.
}

then I think the compiler should produce an error message at the
commented line. I think it is disallowed to initialise a reference with
an r-value.

Regards

David C Binderman     Dept US/ESI, Bau 60, SEL-Alcatel AG, Lorenz Strasse 10,
D-7000 Stuttgart 40, Germany      dcb@us-es.sel.de   Tel: +49 711 821 3841
If you lie to the compiler, it will get its revenge

Newsgroups: gnu.g++.bug
From: karsten@pegasus.inf-technik.th-ilmenau.de (Karsten Pahnke)
Subject: (none)
Organization: TH Ilmenau/MSS, Germany
Distribution: gnu
Date: Fri, 9 Oct 1992 09:03:10 GMT

/*
Hallo,

it seems to be there is an error in g++ 2.2.2

it is not possible to implement global(not friend)
ostream operators for template classes

the following is a shorthand example of the problem

i thank for your efforts

Karsten

karsten@Inf-Technik.TH-Ilmenau.DE

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

#include <iostream.h>

template <class T>
class Array {
	T* _arr;
	int _len;
public:
	Array(int len) { _arr = new T[_len = len]; }
	int	len() const { return _len; }
	T&	operator[](int i) {return _arr[i]; }
	void	print(ostream& s) const 
	{
		for ( int i = 0; i < _len; i++ ) {
			s << _arr[i] << " ";
		}
	}

	/* version 1 works properly, but friend is not necesssary */
	/* thats why version 2 */
	/*
	friend ostream& operator<<(ostream& s, const Array& a) 
	{ a.print(s); return s; }
	*/
};

/* works properly */
template <class T>
inline int empty(const Array<T>& a)
{
	return (a.len() == 0);
}

/* version 2 works with cfront, but not with gnu */
/*
/space/localtmp/gnu/bin/g++  -B/space/localtmp/gnu/lib/gcc/sparc-sun-sunos4.1.1/2.2.2/
-I/space/local/gnu/lib/g++-include -g -DPRECOND -DYYDEBUG -DDEBUG \
-I/home/usr/omsi/work/inc \
        -c comp_out.cc
comp_out.cc: In function `int  main ()':
comp_out.cc:42: warning: dbx info for template class methods not yet supported
/space/localtmp/gnu/bin/gcc: Internal compiler error: program cc1plus got fatal signal 11
*** Error code 1
make: Fatal error: Command failed for target `comp_out.o'
*/

template <class T>
inline ostream& operator<<(ostream& s, const Array<T>& a)
{
	a.print(s); return s;
}

main()
{
	Array<int> a(10);
	cerr << empty(a) << endl;
	cerr << a << endl;
}

-- 

 -----------------------------------------------------------
| Dipl.-Ing. Karsten Pahnke     | Telefon : 0037 672 691167 | 
| Technische Hochschule Ilmenau |           0037 672 691168 |       
| PSF 327, O-6300 Ilmenau       | Telefax : 0037 672 691517 | 
|-----------------------------------------------------------| 
| E-Mail : Pahnke@Inf-Technik.TH-Ilmenau.DE                 |
 -----------------------------------------------------------


Newsgroups: gnu.g++.bug
From: fgs@kepler.unh.edu ( F r e D  S l a m A )
Subject: fstream/open()/close()/can'tfindfile
Organization: University of New Hampshire  -  Durham, NH
Distribution: gnu
Date: Mon, 12 Oct 1992 14:23:03 GMT

	Known bug? It would seem so, but don't know, so I am posting anyway:

	This code:



-------------------------
#include <iostream.h>
#include <fstream.h>

const fileCnt = 5;
char *fileTabl [fileCnt] = {"file0", "file1", "file2", "file3", "file4"};


main()
{
	ifstream inFile;
	char c;

	for (int i=0; i < fileCnt; i++)
	{

		inFile.open(fileTabl[i], ios::in);


//		cerr << "File: " << inFile;
		if ( inFile.fail() )
		{
			cerr << "File " << fileTabl[i] << " can't be opened" 
							<< endl;
		}
		else
		{
			while ( inFile.get (c))
			{
				cout << c;
			}
		
			cout << endl;
			inFile.close();
		}
	}
}
-------------------------

	.. will only process the first file, and return file open
	failure on subsequent opens... Only on g++. I ran the same
	code though the AT&T 2.1.0 compiler and it worked fine. This example
	can also be found in Stanley B. Lippman C++ Primer.



													-Fred
-- 
 ===============================================================================
 Frederick G. Slama at >>>>>>>>>>>>>| slama@ctron.com (just a CO-OP)
 The University of New Hampshire <<<| fgs@kepler.unh.edu   F_SLAMA@unhh.unh.edu
 ===============================================================================

Newsgroups: gnu.g++.bug
From: h.b.furuseth@usit.uio.NO
Subject: #pragma implementation bug in g++-1.42
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 12 Oct 1992 15:39:20 GMT

In this file, g++-1.42 ignores 'static':

	#pragma implementation
	static void foo(void) { }

Has anyone a patch for this?  I can't use g++-2.2.2 either; it dumps
core on some of my classes.


Hallvard

Newsgroups: gnu.g++.bug
From: jbuck@forney.berkeley.edu (Joe Buck)
Subject: Re: Bug in g++? (NOT!)
Organization: U. C. Berkeley
Distribution: gnu
Date: Sat, 10 Oct 1992 21:53:50 GMT

In article <FREDR.92Oct9171859@mynah.bu.edu> fredr@raven.bu.edu (Fred Richardson) writes:
>I think I've found a bug which occurs when virtual functions are
>overriden and called by the construction routine.  It looks like if a
>virtual function is over riden by a derived class and it is called in the
>base classes constructor then only the base classes implementation of the
>virtual function will be called.  But this only happens in the base classes
>constructor routine.

This is standard behavior.  If you have another compiler that does
something different, that other compiler is broken.  The reason that
derived class functions are not executed from the base constructor is
that none of the derived class's fields have been initialized yet;
conceptually, the object is still a Base, not a Derived.  Similarly,
in the baseclass destructor, the object is treated as if it belonged
to the derived class and not the base class.

--
Joe Buck	jbuck@ohm.berkeley.edu

Newsgroups: gnu.g++.bug
From: starke@cs.rice.edu (Sean Starke)
Subject: bug report: g++ 2.2.2
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 14 Oct 1992 19:57:30 GMT

  This bug is with g++ 2.2.2 compiled with a configuration of "sparc" on
a Sparc 2, using SunOS 4.1.2.

Sean Starke
<starke@cs.rice.edu>

> Forwarded message:
> >From johnmc@mitaka.cs.rice.edu Mon Sep 28 13:16:56 1992
> Date: Mon, 28 Sep 92 13:16:53 CDT
> From: johnmc@mitaka.cs.rice.edu (John Mellor-Crummey)
> Message-Id: <9209281816.AA23551@mitaka.cs.rice.edu>
> To: starke@mitaka.cs.rice.edu
> Subject: Please submit the following to the Free software foundation
> 
> as a bug report.
> 
> Thanks -- John
> >  From scott@rosetta.com Mon Sep 28 12:59:56 1992
> >
> >  John,
> >  
> >  I found the following bug in g++ version 2.2.2, the only one I have
> >  on minerva.  Thought you'd like to know.
> >  
> >  skw
> >  
> >  
> >  ------
> >  minerva% cat tmp.C
> >  void f(void)
> >  {
> >    char * a;
> >    char * b;
> >  
> >    a = "";
> >    a = b;
> >    a = (b == 0 ? "" : b);
> >  }
> >  minerva% g++ tmp.C
> >  tmp.C: In function `void  f ()':
> >  tmp.C:8: assignment between incompatible pointer types
> >  ------
> 
> 


Newsgroups: gnu.g++.bug
From: krt@edsr.UUCP (Kevin R. Talbot)
Subject: Problem with extern "C" function
Summary: Faulty error message on extern "C" function
Reply-To: edsr!krt@uunet.uu.net
Organization: Electronic Data Systems
Distribution: gnu
Date: Thu, 8 Oct 1992 19:27:51 GMT

The following program gives an incorrect error message:

extern "C" int foo(char *, char *);

void
Bar(char *name)
{
    char *namelist;
    (void)foo(name, &namelist);     // Problem with the _second_ argument.
}

Compiled with: g++ -v -c test.cc

Gives the following error:

Reading specs from /usr/sab/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/specs
gcc version 2.2.2
 /usr/sab/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix test.cc /usr/tmp/cca07543.i
GNU CPP version 2.2.2 (sparc)
 /usr/sab/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.2.2/cc1plus /usr/tmp/cca07543.i -quiet -dumpbase test.cc -version -o /usr/tmp/cca07543.s
GNU C++ version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
test.cc: In function `void  Bar (char *)':
test.cc:7: incompatible pointer types for argument 1 of `int  foo (char *, char *)'

My e-mail address is krt@edsr.eds.com
-Kevin


Newsgroups: gnu.g++.bug
From: mano@arch04.acri.FR (S Manoharan)
Subject: gcc 2.2.2 (C++)
Reply-To: mano@arch04.acri.fr
Organization: Advanced Computer Research Institute
Distribution: gnu
Date: Fri, 9 Oct 1992 11:26:04 GMT

Static members of user defined-type generate link-time errors.

#include <stdio.h>

class Foo {
private:
  int dummy;
public:
   Foo()	{ dummy = 10; }
   int bar()	{ return 2*dummy; }
};

class Test {
protected:
   static Foo s;
public:
   virtual int show()	{ return s.bar(); }
};

class Test2 : public Test {
public:
   virtual int show()	{ return (s.bar() + 2); }
};

int main()
{
   Test t1;
   printf("%d\n", t1.show());
   Test t[10];
   printf("%d\n", t[0].show());
   Test2 t21;
   printf("%d\n", t21.show());
   Test2 t2[10];
   printf("%d\n", t2[0].show());
}
---
S Manoharan                                 Email    : mano@acri.fr
Advanced Computer Research Institute        Fax      : +33 72 35 84 10
1 Boulevard Marius Vivier-Merle             Voice    : +33 72 35 84 00
69443 Lyon Cedex 03 France                  

Newsgroups: gnu.g++.bug
From: h.b.furuseth@usit.uio.NO
Subject: failed assertion in g++-2.2.2
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 12 Oct 1992 16:39:11 GMT

% cat x.cc
# 1 "x.cc"
# 1 "y.h" 1
#pragma interface

typedef struct Y
{
   int i;
} Y;
# 1 "x.cc" 2
% g++ -v x.cc
Reading specs from /use/nyst/munin/local/lib/gcc-lib/mips-dec-ultrix/2.2.2/specs
gcc version 2.2.2
 /use/nyst/munin/local/lib/gcc-lib/mips-dec-ultrix/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__ANSI_COMPAT -DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -Dbsd4_2 -Dhost_mips -Dmips -Dultrix -Dunix -D__ANSI_COMPAT -D__MIPSEL__ -D__R3000__ -D__SYSTYPE_BSD__ -D___SYSTYPE_BSD__ -D__bsd4_2__ -D__host_mips__ -D__mips__ -D__ultrix__ -D__unix__ -D__ANSI_COMPAT -D__MIPSEL -D__R3000 -D__SYSTYPE_BSD -D___SYSTYPE_BSD -D__bsd4_2 -D__host_mips -D__mips -D__ultrix -D__unix -D__LANGUAGE_C_PLU
S_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C x.cc /usr/tmp/cca25094.i
GNU CPP version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /use/nyst/munin/local/lib/gcc-lib/mips-dec-ultrix/2.2.2/cc1plus /usr/tmp/cca25094.i -quiet -dumpbase x.cc -version -o /usr/tmp/cca25094.s
GNU C++ version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by GNU C version 2.2.2.
cp-decl.c:2046: failed assertion `DECL_IGNORED_P (olddecl) == DECL_IGNORED_P (newdecl)'
/use/bilbo/u3/hbf/bin/ds/gcc: Internal compiler error: program cc1plus got fatal signal 4


Hallvard

Newsgroups: gnu.g++.bug
From: parry@yoyo.cc.monash.edu.au (Tom J Parry)
Subject: Re: wrong virtual called in MI cases
Organization: Monash University General Access Unix
Distribution: gnu
Date: Fri, 9 Oct 1992 00:46:57 GMT

I have exactly the same problem. I have a pure-virtual base class which
was causing IOT Traps when the executable tryed to call the base method
(defined to be 0 of course).

Funnily enough, the right methods are called when I compile the same code
using gcc 2.2.2/2 (this is the OS/2 2.0 port for gcc.)

Has there been a patch for this I don't know of ?

-- 
Tom J Parry.
Your reality is a figment of my imagination.

Newsgroups: gnu.g++.bug