Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // Copyright (C) 2013-2015 Free Software Foundation, Inc.
  2. //
  3. // This file is part of GCC.
  4. //
  5. // GCC is free software; you can redistribute it and/or modify
  6. // it under the terms of the GNU General Public License as published by
  7. // the Free Software Foundation; either version 3, or (at your option)
  8. // any later version.
  9.  
  10. // GCC is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14.  
  15. // Under Section 7 of GPL version 3, you are granted additional
  16. // permissions described in the GCC Runtime Library Exception, version
  17. // 3.1, as published by the Free Software Foundation.
  18.  
  19. // You should have received a copy of the GNU General Public License and
  20. // a copy of the GCC Runtime Library Exception along with this program;
  21. // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  22. // <http://www.gnu.org/licenses/>.
  23.  
  24. #include <new>
  25.  
  26. namespace std
  27. {
  28. // From N3639.  This was voted in and then back out of C++14, and is now
  29. // just here for backward link compatibility with code built with 4.9.
  30. class bad_array_length : public bad_alloc
  31. {
  32. public:
  33.   bad_array_length() throw() { };
  34.  
  35.   // This declaration is not useless:
  36.   // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118
  37.   virtual ~bad_array_length() throw();
  38.  
  39.   // See comment in eh_exception.cc.
  40.   virtual const char* what() const throw();
  41. };
  42.  
  43. bad_array_length::~bad_array_length() _GLIBCXX_USE_NOEXCEPT { }
  44.  
  45. const char*
  46. bad_array_length::what() const _GLIBCXX_USE_NOEXCEPT
  47. { return "std::bad_array_length"; }
  48.  
  49. } // namespace std
  50.  
  51. namespace __cxxabiv1 {
  52.  
  53. extern "C" void
  54. __cxa_throw_bad_array_length ()
  55. { _GLIBCXX_THROW_OR_ABORT(std::bad_array_length()); }
  56.  
  57. } // namespace __cxxabiv1
  58.