OSDN Git Service

Add NIOS2 support. Code from SourceyG++.
[pf3gnuchains/gcc-fork.git] / gcc / doc / implement-cxx.texi
1 @c Copyright (C) 2009
2 @c Free Software Foundation, Inc.
3 @c This is part of the GCC manual.
4 @c For copying conditions, see the file gcc.texi.
5
6 @node C++ Implementation
7 @chapter C++ Implementation-defined behavior
8 @cindex implementation-defined behavior, C++ language
9
10 A conforming implementation of ISO C++ is required to document its
11 choice of behavior in each of the areas that are designated
12 ``implementation defined''.  The following lists all such areas,
13 along with the section numbers from the ISO/IEC 14822:1998 and ISO/IEC
14 14822:2003 standards.  Some areas are only implementation-defined in
15 one version of the standard.
16
17 Some choices depend on the externally determined ABI for the platform
18 (including standard character encodings) which GCC follows; these are
19 listed as ``determined by ABI'' below.  @xref{Compatibility, , Binary
20 Compatibility}, and @uref{http://gcc.gnu.org/readings.html}.  Some
21 choices are documented in the preprocessor manual.
22 @xref{Implementation-defined behavior, , Implementation-defined
23 behavior, cpp, The C Preprocessor}.  Some choices are documented in
24 the corresponding document for the C language.  @xref{C
25 Implementation}.  Some choices are made by the library and operating
26 system (or other environment when compiling for a freestanding
27 environment); refer to their documentation for details.
28
29 @menu
30 * Conditionally-supported behavior::
31 * Exception handling::
32 @end menu
33
34 @node Conditionally-supported behavior
35 @section Conditionally-supported behavior
36
37 @cite{Each implementation shall include documentation that identifies
38 all conditionally-supported constructs that it does not support (C++0x
39 1.4).}
40
41 @itemize @bullet
42 @item
43 @cite{Whether an argument of class type with a non-trivial copy
44 constructor or destructor can be passed to ... (C++0x 5.2.2).}
45
46 Such argument passing is not supported.
47
48 @end itemize
49
50 @node Exception handling
51 @section Exception handling
52
53 @itemize @bullet
54 @item
55 @cite{In the situation where no matching handler is found, it is
56 implementation-defined whether or not the stack is unwound before
57 std::terminate() is called (C++98 15.5.1).}
58
59 The stack is not unwound before std::terminate is called.
60
61 @end itemize