OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [include/] [ext/] [pb_ds/] [exception.hpp] - Blame information for rev 775

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 jeremybenn
// -*- C++ -*-
2
 
3
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
4
// Free Software Foundation, Inc.
5
//
6
// This file is part of the GNU ISO C++ Library.  This library is free
7
// software; you can redistribute it and/or modify it under the terms
8
// of the GNU General Public License as published by the Free Software
9
// Foundation; either version 3, or (at your option) any later
10
// version.
11
 
12
// This library is distributed in the hope that it will be useful, but
13
// WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
// General Public License for more details.
16
 
17
// Under Section 7 of GPL version 3, you are granted additional
18
// permissions described in the GCC Runtime Library Exception, version
19
// 3.1, as published by the Free Software Foundation.
20
 
21
// You should have received a copy of the GNU General Public License and
22
// a copy of the GCC Runtime Library Exception along with this program;
23
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24
// <http://www.gnu.org/licenses/>.
25
 
26
// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
27
 
28
// Permission to use, copy, modify, sell, and distribute this software
29
// is hereby granted without fee, provided that the above copyright
30
// notice appears in all copies, and that both that copyright notice
31
// and this permission notice appear in supporting documentation. None
32
// of the above authors, nor IBM Haifa Research Laboratories, make any
33
// representation about the suitability of this software for any
34
// purpose. It is provided "as is" without express or implied
35
// warranty.
36
 
37
/**
38
 * @file exception.hpp
39
 * Contains exception classes.
40
 */
41
 
42
#ifndef PB_DS_EXCEPTION_HPP
43
#define PB_DS_EXCEPTION_HPP
44
 
45
#include <bits/c++config.h>
46
#include <stdexcept>
47
#include <cstdlib>
48
 
49
namespace __gnu_pbds
50
{
51
  /**
52
   *  @defgroup exceptions-pbds Exceptions
53
   *  @ingroup pbds
54
   *  @{
55
   */
56
 
57
  /// Base class for exceptions.
58
  struct container_error : public std::logic_error
59
  {
60
    container_error()
61
    : std::logic_error(__N("__gnu_pbds::container_error")) { }
62
  };
63
 
64
  /// An entry cannot be inserted into a container object for logical
65
  /// reasons (not, e.g., if memory is unabvailable, in which case
66
  /// the allocator_type's exception will be thrown).
67
  struct insert_error : public container_error { };
68
 
69
  /// A join cannot be performed logical reasons (i.e., the ranges of
70
  /// the two container objects being joined overlaps.
71
  struct join_error : public container_error { };
72
 
73
  /// A container cannot be resized.
74
  struct resize_error : public container_error { };
75
 
76
#if __EXCEPTIONS
77
  inline void
78
  __throw_container_error(void)
79
  { throw container_error(); }
80
 
81
  inline void
82
  __throw_insert_error(void)
83
  { throw insert_error(); }
84
 
85
  inline void
86
  __throw_join_error(void)
87
  { throw join_error(); }
88
 
89
  inline void
90
  __throw_resize_error(void)
91
  { throw resize_error(); }
92
#else
93
  inline void
94
  __throw_container_error(void)
95
  { std::abort(); }
96
 
97
  inline void
98
  __throw_insert_error(void)
99
  { std::abort(); }
100
 
101
  inline void
102
  __throw_join_error(void)
103
  { std::abort(); }
104
 
105
  inline void
106
  __throw_resize_error(void)
107
  { std::abort(); }
108
#endif
109
  //@}
110
} // namespace __gnu_pbds
111
 
112
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.