diff options
Diffstat (limited to 'libstdc++-v3')
| -rw-r--r-- | libstdc++-v3/ChangeLog | 15 | ||||
| -rw-r--r-- | libstdc++-v3/docs/html/17_intro/C++STYLE | 4 | ||||
| -rw-r--r-- | libstdc++-v3/include/bits/ios_base.h | 4 | ||||
| -rw-r--r-- | libstdc++-v3/libsupc++/exception | 44 | ||||
| -rw-r--r-- | libstdc++-v3/libsupc++/exception_support.cc | 15 | ||||
| -rw-r--r-- | libstdc++-v3/libsupc++/typeinfo | 144 | ||||
| -rw-r--r-- | libstdc++-v3/src/ios.cc | 4 | 
7 files changed, 128 insertions, 102 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4e28ed0ead1..5e31c3374dd 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,18 @@ +2001-01-16  Benjamin Kosnik  <bkoz@redhat.com> + +	libstdc++/1605 +	* include/bits/ios_base.h (ios_base::failure): Tighten up throw specs. +	* src/ios.cc (ios_base::failure): Make definitions match. +        * libsupc++/typeinfo (class bad_typeid): Add throw specs. +        (class bad_cast): Same. +        * libsupc++/exception (class exception): Add throw specs. +        * libsupc++/exception_support.cc (set_terminate): Add throw specs. +        (set_unexpected): Same. +        (uncaught_exception): Same. +        (what): Same. + +	* docs/html/17_intro/C++STYLE (classname): Fix. +	  2001-01-16  Mark Mitchell  <mark@codesourcery.com>  	* src/gen-num-limits.cc (INSTANTIATIONS): New macro. diff --git a/libstdc++-v3/docs/html/17_intro/C++STYLE b/libstdc++-v3/docs/html/17_intro/C++STYLE index 5c010ed276e..3d4ab171c3e 100644 --- a/libstdc++-v3/docs/html/17_intro/C++STYLE +++ b/libstdc++-v3/docs/html/17_intro/C++STYLE @@ -99,8 +99,8 @@ Notable areas of divergence from what may be previous local practice  07. Member initialization lists     All one line, separate from class name. -  gribble::gribble() : -  _M_private_data(0), _M_more_stuff(0), _M_helper(0); +  gribble::gribble()  +  : _M_private_data(0), _M_more_stuff(0), _M_helper(0);    { }    -NOT-    gribble::gribble() : _M_private_data(0), _M_more_stuff(0), _M_helper(0); diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h index 6aea0429d7c..2e31863680b 100644 --- a/libstdc++-v3/include/bits/ios_base.h +++ b/libstdc++-v3/include/bits/ios_base.h @@ -146,10 +146,10 @@ namespace std {  #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS        // Can't do exception(_msg) as defined in 27.4.2.1.1        explicit  -      failure(const string& __str); +      failure(const string& __str) throw();        virtual  -      ~failure(); +      ~failure() throw();        virtual const char*        what() const throw(); diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception index 4d35c56c405..e48d2160a60 100644 --- a/libstdc++-v3/libsupc++/exception +++ b/libstdc++-v3/libsupc++/exception @@ -1,5 +1,6 @@  // Exception Handling support header for -*- C++ -*- -// Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation + +// Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation  // This file is part of GNU CC.  // @@ -34,30 +35,33 @@  extern "C++" { -namespace std { +namespace std  +{ +  class exception  +  { +  public: +    exception() throw() { } +    virtual ~exception() throw() { } +    virtual const char* what() const throw(); +  }; -class exception { -public: -  exception () { } -  virtual ~exception () { } -  virtual const char* what () const; -}; +  class bad_exception : public exception  +  { +  public: +    bad_exception() throw() { } +    virtual ~bad_exception() throw() { } +  }; -class bad_exception : public exception { -public: -  bad_exception () { } -  virtual ~bad_exception () { } -}; +  typedef void (*terminate_handler) (); +  typedef void (*unexpected_handler) (); -typedef void (*terminate_handler) (); -typedef void (*unexpected_handler) (); +  terminate_handler set_terminate(terminate_handler) throw(); +  void terminate() __attribute__ ((__noreturn__)); -terminate_handler set_terminate (terminate_handler); -void terminate () __attribute__ ((__noreturn__)); -unexpected_handler set_unexpected (unexpected_handler); -void unexpected () __attribute__ ((__noreturn__)); -bool uncaught_exception (); +  unexpected_handler set_unexpected(unexpected_handler) throw(); +  void unexpected() __attribute__ ((__noreturn__)); +  bool uncaught_exception() throw();  } // namespace std  } // extern "C++" diff --git a/libstdc++-v3/libsupc++/exception_support.cc b/libstdc++-v3/libsupc++/exception_support.cc index 1356259a509..f6ec5086876 100644 --- a/libstdc++-v3/libsupc++/exception_support.cc +++ b/libstdc++-v3/libsupc++/exception_support.cc @@ -1,5 +1,7 @@  // Functions for Exception Support for -*- C++ -*- -// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation + +// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, +// 2001 Free Software Foundation  // This file is part of GNU CC. @@ -56,7 +58,7 @@ static std::unexpected_handler __unexpected_func __attribute__((__noreturn__))    = __default_unexpected;  std::terminate_handler -std::set_terminate (std::terminate_handler func) +std::set_terminate (std::terminate_handler func) throw()  {    std::terminate_handler old = __terminate_func; @@ -65,7 +67,7 @@ std::set_terminate (std::terminate_handler func)  }  std::unexpected_handler -std::set_unexpected (std::unexpected_handler func) +std::set_unexpected (std::unexpected_handler func) throw()  {    std::unexpected_handler old = __unexpected_func; @@ -374,14 +376,15 @@ THROW_BAD_TYPEID ()  /* Has the current exception been caught?  */  bool -std::uncaught_exception () +std::uncaught_exception () throw()  {    cp_eh_info *p = CP_EH_INFO;    return p && ! p->caught;  } -const char * std::exception:: -what () const +const char *  +std::exception:: +what () const throw()  {    return typeid (*this).name ();  } diff --git a/libstdc++-v3/libsupc++/typeinfo b/libstdc++-v3/libsupc++/typeinfo index 91f0de2c720..092963c524f 100644 --- a/libstdc++-v3/libsupc++/typeinfo +++ b/libstdc++-v3/libsupc++/typeinfo @@ -48,86 +48,90 @@ namespace __cxxabiv1  } // namespace __cxxabiv1  #endif -namespace std { - -class type_info { -public: -  // Destructor. Being the first non-inline virtual function, this controls in -  // which translation unit the vtable is emitted. The compiler makes use of -  // that information to know where to emit the runtime-mandated type_info -  // structures in the new-abi. -  virtual ~type_info (); - -private: -  // Assigning type_info is not supported.  made private. -  type_info& operator= (const type_info&); -  type_info (const type_info&); - -protected: -  const char *__name; - -protected: -  explicit type_info (const char *__n): __name (__n) { } - -public: -  // the public interface +namespace std  +{ +  class type_info  +  { +  public: +    // Destructor. Being the first non-inline virtual function, this +    // controls in which translation unit the vtable is emitted. The +    // compiler makes use of that information to know where to emit +    // the runtime-mandated type_info structures in the new-abi. +    virtual ~type_info(); + +  private: +    // Assigning type_info is not supported.  made private. +    type_info& operator=(const type_info&); +    type_info(const type_info&); +     +  protected: +    const char *__name; +     +  protected: +    explicit type_info(const char *__n): __name(__n) { } +     +  public: +    // the public interface  #if !defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100 -  // In old abi, there can be multiple instances of a type_info object for one -  // type. Uniqueness must use the _name value, not object address. -  bool before (const type_info& arg) const; -  const char* name () const +    // In old abi, there can be multiple instances of a type_info +    // object for one type. Uniqueness must use the _name value, not +    // object address. +    bool before(const type_info& arg) const; +    const char* name() const      { return __name; } -  bool operator== (const type_info& __arg) const; -  bool operator!= (const type_info& __arg) const -    { return !operator== (__arg); } +    bool operator==(const type_info& __arg) const; +    bool operator!=(const type_info& __arg) const +    { return !operator==(__arg); }  #else -  // In new abi we can rely on type_info's NTBS being unique, -  // and therefore address comparisons are sufficient. -  bool before (const type_info& __arg) const +    // In new abi we can rely on type_info's NTBS being unique, +    // and therefore address comparisons are sufficient. +    bool before(const type_info& __arg) const      { return __name < __arg.__name; } -  const char* name () const +    const char* name() const      { return __name; } -  bool operator== (const type_info& __arg) const +    bool operator==(const type_info& __arg) const      { return __name == __arg.__name; } -  bool operator!= (const type_info& __arg) const -    { return !operator== (__arg); } +    bool operator!=(const type_info& __arg) const +    { return !operator==(__arg); }  #endif - -  // the internal interface +     +    // the internal interface  #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 -public: -  // return true if this is a pointer type of some kind -  virtual bool __is_pointer_p () const; -  // return true if this is a function type -  virtual bool __is_function_p () const; - -  // Try and catch a thrown type. Store an adjusted pointer to the caught type -  // in THR_OBJ. If THR_TYPE is not a pointer type, then THR_OBJ points to the -  // thrown object. If THR_TYPE is a pointer type, then THR_OBJ is the pointer -  // itself. OUTER indicates the number of outer pointers, and whether they -  // were const qualified. -  virtual bool __do_catch (const type_info *__thr_type, void **__thr_obj, -                         unsigned __outer) const; - -  // internally used during catch matching -  virtual bool __do_upcast (const __cxxabiv1::__class_type_info *__target, -			    void **__obj_ptr) const; +  public: +    // return true if this is a pointer type of some kind +    virtual bool __is_pointer_p() const; +    // return true if this is a function type +    virtual bool __is_function_p() const; + +    // Try and catch a thrown type. Store an adjusted pointer to the +    // caught type in THR_OBJ. If THR_TYPE is not a pointer type, then +    // THR_OBJ points to the thrown object. If THR_TYPE is a pointer +    // type, then THR_OBJ is the pointer itself. OUTER indicates the +    // number of outer pointers, and whether they were const +    // qualified. +    virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj, +			    unsigned __outer) const; + +    // internally used during catch matching +    virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target, +			     void **__obj_ptr) const;  #endif -}; - -class bad_cast : public exception { -public: -  bad_cast() { } -  virtual ~bad_cast() { } -}; - -class bad_typeid : public exception { - public: -  bad_typeid () { } -  virtual ~bad_typeid () { } -}; - +  }; + +  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  } // extern "C++" diff --git a/libstdc++-v3/src/ios.cc b/libstdc++-v3/src/ios.cc index db694786a3f..d61c2635351 100644 --- a/libstdc++-v3/src/ios.cc +++ b/libstdc++-v3/src/ios.cc @@ -120,13 +120,13 @@ namespace std    wostream wclog(NULL);  #endif -  ios_base::failure::failure(const string& __str) +  ios_base::failure::failure(const string& __str) throw()    {      strncpy(_M_name, __str.c_str(), _M_bufsize);      _M_name[_M_bufsize - 1] = '\0';    } -  ios_base::failure::~failure() +  ios_base::failure::~failure() throw()    { }    const char*  | 

