\initial {#} \entry {\code {#define}, preprocessor directive}{39} \entry {\code {#elif}, preprocessor directive}{110} \entry {\code {#else}, preprocessor directive}{110} \entry {\code {#if}, preprocessor directive}{32} \entry {\code {#ifdef}, preprocessor directive}{39} \entry {\code {#include}, preprocessor directive}{10} \initial {$} \entry {\code {$}, shell prompt}{5} \initial {-} \entry {\option {--help} option, display command-line options}{85} \entry {\option {--version} option, display version number}{85} \entry {\option {-ansi} option, disable language extensions}{28} \entry {\option {-ansi} option, used with \code {g++}}{63} \entry {\option {-c} option, compile to object file}{11} \entry {\option {-D} option, define macro}{39} \entry {\option {-dM} option, list predefined macros}{40} \entry {\option {-E} option, preprocess source files}{42} \entry {\option {-fno-default-inline} option}{65} \entry {\option {-fno-implicit-templates} option, disable implicit instantiation}{70} \entry {\option {-fprofile-arcs} option, instrument branches}{98} \entry {\option {-fsigned-bitfields} option}{83} \entry {\option {-fsigned-char} option}{81} \entry {\option {-ftest-coverage} option, record coverage}{98} \entry {\option {-funroll-loops} option, optimization by loop unrolling}{57} \entry {\option {-funsigned-bitfields} option}{83} \entry {\option {-funsigned-char} option}{81} \entry {\option {-g} option, enable debugging}{45} \entry {\option {-I} option, include path}{21} \entry {\option {-L} option, library search path}{21} \entry {\option {-l} option, linking with libraries}{17} \entry {\option {-lm} option, link with math library}{17} \entry {\option {-m} option, platform-specific settings}{73} \entry {\option {-m32} and \option {-m64} options, compile for 32 or 64-bit environment}{76} \entry {\option {-maltivec} option, enables use of Altivec processor on PowerPC}{76} \entry {\option {-march} option, compile for specific CPU}{73} \entry {\option {-mcmodel} option, for AMD64}{74} \entry {\option {-mcpu} option, compile for specific CPU}{76} \entry {\option {-mfpmath} option, for floating-point arithmetic}{74} \entry {\option {-mieee} option, floating-point support on DEC Alpha}{75} \entry {\option {-mminimal-toc} option, on AIX}{77} \entry {\option {-mno-fused-madd} option, on PowerPC}{76} \entry {\option {-msse} and related options}{74} \entry {\option {-mtune} option}{73} \entry {\option {-mxl-call} option, compatibility with IBM XL compilers on AIX}{77} \entry {\option {-o} option, set output filename}{7} \entry {\option {-O0} option, optimization level zero}{56} \entry {\option {-O1} option, optimization level one}{56} \entry {\option {-O2} option, optimization level two}{56} \entry {\option {-O3} option, optimization level three}{57} \entry {\option {-Os} option, optimization for size}{57} \entry {\option {-pedantic} option, conform to the ANSI standard (with \option {-ansi})}{28} \entry {\option {-pg} option, enable profiling}{97} \entry {\option {-pthread} option, on AIX}{77} \entry {\option {-rpath} option, set run-time shared library search path}{26} \entry {\option {-S} option, create assembly code}{102} \entry {\option {-save-temps} option, keeps intermediate files}{43} \entry {\option {-static} option, force static linking}{27} \entry {\option {-std} option, select specific language standard}{28, 31} \entry {\option {-v} option, verbose compilation}{85} \entry {\option {-W} option, enable additional warnings}{34} \entry {\option {-Wall} option, enable common warnings}{7} \entry {\option {-Wcast-qual} option, warn about casts removing qualifiers}{36} \entry {\option {-Wcomment} option, warn about nested comments}{32} \entry {\option {-Wconversion} option, warn about type conversions}{34} \entry {\option {-Weffc++} option}{65} \entry {\option {-Werror} option, convert warnings to errors}{37} \entry {\option {-Wformat} option, warn about incorrect format strings}{32} \entry {\option {-Wimplicit} option, warn about missing declarations}{32} \entry {\option {-Wold-style-cast} option}{65} \entry {\option {-Wreturn-type} option, warn about incorrect return types}{33} \entry {\option {-Wshadow} option, warn about shadowed variables}{35} \entry {\option {-Wtraditional} option, warn about traditional C}{37} \entry {\option {-Wuninitialized} option, warn about uninitialized variables}{60} \entry {\option {-Wunused} option, unused variable warning}{32} \entry {\option {-Wwrite-strings} option, warning for modified string constants}{37} \initial {.} \entry {\code {.a}, archive file extension}{15} \entry {\code {.c}, C source file extension}{7} \entry {\code {.cc}, C++ file extension}{63} \entry {\code {.cpp}, C++ file extension}{63} \entry {\code {.cxx}, C++ file extension}{63} \entry {\code {.h}, header file extension}{9} \entry {\code {.i}, preprocessed file extension for C}{102} \entry {\code {.ii}, preprocessed file extension for C++}{102} \entry {\code {.o}, object file extension}{11} \entry {\code {.s}, assembly file extension}{102} \entry {\code {.so}, shared object file extension}{25} \initial {/} \entry {\file {/tmp} directory, temporary files}{16} \initial {_} \entry {\code {__gxx_personality_v0}, undefined reference error}{64} \entry {\code {_GNU_SOURCE} macro, enables extensions to GNU C Library}{30} \initial {6} \entry {64-bit platforms, additional library directories}{21} \entry {64-bit processor-specific options, AMD64 and Intel}{74} \initial {A} \entry {\code {a}, archive file extension}{15} \entry {\code {a.out}, default executable filename}{7} \entry {ADA, \code {gnat} compiler}{3} \entry {additional warning options}{33} \entry {AIX, compatibility with IBM XL compilers}{77} \entry {AIX, platform-specific options}{76} \entry {AIX, TOC overflow error}{77} \entry {Alpha, platform-specific options}{75} \entry {Altivec, on PowerPC}{76} \entry {AMD x86, platform-specific options}{73} \entry {AMD64, 64-bit processor specific options}{74} \entry {\option {ansi} option, disable language extensions}{28} \entry {\option {ansi} option, used with \code {g++}}{63} \entry {ANSI standards for C/C++ languages, available as books}{126} \entry {ANSI/ISO C, compared with GNU C extensions}{28} \entry {ANSI/ISO C, controlled with \option {-ansi} option}{28} \entry {ANSI/ISO C, pedantic diagnostics option}{30} \entry {\code {ar}, GNU archiver}{15, 93} \entry {archive file, \code {.a} extension}{15} \entry {archive file, explanation of}{15} \entry {archiver, \code {ar}}{101} \entry {arithmetic, floating-point}{78} \entry {ARM, multi-architecture support}{77} \entry {arrays, variable-size}{30} \entry {\code {asm} extension keyword}{29, 78} \entry {assembler, \code {as}}{101} \entry {assembler, converting assembly language to machine code}{103} \entry {assignment discards qualifiers}{118} \entry {assignment of read-only location}{118} \entry {Athlon, platform-specific options}{73} \entry {\code {attach}, debug running program}{89} \initial {B} \entry {\code {backtrace}, debugger command}{48} \entry {backtrace, displaying}{48} \entry {\code {bash} profile file}{47} \entry {\code {bash} profile file, login settings}{23, 27} \entry {benchmarking, with \code {time} command}{58} \entry {big-endian, word-ordering}{105} \entry {binary file, also called executable file}{7} \entry {Binutils, GNU Binary Tools}{106} \entry {bitfields, portability of signed vs unsigned}{83} \entry {bits, 32 vs 64 on UltraSPARC}{76} \entry {books, further reading}{126} \entry {branches, instrumenting for coverage testing}{98} \entry {\code {break}, command in \code {gdb}}{48} \entry {breakpoints, defined}{48} \entry {BSD extensions, GNU C Library}{30} \entry {buffer, template example}{68} \entry {bug, example of}{9, 18, 46} \entry {bus error}{120} \initial {C} \entry {C include path}{23} \entry {C language, dialects of}{28} \entry {C language, further reading}{126} \entry {C library, standard}{15, 126} \entry {C math library}{15} \entry {\option {c} option, compile to object file}{11} \entry {C programs, recompiling after modification}{12} \entry {C source file, \code {.c} extension}{7} \entry {C standard library}{15} \entry {C++ include path}{23} \entry {C++, compiling a simple program with \code {g++}}{63} \entry {C++, creating libraries with explicit instantiation}{71} \entry {C++, file extensions}{63} \entry {C++, \code {g++} as a true compiler}{63} \entry {C++, \code {g++} compiler}{3} \entry {C++, instantiation of templates}{68} \entry {C++, namespace \code {std}}{66} \entry {C++, standard library}{66, 67} \entry {C++, standard library templates}{67} \entry {C++, templates}{66} \entry {\code {c}, C source file extension}{7} \entry {C, compiling with \code {gcc}}{7} \entry {C, \code {gcc} compiler}{3} \entry {C/C++ languages, standards in printed form}{126} \entry {C/C++, risks of using}{5, 9, 19, 60} \entry {\env {C_INCLUDE_PATH}}{23} \entry {\code {c89}/\code {c99}, selected with \option {-std}}{31} \entry {cannot find \var {library} error}{21, 23} \entry {cannot open shared object file}{25, 120} \entry {cast discards qualifiers from pointer target type}{118} \entry {casts, used to avoid conversion warnings}{35} \entry {\code {cc}, C++ file extension}{63} \entry {\code {CC}, make variable}{14} \entry {\code {CFLAGS}, make variable}{14} \entry {\code {char}, portability of signed vs unsigned}{80} \entry {character constant too long}{113} \entry {circular buffer, template example}{68} \entry {COFF format}{105} \entry {Collatz sequence}{95} \entry {collect2: ld returned 1 exit status}{119} \entry {combined multiply and add instruction}{76} \entry {command, in makefile}{13} \entry {command-line help option}{85} \entry {\option {comment} warning option, warn about nested comments}{32} \entry {comments, nested}{32} \entry {commercial support}{123} \entry {common error messages}{109} \entry {common errors, not included with \option {-Wall}}{34} \entry {common subexpression elimination, optimization}{51} \entry {comparison of expression always true/false warning}{34} \entry {compilation, for debugging}{45} \entry {compilation, internal stages of}{101} \entry {compilation, model for templates}{68} \entry {compilation, options}{21} \entry {compilation, stopping on warning}{37} \entry {compile to object file, \option {-c} option}{11} \entry {compiled files, examining}{105} \entry {compiler, converting source code to assembly code}{102} \entry {compiler, error messages}{110} \entry {compiler, how it works internally}{101} \entry {compiler-related tools}{93} \entry {compiling C programs with \code {gcc}}{7} \entry {compiling C++ programs with \code {g++}}{63} \entry {compiling files independently}{11} \entry {compiling multiple files}{9} \entry {compiling with optimization}{51} \entry {configuration files for GCC}{86} \entry {\code {const}, warning about overriding by casts}{36} \entry {constant strings, compile-time warnings}{37} \entry {\code {continue}, command in \code {gdb}}{50} \entry {control reaches end of non-void function}{116} \entry {control-C, interrupt}{89} \entry {conventions, used in manual}{5} \entry {conversions between types, warning of}{34} \entry {core file, examining}{45, 47} \entry {core file, not produced}{46} \entry {coverage testing, with \code {gcov}}{98} \entry {\env {CPLUS_INCLUDE_PATH}}{23} \entry {\code {cpp}, C preprocessor}{39} \entry {\code {cpp}, C++ file extension}{63} \entry {\code {CPPFLAGS}, make variable}{14} \entry {\option {cr} option, create/replace archive files}{94} \entry {crashes, saved in core file}{45} \entry {creating executable files from object files}{12} \entry {creating object files from source files}{11} \entry {\code {cxx}, C++ file extension}{63} \entry {\code {CXX}, make variable}{14} \entry {\code {CXXFLAGS}, make variable}{14} \initial {D} \entry {\option {D} option, define macro}{39} \entry {data-flow analysis}{60} \entry {DBM file, created with \code {gdbm}}{22} \entry {debugging, compilation flags}{45} \entry {debugging, with \code {gdb}}{45} \entry {debugging, with optimization}{59} \entry {DEC Alpha, platform-specific options}{75} \entry {declaration, in header file}{9} \entry {declaration, missing}{18} \entry {default directories, linking and header files}{21} \entry {default executable filename, \code {a.out}}{7} \entry {default value, of macro defined with \option {-D}}{42} \entry {defining macros}{39} \entry {denormalized numbers, on DEC Alpha}{75} \entry {dependencies, of shared libraries}{107} \entry {dependency, in makefile}{13} \entry {deployment, options for}{45, 56, 59} \entry {dereferencing pointer to incomplete type}{114} \entry {dereferencing, null pointer}{46} \entry {dialects of C language}{28} \entry {different type arg, format warning}{8} \entry {disk space, reduced usage by shared libraries}{26} \entry {displaying a backtrace}{48} \entry {division by zero}{75} \entry {DLL (dynamically linked library), see shared libraries}{25} \entry {\option {dM} option, list predefined macros}{40} \entry {dollar sign \code {$}, shell prompt}{5} \entry {double precision}{78} \entry {dynamic loader}{26} \entry {dynamically linked libraries, examining with \code {ldd}}{107} \entry {dynamically linked library, see shared libraries}{25} \initial {E} \entry {\option {E} option, preprocess source files}{42} \entry {\option {effc++} warning option}{65} \entry {EGCS (Experimental GNU Compiler Suite)}{3} \entry {ELF format}{105} \entry {elimination, of common subexpressions}{51} \entry {Emacs, \code {gdb} mode}{50} \entry {embedded systems, cross-compilation for}{4} \entry {empty macro, compared with undefined macro}{42} \entry {empty \code {return}, incorrect use of}{33} \entry {enable profiling, \option {-pg} option}{97} \entry {endianness, word-ordering}{105} \entry {enhancements, to GCC}{123} \entry {environment variables}{6, 26} \entry {environment variables, extending an existing path}{27} \entry {environment variables, for default search paths}{23} \entry {environment variables, setting permanently}{27} \entry {error messages, common examples}{109} \entry {error while loading shared libraries}{25, 120} \entry {error, undefined reference due to library link order}{17} \entry {examining compiled files}{105} \entry {examining core files}{45} \entry {examples, conventions used in}{5} \entry {exception handling, floating-point}{79} \entry {executable file}{7} \entry {executable, creating from object files by linking}{12} \entry {executable, default filename \code {a.out}}{7} \entry {executable, examining with \code {file} command}{105} \entry {executable, running}{8} \entry {executable, symbol table stored in}{45} \entry {exit code, displayed in \code {gdb}}{50} \entry {explicit instantiation of templates}{70} \entry {\code {export} keyword, not supported in GCC}{71} \entry {extended precision, x86 processors}{78} \entry {extended search paths, for include and link directories}{24} \entry {extension, \code {.a} archive file}{15} \entry {extension, \code {.c} source file}{7} \entry {extension, \code {.C}, C++ file}{63} \entry {extension, \code {.cc}, C++ file}{63} \entry {extension, \code {.cpp}, C++ file}{63} \entry {extension, \code {.cxx}, C++ file}{63} \entry {extension, \code {.h} header file}{9} \entry {extension, \code {.i} preprocessed file}{102} \entry {extension, \code {.ii} preprocessed file}{102} \entry {extension, \code {.o} object file}{11} \entry {extension, \code {.s} assembly file}{102} \entry {extension, \code {.so} shared object file}{25} \entry {external libraries, linking with}{15} \initial {F} \entry {feature test macros, GNU C Library}{30} \entry {features, of GCC}{4} \entry {\code {file} command, for identifying files}{105} \entry {file extension, \code {.a} archive file}{15} \entry {file extension, \code {.c} source file}{7} \entry {file extension, \code {.C}, C++ file}{63} \entry {file extension, \code {.cc}, C++ file}{63} \entry {file extension, \code {.cpp}, C++ file}{63} \entry {file extension, \code {.cxx}, C++ file}{63} \entry {file extension, \code {.h} header file}{9} \entry {file extension, \code {.i} preprocessed file}{102} \entry {file extension, \code {.ii} preprocessed file}{102} \entry {file extension, \code {.o} object file}{11} \entry {file extension, \code {.s} assembly file}{102} \entry {file extension, \code {.so} shared object file}{25} \entry {file format not recognized}{119} \entry {file not recognized}{119} \entry {\code {finish}, command in \code {gdb}}{50} \entry {\code {fldcw} set floating point mode}{78} \entry {floating point arithmetic, with SSE extensions}{74} \entry {floating point exception}{121} \entry {floating point exception handling}{79} \entry {floating point exception, on DEC Alpha}{76} \entry {floating point, portability problems}{78} \entry {\option {fno-default-inline} option}{65} \entry {\option {fno-implicit-templates} option, disable implicit instantiation}{70} \entry {format strings, incorrect usage warning}{32} \entry {format, different type arg warning}{8} \entry {Fortran, \code {g77} compiler}{3} \entry {\option {fpmath} option, for floating-point arithmetic}{74} \entry {\option {fprofile-arcs} option, instrument branches}{98} \entry {Free Software Foundation (FSF)}{3} \entry {FreeBSD, floating-point arithmetic}{78} \entry {\option {ftest-coverage} option, record coverage}{98} \entry {function inlining, example of optimization}{52} \entry {function-call overhead}{52} \entry {\option {funroll-loops} option, optimization by loop unrolling}{57} \entry {fused multiply and add instruction}{76} \initial {G} \entry {\option {g} option, enable debugging}{45} \entry {\code {g++}, compiling C++ programs}{63} \entry {\code {g++}, GNU C++ Compiler}{3} \entry {\code {g77}, Fortran compiler}{3} \entry {\code {gcc}, GNU C Compiler}{3} \entry {\code {gcc}, simple example}{7} \entry {\code {gcc}, used inconsistently with \code {g++}}{64} \entry {\code {gcj}, GNU Compiler for Java}{3} \entry {\code {gcov}, GNU coverage testing tool}{98} \entry {\code {gdb}}{45} \entry {\code {gdb}, debugging core file with}{47} \entry {\code {gdb}, Emacs mode}{50} \entry {\code {gdb}, graphical interface}{50} \entry {\code {gdbm}, GNU DBM library}{22} \entry {generic programming, in C++}{66} \entry {getting help}{123} \entry {\code {gmon.out}, data file for \code {gprof}}{97} \entry {\code {gnat}, GNU ADA compiler}{3} \entry {GNU archiver, \code {ar}}{15} \entry {GNU C extensions, compared with ANSI/ISO C}{28} \entry {GNU C Library Reference Manual}{125} \entry {GNU C Library, feature test macros}{30} \entry {GNU Compilers, major features}{4} \entry {GNU Compilers, Reference Manual}{125} \entry {GNU debugger, \code {gdb}}{45} \entry {GNU GDB Manual}{125} \entry {GNU Make}{13} \entry {GNU Make Manual}{125} \entry {GNU Press, manuals}{125} \entry {GNU Project, history of}{3} \entry {GNU/Linux, floating-point arithmetic}{78} \entry {\code {GNU_SOURCE} macro (\code {_GNU_SOURCE}), enables extensions to GNU C Library}{30} \entry {\code {gnu89}/\code {gnu99}, selected with \option {-std}}{31} \entry {\code {gprof}, GNU Profiler}{95} \entry {gradual underflow, on DEC Alpha}{75} \entry {\code {gxx_personality_v0}, undefined reference error}{64} \initial {H} \entry {\code {h}, header file extension}{9} \entry {header file, \code {.h} extension}{9} \entry {header file, declarations in}{9} \entry {header file, default directories}{21} \entry {header file, include path---extending with \option {-I}}{21} \entry {header file, missing}{18} \entry {header file, missing header causes implicit declaration}{19} \entry {header file, not compiled}{12} \entry {header file, not found}{21} \entry {header file, with include guards}{69} \entry {header file, without \code {.h} extension for C++}{66} \entry {Hello World program, in C}{7} \entry {Hello World program, in C++}{63} \entry {help options}{85} \entry {history, of GCC}{3} \initial {I} \entry {\option {I} option, include path}{21} \entry {\code {i}, preprocessed file extension for C}{102} \entry {IBM XL compilers, compatibility on AIX}{77} \entry {identifying files, with \code {file} command}{105} \entry {IEEE arithmetic}{78} \entry {IEEE arithmetic standard, printed form}{126} \entry {IEEE options, on DEC Alpha}{75} \entry {IEEE-754 standard}{126} \entry {\code {ii}, preprocessed file extension for C++}{102} \entry {illegal instruction error}{74, 121} \entry {implicit declaration of function}{19, 32, 112} \entry {implicit rules, in makefile}{14} \entry {include guards, in header file}{69} \entry {include nested too deeply}{109} \entry {include path, extending with \option {-I}}{21} \entry {include path, setting with environment variables}{23} \entry {inclusion compilation model, in C++}{68} \entry {independent compilation of files}{11} \entry {Inf, infinity, on DEC Alpha}{75} \entry {infinite loop, stopping}{89} \entry {initialization discards qualifiers}{118} \entry {initialization makes integer from pointer without a cast}{114} \entry {initializer element is not a constant}{118} \entry {inlining, example of optimization}{52} \entry {Insight, graphical interface for \code {gdb}}{50} \entry {instantiation, explicit vs implicit in C++}{70} \entry {instantiation, of templates in C++}{68} \entry {instruction scheduling, optimization}{55} \entry {instrumented executable, for coverage testing}{98} \entry {instrumented executable, for profiling}{97} \entry {Intel x86, platform-specific options}{73} \entry {intermediate files, keeping}{43} \entry {invalid preprocessing directive}{110} \entry {ISO C++, controlled with \option {-ansi} option}{63} \entry {ISO C, compared with GNU C extensions}{28} \entry {ISO C, controlled with \option {-ansi} option}{28} \entry {ISO standards for C/C++ languages, available as books}{126} \entry {\code {iso9899:1990}/\code {iso9899:1999}, selected with \option {-std}}{31} \entry {Itanium, multi-architecture support}{77} \initial {J} \entry {Java, compared with C/C++}{5} \entry {Java, \code {gcj} compiler}{3} \initial {K} \entry {K&R dialect of C, warnings of different behavior}{37} \entry {kernel mode, on AMD64}{75} \entry {Kernighan and Ritchie, \cite {The C Programming Language}}{126} \entry {key-value pairs, stored with GDBM}{22} \entry {keywords, additional in GNU C}{29} \initial {L} \entry {\option {L} option, library search path}{21} \entry {\option {l} option, linking with libraries}{17} \entry {language standards, selecting with \option {-std}}{31} \entry {ld returned 1 exit status}{119} \entry {\code {ld.so.conf}, loader configuration file}{27} \entry {ld: cannot find library error}{21} \entry {\env {LD_LIBRARY_PATH}, shared library load path}{26} \entry {\code {ldd}, dynamical loader}{107} \entry {levels of optimization}{56} \entry {libraries, creating with \code {ar}}{93} \entry {libraries, creating with explicit instantiation in C++}{71} \entry {libraries, error while loading shared library}{25} \entry {libraries, extending search path with \option {-L}}{21} \entry {libraries, finding shared library dependencies}{107} \entry {libraries, link error due to undefined reference}{16} \entry {libraries, link order}{17, 18} \entry {libraries, linking with}{15, 17} \entry {libraries, on 64-bit platforms}{21} \entry {libraries, stored in archive files}{15} \entry {library header files, using}{18} \entry {library, C math library}{15} \entry {library, C standard library}{15} \entry {library, C++ standard library}{66} \entry {\code {libstdc++}, C++ standard library}{67} \entry {line numbers, recorded in preprocessed files}{42} \entry {link error, cannot find library}{21} \entry {link order, from left to right}{17} \entry {link order, of libraries}{17} \entry {link path, setting with environment variable}{24} \entry {linker, error messages}{119} \entry {linker, GNU compared with other linkers}{69} \entry {linker, initial description}{12} \entry {linker, \code {ld}}{101, 103} \entry {linking, creating executable files from object files}{12} \entry {linking, default directories}{21} \entry {linking, dynamic (shared libraries)}{26} \entry {linking, explanation of}{11} \entry {linking, undefined reference error due to library link order}{17} \entry {linking, updated object files}{13} \entry {linking, with external libraries}{15} \entry {linking, with library using \option {-l}}{17} \entry {Linux kernel, floating-point}{78} \entry {Lisp, compared with C/C++}{5} \entry {little-endian, word-ordering}{105} \entry {loader configuration file, \code {ld.so.conf}}{27} \entry {loader function}{26} \entry {login file, setting environment variables in}{27} \entry {long double arithmetic}{80} \entry {loop unrolling, optimization}{54, 57} \entry {LSB, least significant byte}{105} \initial {M} \entry {\option {m} option, platform-specific settings}{73} \entry {\option {m32} and \option {m64} options, compile for 32 or 64-bit environment}{76} \entry {machine code}{7} \entry {machine instruction, \code {asm} keyword}{78} \entry {machine-specific options}{73} \entry {macro or '#include' recursion too deep}{109} \entry {macros, default value of}{42} \entry {macros, defined with value}{40} \entry {macros, defining in preprocessor}{39} \entry {macros, predefined}{40} \entry {major features, of GCC}{4} \entry {major version number, of GCC}{85} \entry {makefile, example of}{13} \entry {\option {maltivec} option, enables use of Altivec processor on PowerPC}{76} \entry {manuals, for GNU software}{125} \entry {\option {march} option, compile for specific CPU}{73} \entry {math library}{15} \entry {math library, linking with \option {-lm}}{17} \entry {\option {mcmodel} option, for AMD64}{74} \entry {\option {mcpu} option, compile for specific CPU}{76} \entry {memory usage, limiting}{90} \entry {\option {mfpmath} option, for floating-point arithmetic}{74} \entry {\option {mieee} option, floating-point support on DEC Alpha}{75} \entry {minor version number, of GCC}{85} \entry {MIPS64, multi-architecture support}{77} \entry {missing header file, causes implicit declaration}{19} \entry {missing header files}{18} \entry {missing prototypes warning}{32} \entry {\option {mminimal-toc} option, on AIX}{77} \entry {MMX extensions}{74} \entry {\option {mno-fused-madd} option, on PowerPC}{76} \entry {modified source files, recompiling}{12, 13} \entry {Motorola 680x0, floating-point arithmetic}{78} \entry {Motorola 680x0, word-order}{105} \entry {MSB, most significant byte}{105} \entry {\option {msse} and related options}{74} \entry {\option {mtune} option}{73} \entry {multi-architecture support, discussion of}{77} \entry {multiple directories, on include and link paths}{24} \entry {multiple files, compiling}{9} \entry {multiple-character character constant}{113} \entry {multiply and add instruction}{76} \entry {multiply-defined symbol error, with C++}{69} \entry {\option {mxl-call} option, compatibility with IBM XL compilers on AIX}{77} \initial {N} \entry {namespace \code {std} in C++}{66} \entry {namespace, reserved prefix for preprocessor}{40} \entry {NaN, not a number, on DEC Alpha}{75} \entry {native double-precision processors}{78} \entry {nested comments, warning of}{32} \entry {NetBSD, floating-point arithmetic}{78} \entry {\code {next}, command in \code {gdb}}{49} \entry {\code {nm} command}{106} \entry {No such file or directory}{109, 120} \entry {No such file or directory, header file not found}{21, 22} \entry {\option {no-default-inline} option}{65} \entry {null pointer}{46, 120} \entry {numerical differences}{78} \initial {O} \entry {\option {O} option, optimization level}{56} \entry {\option {o} option, set output filename}{7} \entry {\code {o}, object file extension}{11} \entry {object file, \code {.o} extension}{11} \entry {object file, creating from source using option \option {-c}}{11} \entry {object file, examining with \code {file} command}{105} \entry {object file, explanation of}{11} \entry {object files, linking to create executable file}{12} \entry {object files, relinking}{12} \entry {object files, temporary}{16} \entry {Objective-C}{3} \entry {\option {old-style-cast} warning option}{65} \entry {OpenBSD, floating-point arithmetic}{78} \entry {optimization for size, \option {-Os}}{57} \entry {optimization, and compiler warnings}{60} \entry {optimization, common subexpression elimination}{51} \entry {optimization, compiling with \option {-O}}{56} \entry {optimization, example of}{57} \entry {optimization, explanation of}{51} \entry {optimization, levels of}{56} \entry {optimization, loop unrolling}{54, 57} \entry {optimization, speed-space tradeoffs}{54} \entry {optimization, with debugging}{59} \entry {options, compilation}{21} \entry {options, platform-specific}{73} \entry {ordering of libraries}{18} \entry {output file option, \option {-o}}{7} \entry {overflow error, for TOC on AIX}{77} \entry {overflow, floating-point arithmetic}{78} \entry {overhead, from function call}{52} \initial {P} \entry {parse error}{111} \entry {parse error at end of input}{111} \entry {parse error due to language extensions}{29} \entry {passing arg of function as another type to prototype}{117} \entry {patch level, of GCC}{85} \entry {paths, extending environment variable}{27} \entry {paths, search}{21} \entry {\option {pedantic} option}{28, 30} \entry {Pentium, platform-specific options}{73} \entry {\option {pg} option, enable profiling}{97} \entry {pipelining, explanation of}{55} \entry {platform-specific options}{73} \entry {POSIX extensions, GNU C Library}{30} \entry {PowerPC and POWER, platform-specific options}{76} \entry {PowerPC64, multi-architecture support}{77} \entry {precedence, when using preprocessor}{41} \entry {predefined macros}{40} \entry {preprocessed files, keeping}{43} \entry {preprocessing source files, \option {-E} option}{42} \entry {preprocessor macros, default value of}{42} \entry {preprocessor, \code {cpp}}{101} \entry {preprocessor, error messages}{109} \entry {preprocessor, first stage of compilation}{102} \entry {preprocessor, using}{39} \entry {\code {print} debugger command}{48} \entry {\code {printf}, example of error in format}{8} \entry {\code {printf}, incorrect usage warning}{32} \entry {process id, finding}{89} \entry {profile file, setting environment variables in}{27} \entry {profiling, with \code {gprof}}{95} \entry {program crashes, saved in core file}{45} \entry {prototypes, missing}{32} \entry {\option {pthread} option, on AIX}{77} \initial {Q} \entry {qualifiers, warning about overriding by casts}{36} \entry {quotes, for defining empty macro}{42} \initial {R} \entry {recompiling modified source files}{12, 13} \entry {red-zone, on AMD64}{75} \entry {reference books}{126} \entry {reference, undefined due to missing library}{16} \entry {relinking updated object files}{12, 13} \entry {return discards qualifiers}{118} \entry {return type, invalid}{33} \entry {Richard Stallman, principal author of GCC}{3} \entry {risks, examples of}{5, 9} \entry {rounding, floating-point arithmetic}{78} \entry {\option {rpath} option, set run-time shared library search path}{26} \entry {rules, in makefile}{14} \entry {run-time, measuring with \code {time} command}{58} \entry {running an executable file, C}{8} \entry {running an executable file, C++}{63} \entry {runtime error messages}{120} \initial {S} \entry {\option {S} option, create assembly code}{102} \entry {\code {s}, assembly file extension}{102} \entry {\option {save-temps} option, keeps intermediate files}{43} \entry {\code {scanf}, incorrect usage warning}{32, 120} \entry {scheduling, stage of optimization}{55} \entry {Scheme, compared with C/C++}{5} \entry {search paths}{21} \entry {search paths, example}{22} \entry {search paths, extended}{24} \entry {segmentation fault}{46, 120} \entry {selecting specific language standards, with \option {-std}}{31} \entry {separator, in makefiles}{14} \entry {\code {set}, command in \code {gdb}}{49} \entry {shadowing of variables}{35} \entry {shared libraries}{25} \entry {shared libraries, advantages of}{26} \entry {shared libraries, dependencies}{107} \entry {shared libraries, error while loading}{25} \entry {shared libraries, examining with \code {ldd}}{107} \entry {shared libraries, setting load path}{26} \entry {shared object file, \code {.so} extension}{25} \entry {shell prompt}{5} \entry {shell quoting}{42, 125} \entry {shell variables}{6, 23, 26} \entry {shell variables, setting permanently}{27} \entry {SIGINT signal}{89} \entry {signed bitfield option}{83} \entry {signed \code {char} option}{80} \entry {signed integer, casting}{35} \entry {signed variable converted to unsigned, warning of}{34} \entry {SIGQUIT signal}{90} \entry {simple C program, compiling}{7} \entry {simple C++ program, compiling}{63} \entry {size, optimization for, \option {-Os}}{57} \entry {Smalltalk, compared with C/C++}{5} \entry {\code {so}, shared object file extension}{25} \entry {soft underflow, on DEC Alpha}{75} \entry {source code}{7} \entry {source files, recompiling}{12} \entry {source-level optimization}{51} \entry {space vs speed, tradeoff in optimization}{54} \entry {SPARC, platform-specific options}{76} \entry {Sparc64, multi-architecture support}{77} \entry {\code {specs} directory, compiler configuration files}{86} \entry {speed-space tradeoffs, in optimization}{54} \entry {\code {sqrt}, example of linking with}{15} \entry {SSE extensions}{74} \entry {SSE/SSE2 precision}{80} \entry {stack backtrace, displaying}{48} \entry {stages of compilation, used internally}{101} \entry {standard library, C}{15} \entry {standard library, C++}{66} \entry {Standard Template Library (STL)}{67} \entry {standards, C, C++ and IEEE arithmetic}{126} \entry {static libraries}{25} \entry {static linking, forcing with \option {-static}}{27} \entry {\option {static} option, force static linking}{27} \entry {\code {std} namespace in C++}{66} \entry {\option {std} option, select specific language standard}{28, 31} \entry {\code {step}, command in \code {gdb}}{49} \entry {stopping execution, with breakpoints in \code {gdb}}{48} \entry {strict ANSI/ISO C, \option {-pedantic} option}{30} \entry {\code {strip} command}{106} \entry {subexpression elimination, optimization}{51} \entry {suggest parentheses around assignment used as truth value}{116} \entry {Sun SPARC, platform-specific options}{76} \entry {support, commercial}{123} \entry {SVID extensions, GNU C Library}{30} \entry {symbol table}{45} \entry {symbol table, examining with \code {nm}}{106} \entry {syntax error}{111} \entry {system libraries}{15} \entry {system libraries, location of}{15, 21, 77} \entry {system-specific predefined macros}{40} \entry {SYSV, System V executable format}{105} \initial {T} \entry {\option {t} option, archive table of contents}{94} \entry {tab, in makefiles}{14} \entry {table of contents, in \code {ar} archive}{94} \entry {table of contents, overflow error on AIX}{77} \entry {target, in makefile}{13} \entry {\code {tcsh}, limit command}{47} \entry {templates, explicit instantiation}{70} \entry {templates, \code {export} keyword}{71} \entry {templates, in C++}{66} \entry {templates, inclusion compilation model}{68} \entry {temporary files, keeping}{43} \entry {temporary files, written to \file {/tmp}}{16} \entry {termination, abnormal (\code {core dumped})}{45} \entry {threads, on AIX}{77} \entry {Thumb, alternative code format on ARM}{77} \entry {\code {time} command, measuring run-time}{58} \entry {TOC overflow error, on AIX}{77} \entry {tools, compiler-related}{93} \entry {tradeoffs, between speed and space in optimization}{54} \entry {Traditional C (K&R), warnings of different behavior}{37} \entry {translators, from C++ to C, compared with \code {g++}}{63} \entry {troubleshooting options}{85} \entry {\option {tune} machine-specific option}{73} \entry {type conversions, warning of}{34} \entry {\code {typeof}, GNU C extension keyword}{29} \initial {U} \entry {\command {ulimit} command}{46, 90} \entry {UltraSPARC, 32-bit mode vs 64-bit mode,}{76} \entry {undeclared identifier error for C library, when using \option {-ansi} option}{29} \entry {undeclared variable}{110} \entry {undefined macro, compared with empty macro}{42} \entry {undefined reference error}{16, 17, 119} \entry {undefined reference error for \code {__gxx_personality_v0}}{64} \entry {undefined reference to 'main'}{120} \entry {undefined reference to C++ function, due to linking with \code {gcc}}{64} \entry {underflow, floating-point arithmetic}{78} \entry {underflow, on DEC Alpha}{75} \entry {uninitialized pointer}{120} \entry {uninitialized variable, warning of}{60} \entry {\code {unix}, GNU C extension keyword}{29} \entry {unknown escape sequence}{115} \entry {unoptimized code (\option {-O0})}{56} \entry {unrolling, of loops (optimization)}{54, 57} \entry {unsigned bitfield option}{83} \entry {unsigned \code {char} option}{80} \entry {unsigned integer, casting}{35} \entry {unsigned variable converted to signed, warning of}{34} \entry {unterminated string or character constant}{112} \entry {unused parameter warning}{117} \entry {unused variable warning}{32, 117} \entry {updated object files, relinking}{12} \entry {updated source files, recompiling}{13} \entry {Using GCC (Reference Manual)}{125} \initial {V} \entry {\option {v} option, verbose compilation}{85} \entry {value, of macro}{40} \entry {variable shadowing}{35} \entry {variable, warning of uninitialized use}{60} \entry {variable-size arrays}{30} \entry {variables, in make}{14} \entry {\code {vax}, GNU C extension keyword}{29} \entry {verbose compilation, \option {-v} option}{86} \entry {verbose help option}{85} \entry {version number of GCC, displaying}{85} \entry {virtual memory usage, limiting}{90} \entry {void \code {return}, incorrect use of}{33} \initial {W} \entry {\option {W} option, enable additional warnings}{34} \entry {\option {Wall} option, enable common warnings}{7} \entry {warning option, \option {-W} additional warnings}{34} \entry {warning options, \option {-Wall}}{7} \entry {warning options, additional}{33} \entry {warning options, in detail}{32} \entry {warning, format with different type arg}{8} \entry {warnings, additional with \option {-W}}{34} \entry {warnings, and optimization}{60} \entry {warnings, promoting to errors}{37} \entry {\option {Wcast-qual} option, warn about casts removing qualifiers}{36} \entry {\option {Wcomment} option, warn about nested comments}{32} \entry {\option {Wconversion} option, warn about type conversions}{34} \entry {\option {Weffc++} option}{65} \entry {\option {Werror} option, convert warnings to errors}{37} \entry {\option {Wimplicit} option, warn about missing declarations}{32} \entry {\option {Wold-style-cast} option}{65} \entry {word-ordering, endianness}{105} \entry {word-size, determined from executable file}{105} \entry {word-size, on UltraSPARC}{76} \entry {\option {Wreturn-type} option, warn about incorrect return types}{33} \entry {writable string constants, disabling}{37} \entry {\option {Wshadow} option, warn about shadowed variables}{35} \entry {\option {Wtraditional} option, warn about traditional C}{37} \entry {\option {Wuninitialized} option, warn about uninitialized variables}{60} \entry {\option {Wunused} option, unused variable warning}{32} \entry {\option {Wwrite-strings} option, warning for modified string constants}{37} \initial {X} \entry {x86, floating-point arithmetic}{78} \entry {x86, platform-specific options}{73} \entry {XL compilers, compatibility on AIX}{77} \entry {XOPEN extensions, GNU C Library}{30} \initial {Z} \entry {zero, division by}{75} \entry {zero, from underflow on DEC Alpha}{75}