Bootstrap of egcs-2.93.10 19990228 snapshot fails on sparc-sun-solaris2.5.1 (internal compiler error)

Matthias Mueller matthias@ica1.uni-stuttgart.de
Sun Feb 28 08:52:00 GMT 1999


Hi,
bootstrapping  egcs-2.93.10 19990228 on sparc-sun-solaris2.5.1
triggers an internal compiler error:

Here the final lines of make bootstrap:
make[3]: Leaving directory `/data/video/matthias/src/objdir.sun/gcc'
make[3]: Entering directory `/data/video/matthias/src/objdir.sun/gcc'
./xgcc -B./ -B/local/egcs-19990228/sparc-sun-solaris2.5.1/bin/ -O2   -DIN_GCC -DHAIFA  -DSVR4  -W -Wall -O2 -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -g -O2 -I. -I../../egcs-19990228/gcc -I../../egcs-19990228/gcc/config -I../../egcs-19990228/gcc/../include \
  -c ../../egcs-19990228/gcc/cp/new1.cc -DL_op_new -o opnew.o
../../egcs-19990228/gcc/cp/new1.cc: In function `void * operator new(unsigned int)':
../../egcs-19990228/gcc/cp/new1.cc:88: Internal compiler error.
../../egcs-19990228/gcc/cp/new1.cc:88: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
../../egcs-19990228/gcc/cp/new1.cc:88: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
make[3]: *** [opnew.o] Error 1
make[3]: Leaving directory `/data/video/matthias/src/objdir.sun/gcc'
make[2]: *** [libgcc2.a] Error 1
make[2]: Leaving directory `/data/video/matthias/src/objdir.sun/gcc'
make[1]: *** [bootstrap] Error 2
make[1]: Leaving directory `/data/video/matthias/src/objdir.sun/gcc'
make: *** [bootstrap] Error 2

And here the classical bug report for this file:
1. System type: sparc-sun-solaris2.5.1
2. Egcs version, command line options and output:
./xgcc -v --save-temps -B./ -B/local/egcs-19990228/sparc-sun-solaris2.5.1/bin/ -O2 -DIN_GCC -DHAIFA -DSVR4 -W -Wall -O2 -g -O2 -I./include -fPIC -g1 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -g -O2 -I. -I../../egcs-19990228/gcc -I../../egcs-19990228/gcc/config -I../../egcs-19990228/gcc/../include -c ../../egcs-19990228/gcc/cp/new1.cc -DL_op_new -o opnew.o
Reading specs from ./specs
gcc version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental)
 ./cpp -lang-c++ -v -I./include -I. -I../../egcs-19990228/gcc -I../../egcs-19990228/gcc/config -I../../egcs-19990228/gcc/../include -isystem /local/egcs-19990228/sparc-sun-solaris2.5.1/bin/include -isystem ./include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=93 -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__OPTIMIZE__ -g -g1 -g -W -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) -DIN_GCC -DHAIFA -DSVR4 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DL_op_new ../../egcs-19990228/gcc/cp/new1.cc new1.ii
GNU CPP version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 include
 .
 ../../egcs-19990228/gcc
 ../../egcs-19990228/gcc/config
 ../../egcs-19990228/gcc/../include
 include
 /usr/local/include
 /usr/include
End of search list.
 ./cc1plus new1.ii -quiet -dumpbase new1.cc -g -g1 -g -O2 -O2 -O2 -O2 -W -Wall -version -fPIC -o new1.s
GNU C++ version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental).
../../egcs-19990228/gcc/cp/new1.cc: In function `void * operator new(unsigned int)':
../../egcs-19990228/gcc/cp/new1.cc:88: Internal compiler error.
../../egcs-19990228/gcc/cp/new1.cc:88: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
../../egcs-19990228/gcc/cp/new1.cc:88: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.

3. Preprossed output of the source file (just 2K I include it directly)


# 1 "../../egcs-19990228/gcc/cp/new1.cc"
 
 

 

 
 
 
 

 
 
 
 

 
 
 
 

 
 
 
 
 
 

# 1 "include/new" 1 3 4
 
 




#pragma interface "new"
# 1 "include/stddef.h" 1 3 4






 







 

 




 


 





 


# 61 "include/stddef.h" 3 4


 





 


















 





 

 





















typedef int ptrdiff_t;









 




 

 


































typedef unsigned int size_t;






















 




 





























 



















































typedef unsigned int  wint_t;




 

 

# 317 "include/stddef.h" 3 4




 













 







# 8 "include/new" 2 3 4

# 1 "include/exception" 1 3 4
 
 




#pragma interface "exception"

extern "C++" {

namespace std {

class exception {
public:
  exception () { }
  virtual ~exception () { }
  virtual const char* what () const;
};

class bad_exception : public exception {
public:
  bad_exception () { }
  virtual ~bad_exception () { }
};

typedef void (*terminate_handler) ();
typedef void (*unexpected_handler) ();

terminate_handler set_terminate (terminate_handler);
void terminate () __attribute__ ((__noreturn__));
unexpected_handler set_unexpected (unexpected_handler);
void unexpected () __attribute__ ((__noreturn__));
bool uncaught_exception ();

}  

}  


# 9 "include/new" 2 3 4


extern "C++" {

namespace std {

  class bad_alloc : public exception {
  public:
    virtual const char* what() const throw() { return "bad_alloc"; }
  };

  struct nothrow_t {};
  extern const nothrow_t nothrow;
  typedef void (*new_handler)();
  new_handler set_new_handler (new_handler);

}  

 
void *operator new (size_t) throw (std::bad_alloc);
void *operator new[] (size_t) throw (std::bad_alloc);
void operator delete (void *) throw();
void operator delete[] (void *) throw();
void *operator new (size_t, const std::nothrow_t&) throw();
void *operator new[] (size_t, const std::nothrow_t&) throw();
void operator delete (void *, const std::nothrow_t&) throw();
void operator delete[] (void *, const std::nothrow_t&) throw();

 
inline void *operator new(size_t, void *place) throw() { return place; }
inline void *operator new[](size_t, void *place) throw() { return place; }
}  


# 28 "../../egcs-19990228/gcc/cp/new1.cc" 2

using std::new_handler;
using std::bad_alloc;

extern "C" void *malloc (size_t);
extern new_handler __new_handler;





# 67 "../../egcs-19990228/gcc/cp/new1.cc"



 void * operator new (size_t sz) throw (std::bad_alloc)  __attribute__ ((weak));  void * operator new (size_t sz) throw (std::bad_alloc)  
{
  void *p;

   
  if (sz == 0)
    sz = 1;
  p = (void *) malloc (sz);
  while (p == 0)
    {
      new_handler handler = __new_handler;
      if (! handler)
	throw bad_alloc ();
      handler ();
      p = (void *) malloc (sz);
    }

  return p;
}





More information about the Gcc-bugs mailing list