19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/*
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1996,1997
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Silicon Graphics Computer Systems, Inc.
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies.
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted,
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice.
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// This header exists solely for portability.  Normally it just includes
199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// the native header <exception>.
209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_EXCEPTION
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_OUTERMOST_HEADER_ID)
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_OUTERMOST_HEADER_ID 0x423
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_prolog.h>
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#elif (_STLP_OUTERMOST_HEADER_ID == 0x423)
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_DONT_POP_HEADER_ID
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_EXCEPTION
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (_STLP_OUTERMOST_HEADER_ID == 0x423) && !defined (_STLP_DONT_POP_HEADER_ID)
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  ifndef _STLP_INTERNAL_EXCEPTION
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include <stl/_exception.h>
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (_STLP_OUTERMOST_HEADER_ID != 0x423) || defined (_STLP_DONT_POP_HEADER_ID) || defined (_STLP_IMPORT_VENDOR_STD)
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* If we are here it means that we are in an include called
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * from the native lib which means that we can simply forward this
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * call to the native exception header:
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_HAS_INCLUDE_NEXT)
43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include_next <exception>
44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  else
45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if defined (__DMC__) && (_STLP_OUTERMOST_HEADER_ID == 0x874)
46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Workaround to DMC harcoded typeinfo.h inclusion.
47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#      include <../include/exception>
48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    else
49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#      include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception)
50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    endif
51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if (_STLP_OUTERMOST_HEADER_ID == 0x423)
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined(_STLP_DONT_POP_HEADER_ID)
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    include <stl/_epilog.h>
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    undef  _STLP_OUTERMOST_HEADER_ID
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  else
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    undef  _STLP_DONT_POP_HEADER_ID
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_EXCEPTION */
649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Local Variables:
679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// mode:C++
689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// End:
69