In Using the GNU Compiler Collection (GCC)
Total Page:16
File Type:pdf, Size:1020Kb
Using the GNU Compiler Collection For gcc version 8.1.0 (GCC) Richard M. Stallman and the GCC Developer Community Published by: GNU Press Website: http://www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 51 Franklin Street, Fifth Floor Tel 617-542-5942 Boston, MA 02110-1301 USA Fax 617-542-2652 Last printed October 2003 for GCC 3.3.1. Printed copies are available for $45 each. Copyright c 1988-2018 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: 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. i Short Contents Introduction ::::::::::::::::::::::::::::::::::::::::::::: 1 1 Programming Languages Supported by GCC ::::::::::::::: 3 2 Language Standards Supported by GCC :::::::::::::::::: 5 3 GCC Command Options ::::::::::::::::::::::::::::::: 9 4 C Implementation-Defined Behavior :::::::::::::::::::: 429 5 C++ Implementation-Defined Behavior ::::::::::::::::: 437 6 Extensions to the C Language Family ::::::::::::::::::: 439 7 Extensions to the C++ Language :::::::::::::::::::::: 787 8 GNU Objective-C Features ::::::::::::::::::::::::::: 801 9 Binary Compatibility :::::::::::::::::::::::::::::::: 817 10 gcov|a Test Coverage Program ::::::::::::::::::::::: 821 11 gcov-tool|an Offline Gcda Profile Processing Tool ::::::: 833 12 gcov-dump|an Offline Gcda and Gcno Profile Dump Tool :: 837 13 Known Causes of Trouble with GCC :::::::::::::::::::: 839 14 Reporting Bugs ::::::::::::::::::::::::::::::::::::: 855 15 How To Get Help with GCC :::::::::::::::::::::::::: 857 16 Contributing to GCC Development ::::::::::::::::::::: 859 Funding Free Software ::::::::::::::::::::::::::::::::::: 861 The GNU Project and GNU/Linux::::::::::::::::::::::::: 863 GNU General Public License :::::::::::::::::::::::::::::: 865 GNU Free Documentation License ::::::::::::::::::::::::: 877 Contributors to GCC :::::::::::::::::::::::::::::::::::: 885 Option Index :::::::::::::::::::::::::::::::::::::::::: 903 Keyword Index ::::::::::::::::::::::::::::::::::::::::: 927 iii Table of Contents Introduction :::::::::::::::::::::::::::::::::::::::: 1 1 Programming Languages Supported by GCC ::::::::::::::::::::::::::::::::::::::::::::::::: 3 2 Language Standards Supported by GCC ::::: 5 2.1 C Language :::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2.2 C++ Language :::::::::::::::::::::::::::::::::::::::::::::::: 6 2.3 Objective-C and Objective-C++ Languages :::::::::::::::::::: 7 2.4 Go Language::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.5 HSA Intermediate Language (HSAIL) :::::::::::::::::::::::::: 8 2.6 References for Other Languages :::::::::::::::::::::::::::::::: 8 3 GCC Command Options ::::::::::::::::::::::: 9 3.1 Option Summary::::::::::::::::::::::::::::::::::::::::::::::: 9 3.2 Options Controlling the Kind of Output ::::::::::::::::::::::: 29 3.3 Compiling C++ Programs :::::::::::::::::::::::::::::::::::: 34 3.4 Options Controlling C Dialect ::::::::::::::::::::::::::::::::: 35 3.5 Options Controlling C++ Dialect ::::::::::::::::::::::::::::: 42 3.6 Options Controlling Objective-C and Objective-C++ Dialects :: 55 3.7 Options to Control Diagnostic Messages Formatting ::::::::::: 59 3.8 Options to Request or Suppress Warnings ::::::::::::::::::::: 62 3.9 Options for Debugging Your Program :::::::::::::::::::::::: 108 3.10 Options That Control Optimization ::::::::::::::::::::::::: 114 3.11 Program Instrumentation Options::::::::::::::::::::::::::: 172 3.12 Options Controlling the Preprocessor:::::::::::::::::::::::: 187 3.13 Passing Options to the Assembler ::::::::::::::::::::::::::: 194 3.14 Options for Linking ::::::::::::::::::::::::::::::::::::::::: 195 3.15 Options for Directory Search :::::::::::::::::::::::::::::::: 199 3.16 Options for Code Generation Conventions ::::::::::::::::::: 202 3.17 GCC Developer Options :::::::::::::::::::::::::::::::::::: 212 3.18 Machine-Dependent Options :::::::::::::::::::::::::::::::: 228 3.18.1 AArch64 Options :::::::::::::::::::::::::::::::::::::: 228 3.18.1.1 `-march' and `-mcpu' Feature Modifiers :::::::::::: 232 3.18.2 Adapteva Epiphany Options ::::::::::::::::::::::::::: 233 3.18.3 ARC Options :::::::::::::::::::::::::::::::::::::::::: 235 3.18.4 ARM Options:::::::::::::::::::::::::::::::::::::::::: 245 3.18.5 AVR Options :::::::::::::::::::::::::::::::::::::::::: 258 3.18.5.1 EIND and Devices with More Than 128 Ki Bytes of Flash::::::::::::::::::::::::::::::::::::::::::::::::::: 262 3.18.5.2 Handling of the RAMPD, RAMPX, RAMPY and RAMPZ Special Function Registers:::::::::::::::::::::::::::::::::::::: 264 iv Using the GNU Compiler Collection (GCC) 3.18.5.3 AVR Built-in Macros:::::::::::::::::::::::::::::: 264 3.18.6 Blackfin Options ::::::::::::::::::::::::::::::::::::::: 267 3.18.7 C6X Options::::::::::::::::::::::::::::::::::::::::::: 270 3.18.8 CRIS Options:::::::::::::::::::::::::::::::::::::::::: 270 3.18.9 CR16 Options ::::::::::::::::::::::::::::::::::::::::: 272 3.18.10 Darwin Options::::::::::::::::::::::::::::::::::::::: 272 3.18.11 DEC Alpha Options :::::::::::::::::::::::::::::::::: 276 3.18.12 FR30 Options :::::::::::::::::::::::::::::::::::::::: 280 3.18.13 FT32 Options :::::::::::::::::::::::::::::::::::::::: 281 3.18.14 FRV Options ::::::::::::::::::::::::::::::::::::::::: 281 3.18.15 GNU/Linux Options :::::::::::::::::::::::::::::::::: 285 3.18.16 H8/300 Options::::::::::::::::::::::::::::::::::::::: 285 3.18.17 HPPA Options:::::::::::::::::::::::::::::::::::::::: 286 3.18.18 IA-64 Options :::::::::::::::::::::::::::::::::::::::: 289 3.18.19 LM32 Options :::::::::::::::::::::::::::::::::::::::: 292 3.18.20 M32C Options :::::::::::::::::::::::::::::::::::::::: 293 3.18.21 M32R/D Options ::::::::::::::::::::::::::::::::::::: 293 3.18.22 M680x0 Options :::::::::::::::::::::::::::::::::::::: 295 3.18.23 MCore Options ::::::::::::::::::::::::::::::::::::::: 300 3.18.24 MeP Options ::::::::::::::::::::::::::::::::::::::::: 301 3.18.25 MicroBlaze Options ::::::::::::::::::::::::::::::::::: 302 3.18.26 MIPS Options :::::::::::::::::::::::::::::::::::::::: 304 3.18.27 MMIX Options ::::::::::::::::::::::::::::::::::::::: 318 3.18.28 MN10300 Options :::::::::::::::::::::::::::::::::::: 319 3.18.29 Moxie Options :::::::::::::::::::::::::::::::::::::::: 320 3.18.30 MSP430 Options:::::::::::::::::::::::::::::::::::::: 320 3.18.31 NDS32 Options ::::::::::::::::::::::::::::::::::::::: 322 3.18.32 Nios II Options ::::::::::::::::::::::::::::::::::::::: 323 3.18.33 Nvidia PTX Options :::::::::::::::::::::::::::::::::: 328 3.18.34 PDP-11 Options :::::::::::::::::::::::::::::::::::::: 329 3.18.35 picoChip Options ::::::::::::::::::::::::::::::::::::: 330 3.18.36 PowerPC Options::::::::::::::::::::::::::::::::::::: 331 3.18.37 PowerPC SPE Options:::::::::::::::::::::::::::::::: 331 3.18.38 RISC-V Options :::::::::::::::::::::::::::::::::::::: 342 3.18.39 RL78 Options::::::::::::::::::::::::::::::::::::::::: 344 3.18.40 IBM RS/6000 and PowerPC Options :::::::::::::::::: 345 3.18.41 RX Options :::::::::::::::::::::::::::::::::::::::::: 361 3.18.42 S/390 and zSeries Options :::::::::::::::::::::::::::: 364 3.18.43 Score Options::::::::::::::::::::::::::::::::::::::::: 368 3.18.44 SH Options ::::::::::::::::::::::::::::::::::::::::::: 369 3.18.45 Solaris 2 Options ::::::::::::::::::::::::::::::::::::: 375 3.18.46 SPARC Options :::::::::::::::::::::::::::::::::::::: 375 3.18.47 SPU Options ::::::::::::::::::::::::::::::::::::::::: 381 3.18.48 Options for System V ::::::::::::::::::::::::::::::::: 383 3.18.49 TILE-Gx Options ::::::::::::::::::::::::::::::::::::: 384 3.18.50 TILEPro Options ::::::::::::::::::::::::::::::::::::: 384 3.18.51 V850 Options ::::::::::::::::::::::::::::::::::::::::: 384 3.18.52 VAX Options ::::::::::::::::::::::::::::::::::::::::: 387 v 3.18.53 Visium Options ::::::::::::::::::::::::::::::::::::::: 387 3.18.54 VMS Options ::::::::::::::::::::::::::::::::::::::::: 388 3.18.55 VxWorks Options ::::::::::::::::::::::::::::::::::::: 388 3.18.56 x86 Options :::::::::::::::::::::::::::::::::::::::::: 389 3.18.57 x86 Windows Options::::::::::::::::::::::::::::::::: 412 3.18.58 Xstormy16 Options ::::::::::::::::::::::::::::::::::: 413 3.18.59 Xtensa Options ::::::::::::::::::::::::::::::::::::::: 413 3.18.60 zSeries Options ::::::::::::::::::::::::::::::::::::::: 415 3.19 Specifying Subprocesses and the Switches to Pass to Them :: 415 3.20 Environment Variables Affecting GCC :::::::::::::::::::::: 422 3.21 Using Precompiled Headers ::::::::::::::::::::::::::::::::: 425 4 C Implementation-Defined Behavior ::::::: 429 4.1 Translation :::::::::::::::::::::::::::::::::::::::::::::::::: 429 4.2 Environment::::::::::::::::::::::::::::::::::::::::::::::::: 429 4.3 Identifiers:::::::::::::::::::::::::::::::::::::::::::::::::::: 429 4.4 Characters ::::::::::::::::::::::::::::::::::::::::::::::::::: 430 4.5 Integers:::::::::::::::::::::::::::::::::::::::::::::::::::::: 431 4.6 Floating Point :::::::::::::::::::::::::::::::::::::::::::::::