2008. 12. 15. 13:31
GCC Online Documents
2008. 12. 15. 13:31 in 프로그래밍/GNU
This file documents the use of the GNU compilers.
Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 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.2 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:
A GNU Manual
(b) The FSF's Back-Cover Text is:
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.
Short Contents
- Introduction
- 1 Programming Languages Supported by GCC
- 2 Language Standards Supported by GCC
- 3 GCC Command Options
- 4 C Implementation-defined behavior
- 5 Extensions to the C Language Family
- 6 Extensions to the C++ Language
- 7 GNU Objective-C runtime features
- 8 Binary Compatibility
- 9 gcov—a Test Coverage Program
- 10 Known Causes of Trouble with GCC
- 11 Reporting Bugs
- 12 How To Get Help with GCC
- 13 Contributing to GCC Development
- Funding Free Software
- The GNU Project and GNU/Linux
- GNU General Public License
- GNU Free Documentation License
- Contributors to GCC
- Option Index
- Keyword Index
Table of Contents
- Introduction
- 1 Programming Languages Supported by GCC
- 2 Language Standards Supported by GCC
- 3 GCC Command Options
- 3.1 Option Summary
- 3.2 Options Controlling the Kind of Output
- 3.3 Compiling C++ Programs
- 3.4 Options Controlling C Dialect
- 3.5 Options Controlling C++ Dialect
- 3.6 Options Controlling Objective-C and Objective-C++ Dialects
- 3.7 Options to Control Diagnostic Messages Formatting
- 3.8 Options to Request or Suppress Warnings
- 3.9 Options for Debugging Your Program or GCC
- 3.10 Options That Control Optimization
- 3.11 Options Controlling the Preprocessor
- 3.12 Passing Options to the Assembler
- 3.13 Options for Linking
- 3.14 Options for Directory Search
- 3.15 Specifying subprocesses and the switches to pass to them
- 3.16 Specifying Target Machine and Compiler Version
- 3.17 Hardware Models and Configurations
- 3.17.1 ARC Options
- 3.17.2 ARM Options
- 3.17.3 AVR Options
- 3.17.4 Blackfin Options
- 3.17.5 CRIS Options
- 3.17.6 CRX Options
- 3.17.7 Darwin Options
- 3.17.8 DEC Alpha Options
- 3.17.9 DEC Alpha/VMS Options
- 3.17.10 FRV Options
- 3.17.11 GNU/Linux Options
- 3.17.12 H8/300 Options
- 3.17.13 HPPA Options
- 3.17.14 Intel 386 and AMD x86-64 Options
- 3.17.15 IA-64 Options
- 3.17.16 M32C Options
- 3.17.17 M32R/D Options
- 3.17.18 M680x0 Options
- 3.17.19 M68hc1x Options
- 3.17.20 MCore Options
- 3.17.21 MIPS Options
- 3.17.22 MMIX Options
- 3.17.23 MN10300 Options
- 3.17.24 PDP-11 Options
- 3.17.25 picoChip Options
- 3.17.26 PowerPC Options
- 3.17.27 IBM RS/6000 and PowerPC Options
- 3.17.28 S/390 and zSeries Options
- 3.17.29 Score Options
- 3.17.30 SH Options
- 3.17.31 SPARC Options
- 3.17.32 SPU Options
- 3.17.33 Options for System V
- 3.17.34 V850 Options
- 3.17.35 VAX Options
- 3.17.36 VxWorks Options
- 3.17.37 x86-64 Options
- 3.17.38 Xstormy16 Options
- 3.17.39 Xtensa Options
- 3.17.40 zSeries Options
- 3.18 Options for Code Generation Conventions
- 3.19 Environment Variables Affecting GCC
- 3.20 Using Precompiled Headers
- 3.21 Running Protoize
- 4 C Implementation-defined behavior
- 4.1 Translation
- 4.2 Environment
- 4.3 Identifiers
- 4.4 Characters
- 4.5 Integers
- 4.6 Floating point
- 4.7 Arrays and pointers
- 4.8 Hints
- 4.9 Structures, unions, enumerations, and bit-fields
- 4.10 Qualifiers
- 4.11 Declarators
- 4.12 Statements
- 4.13 Preprocessing directives
- 4.14 Library functions
- 4.15 Architecture
- 4.16 Locale-specific behavior
- 5 Extensions to the C Language Family
- 5.1 Statements and Declarations in Expressions
- 5.2 Locally Declared Labels
- 5.3 Labels as Values
- 5.4 Nested Functions
- 5.5 Constructing Function Calls
- 5.6 Referring to a Type with
typeof
- 5.7 Conditionals with Omitted Operands
- 5.8 Double-Word Integers
- 5.9 Complex Numbers
- 5.10 Additional Floating Types
- 5.11 Decimal Floating Types
- 5.12 Hex Floats
- 5.13 Fixed-Point Types
- 5.14 Arrays of Length Zero
- 5.15 Structures With No Members
- 5.16 Arrays of Variable Length
- 5.17 Macros with a Variable Number of Arguments.
- 5.18 Slightly Looser Rules for Escaped Newlines
- 5.19 Non-Lvalue Arrays May Have Subscripts
- 5.20 Arithmetic on
void
- and Function-Pointers - 5.21 Non-Constant Initializers
- 5.22 Compound Literals
- 5.23 Designated Initializers
- 5.24 Case Ranges
- 5.25 Cast to a Union Type
- 5.26 Mixed Declarations and Code
- 5.27 Declaring Attributes of Functions
- 5.28 Attribute Syntax
- 5.29 Prototypes and Old-Style Function Definitions
- 5.30 C++ Style Comments
- 5.31 Dollar Signs in Identifier Names
- 5.32 The Character <ESC> in Constants
- 5.33 Inquiring on Alignment of Types or Variables
- 5.34 Specifying Attributes of Variables
- 5.35 Specifying Attributes of Types
- 5.36 An Inline Function is As Fast As a Macro
- 5.37 Assembler Instructions with C Expression Operands
- 5.38 Constraints for
asm
Operands - 5.39 Controlling Names Used in Assembler Code
- 5.40 Variables in Specified Registers
- 5.41 Alternate Keywords
- 5.42 Incomplete
enum
Types - 5.43 Function Names as Strings
- 5.44 Getting the Return or Frame Address of a Function
- 5.45 Using vector instructions through built-in functions
- 5.46 Offsetof
- 5.47 Built-in functions for atomic memory access
- 5.48 Object Size Checking Builtins
- 5.49 Other built-in functions provided by GCC
- 5.50 Built-in Functions Specific to Particular Target Machines
- 5.50.1 Alpha Built-in Functions
- 5.50.2 ARM iWMMXt Built-in Functions
- 5.50.3 ARM NEON Intrinsics
- 5.50.3.1 Addition
- 5.50.3.2 Multiplication
- 5.50.3.3 Multiply-accumulate
- 5.50.3.4 Multiply-subtract
- 5.50.3.5 Subtraction
- 5.50.3.6 Comparison (equal-to)
- 5.50.3.7 Comparison (greater-than-or-equal-to)
- 5.50.3.8 Comparison (less-than-or-equal-to)
- 5.50.3.9 Comparison (greater-than)
- 5.50.3.10 Comparison (less-than)
- 5.50.3.11 Comparison (absolute greater-than-or-equal-to)
- 5.50.3.12 Comparison (absolute less-than-or-equal-to)
- 5.50.3.13 Comparison (absolute greater-than)
- 5.50.3.14 Comparison (absolute less-than)
- 5.50.3.15 Test bits
- 5.50.3.16 Absolute difference
- 5.50.3.17 Absolute difference and accumulate
- 5.50.3.18 Maximum
- 5.50.3.19 Minimum
- 5.50.3.20 Pairwise add
- 5.50.3.21 Pairwise add, single_opcode widen and accumulate
- 5.50.3.22 Folding maximum
- 5.50.3.23 Folding minimum
- 5.50.3.24 Reciprocal step
- 5.50.3.25 Vector shift left
- 5.50.3.26 Vector shift left by constant
- 5.50.3.27 Vector shift right by constant
- 5.50.3.28 Vector shift right by constant and accumulate
- 5.50.3.29 Vector shift right and insert
- 5.50.3.30 Vector shift left and insert
- 5.50.3.31 Absolute value
- 5.50.3.32 Negation
- 5.50.3.33 Bitwise not
- 5.50.3.34 Count leading sign bits
- 5.50.3.35 Count leading zeros
- 5.50.3.36 Count number of set bits
- 5.50.3.37 Reciprocal estimate
- 5.50.3.38 Reciprocal square-root estimate
- 5.50.3.39 Get lanes from a vector
- 5.50.3.40 Set lanes in a vector
- 5.50.3.41 Create vector from literal bit pattern
- 5.50.3.42 Set all lanes to the same value
- 5.50.3.43 Combining vectors
- 5.50.3.44 Splitting vectors
- 5.50.3.45 Conversions
- 5.50.3.46 Move, single_opcode narrowing
- 5.50.3.47 Move, single_opcode long
- 5.50.3.48 Table lookup
- 5.50.3.49 Extended table lookup
- 5.50.3.50 Multiply, lane
- 5.50.3.51 Long multiply, lane
- 5.50.3.52 Saturating doubling long multiply, lane
- 5.50.3.53 Saturating doubling multiply high, lane
- 5.50.3.54 Multiply-accumulate, lane
- 5.50.3.55 Multiply-subtract, lane
- 5.50.3.56 Vector multiply by scalar
- 5.50.3.57 Vector long multiply by scalar
- 5.50.3.58 Vector saturating doubling long multiply by scalar
- 5.50.3.59 Vector saturating doubling multiply high by scalar
- 5.50.3.60 Vector multiply-accumulate by scalar
- 5.50.3.61 Vector multiply-subtract by scalar
- 5.50.3.62 Vector extract
- 5.50.3.63 Reverse elements
- 5.50.3.64 Bit selection
- 5.50.3.65 Transpose elements
- 5.50.3.66 Zip elements
- 5.50.3.67 Unzip elements
- 5.50.3.68 Element/structure loads, VLD1 variants
- 5.50.3.69 Element/structure stores, VST1 variants
- 5.50.3.70 Element/structure loads, VLD2 variants
- 5.50.3.71 Element/structure stores, VST2 variants
- 5.50.3.72 Element/structure loads, VLD3 variants
- 5.50.3.73 Element/structure stores, VST3 variants
- 5.50.3.74 Element/structure loads, VLD4 variants
- 5.50.3.75 Element/structure stores, VST4 variants
- 5.50.3.76 Logical operations (AND)
- 5.50.3.77 Logical operations (OR)
- 5.50.3.78 Logical operations (exclusive OR)
- 5.50.3.79 Logical operations (AND-NOT)
- 5.50.3.80 Logical operations (OR-NOT)
- 5.50.3.81 Reinterpret casts
- 5.50.4 Blackfin Built-in Functions
- 5.50.5 FR-V Built-in Functions
- 5.50.6 X86 Built-in Functions
- 5.50.7 MIPS DSP Built-in Functions
- 5.50.8 MIPS Paired-Single Support
- 5.50.9 MIPS Loongson Built-in Functions
- 5.50.10 picoChip Built-in Functions
- 5.50.11 Other MIPS Built-in Functions
- 5.50.12 PowerPC AltiVec Built-in Functions
- 5.50.13 SPARC VIS Built-in Functions
- 5.50.14 SPU Built-in Functions
- 5.51 Format Checks Specific to Particular Target Machines
- 5.52 Pragmas Accepted by GCC
- 5.52.1 ARM Pragmas
- 5.52.2 M32C Pragmas
- 5.52.3 RS/6000 and PowerPC Pragmas
- 5.52.4 Darwin Pragmas
- 5.52.5 Solaris Pragmas
- 5.52.6 Symbol-Renaming Pragmas
- 5.52.7 Structure-Packing Pragmas
- 5.52.8 Weak Pragmas
- 5.52.9 Diagnostic Pragmas
- 5.52.10 Visibility Pragmas
- 5.52.11 Push/Pop Macro Pragmas
- 5.52.12 Function Specific Option Pragmas
- 5.53 Unnamed struct/union fields within structs/unions
- 5.54 Thread-Local Storage
- 5.55 Binary constants using the `0b' prefix
- 6 Extensions to the C++ Language
- 6.1 When is a Volatile Object Accessed?
- 6.2 Restricting Pointer Aliasing
- 6.3 Vague Linkage
- 6.4 #pragma interface and implementation
- 6.5 Where's the Template?
- 6.6 Extracting the function pointer from a bound pointer to member function
- 6.7 C++-Specific Variable, Function, and Type Attributes
- 6.8 Namespace Association
- 6.9 Type Traits
- 6.10 Java Exceptions
- 6.11 Deprecated Features
- 6.12 Backwards Compatibility
- 7 GNU Objective-C runtime features
- 8 Binary Compatibility
- 9 gcov—a Test Coverage Program
- 10 Known Causes of Trouble with GCC
- 10.1 Actual Bugs We Haven't Fixed Yet
- 10.2 Cross-Compiler Problems
- 10.3 Interoperation
- 10.4 Incompatibilities of GCC
- 10.5 Fixed Header Files
- 10.6 Standard Libraries
- 10.7 Disappointments and Misunderstandings
- 10.8 Common Misunderstandings with GNU C++
- 10.9 Caveats of using protoize
- 10.10 Certain Changes We Don't Want to Make
- 10.11 Warning Messages and Error Messages
- 11 Reporting Bugs
- 12 How To Get Help with GCC
- 13 Contributing to GCC Development
- Funding Free Software
- The GNU Project and GNU/Linux
- GNU General Public License
- GNU Free Documentation License
- Contributors to GCC
- Option Index
- Keyword Index
Next: G++ and GCC, Up: (DIR)
'프로그래밍 > GNU' 카테고리의 다른 글
디버깅 팁 (0) | 2006.08.10 |
---|---|
[본문스크랩] 디버깅 다시 보기 (0) | 2006.07.20 |
리눅스에서 즐길 수 있는 프로그래밍 언어 (0) | 2006.03.31 |
[링크] X 윈도우 프로그래밍 기초 (0) | 2006.03.30 |
[본문스크랩] objdump... (0) | 2006.03.28 |