d: Merge upstream dmd, druntime 2bbf64907c, phobos b64bfbf91
[official-gcc.git] / gcc / doc / gcc.texi
blobb3d500d4f47dccf9a081584e028c381ad977907f
1 \input texinfo  @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename gcc.info
4 @c INTERNALS is used by md.texi to determine whether to include the
5 @c whole of that file, in the internals manual, or only the part
6 @c dealing with constraints, in the user manual.
7 @clear INTERNALS
9 @c NOTE: checks/things to do:
11 @c -have bob do a search in all seven files for "mew" (ideally --mew,
12 @c  but i may have forgotten the occasional "--"..).
13 @c     Just checked... all have `--'!  Bob 22Jul96
14 @c     Use this to search:   grep -n '\-\-mew' *.texi
15 @c -item/itemx, text after all (sub/sub)section titles, etc..
16 @c -consider putting the lists of options on pp 17--> etc in columns or
17 @c  some such.
18 @c -overfulls.  do a search for "mew" in the files, and you will see
19 @c   overfulls that i noted but could not deal with.
20 @c -have to add text:  beginning of chapter 8
23 @c anything else?                       --mew 10feb93
25 @include gcc-common.texi
27 @settitle Using the GNU Compiler Collection (GCC)
29 @c Create a separate index for command line options.
30 @defcodeindex op
31 @c Merge the standard indexes into a single one.
32 @syncodeindex fn cp
33 @syncodeindex vr cp
34 @syncodeindex ky cp
35 @syncodeindex pg cp
36 @syncodeindex tp cp
38 @paragraphindent 1
40 @documentlanguage en_US
41 @c %**end of header
43 @copying
44 This file documents the use of the GNU compilers.
46 Copyright @copyright{} 1988-2023 Free Software Foundation, Inc.
48 Permission is granted to copy, distribute and/or modify this document
49 under the terms of the GNU Free Documentation License, Version 1.3 or
50 any later version published by the Free Software Foundation; with the
51 Invariant Sections being ``Funding Free Software'', the Front-Cover
52 Texts being (a) (see below), and with the Back-Cover Texts being (b)
53 (see below).  A copy of the license is included in the section entitled
54 ``GNU Free Documentation License''.
56 (a) The FSF's Front-Cover Text is:
58 @quotation
59      A GNU Manual
60 @end quotation
62 (b) The FSF's Back-Cover Text is:
64 @quotation
65      You have freedom to copy and modify this GNU Manual, like GNU
66      software.  Copies published by the Free Software Foundation raise
67      funds for GNU development.
68 @end quotation
69 @end copying
70 @ifnottex
71 @dircategory Software development
72 @direntry
73 * gcc: (gcc).                  The GNU Compiler Collection.
74 * g++: (gcc).                  The GNU C++ compiler.
75 * gcov: (gcc) Gcov.            @command{gcov}---a test coverage program.
76 * gcov-tool: (gcc) Gcov-tool.  @command{gcov-tool}---an offline gcda profile processing program.
77 * gcov-dump: (gcc) Gcov-dump.  @command{gcov-dump}---an offline gcda and gcno profile dump tool.
78 * lto-dump: (gcc) lto-dump.    @command{lto-dump}---Tool for
79 dumping LTO object files.
80 @end direntry
81 @sp 1
82 @insertcopying
83 @sp 1
84 @end ifnottex
86 @setchapternewpage odd
87 @titlepage
88 @title Using the GNU Compiler Collection
89 @versionsubtitle
90 @author Richard M. Stallman and the @sc{GCC} Developer Community
91 @page
92 @vskip 0pt plus 1filll
93 Published by:
94 @multitable @columnfractions 0.5 0.5
95 @item GNU Press
96 @tab Website: @uref{http://www.gnupress.org}
97 @item a division of the
98 @tab General: @email{press@@gnu.org}
99 @item Free Software Foundation
100 @tab Orders:  @email{sales@@gnu.org}
101 @item 51 Franklin Street, Fifth Floor
102 @tab Tel 617-542-5942
103 @item Boston, MA 02110-1301 USA
104 @tab Fax 617-542-2652
105 @end multitable
106 @sp 2
107 @ifset FSFPRINT
108 @c Update this ISBN when printing a new edition.
109 @acronym{ISBN} 1-882114-39-6
111 Cover art by Gary M. Torrisi.  Cover design by Jonathan Richard.
112 @end ifset
113 @ifclear FSFPRINT
114 Last printed October 2003 for GCC 3.3.1.@*
115 Printed copies are available for $45 each.
116 @end ifclear
117 @sp 1
118 @insertcopying
119 @end titlepage
120 @summarycontents
121 @contents
122 @page
124 @node Top, G++ and GCC
125 @top Introduction
126 @cindex introduction
128 This manual documents how to use the GNU compilers,
129 as well as their features and incompatibilities, and how to report
130 bugs.  It corresponds to the compilers
131 @ifset VERSION_PACKAGE
132 @value{VERSION_PACKAGE}
133 @end ifset
134 version @value{version-GCC}.
135 The internals of the GNU compilers, including how to port them to new
136 targets and some information about how to write front ends for new
137 languages, are documented in a separate manual.  @xref{Top,,
138 Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
140 @menu
141 * G++ and GCC::     You can compile C or C++ programs.
142 * Standards::       Language standards supported by GCC.
143 * Invoking GCC::    Command options supported by @samp{gcc}.
144 * C Implementation:: How GCC implements the ISO C specification.
145 * C++ Implementation:: How GCC implements the ISO C++ specification.
146 * C Extensions::    GNU extensions to the C language family.
147 * C++ Extensions::  GNU extensions to the C++ language.
148 * Objective-C::     GNU Objective-C runtime features.
149 * Compatibility::   Binary Compatibility
150 * Gcov::            @command{gcov}---a test coverage program.
151 * Gcov-tool::       @command{gcov-tool}---an offline gcda profile processing program.
152 * Gcov-dump::       @command{gcov-dump}---an offline gcda and gcno profile dump tool.
153 * lto-dump::        @command{lto-dump}---Tool for dumping LTO
154 object files.
155 * Trouble::         If you have trouble using GCC.
156 * Bugs::            How, why and where to report bugs.
157 * Service::         How To Get Help with GCC
158 * Contributing::    How to contribute to testing and developing GCC.
160 * Funding::         How to help assure funding for free software.
161 * GNU Project::     The GNU Project and GNU/Linux.
163 * Copying::         GNU General Public License says
164                     how you can copy and share GCC.
165 * GNU Free Documentation License:: How you can copy and share this manual.
166 * Contributors::    People who have contributed to GCC.
168 * Indices::         List of indices in this manual.
169 @end menu
171 @include frontends.texi
172 @include standards.texi
173 @include invoke.texi
174 @include implement-c.texi
175 @include implement-cxx.texi
176 @include extend.texi
177 @include objc.texi
178 @include compat.texi
179 @include gcov.texi
180 @include gcov-tool.texi
181 @include gcov-dump.texi
182 @include lto-dump.texi
183 @include trouble.texi
184 @include bugreport.texi
185 @include service.texi
186 @include contribute.texi
188 @include funding.texi
189 @include gnu.texi
190 @include gpl_v3.texi
192 @c ---------------------------------------------------------------------
193 @c GFDL
194 @c ---------------------------------------------------------------------
196 @include fdl.texi
198 @include contrib.texi
200 @c ---------------------------------------------------------------------
201 @c Indexes
202 @c ---------------------------------------------------------------------
204 @node Indices
205 @appendix Indices
207 @menu
208 * Option Index::                Index to command line options.
209 * Concept and Symbol Index::    Index of concepts and symbols names.
210 @end menu
212 @node Option Index
213 @appendixsec Option Index
215 GCC's command line options are indexed here without any initial
216 @samp{-} or @samp{--}.  Where an option has both positive and negative
217 forms (such as @option{-f@var{option}} and
218 @option{-fno-@var{option}}), relevant entries in the manual are
219 indexed under the most appropriate form; it may sometimes be useful to
220 look up both forms.
222 @printindex op
224 @node Concept and Symbol Index
225 @appendixsec Concept and Symbol Index
227 @printindex cp
229 @c ---------------------------------------------------------------------
230 @c Epilogue
231 @c ---------------------------------------------------------------------
233 @bye