GNUPro Toolkit Documentation|Index|Next

# Using GNU CC

    Copyright © 1988-1997  Free Software Foundation, Inc.

    Published by the Free Software Foundation
    59 Temple Place / Suite 330
    Boston, MA   02111-1307   USA

    ISBN: 1-882114-66-3

    Permission is granted to make and distribute verbatim copies of this documentation
    provided the copyright notice and this permission notice are preserved on all copies.

    Permission is granted to copy and distribute modified versions of this documentation
    under the conditions for verbatim copying, provided also that the “GNU General Public
    License” is included exactly as in the original, and provided that the entire resulting
    derived work is distributed under the terms of a permission notice identical to this one.

    Permission is granted to copy and distribute translations of this documentation into
    another language, under the above conditions for modified versions, except that the
    sections entitled “GNU General Public License,” “Funding for Free Software,” and
    “Protect Your Freedom; Fight ‘Look And Feel’” and this permission notice, may be
    included in translations approved by the Free Software Foundation instead of in
    the original English.

    This documentation has been prepared by Cygnus Technical Publications;
    to contact the Cygnus Solutions Technical Publications staff, email: doc@cygnus.com.

    Copyright © 1992-1997   Cygnus Solutions. All rights reserved.

    GNUPro™, the GNUPro™ logo, and the Cygnus Solutions logo are trademarks
    of Cygnus Solutions.  All other brand and product names are trademarks of their
    respective owners.

The following documentation discusses the GNU compiler, gcc.

- GNU GENERAL PUBLIC LICENSE

- Preamble
- Terms & Conditions For Copying, Distribution And Modification
- How to Apply These Terms to Your New Programs

- CONTRIBUTORS TO GNU CC
- FUNDING FREE SOFTWARE
- PROTECT YOUR FREEDOM; FIGHT “LOOK AND FEEL”
- COMPILE C, C++, OR OBJECTIVE C
- GNU CC COMMAND OPTIONS

- OPTION SUMMARY
- OPTIONS CONTROLLING THE KIND OF OUTPUT
- COMPILING C++ PROGRAMS
- OPTIONS CONTROLLING C DIALECT
- OPTIONS THAT CONTROL C++ DIALECT
- OPTIONS TO REQUEST OR SUPPRESS WARNINGS
- OPTIONS FOR DEBUGGING YOUR PROGRAM OR GNU CC
- OPTIONS THAT CONTROL OPTIMIZATION
- OPTIONS CONTROLLING THE PREPROCESSOR
- PASSING OPTIONS TO THE ASSEMBLER
- OPTIONS FOR LINKING
- OPTIONS FOR DIRECTORY SEARCH
- SPECIFYING TARGET MACHINE AND COMPILER VERSION
- HARDWARE MODELS AND CONFIGURATIONS

- M680x0 Options
- VAX Options
- SPARC Options
- Convex Options
- AMD29K Options
- ARM Options
- M88K Options
- IBM RS/6000 and PowerPC Options
- IBM RT Options
- MIPS Options
- Intel 386 Options
- HPPA Options
- Intel 960 Options
- DEC Alpha Options
- Clipper Options
- SH Options
- H8/300 Options
- System V Options

- OPTIONS FOR CODE GENERATION CONVENTIONS
- offset-info OPTION
- ENVIRONMENT VARIABLES AFFECTING GNU CC
- RUNNING protoize

- INSTALLING GNU CC

- CONFIGURATIONS SUPPORTED BY GNU CC
- COMPILATION IN A SEPARATE DIRECTORY
- BUILDING AND INSTALLING A CROSS-COMPILER

- Steps of Cross-Compilation
- Configuring a Cross-Compiler
- Tools and Libraries for a Cross-Compiler
- libgcc.a and Cross-Compilers
- Cross-Compilers and Header Files
- Actually Building the Cross-Compiler

- INSTALLING GNU CC ON THE SUN
- INSTALLING GNU CC ON VMS
- collect2
- STANDARD HEADER FILE DIRECTORIES

- EXTENSIONS TO THE C LANGUAGE FAMILY

- STATEMENTS AND DECLARATIONS IN EXPRESSIONS
- LOCALLY DECLARED LABELS
- LABELS AS VALUES
- NESTED FUNCTIONS
- CONSTRUCTING FUNCTION CALLS
- NAMING AN EXPRESSION’S TYPE
- REFERRING TO A TYPE WITH typeof
- GENERALIZED LVALUES
- CONDITIONALS WITH OMITTED OPERANDS
- DOUBLE-WORD INTEGERS
- COMPLEX NUMBERS
- ARRAYS OF LENGTH ZERO
- ARRAYS OF VARIABLE LENGTH
- MACROS WITH VARIABLE NUMBERS OF ARGUMENTS
- NON-LVALUE ARRAYS MAY HAVE SUBSCRIPTS
- ARITHMETIC ON void- AND FUNCTION-POINTERS
- NON-CONSTANT INITIALIZERS
- CONSTRUCTOR EXPRESSIONS
- LABELED ELEMENTS IN INITIALIZERS

- Case Ranges
- Cast to a Union Type

- DECLARING ATTRIBUTES OF FUNCTIONS
- PROTOTYPES AND OLD-STYLE FUNCTION DEFINITIONS
- COMPILING FUNCTIONS FOR INTERRUPT CALLS

- C++ Style Comments
- Dollar Signs in Identifier Names
- The Character ESC in Constants

- INQUIRING ON ALIGNMENT OF TYPES OR VARIABLES

- Specifying Attributes of Variables
- Specifying Attributes of Types

- AN inline FUNCTION IS AS FAST AS A MACRO
- ASSEMBLER INSTRUCTIONS WITH C EXPRESSION OPERANDS
- CONSTRAINTS FOR asm OPERANDS

- Simple Constraints
- Multiple Alternative Constraints
- Constraint Modifier Characters
- Constraints for Particular Machines

- CONTROLLING NAMES USED IN ASSEMBLER CODE
- VARIABLES IN SPECIFIED REGISTERS

- Defining Global Register Variables
- Specifying Registers for Local Variables

- ALTERNATE KEYWORDS
- INCOMPLETE enum TYPES
- FUNCTION NAMES AS STRINGS

- Getting the Return or Frame Address of a Function

- EXTENSIONS TO THE C++ LANGUAGE

- NAMED RETURN VALUES IN C++
- MINIMUM AND MAXIMUM OPERATORS IN C++
- goto AND DESTRUCTORS IN GNU C++
- DECLARATIONS AND DEFINITIONS IN ONE HEADER
- WHERE’S THE TEMPLATE?
- TYPE ABSTRACTION USING SIGNATURES

- gcov: A TEST COVERAGE PROGRAM

- INTRODUCTION TO gcov
- INVOKING gcov
- USING gcov WITH GCC OPTIMIZATION
- BRIEF DESCRIPTION OF gcov DATA FILES

- KNOWN CAUSES OF TROUBLE WITH GNU CC

- ACTUAL BUGS WE HAVEN’T FIXED YET
- INSTALLATION PROBLEMS
- CROSS-COMPILER PROBLEMS
- INTEROPERATION
- PROBLEMS COMPILING CERTAIN PROGRAMS
- INCOMPATIBILITIES OF GNU CC
- FIXED HEADER FILES
- STANDARD LIBRARIES
- DISAPPOINTMENTS AND MISUNDERSTANDINGS
- COMMON MISUNDERSTANDINGS WITH GNU C++

- Declare and Define Static Members
- Temporaries May Vanish Before You Expect

- CAVEATS OF USING protoize
- CERTAIN CHANGES WE DON’T WANT TO MAKE
- WARNING MESSAGES AND ERROR MESSAGES

- REPORTING BUGS

- HAVE YOU FOUND A BUG?
- WHERE TO REPORT BUGS
- HOW TO REPORT BUGS
- SENDING PATCHES FOR GNU CC

- HOW TO GET HELP WITH GNU CC
- USING GNU CC ON VMS

- INCLUDE FILES AND VMS
- GLOBAL DECLARATIONS AND VMS
- OTHER VMS ISSUES

- INDEX