OSDN Git Service

Stop staying that -fno-guess-branch-probability produces random code changes.
[pf3gnuchains/gcc-fork.git] / gcc / doc / standards.texi
index 8dae44f..8d22d85 100644 (file)
@@ -1,4 +1,4 @@
-@c Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+@c Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -14,7 +14,6 @@
 @cindex X3.159-1989
 @cindex ISO C standard
 @cindex ISO C
-@cindex ISO C89
 @cindex ISO C90
 @cindex ISO/IEC 9899
 @cindex ISO 9899
@@ -85,12 +84,9 @@ standard, use @option{-std=c99} or @option{-std=iso9899:1999}.  (While in
 development, drafts of this standard version were referred to as
 @dfn{C9X}.)
 
-@opindex traditional
-GCC also has some limited support for traditional (pre-ISO) C with the
-@option{-traditional} option.  This support may be of use for compiling
-some very old programs that have not been updated to ISO C, but should
-not be used for new programs.  It will not work with some modern C
-libraries such as the GNU C library.
+Errors in the 1999 ISO C standard were corrected in a Technical
+Corrigendum published in 2001.  GCC does not support the uncorrected
+version.
 
 By default, GCC provides some extensions to the C language that on
 rare occasions conflict with the C standard.  @xref{C
@@ -135,10 +131,10 @@ the semantics defined in the standard.  To make it act as a conforming
 freestanding implementation for a freestanding environment, use the
 option @option{-ffreestanding}; it will then define
 @code{__STDC_HOSTED__} to @code{0} and not make assumptions about the
-meanings of function names from the standard library.  To build an OS
-kernel, you may well still need to make your own arrangements for
-linking and startup.  @xref{C Dialect Options,,Options Controlling C
-Dialect}.
+meanings of function names from the standard library, with exceptions
+noted below.  To build an OS kernel, you may well still need to make
+your own arrangements for linking and startup.
+@xref{C Dialect Options,,Options Controlling C Dialect}.
 
 GCC does not provide the library facilities required only of hosted
 implementations, nor yet all the facilities required by C99 of
@@ -146,29 +142,54 @@ freestanding implementations; to use the facilities of a hosted
 environment, you will need to find them elsewhere (for example, in the
 GNU C library).  @xref{Standard Libraries,,Standard Libraries}.
 
+Most of the compiler support routines used by GCC are present in
+@file{libgcc}, but there are a few exceptions.  GCC requires the
+freestanding environment provide @code{memcpy}, @code{memmove},
+@code{memset} and @code{memcmp}.
+Finally, if @code{__builtin_trap} is used, and the target does
+not implement the @code{trap} pattern, then GCC will emit a call
+to @code{abort}.
+
 For references to Technical Corrigenda, Rationale documents and
 information concerning the history of C that is available online, see
 @uref{http://gcc.gnu.org/readings.html}
 
 @c FIXME: details of C++ standard.
 
-There is no formal written standard for Objective-C@.  The most
+@cindex Objective-C
+@cindex Objective-C++
+
+There is no formal written standard for Objective-C or Objective-C++@.  The most
 authoritative manual is ``Object-Oriented Programming and the
-Objective-C Language'', available at a number of web sites;
-@uref{http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/} has a
-recent version, while @uref{http://www.toodarkpark.org/computers/objc/}
-is an older example.  @uref{http://www.gnustep.org} includes useful
-information as well.
+Objective-C Language'', available at a number of web sites:
+
+@itemize
+@item
+@uref{http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/}
+is a recent (and periodically updated) version;
+@item
+@uref{http://www.toodarkpark.org/computers/objc/}
+is an older example;
+@item
+@uref{http://www.gnustep.org}
+and
+@uref{http://gcc.gnu.org/readings.html}
+have additional useful information.
+@end itemize
 
-@xref{Top, GNAT Reference Manual, About This Guide, gnat_rm, 
+@cindex treelang
+There is no standard for treelang, which is a sample language front end
+for GCC@.  Its only purpose is as a sample for people wishing to write a
+new language for GCC@.  The language is documented in
+@file{gcc/treelang/treelang.texi} which can be turned into info or
+HTML format.
+
+@xref{Top, GNAT Reference Manual, About This Guide, gnat_rm,
 GNAT Reference Manual}, for information on standard
 conformance and compatibility of the Ada compiler.
 
-@xref{References,,Language Definition References, chill, GNU Chill},
-for details of the CHILL standard.
-
-@xref{Language,,The GNU Fortran Language, g77, Using and Porting GNU
-Fortran}, for details of the Fortran language supported by GCC@.
+@xref{Standards,,Standards, gfortran, The GNU Fortran 95 Compiler}, for details
+of standards supported by @command{gfortran}.
 
 @xref{Compatibility,,Compatibility with the Java Platform, gcj, GNU gcj},
-for details of compatibility between @code{gcj} and the Java Platform.
+for details of compatibility between @command{gcj} and the Java Platform.