GCC 7 官方文档

1. Programming Languages Supported by GCC

  • 1. Programming Languages Supported by GCC
  • 2. Language Standards Supported by GCC

  • 2. Language Standards Supported by GCC
  • 3. GCC Command Options

  • 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
  • 3.10. Options That Control Optimization
  • 3.11. Program Instrumentation Options
  • 3.12. Options Controlling the Preprocessor
  • 3.13. Passing Options to the Assembler
  • 3.14. Options for Linking
  • 3.15. Options for Directory Search
  • 3.16. Options for Code Generation Conventions
  • 3.17. GCC Developer Options
  • 3.18. Machine-Dependent Options
  • 3.18.1. AArch64 Options
  • 3.18.2. Adapteva Epiphany Options
  • 3.18.3. ARC Options
  • 3.18.4. ARM Options
  • 3.18.5. AVR Options
  • 3.18.6. Blackfin Options
  • 3.18.7. C6X Options
  • 3.18.8. CRIS Options
  • 3.18.9. CR16 Options
  • 3.18.10. Darwin Options
  • 3.18.11. DEC Alpha Options
  • 3.18.12. FR30 Options
  • 3.18.13. FT32 Options
  • 3.18.14. FRV Options
  • 3.18.15. GNU/Linux Options
  • 3.18.16. H8/300 Options
  • 3.18.17. HPPA Options
  • 3.18.18. IA-64 Options
  • 3.18.19. LM32 Options
  • 3.18.20. M32C Options
  • 3.18.21. M32R/D Options
  • 3.18.22. M680x0 Options
  • 3.18.23. MCore Options
  • 3.18.24. MeP Options
  • 3.18.25. MicroBlaze Options
  • 3.18.26. MIPS Options
  • 3.18.27. MMIX Options
  • 3.18.28. MN10300 Options
  • 3.18.29. Moxie Options
  • 3.18.30. MSP430 Options
  • 3.18.31. NDS32 Options
  • 3.18.32. Nios II Options
  • 3.18.33. Nvidia PTX Options
  • 3.18.34. PDP-11 Options
  • 3.18.35. picoChip Options
  • 3.18.36. PowerPC Options
  • 3.18.37. RISC-V Options
  • 3.18.38. RL78 Options
  • 3.18.39. IBM RS/6000 and PowerPC Options
  • 3.18.40. RX Options
  • 3.18.41. S/390 and zSeries Options
  • 3.18.42. Score Options
  • 3.18.43. SH Options
  • 3.18.44. Solaris 2 Options
  • 3.18.45. SPARC Options
  • 3.18.46. SPU Options
  • 3.18.47. Options for System V
  • 3.18.48. TILE-Gx Options
  • 3.18.49. TILEPro Options
  • 3.18.50. V850 Options
  • 3.18.51. VAX Options
  • 3.18.52. Visium Options
  • 3.18.53. VMS Options
  • 3.18.54. VxWorks Options
  • 3.18.55. x86 Options
  • 3.18.56. x86 Windows Options
  • 3.18.57. Xstormy16 Options
  • 3.18.58. Xtensa Options
  • 3.18.59. zSeries Options
  • 3.19. Specifying Subprocesses and the Switches to Pass to Them
  • 3.20. Environment Variables Affecting GCC
  • 3.21. Using Precompiled Headers
  • 6. Extensions to the C Language Family

  • 6. Extensions to the C Language Family
  • 6.1. Statements and Declarations in Expressions
  • 6.2. Locally Declared Labels
  • 6.3. Labels as Values
  • 6.4. Nested Functions
  • 6.5. Constructing Function Calls
  • 6.6. Referring to a Type with typeof
  • 6.7. Conditionals with Omitted Operands
  • 6.8. 128-bit Integers
  • 6.9. Double-Word Integers
  • 6.10. Complex Numbers
  • 6.11. Additional Floating Types
  • 6.12. Half-Precision Floating Point
  • 6.13. Decimal Floating Types
  • 6.14. Hex Floats
  • 6.15. Fixed-Point Types
  • 6.16. Named Address Spaces
  • 6.17. Arrays of Length Zero
  • 6.18. Structures with No Members
  • 6.19. Arrays of Variable Length
  • 6.20. Macros with a Variable Number of Arguments.
  • 6.21. Slightly Looser Rules for Escaped Newlines
  • 6.22. Non-Lvalue Arrays May Have Subscripts
  • 6.23. Arithmetic on void- and Function-Pointers
  • 6.24. Pointers to Arrays with Qualifiers Work as Expected
  • 6.25. Non-Constant Initializers
  • 6.26. Compound Literals
  • 6.27. Designated Initializers
  • 6.28. Case Ranges
  • 6.29. Cast to a Union Type
  • 6.30. Mixed Declarations and Code
  • 6.31. Declaring Attributes of Functions
  • 6.31.1. Common Function Attributes
  • 6.31.2. AArch64 Function Attributes
  • 6.31.3. ARC Function Attributes
  • 6.31.4. ARM Function Attributes
  • 6.31.5. AVR Function Attributes
  • 6.31.6. Blackfin Function Attributes
  • 6.31.7. CR16 Function Attributes
  • 6.31.8. Epiphany Function Attributes
  • 6.31.9. H8/300 Function Attributes
  • 6.31.10. IA-64 Function Attributes
  • 6.31.11. M32C Function Attributes
  • 6.31.12. M32R/D Function Attributes
  • 6.31.13. m68k Function Attributes
  • 6.31.14. MCORE Function Attributes
  • 6.31.15. MeP Function Attributes
  • 6.31.16. MicroBlaze Function Attributes
  • 6.31.17. Microsoft Windows Function Attributes
  • 6.31.18. MIPS Function Attributes
  • 6.31.19. MSP430 Function Attributes
  • 6.31.20. NDS32 Function Attributes
  • 6.31.21. Nios II Function Attributes
  • 6.31.22. Nvidia PTX Function Attributes
  • 6.31.23. PowerPC Function Attributes
  • 6.31.24. RL78 Function Attributes
  • 6.31.25. RX Function Attributes
  • 6.31.26. S/390 Function Attributes
  • 6.31.27. SH Function Attributes
  • 6.31.28. SPU Function Attributes
  • 6.31.29. Symbian OS Function Attributes
  • 6.31.30. V850 Function Attributes
  • 6.31.31. Visium Function Attributes
  • 6.31.32. x86 Function Attributes
  • 6.31.33. Xstormy16 Function Attributes
  • 6.32. Specifying Attributes of Variables
  • 6.32.1. Common Variable Attributes
  • 6.32.3. Blackfin Variable Attributes
  • 6.32.4. H8/300 Variable Attributes
  • 6.32.5. IA-64 Variable Attributes
  • 6.32.6. M32R/D Variable Attributes
  • 6.32.7. MeP Variable Attributes
  • 6.32.8. Microsoft Windows Variable Attributes
  • 6.32.9. MSP430 Variable Attributes
  • 6.32.10. Nvidia PTX Variable Attributes
  • 6.32.11. PowerPC Variable Attributes
  • 6.32.12. RL78 Variable Attributes
  • 6.32.13. SPU Variable Attributes
  • 6.32.14. V850 Variable Attributes
  • 6.32.16. Xstormy16 Variable Attributes
  • 6.33. Specifying Attributes of Types
  • 6.33.1. Common Type Attributes
  • 6.33.2. ARM Type Attributes
  • 6.33.3. MeP Type Attributes
  • 6.34. Label Attributes
  • 6.35. Enumerator Attributes
  • 6.36. Statement Attributes
  • 6.37. Attribute Syntax
  • 6.38. Prototypes and Old-Style Function Definitions
  • 6.39. C++ Style Comments
  • 6.40. Dollar Signs in Identifier Names
  • 6.41. The Character ESC in Constants
  • 6.42. Inquiring on Alignment of Types or Variables
  • 6.43. An Inline Function is As Fast As a Macro
  • 6.44. When is a Volatile Object Accessed?
  • 6.45. How to Use Inline Assembly Language in C Code
  • 6.45.1. Basic Asm
  • 6.45.2. Extended Asm - Assembler Instructions with C Expression Operands
  • 6.45.3. Constraints for asm Operands
  • 6.45.3.1. Simple Constraints
  • 6.45.3.2. Multiple Alternative Constraints
  • 6.45.3.3. Constraint Modifier Characters
  • 6.45.3.4. Constraints for Particular Machines
  • 6.45.4. Controlling Names Used in Assembler Code
  • 6.45.5. Variables in Specified Registers
  • 6.45.5.1. Defining Global Register Variables
  • 6.45.5.2. Specifying Registers for Local Variables
  • 6.45.6. Size of an asm
  • 6.46. Alternate Keywords
  • 6.47. Incomplete enum Types
  • 6.48. Function Names as Strings
  • 6.49. Getting the Return or Frame Address of a Function
  • 6.50. Using Vector Instructions through Built-in Functions
  • 6.51. Support for offsetof
  • 6.52. Legacy __sync Built-in Functions for Atomic Memory Access
  • 6.53. Built-in Functions for Memory Model Aware Atomic Operations
  • 6.54. Built-in Functions to Perform Arithmetic with Overflow Checking
  • 6.55. x86-Specific Memory Model Extensions for Transactional Memory
  • 6.56. Object Size Checking Built-in Functions
  • 6.57. Pointer Bounds Checker Built-in Functions
  • 6.58. Cilk Plus C/C++ Language Extension Built-in Functions
  • 6.59. Other Built-in Functions Provided by GCC
  • 6.60. Built-in Functions Specific to Particular Target Machines
  • 6.60.1. AArch64 Built-in Functions
  • 6.60.2. Alpha Built-in Functions
  • 6.60.3. Altera Nios II Built-in Functions
  • 6.60.4. ARC Built-in Functions
  • 6.60.5. ARC SIMD Built-in Functions
  • 6.60.6. ARM iWMMXt Built-in Functions
  • 6.60.7. ARM C Language Extensions (ACLE)
  • 6.60.8. ARM Floating Point Status and Control Intrinsics
  • 6.60.9. ARM ARMv8-M Security Extensions
  • 6.60.10. AVR Built-in Functions
  • 6.60.11. Blackfin Built-in Functions
  • 6.60.12. FR-V Built-in Functions
  • 6.60.12.1. Argument Types
  • 6.60.12.2. Directly-Mapped Integer Functions
  • 6.60.12.3. Directly-Mapped Media Functions
  • 6.60.12.4. Raw Read/Write Functions
  • 6.60.12.5. Other Built-in Functions
  • 6.60.13. MIPS DSP Built-in Functions
  • 6.60.14. MIPS Paired-Single Support
  • 6.60.15. MIPS Loongson Built-in Functions
  • 6.60.15.1. Paired-Single Arithmetic
  • 6.60.15.2. Paired-Single Built-in Functions
  • 6.60.15.3. MIPS-3D Built-in Functions
  • 6.60.16. MIPS SIMD Architecture (MSA) Support
  • 6.60.16.1. MIPS SIMD Architecture Built-in Functions
  • 6.60.17. Other MIPS Built-in Functions
  • 6.60.18. MSP430 Built-in Functions
  • 6.60.19. NDS32 Built-in Functions
  • 6.60.20. picoChip Built-in Functions
  • 6.60.21. PowerPC Built-in Functions
  • 6.60.22. PowerPC AltiVec Built-in Functions
  • 6.60.23. PowerPC Hardware Transactional Memory Built-in Functions
  • 6.60.24. RX Built-in Functions
  • 6.60.25. S/390 System z Built-in Functions
  • 6.60.26. SH Built-in Functions
  • 6.60.27. SPARC VIS Built-in Functions
  • 6.60.28. SPU Built-in Functions
  • 6.60.29. TI C6X Built-in Functions
  • 6.60.30. TILE-Gx Built-in Functions
  • 6.60.31. TILEPro Built-in Functions
  • 6.60.32. x86 Built-in Functions
  • 6.60.33. x86 Transactional Memory Intrinsics
  • 6.61. Format Checks Specific to Particular Target Machines
  • 6.61.1. Solaris Format Checks
  • 6.61.2. Darwin Format Checks
  • 6.62. Pragmas Accepted by GCC
  • 6.62.1. AArch64 Pragmas
  • 6.62.2. ARM Pragmas
  • 6.62.3. M32C Pragmas
  • 6.62.4. MeP Pragmas
  • 6.62.5. RS/6000 and PowerPC Pragmas
  • 6.62.6. S/390 Pragmas
  • 6.62.7. Darwin Pragmas
  • 6.62.8. Solaris Pragmas
  • 6.62.9. Symbol-Renaming Pragmas
  • 6.62.10. Structure-Layout Pragmas
  • 6.62.11. Weak Pragmas
  • 6.62.12. Diagnostic Pragmas
  • 6.62.13. Visibility Pragmas
  • 6.62.14. Push/Pop Macro Pragmas
  • 6.62.15. Function Specific Option Pragmas
  • 6.62.16. Loop-Specific Pragmas
  • 6.63. Unnamed Structure and Union Fields
  • 6.64. Thread-Local Storage
  • 6.64.1. ISO/IEC 9899:1999 Edits for Thread-Local Storage
  • 6.64.2. ISO/IEC 14882:1998 Edits for Thread-Local Storage
  • 6.65. Binary Constants using the ‘0b’ Prefix
  • 9. Binary Compatibility

  • 9. Binary Compatibility
  • Index

  • index