Bug report
Pieter van Beek
kobasoft@xs4all.nl
Fri Oct 9 15:11:00 GMT 1998
Dear Developers,
egcs told me to send you a bug-report. so here it is!
[kobasoft model3]$ make valvector
g++ -c valvector.C -o valvector.o
In file included from valvector.C:1:
valvector.H:71: Internal compiler error.
valvector.H:71: Please submit a full bug report to
`egcs-bugs@cygnus.com'.
make: *** [valvector.o] Error 1
[kobasoft model3]$ egcs -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.27/specs
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
This is the header-file (valvector.H):
--------------------------------------
#ifndef VALVECTOR_H
#define VALVECTOR_H
template <class T> class ValVector {
public:
ValVector ();
ValVector (int);
ValVector (int, T);
ValVector (const ValVector <T> &);
~ValVector ();
ValVector <T>& operator= (const ValVector <T> &);
T& operator[] (int);
T& at (int);
int resize (int); // returns OLD size
int size ();
template <class U> ValVector <T>& operator+= <U> (U);
template <class U> ValVector <T>& operator-= <U> (U);
template <class U> ValVector <T>& operator*= <U> (U);
template <class U> ValVector <T>& operator/= <U> (U);
private:
int length;
T *data;
};
template <class T>
inline ValVector <T>::ValVector () {
data = 0; length = 0;
}
template <class T>
inline ValVector <T>::ValVector (int p1) :
length (p1)
{
data = new T [p1];
}
template <class T>
inline ValVector <T>::ValVector (int p1, T p2) :
length (p1)
{
data = new T [p1];
for (int i = 0; i < p1; i++)
data [i] = p2;
}
template <class T>
inline ValVector <T>::ValVector (const ValVector <T> &p) :
length (p.size ())
{
data = new T [length];
for (int i = 0; i < p1; i++)
data [i] = p [i];
}
template <class T>
inline ValVector <T>::~ValVector () {
delete [] data;
}
template <class T>
inline ValVector <T>& ValVector <T>::operator= (const ValVector <T> &p)
{
delete [] data;
length = p.length();
data = new T [length];
for (int i = 0; i < p1; i++)
data [i] = p [i];
return *this;
}
template <class T, class U>
inline ValVector <T>& ValVector <T>::operator+= <U> (U p) {
for (int i = 0; i < p1; i++)
data [i] += p;
return *this;
}
#endif
=============================== END OF HEADER FILE ==================
This is the main file (valvector.C):
#include "valvector.H"
int main () {
ValVector <double> vv (10, 0);
vv += <double> 10.;
}
Good LUCK!!!
(Don't bother helping me, the code probaply just contains a weird
mistake, I'll find out myself)
Greetings, Pieter van Beek
--
----------------------------------------------------------
Kobayashi Software
Rode Kruislaan 1524
1111 XE Diemen
tel. +31 20 4165015
More information about the Gcc-bugs
mailing list