This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[c++] adding empty throw specs in <typeinfo> creates havoc



This simple patch, motivated by the spirit of libstdc++/1605
http://gcc.gnu.org/ml/gcc-bugs/2001-01/msg00260.html

Index: typeinfo
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/libsupc++/typeinfo,v
retrieving revision 1.1
diff -c -p -r1.1 typeinfo
*** typeinfo	2000/10/10 23:43:26	1.1
--- typeinfo	2001/01/11 05:52:04
*************** public:
*** 118,131 ****
  
  class bad_cast : public exception {
  public:
!   bad_cast() { }
!   virtual ~bad_cast() { }
  };
  
  class bad_typeid : public exception {
   public:
!   bad_typeid () { }
!   virtual ~bad_typeid () { }
  };
  
  } // namespace std
--- 118,131 ----
  
  class bad_cast : public exception {
  public:
!   bad_cast() throw() { }
!   virtual ~bad_cast() throw() { }
  };
  
  class bad_typeid : public exception {
   public:
!   bad_typeid () throw() { }
!   virtual ~bad_typeid () throw() { }
  };
  
  } // namespace std


Which implements standard-defined behavior as per 18.5.2/18.5.3

causes this:

/mnt/hd/ahimsa/bld-x86-gcc/gcc/g++ -B/mnt/hd/ahimsa/bld-x86-gcc/gcc/ -nostdinc++ -L/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/src -L/mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/mnt/hd/bliss/H-x86-gcc/i686-pc-linux-gnu/bin/ -B/mnt/hd/bliss/H-x86-gcc/i686-pc-linux-gnu/lib/ -isystem /mnt/hd/bliss/H-x86-gcc/i686-pc-linux-gnu/include -I/mnt/hd/bliss/src.gcc/libstdc++-v3/../gcc -I/mnt/hd/bliss/src.gcc/libstdc++-v3/../include -I/mnt/hd/bliss/src.gcc/libstdc++-v3/include -I/mnt/hd/bliss/src.gcc/libstdc++-v3/include/std -I/mnt/hd/bliss/src.gcc/libstdc++-v3/include/c_std -I../include -I/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++ -g -O2 -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c /mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc  -fPIC -DPIC -o .libs/exception_support.o
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In function 
   `cp_eh_info* __start_cp_handler()':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:124: warning: new
   declaration `cp_eh_info* __start_cp_handler()'
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:124: warning: ambiguates
   built-in declaration `cp_eh_info* __start_cp_handler()'
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In function 
   `void __check_eh_spec(int, const void**)':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:316: `&__cp_pop_exception'
   cannot be used as a function
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In copy 
   constructor `std::exception::exception(const std::exception&)':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:333: `&__cp_pop_exception'
   cannot be used as a function
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In copy 
   constructor `std::bad_exception::bad_exception(const std::bad_exception&)':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:333: `&__cp_pop_exception'
   cannot be used as a function
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In function 
   `void __check_null_eh_spec()':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:346: warning: `noreturn'
   function does return
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In copy 
   constructor `std::bad_cast::bad_cast(const std::bad_cast&)':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:362: `&__cp_pop_exception'
   cannot be used as a function
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc: In copy 
   constructor `std::bad_typeid::bad_typeid(const std::bad_typeid&)':
/mnt/hd/bliss/src.gcc/libstdc++-v3/libsupc++/exception_support.cc:369: `&__cp_pop_exception'
   cannot be used as a function
make: *** [exception_support.lo] Error 1
<bkoz@fillmore> /mnt/hd/ahimsa/bld-x86-gcc/i686-pc-linux-gnu/libstdc++-v3/libsupc++                                                                            







Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]