OSDN Git Service

Word wrap comment
[pf3gnuchains/gcc-fork.git] / gcc / gcc.texi
index 057f2be..a12dd35 100644 (file)
@@ -100,7 +100,7 @@ Published by the Free Software Foundation
 59 Temple Place - Suite 330
 Boston, MA 02111-1307 USA
 
-Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -247,13 +247,14 @@ bugs.  It corresponds to GCC version 2.96.
 
 @ifset USING
 @node G++ and GCC
-@chapter Compile C, C++, Objective C, or Fortran
+@chapter Compile C, C++, Objective C, Fortran, Java or CHILL
 
 @cindex Objective C
-The C, C++, and Objective C, and Fortran versions of the compiler are
-integrated; this is why we use the name ``GNU Compiler Collection''.
-GCC can compile programs written in C, C++, Objective C, or Fortran.
-The Fortran compiler is described in a separate manual.
+Several versions of the compiler (C, C++, Objective C, Fortran, Java
+and CHILL) are integrated; this is why we use the name 
+``GNU Compiler Collection''. GCC can compile programs written in any of these
+languages. The Fortran and CHILL compilers are described in 
+separate manuals. The Java compiler currently has no manual documenting it.
 
 @cindex GCC
 ``GCC'' is a common shorthand term for the GNU Compiler Collection.  This is both
@@ -273,9 +274,9 @@ whole, and more specifically to the language-independent part of the
 compiler.  For example, we refer to the optimization options as
 affecting the behavior of ``GCC'' or sometimes just ``the compiler''.
 
-Front ends for other languages, such as Ada 9X, Fortran, Modula-3, and
-Pascal, are under development.  These front-ends, like that for C++, are
-built in subdirectories of GCC and link to it.  The result is an
+Front ends for other languages, such as Ada 95 and Pascal exist but
+have not yet been integrated into GCC. These front-ends, like that for C++, 
+are built in subdirectories of GCC and link to it.  The result is an
 integrated compiler that can compile programs written in C, C++,
 Objective C, or any of the languages for which you have installed front
 ends.
@@ -1207,10 +1208,10 @@ MALLOC=gmalloc.o
 @section Incompatibilities of GCC
 @cindex incompatibilities of GCC
 
-There are several noteworthy incompatibilities between GNU C and most
-existing (non-ANSI) versions of C.  The @samp{-traditional} option
+There are several noteworthy incompatibilities between GNU C and K&R 
+(non-ANSI) versions of C.  The @samp{-traditional} option
 eliminates many of these incompatibilities, @emph{but not all}, by
-telling GNU C to behave like the other C compilers.
+telling GNU C to behave like a K&R C compiler.
 
 @itemize @bullet
 @cindex string constants
@@ -2155,12 +2156,13 @@ information that makes for fixing the bug.
 * Criteria:  Bug Criteria.   Have you really found a bug?
 * Where: Bug Lists.         Where to send your bug report.
 * Reporting: Bug Reporting.  How to report a bug effectively.
+* GNATS: gccbug.             You can use a bug reporting tool.
 * Patches: Sending Patches.  How to send a patch for GCC.
 * Known: Trouble.            Known problems.
 * Help: Service.             Where to ask for help.
 @end menu
 
-@node Bug Criteria
+@node Bug Criteria,Bug Lists,,Bugs
 @section Have You Found a Bug?
 @cindex bug criteria
 
@@ -2223,12 +2225,11 @@ that is a compiler bug.  However, you should note that your idea of
 for traditional practice''.
 
 @item
-If you are an experienced user of C or C++ (or Fortran or Objective-C)
-compilers, your suggestions
-for improvement of GCC are welcome in any case.
+If you are an experienced user of one of the languages GCC supports, your 
+suggestions for improvement of GCC are welcome in any case.
 @end itemize
 
-@node Bug Lists
+@node Bug Lists,Bug Reporting,Bug Criteria,Bugs
 @section Where to Report Bugs
 @cindex bug report mailing lists
 @kindex gcc-bugs@@gcc.gnu.org or bug-gcc@@gnu.org
@@ -2238,7 +2239,7 @@ convention, in which bug reports for tool ``foo'' are sent
 to @samp{bug-foo@@gnu.org}, the address @samp{bug-gcc@@gnu.org}
 may also be used; it will forward to the address given above.
 
-Please read @samp{<URL:http://www.gnu.org/software/gcc/faq.html#bugreport>} for
+Please read @samp{<URL:http://www.gnu.org/software/gcc/bugs.html>} for
 bug reporting instructions before you post a bug report.
 
 Often people think of posting bug reports to the newsgroup instead of
@@ -2257,12 +2258,12 @@ Free Software Foundation
 Boston, MA 02111-1307, USA
 @end example
 
-@node Bug Reporting
+@node Bug Reporting,gccbug,Bug Lists,Bugs
 @section How to Report Bugs
 @cindex compiler bugs, reporting
 
 You may find additional and/or more up-to-date instructions at
-@samp{<URL:http://www.gnu.org/software/gcc/faq.html#bugreport>}.
+@samp{<URL:http://www.gnu.org/software/gcc/bugs.html>}.
 
 The fundamental principle of reporting bugs usefully is this:
 @strong{report all the facts}.  If you are not sure whether to state a
@@ -2517,7 +2518,138 @@ unless we have an identical system---and if we do have one,
 we should be able to reproduce the crash ourselves.
 @end itemize
 
-@node Sending Patches,, Bug Reporting, Bugs
+@node gccbug,Sending Patches, Bug Reporting, Bugs
+@section The gccbug script
+@cindex gccbug script
+
+To simplify creation of bug reports, and to allow better tracking of
+reports, we use the GNATS bug tracking system. Part of that system is
+the @code{gccbug} script. This is a Unix shell script, so you need a
+shell to run it. It is normally installed in the same directory where
+@code{gcc} is installed.
+
+The gccbug script is derived from send-pr, @pxref{using
+send-pr,,Creating new Problem Reports,send-pr,Reporting Problems}. When
+invoked, it starts a text editor so you can fill out the various fields
+of the report. When the you quit the editor, the report is automatically
+send to the bug reporting address.
+
+A number of fields in this bug report form are specific to GCC, and are
+explained here.
+
+@table @code
+
+@cindex @code{Category} field
+@cindex @code{>Category:}
+@item >Category:
+The category of a GCC problem can be one of the following:
+
+@table @code
+@item c
+A problem with the C compiler proper.
+driver.
+
+@item c++
+A problem with the C++ compiler.
+driver.
+
+@item fortran
+A problem with the Fortran 77.
+
+@item java
+A problem with the Java compiler.
+
+@item objc
+A problem with the Objective C compiler.
+
+@item libstdc++
+A problem with the C++ standard library.
+
+@item libf2c
+A problem with the Fortran 77 library.
+
+@item libobjc
+A problem with the Objective C library.
+
+@item optimization
+The problem occurs only when generating optimized code.
+
+@item debug
+The problem occurs only when generating code for debugging.
+
+@item target
+The problem is specific to the target architecture.
+
+@item middle-end
+The problem is independent from target architecture and programming
+language.
+
+@item other
+It is a problem in some other part of the GCC software.
+
+@item web
+There is a problem with the GCC home page.
+
+@end table
+
+@cindex @code{Class} field
+@cindex @code{>Class:}
+@item >Class:
+The class of a problem can be one of the following:
+
+@table @code
+@cindex @emph{doc-bug} class
+@item doc-bug
+A problem with the documentation.
+
+@cindex @emph{accepts-illegal} class
+@item accepts-illegal
+GCC fails to reject erroneous code.
+
+@cindex @emph{rejects-legal} class
+@item rejects-legal    
+GCC gives an error message for correct code.
+
+@cindex @emph{wrong-code} class
+@item wrong-code       
+The machine code generated by gcc is incorrect.
+
+@cindex @emph{ice-on-legal-code} class
+@item ice-on-legal-code   
+GCC gives an Internal Compiler Error (ICE) for correct code.
+
+@cindex @emph{ice-on-illegal-code} class
+@item ice-on-illegal-code 
+GCC gives an ICE instead of reporting an error
+
+@cindex @emph{pessimizes-code} class
+@item pessimizes-code     
+GCC misses an important optimization opportunity.
+
+@cindex @emph{sw-bug} class
+@item sw-bug
+A general product problem.  (@samp{sw} stands for ``software''.)
+
+@cindex @emph{change-request} class
+@item change-request
+A request for a change in behavior, etc.
+
+@cindex @emph{support} class
+@item support
+A support problem or question.
+
+@cindex @emph{duplicate} class
+@item duplicate (@var{pr-number})
+Duplicate PR.  @var{pr-number} should be the number of the original PR.
+
+@noindent
+The default is @samp{sw-bug}.
+@sp 1
+@end table
+
+@end table
+
+@node Sending Patches,, gccbug, Bugs
 @section Sending Patches for GCC
 
 If you would like to write bug fixes or improvements for the GNU C
@@ -3434,7 +3566,7 @@ to the input file name.
 @item
 Register movement (@file{regmove.c}). This pass looks for cases where
 matching constraints would force an instruction to need a reload, and
-this reload would be a register to register move.  It them attempts
+this reload would be a register to register move.  It then attempts
 to change the registers used by the instruction to avoid the move
 instruction.
 
@@ -3773,24 +3905,6 @@ characters.
 @item POSIX
 Define this if your system is POSIX.1 compliant.
 
-@findex NO_SYS_SIGLIST
-@item NO_SYS_SIGLIST
-Define this if your system @emph{does not} provide the variable
-@code{sys_siglist}.
-
-@vindex sys_siglist
-Some systems do provide this variable, but with a different name such
-as @code{_sys_siglist}.  On these systems, you can define
-@code{sys_siglist} as a macro which expands into the name actually
-provided.
-
-Autoconf normally defines @code{SYS_SIGLIST_DECLARED} when it finds a
-declaration of @code{sys_siglist} in the system header files.
-However, when you define @code{sys_siglist} to a different name
-autoconf will not automatically define @code{SYS_SIGLIST_DECLARED}.
-Therefore, if you define @code{sys_siglist}, you should also define
-@code{SYS_SIGLIST_DECLARED}.
-
 @findex USE_PROTOTYPES
 @item USE_PROTOTYPES
 Define this to be 1 if you know that the host compiler supports
@@ -3800,24 +3914,14 @@ GCC.  If @samp{USE_PROTOTYPES} is not defined, it will be
 determined automatically whether your compiler supports
 prototypes by checking if @samp{__STDC__} is defined.
 
-@findex NO_MD_PROTOTYPES
-@item NO_MD_PROTOTYPES
-Define this if you wish suppression of prototypes generated from
-the machine description file, but to use other prototypes within
-GCC.  If @samp{USE_PROTOTYPES} is defined to be 0, or the
-host compiler does not support prototypes, this macro has no
-effect.
-
 @findex MD_CALL_PROTOTYPES
 @item MD_CALL_PROTOTYPES
-Define this if you wish to generate prototypes for the
-@code{gen_call} or @code{gen_call_value} functions generated from
-the machine description file.  If @samp{USE_PROTOTYPES} is
-defined to be 0, or the host compiler does not support
-prototypes, or @samp{NO_MD_PROTOTYPES} is defined, this macro has
-no effect.  As soon as all of the machine descriptions are
-modified to have the appropriate number of arguments, this macro
-will be removed.
+Define this if you wish to generate prototypes for the @code{gen_call}
+or @code{gen_call_value} functions generated from the machine
+description file.  If @samp{USE_PROTOTYPES} is defined to be 0, or the
+host compiler does not support prototypes, this macro has no effect.  As
+soon as all of the machine descriptions are modified to have the
+appropriate number of arguments, this macro will be removed.
 
 @findex PATH_SEPARATOR
 @item PATH_SEPARATOR
@@ -4040,6 +4144,7 @@ compilation.
 @item INSTALL
 The install program to use.
 @end table
+@end ifset
 
 @node Funding
 @unnumbered Funding Free Software
@@ -4771,12 +4876,6 @@ port.
 
 @node Index
 @unnumbered Index
-@end ifset
-
-@ifclear INTERNALS
-@node Index
-@unnumbered Index
-@end ifclear
 
 @printindex cp