I think I found a bug ...
Jan Metzger
jmetzger@gmx.de
Mon Jun 5 11:26:00 GMT 2000
Here is the program bug.cc:
---------------------------------------
class AClass
{
public:
static const unsigned int data_size;
double data[data_size];
AClass(void);
AClass(const AClass& p);
};
const unsigned int AClass::data_size = 5;
AClass::AClass(void)
{ }
AClass::AClass(const AClass& p)
{
for (int i=0; i<data_size; ++i)
this->data[i] = p.data[i];
}
-------------------------------------------
trying to compile this with
> g++ -v --save-temps bug.cc
produces the following output:
-------------------------------------------
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/usr/lib/gcc-lib/i486-suse-linux/2.95.2/cpp -lang-c++ -v -D__GNUC__=2
-D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix
-D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix
-D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386)
-Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ bug.cc bug.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/qt/include
/usr/include/g++
/usr/local/include
/usr/lib/gcc-lib/i486-suse-linux/2.95.2/include
/usr/include
End of search list.
The following default directories have been omitted from the search
path:
/usr/lib/gcc-lib/i486-suse-linux/2.95.2/../../../../i486-suse-linux/include
End of omitted list.
/usr/lib/gcc-lib/i486-suse-linux/2.95.2/cc1plus bug.ii -quiet -dumpbase
bug.cc -version
-o bug.s
GNU C++ version 2.95.2 19991024 (release) (i486-suse-linux) compiled by
GNU C version 2.95.2 19991024 (release).
bug.cc: In method `AClass::AClass(const AClass &)':
bug.cc:20: Internal compiler error in `find_function_data', at
function.c:542
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for
instructions.
--------------------------------------------------------------------------------------
Here's the file bug.ii:
--------------------------------------------------------------------------------------
# 1 "bug.cc"
class AClass
{
public:
static const unsigned int data_size;
double data[data_size];
AClass(void);
AClass(const AClass& p);
};
const unsigned int AClass::data_size = 5;
AClass::AClass(void)
{ }
AClass::AClass(const AClass& p)
{
for (int i=0; i<data_size; ++i)
this->data[i] = p.data[i];
}
More information about the Gcc-bugs
mailing list