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