\input texinfo  @c -*-texinfo-*-
@c %**start of header
@setfilename gcc.info
@c INTERNALS is used by md.texi to determine whether to include the
@c whole of that file, in the internals manual, or only the part
@c dealing with constraints, in the user manual.
@clear INTERNALS

@c NOTE: checks/things to do:
@c
@c -have bob do a search in all seven files for "mew" (ideally --mew,
@c  but i may have forgotten the occasional "--"..).
@c     Just checked... all have `--'!  Bob 22Jul96
@c     Use this to search:   grep -n '\-\-mew' *.texi
@c -item/itemx, text after all (sub/sub)section titles, etc..
@c -consider putting the lists of options on pp 17--> etc in columns or
@c  some such.
@c -overfulls.  do a search for "mew" in the files, and you will see
@c   overfulls that i noted but could not deal with.
@c -have to add text:  beginning of chapter 8

@c
@c anything else?                       --mew 10feb93

@include gcc-common.texi

@settitle Using the GNU Compiler Collection (GCC)

@c Create a separate index for command line options.
@defcodeindex op
@c Merge the standard indexes into a single one.
@syncodeindex fn cp
@syncodeindex vr cp
@syncodeindex ky cp
@syncodeindex pg cp
@syncodeindex tp cp

@paragraphindent 1

@documentlanguage en_US
@c %**end of header

@copying
This file documents the use of the GNU compilers.

Copyright @copyright{} 1988-2025 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

@quotation
     A GNU Manual
@end quotation

(b) The FSF's Back-Cover Text is:

@quotation
     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.
@end quotation
@end copying
@ifnottex
@dircategory Software development
@direntry
* gcc: (gcc).                  The GNU Compiler Collection.
* g++: (gcc).                  The GNU C++ compiler.
* gcov: (gcc) Gcov.            @command{gcov}---a test coverage program.
* gcov-tool: (gcc) Gcov-tool.  @command{gcov-tool}---an offline gcda profile processing program.
* gcov-dump: (gcc) Gcov-dump.  @command{gcov-dump}---an offline gcda and gcno profile dump tool.
* lto-dump: (gcc) lto-dump.    @command{lto-dump}---Tool for
dumping LTO object files.
@end direntry
@sp 1
@insertcopying
@sp 1
@end ifnottex

@setchapternewpage odd
@titlepage
@title Using the GNU Compiler Collection
@versionsubtitle
@author Richard M. Stallman and the @sc{GCC} Developer Community
@page
@vskip 0pt plus 1filll
Published by:
@multitable @columnfractions 0.5 0.5
@item GNU Press
@tab Website: @uref{http://www.gnupress.org}
@item a division of the
@tab General: @email{press@@gnu.org}
@item Free Software Foundation
@tab Orders:  @email{sales@@gnu.org}
@item 51 Franklin Street, Fifth Floor
@tab Tel 617-542-5942
@item Boston, MA 02110-1301 USA
@tab Fax 617-542-2652
@end multitable
@sp 2
@ifset FSFPRINT
@c Update this ISBN when printing a new edition.
@acronym{ISBN} 1-882114-39-6

Cover art by Gary M. Torrisi.  Cover design by Jonathan Richard.
@end ifset
@ifclear FSFPRINT
Last printed October 2003 for GCC 3.3.1.@*
Printed copies are available for $45 each.
@end ifclear
@sp 1
@insertcopying
@end titlepage
@summarycontents
@contents
@page

@node Top, G++ and GCC
@top Introduction
@cindex introduction

This manual documents how to use the GNU compilers,
as well as their features and incompatibilities, and how to report
bugs.  It corresponds to the compilers
@ifset VERSION_PACKAGE
@value{VERSION_PACKAGE}
@end ifset
version @value{version-GCC}.
The internals of the GNU compilers, including how to port them to new
targets and some information about how to write front ends for new
languages, are documented in a separate manual.  @xref{Top,,
Introduction, gccint, GNU Compiler Collection (GCC) Internals}.

@menu
* G++ and GCC::     You can compile C or C++ programs.
* Standards::       Language standards supported by GCC.
* Invoking GCC::    Command options supported by @samp{gcc}.
* C Implementation:: How GCC implements the ISO C specification.
* C++ Implementation:: How GCC implements the ISO C++ specification.
* C Extensions::    GNU extensions to the C language family.
* Built-in Functions:: Library functions built in to GCC.
* C++ Extensions::  GNU extensions to the C++ language.
* Objective-C::     GNU Objective-C runtime features.
* Compatibility::   Binary Compatibility
* Gcov::            @command{gcov}---a test coverage program.
* Gcov-tool::       @command{gcov-tool}---an offline gcda profile processing program.
* Gcov-dump::       @command{gcov-dump}---an offline gcda and gcno profile dump tool.
* lto-dump::        @command{lto-dump}---Tool for dumping LTO
object files.
* Trouble::         If you have trouble using GCC.
* Bugs::            How, why and where to report bugs.
* Service::         How To Get Help with GCC
* Contributing::    How to contribute to testing and developing GCC.

* Funding::         How to help assure funding for free software.
* GNU Project::     The GNU Project and GNU/Linux.

* Copying::         GNU General Public License says
                    how you can copy and share GCC.
* GNU Free Documentation License:: How you can copy and share this manual.
* Contributors::    People who have contributed to GCC.

* Indices::         List of indices in this manual.
@end menu

@include frontends.texi
@include standards.texi
@include invoke.texi
@include implement-c.texi
@include implement-cxx.texi
@include extend.texi
@include objc.texi
@include compat.texi
@include gcov.texi
@include gcov-tool.texi
@include gcov-dump.texi
@include lto-dump.texi
@include trouble.texi
@include bugreport.texi
@include service.texi
@include contribute.texi

@include funding.texi
@include gnu.texi
@include gpl_v3.texi

@c ---------------------------------------------------------------------
@c GFDL
@c ---------------------------------------------------------------------

@include fdl.texi

@include contrib.texi

@c ---------------------------------------------------------------------
@c Indexes
@c ---------------------------------------------------------------------

@node Indices
@appendix Indices

@menu
* Option Index::                Index to command line options.
* Concept and Symbol Index::    Index of concepts and symbols names.
@end menu

@node Option Index
@appendixsec Option Index

GCC's command line options are indexed here without any initial
@samp{-} or @samp{--}.  Where an option has both positive and negative
forms (such as @option{-f@var{option}} and
@option{-fno-@var{option}}), relevant entries in the manual are
indexed under the most appropriate form; it may sometimes be useful to
look up both forms.

@printindex op

@node Concept and Symbol Index
@appendixsec Concept and Symbol Index

@printindex cp

@c ---------------------------------------------------------------------
@c Epilogue
@c ---------------------------------------------------------------------

@bye
