Using and Porting GNU CC - Table of Contents
Using and Porting GNU CC
- 1. Compile C, C++, or Objective C
- 2. GNU CC Command Options
- 2.1 Option Summary
- 2.2 Options Controlling the Kind of Output
- 2.3 Compiling C++ Programs
- 2.4 Options Controlling C Dialect
- 2.5 Options Controlling C++ Dialect
- 2.6 Options to Request or Suppress Warnings
- 2.7 Options for Debugging Your Program or GNU CC
- 2.8 Options That Control Optimization
- 2.9 Options Controlling the Preprocessor
- 2.10 Passing Options to the Assembler
- 2.11 Options for Linking
- 2.12 Options for Directory Search
- 2.13 Specifying Target Machine and Compiler Version
- 2.14 Hardware Models and Configurations
- 2.14.1 M680x0 Options
- 2.14.2 VAX Options
- 2.14.3 SPARC Options
- 2.14.4 Convex Options
- 2.14.5 AMD29K Options
- 2.14.6 ARM Options
- 2.14.7 Thumb Options
- 2.14.8 MN10200 Options
- 2.14.9 MN10300 Options
- 2.14.10 M32R/D/X Options
- 2.14.11 M88K Options
- 2.14.12 IBM RS/6000 and PowerPC Options
- 2.14.13 IBM RT Options
- 2.14.14 MIPS Options
- 2.14.15 Intel 386 Options
- 2.14.16 HPPA Options
- 2.14.17 Intel 960 Options
- 2.14.18 DEC Alpha Options
- 2.14.19 Clipper Options
- 2.14.20 H8/300 Options
- 2.14.21 SH Options
- 2.14.22 Options for System V
- 2.14.23 Zilog Z8000 Option
- 2.14.24 V850 Options
- 2.14.25 ARC Options
- 2.14.26 D10V Options
- 2.15 Options for Code Generation Conventions
- 2.16 Offset info Option
- 2.17 Environment Variables Affecting GNU CC
- 2.18 Running Protoize
- 3. Installing GNU CC
- 4. Extensions to the C Language Family
- 4.1 Statements and Declarations in Expressions
- 4.2 Locally Declared Labels
- 4.3 Labels as Values
- 4.4 Nested Functions
- 4.5 Constructing Function Calls
- 4.6 Naming an Expression's Type
- 4.7 Referring to a Type with
typeof - 4.8 Generalized Lvalues
- 4.9 Conditionals with Omitted Operands
- 4.10 Double-Word Integers
- 4.11 Complex Numbers
- 4.12 Arrays of Length Zero
- 4.13 Arrays of Variable Length
- 4.14 Macros with Variable Numbers of Arguments
- 4.15 Non-Lvalue Arrays May Have Subscripts
- 4.16 Arithmetic on
void- and Function-Pointers - 4.17 Non-Constant Initializers
- 4.18 Constructor Expressions
- 4.19 Labeled Elements in Initializers
- 4.20 Case Ranges
- 4.21 Cast to a Union Type
- 4.22 Declaring Attributes of Functions
- 4.23 Prototypes and Old-Style Function Definitions
- 4.24 Compiling Functions for Interrupt Calls
- 4.25 C++ Style Comments
- 4.26 Dollar Signs in Identifier Names
- 4.27 The Character ESC in Constants
- 4.28 Inquiring on Alignment of Types or Variables
- 4.29 Specifying Attributes of Variables
- 4.30 Specifying Attributes of Types
- 4.31 An Inline Function is As Fast As a Macro
- 4.32 Assembler Instructions with C Expression Operands
- 4.33 Controlling Names Used in Assembler Code
- 4.34 Variables in Specified Registers
- 4.35 Alternate Keywords
- 4.36 Incomplete
enumTypes - 4.37 Function Names as Strings
- 4.38 Getting the Return or Frame Address of a Function
- 5. Extensions to the C++ Language
- 6.
gcov: a Test Coverage Program - 7. Known Causes of Trouble with GNU CC
- 7.1 Actual Bugs We Haven't Fixed Yet
- 7.2 Installation Problems
- 7.3 Cross-Compiler Problems
- 7.4 Interoperation
- 7.5 Problems Compiling Certain Programs
- 7.6 Incompatibilities of GNU CC
- 7.7 Fixed Header Files
- 7.8 Standard Libraries
- 7.9 Disappointments and Misunderstandings
- 7.10 Common Misunderstandings with GNU C++
- 7.11 Caveats of using
protoize - 7.12 Certain Changes We Don't Want to Make
- 7.13 Warning Messages and Error Messages
- 8. Reporting Bugs
- 9. How To Get Help with GNU CC
- 10. Contributing to GNU CC Development
- 11. Using GNU CC on VMS
- 12. GNU CC and Portability
- 13. Interfacing to GNU CC Output
- 14. Passes and Files of the Compiler
- 15. RTL Representation
- 15.1 RTL Object Types
- 15.2 Access to Operands
- 15.3 Flags in an RTL Expression
- 15.4 Machine Modes
- 15.5 Constant Expression Types
- 15.6 Registers and Memory
- 15.7 RTL Expressions for Arithmetic
- 15.8 Comparison Operations
- 15.9 Bit Fields
- 15.10 Conversions
- 15.11 Declarations
- 15.12 Side Effect Expressions
- 15.13 Embedded Side-Effects on Addresses
- 15.14 Assembler Instructions as Expressions
- 15.15 Insns
- 15.16 RTL Representation of Function-Call Insns
- 15.17 Structure Sharing Assumptions
- 15.18 Reading RTL
- 16. Machine Descriptions
- 16.1 Everything about Instruction Patterns
- 16.2 Example of
define_insn - 16.3 RTL Template
- 16.4 Output Templates and Operand Substitution
- 16.5 C Statements for Assembler Output
- 16.6 Operand Constraints
- 16.7 Standard Pattern Names For Generation
- 16.8 When the Order of Patterns Matters
- 16.9 Interdependence of Patterns
- 16.10 Defining Jump Instruction Patterns
- 16.11 Canonicalization of Instructions
- 16.12 Machine-Specific Peephole Optimizers
- 16.13 Defining RTL Sequences for Code Generation
- 16.14 Defining How to Split Instructions
- 16.15 Instruction Attributes
- 17. Target Description Macros
- 17.1 Controlling the Compilation Driver, `gcc'
- 17.2 Run-time Target Specification
- 17.3 Storage Layout
- 17.4 Layout of Source Language Data Types
- 17.5 Register Usage
- 17.6 Register Classes
- 17.7 Stack Layout and Calling Conventions
- 17.7.1 Basic Stack Layout
- 17.7.2 Specifying How Stack Checking is Done
- 17.7.3 Registers That Address the Stack Frame
- 17.7.4 Eliminating Frame Pointer and Arg Pointer
- 17.7.5 Passing Function Arguments on the Stack
- 17.7.6 Passing Arguments in Registers
- 17.7.7 How Scalar Function Values Are Returned
- 17.7.8 How Large Values Are Returned
- 17.7.9 Caller-Saves Register Allocation
- 17.7.10 Function Entry and Exit
- 17.7.11 Generating Code for Profiling
- 17.8 Implementing the Varargs Macros
- 17.9 Trampolines for Nested Functions
- 17.10 Implicit Calls to Library Routines
- 17.11 Addressing Modes
- 17.12 Condition Code Status
- 17.13 Describing Relative Costs of Operations
- 17.14 Dividing the Output into Sections (Texts, Data, ...)
- 17.15 Position Independent Code
- 17.16 Defining the Output Assembler Language
- 17.16.1 The Overall Framework of an Assembler File
- 17.16.2 Output of Data
- 17.16.3 Output of Uninitialized Variables
- 17.16.4 Output and Generation of Labels
- 17.16.5 How Initialization Functions Are Handled
- 17.16.6 Macros Controlling Initialization Routines
- 17.16.7 Output of Assembler Instructions
- 17.16.8 Output of Dispatch Tables
- 17.16.9 Assembler Commands for Exception Regions
- 17.16.10 Assembler Commands for Alignment
- 17.17 Controlling Debugging Information Format
- 17.18 Cross Compilation and Floating Point
- 17.19 Miscellaneous Parameters
- 18. The Configuration File
- 19. Makefile Fragments
- Funding Free Software
- Linux and the GNU Project
- GNU GENERAL PUBLIC LICENSE
- Contributors to GNU CC
- Index
This document was generated on 27 January 1999 using texi2html 1.55k.