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