cxxabi_forced.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // cxxabi.h subset for cancellation -*- C++ -*-
  2. // Copyright (C) 2007-2018 Free Software Foundation, Inc.
  3. //
  4. // This file is part of GCC.
  5. //
  6. // GCC is free software; you can redistribute it and/or modify
  7. // it under the terms of the GNU General Public License as published by
  8. // the Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10. //
  11. // GCC is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. // GNU General Public License for more details.
  15. //
  16. // Under Section 7 of GPL version 3, you are granted additional
  17. // permissions described in the GCC Runtime Library Exception, version
  18. // 3.1, as published by the Free Software Foundation.
  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. /** @file bits/cxxabi_forced.h
  24. * This is an internal header file, included by other library headers.
  25. * Do not attempt to use it directly. @headername{cxxabi.h}
  26. */
  27. #ifndef _CXXABI_FORCED_H
  28. #define _CXXABI_FORCED_H 1
  29. #pragma GCC system_header
  30. #pragma GCC visibility push(default)
  31. #ifdef __cplusplus
  32. namespace __cxxabiv1
  33. {
  34. /**
  35. * @brief Thrown as part of forced unwinding.
  36. * @ingroup exceptions
  37. *
  38. * A magic placeholder class that can be caught by reference to
  39. * recognize forced unwinding.
  40. */
  41. class __forced_unwind
  42. {
  43. virtual ~__forced_unwind() throw();
  44. // Prevent catch by value.
  45. virtual void __pure_dummy() = 0;
  46. };
  47. }
  48. #endif // __cplusplus
  49. #pragma GCC visibility pop
  50. #endif // __CXXABI_FORCED_H