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