3ed1b4ce7c
All files are supposed to end with a newline, fix that. ChangeLog: * doc/bsd.rst: Add trailing newline. * doc/contrib.rst: Add trailing newline. * doc/contribute.rst: Add trailing newline. * doc/cppdiropts.rst: Add trailing newline. * doc/cppenv.rst: Add trailing newline. * doc/cppopts.rst: Add trailing newline. * doc/cppwarnopts.rst: Add trailing newline. * doc/funding.rst: Add trailing newline. * doc/gnu.rst: Add trailing newline. * doc/gnu_free_documentation_license.rst: Add trailing newline. * doc/gpl-3.0.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/lgpl-2.1.rst: Add trailing newline. * doc/md.rst: Add trailing newline. gcc/d/ChangeLog: * doc/copyright.rst: Add trailing newline. * doc/general-public-license-3.rst: Add trailing newline. * doc/gnu-free-documentation-license.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/invoking-gdc.rst: Add trailing newline. * doc/invoking-gdc/code-generation.rst: Add trailing newline. * doc/invoking-gdc/developer-options.rst: Add trailing newline. * doc/invoking-gdc/input-and-output-files.rst: Add trailing newline. * doc/invoking-gdc/options-for-directory-search.rst: Add trailing newline. * doc/invoking-gdc/options-for-linking.rst: Add trailing newline. * doc/invoking-gdc/runtime-options.rst: Add trailing newline. * doc/invoking-gdc/warnings.rst: Add trailing newline. gcc/ChangeLog: * doc/cpp/character-sets.rst: Add trailing newline. * doc/cpp/conditional-syntax.rst: Add trailing newline. * doc/cpp/conditional-uses.rst: Add trailing newline. * doc/cpp/conditionals.rst: Add trailing newline. * doc/cpp/copyright.rst: Add trailing newline. * doc/cpp/deleted-code.rst: Add trailing newline. * doc/cpp/diagnostics.rst: Add trailing newline. * doc/cpp/environment-variables.rst: Add trailing newline. * doc/cpp/gnu-free-documentation-license.rst: Add trailing newline. * doc/cpp/header-files.rst: Add trailing newline. * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: Add trailing newline. * doc/cpp/header-files/computed-includes.rst: Add trailing newline. * doc/cpp/header-files/include-operation.rst: Add trailing newline. * doc/cpp/header-files/include-syntax.rst: Add trailing newline. * doc/cpp/header-files/once-only-headers.rst: Add trailing newline. * doc/cpp/header-files/search-path.rst: Add trailing newline. * doc/cpp/header-files/system-headers.rst: Add trailing newline. * doc/cpp/header-files/wrapper-headers.rst: Add trailing newline. * doc/cpp/implementation-defined-behavior.rst: Add trailing newline. * doc/cpp/implementation-details.rst: Add trailing newline. * doc/cpp/implementation-limits.rst: Add trailing newline. * doc/cpp/index.rst: Add trailing newline. * doc/cpp/indices-and-tables.rst: Add trailing newline. * doc/cpp/initial-processing.rst: Add trailing newline. * doc/cpp/invocation.rst: Add trailing newline. * doc/cpp/line-control.rst: Add trailing newline. * doc/cpp/macros.rst: Add trailing newline. * doc/cpp/macros/concatenation.rst: Add trailing newline. * doc/cpp/macros/directives-within-macro-arguments.rst: Add trailing newline. * doc/cpp/macros/function-like-macros.rst: Add trailing newline. * doc/cpp/macros/macro-arguments.rst: Add trailing newline. * doc/cpp/macros/macro-pitfalls.rst: Add trailing newline. * doc/cpp/macros/object-like-macros.rst: Add trailing newline. * doc/cpp/macros/predefined-macros.rst: Add trailing newline. * doc/cpp/macros/stringizing.rst: Add trailing newline. * doc/cpp/macros/undefining-and-redefining-macros.rst: Add trailing newline. * doc/cpp/macros/variadic-macros.rst: Add trailing newline. * doc/cpp/obsolete-features.rst: Add trailing newline. * doc/cpp/other-directives.rst: Add trailing newline. * doc/cpp/overview.rst: Add trailing newline. * doc/cpp/pragmas.rst: Add trailing newline. * doc/cpp/preprocessor-output.rst: Add trailing newline. * doc/cpp/the-preprocessing-language.rst: Add trailing newline. * doc/cpp/tokenization.rst: Add trailing newline. * doc/cpp/traditional-lexical-analysis.rst: Add trailing newline. * doc/cpp/traditional-macros.rst: Add trailing newline. * doc/cpp/traditional-miscellany.rst: Add trailing newline. * doc/cpp/traditional-mode.rst: Add trailing newline. * doc/cpp/traditional-warnings.rst: Add trailing newline. * doc/cppinternals/copyright.rst: Add trailing newline. * doc/cppinternals/cppinternals.rst: Add trailing newline. * doc/cppinternals/cpplib.rst: Add trailing newline. * doc/cppinternals/files.rst: Add trailing newline. * doc/cppinternals/index.rst: Add trailing newline. * doc/cppinternals/indices-and-tables.rst: Add trailing newline. * doc/cppinternals/internal-representation-of-macros.rst: Add trailing newline. * doc/cppinternals/just-which-line-number-anyway.rst: Add trailing newline. * doc/cppinternals/lexing-a-line.rst: Add trailing newline. * doc/cppinternals/lexing-a-token.rst: Add trailing newline. * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: Add trailing newline. * doc/cppinternals/macro-expansion-overview.rst: Add trailing newline. * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: Add trailing newline. * doc/cppinternals/multiple-include-optimization.rst: Add trailing newline. * doc/cppinternals/overview.rst: Add trailing newline. * doc/cppinternals/representation-of-line-numbers.rst: Add trailing newline. * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: Add trailing newline. * doc/gcc/binary-compatibility.rst: Add trailing newline. * doc/gcc/c++-implementation-defined-behavior.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/architecture.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/characters.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/declarators.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/environment.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/floating-point.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/hints.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/identifiers.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/integers.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/library-functions.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/statements.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: Add trailing newline. * doc/gcc/c-implementation-defined-behavior/translation.rst: Add trailing newline. * doc/gcc/conditionally-supported-behavior.rst: Add trailing newline. * doc/gcc/contributing-to-gcc-development.rst: Add trailing newline. * doc/gcc/contributors-to-gcc.rst: Add trailing newline. * doc/gcc/copyright.rst: Add trailing newline. * doc/gcc/exception-handling.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/type-traits.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: Add trailing newline. * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: Add trailing newline. * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: Add trailing newline. * doc/gcc/funding.rst: Add trailing newline. * doc/gcc/gcc-command-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/compiling-c++-programs.rst: Add trailing newline. * doc/gcc/gcc-command-options/description.rst: Add trailing newline. * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: Add trailing newline. * doc/gcc/gcc-command-options/gcc-developer-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-for-directory-search.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-for-linking.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-that-control-optimization.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: Add trailing newline. * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: Add trailing newline. * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: Add trailing newline. * doc/gcc/gcc-command-options/program-instrumentation-options.rst: Add trailing newline. * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: Add trailing newline. * doc/gcc/gcc-command-options/using-precompiled-headers.rst: Add trailing newline. * doc/gcc/gcc.rst: Add trailing newline. * doc/gcc/gcov-dump.rst: Add trailing newline. * doc/gcc/gcov-tool.rst: Add trailing newline. * doc/gcc/gcov.rst: Add trailing newline. * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: Add trailing newline. * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: Add trailing newline. * doc/gcc/gcov/introduction-to-gcov.rst: Add trailing newline. * doc/gcc/gcov/invoking-gcov.rst: Add trailing newline. * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: Add trailing newline. * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: Add trailing newline. * doc/gcc/general-public-license-3.rst: Add trailing newline. * doc/gcc/gnu-free-documentation-license.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/exceptions.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/garbage-collection.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/synchronization.rst: Add trailing newline. * doc/gcc/gnu-objective-c-features/type-encoding.rst: Add trailing newline. * doc/gcc/gnu.rst: Add trailing newline. * doc/gcc/have-you-found-a-bug.rst: Add trailing newline. * doc/gcc/how-and-where-to-report-bugs.rst: Add trailing newline. * doc/gcc/how-to-get-help-with-gcc.rst: Add trailing newline. * doc/gcc/index.rst: Add trailing newline. * doc/gcc/indices-and-tables.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: Add trailing newline. * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc/c-language.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc/d-language.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc/go-language.rst: Add trailing newline. * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: Add trailing newline. * doc/gcc/lto-dump.rst: Add trailing newline. * doc/gcc/programming-languages-supported-by-gcc.rst: Add trailing newline. * doc/gcc/reporting-bugs.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: Add trailing newline. * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: Add trailing newline. * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: Add trailing newline. * doc/gccint/analyzer-internals.rst: Add trailing newline. * doc/gccint/collect2.rst: Add trailing newline. * doc/gccint/contributing-to-gcc-development.rst: Add trailing newline. * doc/gccint/contributors-to-gcc.rst: Add trailing newline. * doc/gccint/control-flow-graph.rst: Add trailing newline. * doc/gccint/control-flow-graph/basic-blocks.rst: Add trailing newline. * doc/gccint/control-flow-graph/edges.rst: Add trailing newline. * doc/gccint/control-flow-graph/liveness-information.rst: Add trailing newline. * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: Add trailing newline. * doc/gccint/control-flow-graph/profile-information.rst: Add trailing newline. * doc/gccint/copyright.rst: Add trailing newline. * doc/gccint/debugging-the-analyzer.rst: Add trailing newline. * doc/gccint/funding.rst: Add trailing newline. * doc/gccint/gcc-and-portability.rst: Add trailing newline. * doc/gccint/general-public-license-3.rst: Add trailing newline. * doc/gccint/generic.rst: Add trailing newline. * doc/gccint/generic/attributes-in-trees.rst: Add trailing newline. * doc/gccint/generic/c-and-c++-trees.rst: Add trailing newline. * doc/gccint/generic/declarations.rst: Add trailing newline. * doc/gccint/generic/deficiencies.rst: Add trailing newline. * doc/gccint/generic/expressions.rst: Add trailing newline. * doc/gccint/generic/functions.rst: Add trailing newline. * doc/gccint/generic/language-dependent-trees.rst: Add trailing newline. * doc/gccint/generic/overview.rst: Add trailing newline. * doc/gccint/generic/statements.rst: Add trailing newline. * doc/gccint/generic/types.rst: Add trailing newline. * doc/gccint/gimple-api.rst: Add trailing newline. * doc/gccint/gimple.rst: Add trailing newline. * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: Add trailing newline. * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: Add trailing newline. * doc/gccint/gimple/exception-handling.rst: Add trailing newline. * doc/gccint/gimple/gimple-instruction-set.rst: Add trailing newline. * doc/gccint/gimple/gimple-sequences.rst: Add trailing newline. * doc/gccint/gimple/manipulating-gimple-statements.rst: Add trailing newline. * doc/gccint/gimple/operands.rst: Add trailing newline. * doc/gccint/gimple/sequence-iterators.rst: Add trailing newline. * doc/gccint/gimple/statement-and-operand-traversals.rst: Add trailing newline. * doc/gccint/gimple/temporaries.rst: Add trailing newline. * doc/gccint/gimple/tuple-representation.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: Add trailing newline. * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: Add trailing newline. * doc/gccint/gnu-free-documentation-license.rst: Add trailing newline. * doc/gccint/guidelines-for-diagnostics.rst: Add trailing newline. * doc/gccint/guidelines-for-options.rst: Add trailing newline. * doc/gccint/host-common.rst: Add trailing newline. * doc/gccint/host-configuration.rst: Add trailing newline. * doc/gccint/host-filesystem.rst: Add trailing newline. * doc/gccint/host-makefile-fragments.rst: Add trailing newline. * doc/gccint/host-misc.rst: Add trailing newline. * doc/gccint/index.rst: Add trailing newline. * doc/gccint/indices-and-tables.rst: Add trailing newline. * doc/gccint/interfacing-to-gcc-output.rst: Add trailing newline. * doc/gccint/introduction.rst: Add trailing newline. * doc/gccint/language-front-ends-in-gcc.rst: Add trailing newline. * doc/gccint/link-time-optimization.rst: Add trailing newline. * doc/gccint/link-time-optimization/design-overview.rst: Add trailing newline. * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: Add trailing newline. * doc/gccint/link-time-optimization/lto-file-sections.rst: Add trailing newline. * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: Add trailing newline. * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: Add trailing newline. * doc/gccint/machine-descriptions.rst: Add trailing newline. * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: Add trailing newline. * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: Add trailing newline. * doc/gccint/machine-descriptions/conditional-execution.rst: Add trailing newline. * doc/gccint/machine-descriptions/constant-definitions.rst: Add trailing newline. * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: Add trailing newline. * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: Add trailing newline. * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: Add trailing newline. * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: Add trailing newline. * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: Add trailing newline. * doc/gccint/machine-descriptions/example-of-defineinsn.rst: Add trailing newline. * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: Add trailing newline. * doc/gccint/machine-descriptions/instruction-attributes.rst: Add trailing newline. * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: Add trailing newline. * doc/gccint/machine-descriptions/iterators.rst: Add trailing newline. * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: Add trailing newline. * doc/gccint/machine-descriptions/operand-constraints.rst: Add trailing newline. * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: Add trailing newline. * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: Add trailing newline. * doc/gccint/machine-descriptions/predicates.rst: Add trailing newline. * doc/gccint/machine-descriptions/rtl-template.rst: Add trailing newline. * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: Add trailing newline. * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: Add trailing newline. * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: Add trailing newline. * doc/gccint/makefile-fragments.rst: Add trailing newline. * doc/gccint/match-and-simplify.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: Add trailing newline. * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: Add trailing newline. * doc/gccint/option-file-format.rst: Add trailing newline. * doc/gccint/option-properties.rst: Add trailing newline. * doc/gccint/option-specification-files.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: Add trailing newline. * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: Add trailing newline. * doc/gccint/plugins.rst: Add trailing newline. * doc/gccint/plugins/building-gcc-plugins.rst: Add trailing newline. * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: Add trailing newline. * doc/gccint/plugins/giving-information-about-a-plugin.rst: Add trailing newline. * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: Add trailing newline. * doc/gccint/plugins/interacting-with-the-pass-manager.rst: Add trailing newline. * doc/gccint/plugins/keeping-track-of-available-passes.rst: Add trailing newline. * doc/gccint/plugins/loading-plugins.rst: Add trailing newline. * doc/gccint/plugins/plugin-api.rst: Add trailing newline. * doc/gccint/plugins/recording-information-about-pass-execution.rst: Add trailing newline. * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: Add trailing newline. * doc/gccint/rtl-representation.rst: Add trailing newline. * doc/gccint/rtl-representation/access-to-operands.rst: Add trailing newline. * doc/gccint/rtl-representation/access-to-special-operands.rst: Add trailing newline. * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: Add trailing newline. * doc/gccint/rtl-representation/bit-fields.rst: Add trailing newline. * doc/gccint/rtl-representation/comparison-operations.rst: Add trailing newline. * doc/gccint/rtl-representation/constant-expression-types.rst: Add trailing newline. * doc/gccint/rtl-representation/conversions.rst: Add trailing newline. * doc/gccint/rtl-representation/declarations.rst: Add trailing newline. * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: Add trailing newline. * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: Add trailing newline. * doc/gccint/rtl-representation/insns.rst: Add trailing newline. * doc/gccint/rtl-representation/machine-modes.rst: Add trailing newline. * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: Add trailing newline. * doc/gccint/rtl-representation/reading-rtl.rst: Add trailing newline. * doc/gccint/rtl-representation/registers-and-memory.rst: Add trailing newline. * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: Add trailing newline. * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: Add trailing newline. * doc/gccint/rtl-representation/rtl-object-types.rst: Add trailing newline. * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: Add trailing newline. * doc/gccint/rtl-representation/side-effect-expressions.rst: Add trailing newline. * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: Add trailing newline. * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: Add trailing newline. * doc/gccint/rtl-representation/vector-operations.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: Add trailing newline. * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: Add trailing newline. * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: Add trailing newline. * doc/gccint/standard-header-file-directories.rst: Add trailing newline. * doc/gccint/static-analyzer.rst: Add trailing newline. * doc/gccint/target-macros.rst: Add trailing newline. * doc/gccint/target-macros/controlling-debugging-information-format.rst: Add trailing newline. * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Add trailing newline. * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: Add trailing newline. * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: Add trailing newline. * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: Add trailing newline. * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: Add trailing newline. * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Add trailing newline. * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Add trailing newline. * doc/gccint/target-macros/position-independent-code.rst: Add trailing newline. * doc/gccint/target-macros/register-usage.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: Add trailing newline. * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: Add trailing newline. * doc/gccint/target-macros/support-for-nested-functions.rst: Add trailing newline. * doc/gccint/target-macros/the-global-targetm-variable.rst: Add trailing newline. * doc/gccint/target-makefile-fragments.rst: Add trailing newline. * doc/gccint/testsuites.rst: Add trailing newline. * doc/gccint/testsuites/ada-language-testsuites.rst: Add trailing newline. * doc/gccint/testsuites/c-language-testsuites.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: Add trailing newline. * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: Add trailing newline. * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-gcov.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: Add trailing newline. * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: Add trailing newline. * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: Add trailing newline. * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: Add trailing newline. * doc/gccint/the-language.rst: Add trailing newline. * doc/gccint/user-experience-guidelines.rst: Add trailing newline. * doc/install/binaries.rst: Add trailing newline. * doc/install/building.rst: Add trailing newline. * doc/install/building/building-a-cross-compiler.rst: Add trailing newline. * doc/install/building/building-a-native-compiler.rst: Add trailing newline. * doc/install/building/building-in-parallel.rst: Add trailing newline. * doc/install/building/building-the-ada-compiler.rst: Add trailing newline. * doc/install/building/building-the-d-compiler.rst: Add trailing newline. * doc/install/building/building-with-profile-feedback.rst: Add trailing newline. * doc/install/configuration.rst: Add trailing newline. * doc/install/copyright.rst: Add trailing newline. * doc/install/downloading-gcc.rst: Add trailing newline. * doc/install/final-installation.rst: Add trailing newline. * doc/install/gnu-free-documentation-license.rst: Add trailing newline. * doc/install/host-target-specific-installation-notes-for-gcc.rst: Add trailing newline. * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: Add trailing newline. * doc/install/how-to-interpret-test-results.rst: Add trailing newline. * doc/install/index.rst: Add trailing newline. * doc/install/indices-and-tables.rst: Add trailing newline. * doc/install/installing-gcc.rst: Add trailing newline. * doc/install/passing-options-and-running-multiple-testsuites.rst: Add trailing newline. * doc/install/prerequisites.rst: Add trailing newline. * doc/install/submitting-test-results.rst: Add trailing newline. * doc/install/testing.rst: Add trailing newline. gcc/fortran/ChangeLog: * doc/gfc-internals/code-that-interacts-with-the-user.rst: Add trailing newline. * doc/gfc-internals/command-line-options.rst: Add trailing newline. * doc/gfc-internals/copyright.rst: Add trailing newline. * doc/gfc-internals/error-handling.rst: Add trailing newline. * doc/gfc-internals/frontend-data-structures.rst: Add trailing newline. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages.rst: Add trailing newline. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/accessing-declarations.rst: Add trailing newline. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/basic-data-structures.rst: Add trailing newline. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/converting-expressions-to-tree.rst: Add trailing newline. * doc/gfc-internals/generating-the-intermediate-language-for-later-stages/translating-statements.rst: Add trailing newline. * doc/gfc-internals/gfccode.rst: Add trailing newline. * doc/gfc-internals/gfcexpr.rst: Add trailing newline. * doc/gfc-internals/gnu-free-documentation-license.rst: Add trailing newline. * doc/gfc-internals/index.rst: Add trailing newline. * doc/gfc-internals/indices-and-tables.rst: Add trailing newline. * doc/gfc-internals/internals-of-fortran-2003-oop-features.rst: Add trailing newline. * doc/gfc-internals/introduction.rst: Add trailing newline. * doc/gfc-internals/symbol-versioning.rst: Add trailing newline. * doc/gfc-internals/the-libgfortran-runtime-library.rst: Add trailing newline. * doc/gfc-internals/type-bound-operators.rst: Add trailing newline. * doc/gfc-internals/type-bound-procedures.rst: Add trailing newline. * doc/gfortran/about-gnu-fortran.rst: Add trailing newline. * doc/gfortran/coarray-programming.rst: Add trailing newline. * doc/gfortran/compiler-characteristics.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/asynchronous-i-o.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/data-consistency-and-durability.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/evaluation-of-logical-expressions.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/file-format-of-unformatted-sequential-files.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/file-operations-on-symbolic-links.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/files-opened-without-an-explicit-action=-specifier.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/internal-representation-of-logical-variables.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/kind-type-parameters.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/max-and-min-intrinsics-with-real-nan-arguments.rst: Add trailing newline. * doc/gfortran/compiler-characteristics/thread-safety-of-the-runtime-library.rst: Add trailing newline. * doc/gfortran/contributing.rst: Add trailing newline. * doc/gfortran/contributors-to-gnu-fortran.rst: Add trailing newline. * doc/gfortran/copyright.rst: Add trailing newline. * doc/gfortran/extensions-implemented-in-gnu-fortran.rst: Add trailing newline. * doc/gfortran/extensions-not-implemented-in-gnu-fortran.rst: Add trailing newline. * doc/gfortran/extensions.rst: Add trailing newline. * doc/gfortran/function-abi-documentation.rst: Add trailing newline. * doc/gfortran/funding.rst: Add trailing newline. * doc/gfortran/general-public-license-3.rst: Add trailing newline. * doc/gfortran/gnu-fortran-and-gcc.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/description.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/enable-and-customize-preprocessing.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/environment-variables-affecting-gfortran.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/influencing-runtime-behavior.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/influencing-the-linking-step.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/option-summary.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-controlling-fortran-dialect.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-for-code-generation-conventions.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-for-debugging-your-program-or-gnu-fortran.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-for-directory-search.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-for-interoperability-with-other-languages.rst: Add trailing newline. * doc/gfortran/gnu-fortran-command-options/options-to-request-or-suppress-errors-and-warnings.rst: Add trailing newline. * doc/gfortran/gnu-fortran-compiler-directives.rst: Add trailing newline. * doc/gfortran/gnu-free-documentation-license.rst: Add trailing newline. * doc/gfortran/index.rst: Add trailing newline. * doc/gfortran/indices-and-tables.rst: Add trailing newline. * doc/gfortran/interoperability-with-c.rst: Add trailing newline. * doc/gfortran/intrinsic-modules.rst: Add trailing newline. * doc/gfortran/intrinsic-modules/ieee-modules-ieeeexceptions-ieeearithmetic-and-ieeefeatures.rst: Add trailing newline. * doc/gfortran/intrinsic-modules/isocbinding.rst: Add trailing newline. * doc/gfortran/intrinsic-modules/isofortranenv.rst: Add trailing newline. * doc/gfortran/intrinsic-modules/openacc-module-openacc.rst: Add trailing newline. * doc/gfortran/intrinsic-modules/openmp-modules-omplib-and-omplibkinds.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/abort.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/abs.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/access.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/achar.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/acos.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/acosd.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/acosh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/adjustl.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/adjustr.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/aimag.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/alarm.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/all.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/allocated.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/and.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/any.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/asin.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/asind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/asinh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/associated.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atan.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atan2.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atan2d.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atanh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicadd.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomiccas.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicdefine.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicfetchadd.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicfetchand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicfetchor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicfetchxor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicref.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/atomicxor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/backtrace.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/besselj0.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/besselj1.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/besseljn.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/bessely0.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/bessely1.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/besselyn.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/bge.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/bgt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/bitsize.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ble.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/blt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/btest.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cassociated.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ceiling.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cfpointer.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cfprocpointer.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cfunloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/chdir.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/chmod.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cmplx.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cobroadcast.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/comax.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/comin.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/commandargumentcount.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/compileroptions.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/compilerversion.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/complex.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/conjg.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/coreduce.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cos.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cosd.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cosh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cosum.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cotan.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cotand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/count.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cputime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/cshift.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/csizeof.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ctime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dateandtime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dble.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dcmplx.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/digits.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dim.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dotproduct.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dprod.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dreal.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dshiftl.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dshiftr.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/dtime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/eoshift.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/epsilon.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/erf.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/erfc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/erfcscaled.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/etime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/eventquery.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/executecommandline.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/exit.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/exp.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/exponent.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/extendstypeof.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fdate.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fget.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fgetc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/findloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/floor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/flush.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fnum.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fput.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fputc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fraction.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/free.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fseek.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/fstat.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ftell.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/gamma.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/gerror.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getarg.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getcommand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getcommandargument.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getcwd.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getenv.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getenvironmentvariable.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getgid.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getlog.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getpid.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/getuid.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/gmtime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/hostnm.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/huge.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/hypot.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iachar.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iall.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iany.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iargc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ibclr.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ibits.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ibset.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ichar.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/idate.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ieor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ierrno.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/imageindex.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/index.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/int2.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/int8.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/introduction-to-intrinsic-procedures.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ior.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iparity.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/irand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/isatty.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/iscontiguous.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ishft.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ishftc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/isiostatend.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/isiostateor.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/isnan.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/itime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/kill.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/kind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lbound.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lcobound.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/leadz.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/len.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lentrim.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lge.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lgt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/link.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lle.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/llt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lnblnk.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/loc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/log.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/log10.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/loggamma.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/logical.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lshift.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/lstat.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ltime.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/malloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/maskl.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/maskr.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/matmul.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/max.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/maxexponent.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/maxloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/maxval.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/mclock.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/mclock8.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/merge.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/mergebits.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/min.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/minexponent.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/minloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/minval.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/mod.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/modulo.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/movealloc.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/mvbits.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/nearest.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/newline.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/nint.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/norm2.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/not.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/null.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/numimages.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/or.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/pack.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/parity.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/perror.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/popcnt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/poppar.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/precision.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/present.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/product.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/radix.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ran.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/rand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/randominit.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/randomnumber.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/randomseed.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/range.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/rank.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/rename.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/repeat.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/reshape.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/rrspacing.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/rshift.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sametypeas.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/scale.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/scan.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/secnds.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/second.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/selectedcharkind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/selectedintkind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/selectedrealkind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/setexponent.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/shape.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/shifta.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/shiftl.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/shiftr.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sign.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/signal.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sin.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sind.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sinh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/size.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sizeof.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sleep.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/spacing.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/spread.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sqrt.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/srand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/stat.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/storagesize.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/sum.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/symlnk.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/system.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/systemclock.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/tan.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/tand.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/tanh.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/thisimage.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/time.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/time8.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/tiny.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/trailz.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/transfer.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/transpose.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/trim.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ttynam.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ubound.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/ucobound.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/umask.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/unlink.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/unpack.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/verify.rst: Add trailing newline. * doc/gfortran/intrinsic-procedures/xor.rst: Add trailing newline. * doc/gfortran/introduction.rst: Add trailing newline. * doc/gfortran/mixed-language-programming.rst: Add trailing newline. * doc/gfortran/naming-and-argument-passing-conventions.rst: Add trailing newline. * doc/gfortran/non-fortran-main-program.rst: Add trailing newline. * doc/gfortran/projects.rst: Add trailing newline. * doc/gfortran/runtime.rst: Add trailing newline. * doc/gfortran/runtime/gfortranconvertunit.rst: Add trailing newline. * doc/gfortran/runtime/gfortranerrorbacktrace.rst: Add trailing newline. * doc/gfortran/runtime/gfortranformattedbuffersize.rst: Add trailing newline. * doc/gfortran/runtime/gfortranlistseparator.rst: Add trailing newline. * doc/gfortran/runtime/gfortranoptionalplus.rst: Add trailing newline. * doc/gfortran/runtime/gfortranshowlocus.rst: Add trailing newline. * doc/gfortran/runtime/gfortranstderrunit.rst: Add trailing newline. * doc/gfortran/runtime/gfortranstdinunit.rst: Add trailing newline. * doc/gfortran/runtime/gfortranstdoutunit.rst: Add trailing newline. * doc/gfortran/runtime/gfortranunbufferedall.rst: Add trailing newline. * doc/gfortran/runtime/gfortranunbufferedpreconnected.rst: Add trailing newline. * doc/gfortran/runtime/gfortranunformattedbuffersize.rst: Add trailing newline. * doc/gfortran/runtime/tmpdir.rst: Add trailing newline. * doc/gfortran/standards.rst: Add trailing newline. * doc/gfortran/type-and-enum-abi-documentation.rst: Add trailing newline. gcc/go/ChangeLog: * doc/c-interoperability.rst: Add trailing newline. * doc/c-type-interoperability.rst: Add trailing newline. * doc/compiler-directives.rst: Add trailing newline. * doc/copyright.rst: Add trailing newline. * doc/function-names.rst: Add trailing newline. * doc/general-public-license-3.rst: Add trailing newline. * doc/gnu-free-documentation-license.rst: Add trailing newline. * doc/import-and-export.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/introduction.rst: Add trailing newline. * doc/invoking-gccgo.rst: Add trailing newline. libgomp/ChangeLog: * doc/amd-radeon-gcn.rst: Add trailing newline. * doc/copyright.rst: Add trailing newline. * doc/cuda-streams-usage.rst: Add trailing newline. * doc/enabling-openacc.rst: Add trailing newline. * doc/enabling-openmp.rst: Add trailing newline. * doc/first-invocation-nvidia-cublas-library-api.rst: Add trailing newline. * doc/first-invocation-openacc-library-api.rst: Add trailing newline. * doc/funding.rst: Add trailing newline. * doc/general-public-license-3.rst: Add trailing newline. * doc/gnu-free-documentation-license.rst: Add trailing newline. * doc/implementation-status-and-implementation-defined-behavior.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/introduction.rst: Add trailing newline. * doc/memory-allocation-with-libmemkind.rst: Add trailing newline. * doc/nvptx.rst: Add trailing newline. * doc/offload-target-specifics.rst: Add trailing newline. * doc/openacc-environment-variables.rst: Add trailing newline. * doc/openacc-environment-variables/accdevicenum.rst: Add trailing newline. * doc/openacc-environment-variables/accdevicetype.rst: Add trailing newline. * doc/openacc-environment-variables/accproflib.rst: Add trailing newline. * doc/openacc-environment-variables/gccaccnotify.rst: Add trailing newline. * doc/openacc-introduction.rst: Add trailing newline. * doc/openacc-library-and-environment-variables.rst: Add trailing newline. * doc/openacc-library-interoperability.rst: Add trailing newline. * doc/openacc-profiling-interface.rst: Add trailing newline. * doc/openacc-runtime-library-routines.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accasynctest.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accasynctestall.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accattach.rst: Add trailing newline. * doc/openacc-runtime-library-routines/acccopyin.rst: Add trailing newline. * doc/openacc-runtime-library-routines/acccopyout.rst: Add trailing newline. * doc/openacc-runtime-library-routines/acccreate.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accdelete.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accdetach.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accdeviceptr.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accfree.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetcudastream.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetcurrentcudacontext.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetcurrentcudadevice.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetdevicenum.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetdevicetype.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetnumdevices.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accgetproperty.rst: Add trailing newline. * doc/openacc-runtime-library-routines/acchostptr.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accinit.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accispresent.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accmalloc.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accmapdata.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accmemcpyfromdevice.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accmemcpytodevice.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accondevice.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accpresentorcopyin.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accpresentorcreate.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accproflookup.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accprofregister.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accprofunregister.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accregisterlibrary.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accsetcudastream.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accsetdevicenum.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accsetdevicetype.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accshutdown.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accunmapdata.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accupdatedevice.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accupdateself.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accwait.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accwaitall.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accwaitallasync.rst: Add trailing newline. * doc/openacc-runtime-library-routines/accwaitasync.rst: Add trailing newline. * doc/openmp-context-selectors.rst: Add trailing newline. * doc/openmp-environment-variables.rst: Add trailing newline. * doc/openmp-environment-variables/gompcpuaffinity.rst: Add trailing newline. * doc/openmp-environment-variables/gompdebug.rst: Add trailing newline. * doc/openmp-environment-variables/gomprtemsthreadpools.rst: Add trailing newline. * doc/openmp-environment-variables/gompspincount.rst: Add trailing newline. * doc/openmp-environment-variables/gompstacksize.rst: Add trailing newline. * doc/openmp-environment-variables/ompcancellation.rst: Add trailing newline. * doc/openmp-environment-variables/ompdefaultdevice.rst: Add trailing newline. * doc/openmp-environment-variables/ompdisplayenv.rst: Add trailing newline. * doc/openmp-environment-variables/ompdynamic.rst: Add trailing newline. * doc/openmp-environment-variables/ompmaxactivelevels.rst: Add trailing newline. * doc/openmp-environment-variables/ompmaxtaskpriority.rst: Add trailing newline. * doc/openmp-environment-variables/ompnested.rst: Add trailing newline. * doc/openmp-environment-variables/ompnumteams.rst: Add trailing newline. * doc/openmp-environment-variables/ompnumthreads.rst: Add trailing newline. * doc/openmp-environment-variables/ompplaces.rst: Add trailing newline. * doc/openmp-environment-variables/ompprocbind.rst: Add trailing newline. * doc/openmp-environment-variables/ompschedule.rst: Add trailing newline. * doc/openmp-environment-variables/ompstacksize.rst: Add trailing newline. * doc/openmp-environment-variables/omptargetoffload.rst: Add trailing newline. * doc/openmp-environment-variables/ompteamsthreadlimit.rst: Add trailing newline. * doc/openmp-environment-variables/ompthreadlimit.rst: Add trailing newline. * doc/openmp-environment-variables/ompwaitpolicy.rst: Add trailing newline. * doc/openmp-implementation-specifics.rst: Add trailing newline. * doc/openmp-implementation-status.rst: Add trailing newline. * doc/openmp-implementation-status/openmp-45.rst: Add trailing newline. * doc/openmp-implementation-status/openmp-50.rst: Add trailing newline. * doc/openmp-implementation-status/openmp-51.rst: Add trailing newline. * doc/openmp-implementation-status/openmp-52.rst: Add trailing newline. * doc/openmp-runtime-library-routines.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompdestroylock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompdestroynestlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompfulfillevent.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetactivelevel.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetancestorthreadnum.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetcancellation.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetdefaultdevice.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetdevicenum.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetdynamic.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetinitialdevice.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetlevel.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetmaxactivelevels.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetmaxtaskpriority.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetmaxteams.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetmaxthreads.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetnested.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetnumdevices.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetnumprocs.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetnumteams.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetnumthreads.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetprocbind.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetschedule.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetsupportedactivelevels.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetteamnum.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetteamsize.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetteamsthreadlimit.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetthreadlimit.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetthreadnum.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetwtick.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompgetwtime.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompinfinal.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompinitlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompinitnestlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompinparallel.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompisinitialdevice.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetdefaultdevice.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetdynamic.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetmaxactivelevels.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetnested.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetnestlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetnumteams.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetnumthreads.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetschedule.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompsetteamsthreadlimit.rst: Add trailing newline. * doc/openmp-runtime-library-routines/omptestlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/omptestnestlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompunsetlock.rst: Add trailing newline. * doc/openmp-runtime-library-routines/ompunsetnestlock.rst: Add trailing newline. * doc/reporting-bugs.rst: Add trailing newline. * doc/the-libgomp-abi.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-atomic-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-barrier-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-critical-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-flush-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-for-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-master-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-openaccs-parallel-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-ordered-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-parallel-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-private-clause.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-reduction-clause.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-sections-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-single-construct.rst: Add trailing newline. * doc/the-libgomp-abi/implementing-threadprivate-construct.rst: Add trailing newline. libiberty/ChangeLog: * doc/bsd.rst: Add trailing newline. * doc/copyright.rst: Add trailing newline. * doc/extensions.rst: Add trailing newline. * doc/function-variable-and-macro-listing.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/introduction.rst: Add trailing newline. * doc/lesser-general-public-license-2.1.rst: Add trailing newline. * doc/overview.rst: Add trailing newline. * doc/replacement-functions.rst: Add trailing newline. * doc/supplemental-functions.rst: Add trailing newline. * doc/using.rst: Add trailing newline. libitm/ChangeLog: * doc/c-c++-language-constructs-for-tm.rst: Add trailing newline. * doc/copyright.rst: Add trailing newline. * doc/enabling-libitm.rst: Add trailing newline. * doc/gnu-free-documentation-license.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/internals.rst: Add trailing newline. * doc/locking-conventions.rst: Add trailing newline. * doc/nesting-flat-vs-closed.rst: Add trailing newline. * doc/the-libitm-abi.rst: Add trailing newline. * doc/the-libitm-abi/function-list.rst: Add trailing newline. * doc/the-libitm-abi/future-enhancements-to-the-abi.rst: Add trailing newline. * doc/the-libitm-abi/library-design-principles.rst: Add trailing newline. * doc/the-libitm-abi/memory-model.rst: Add trailing newline. * doc/the-libitm-abi/non-objectives.rst: Add trailing newline. * doc/the-libitm-abi/objectives.rst: Add trailing newline. * doc/the-libitm-abi/sample-code.rst: Add trailing newline. * doc/the-libitm-abi/types-and-macros-list.rst: Add trailing newline. * doc/tm-methods-and-method-groups.rst: Add trailing newline. libquadmath/ChangeLog: * doc/copyright.rst: Add trailing newline. * doc/gnu-free-documentation-license.rst: Add trailing newline. * doc/i-o-library-routines.rst: Add trailing newline. * doc/index.rst: Add trailing newline. * doc/indices-and-tables.rst: Add trailing newline. * doc/introduction.rst: Add trailing newline. * doc/math-library-routines.rst: Add trailing newline. * doc/quadmathsnprintf.rst: Add trailing newline. * doc/reporting-bugs.rst: Add trailing newline. * doc/strtoflt128.rst: Add trailing newline. * doc/typedef-and-constants.rst: Add trailing newline.
1858 lines
70 KiB
ReStructuredText
1858 lines
70 KiB
ReStructuredText
..
|
|
Copyright 1988-2022 Free Software Foundation, Inc.
|
|
This is part of the GCC manual.
|
|
For copying conditions, see the copyright.rst file.
|
|
|
|
.. _functions:
|
|
|
|
Function, Variable, and Macro Listing.
|
|
--------------------------------------
|
|
|
|
.. Automatically generated from *.c and others (the comments before
|
|
each entry tell you which file and where in that file). DO NOT EDIT!
|
|
Edit the *.c files, configure with -enable-maintainer-mode,
|
|
run 'make stamp-functions' and gather-docs will build a new copy.
|
|
alloca.c:26
|
|
|
|
.. function:: void* alloca (size_t size)
|
|
|
|
This function allocates memory which will be automatically reclaimed
|
|
after the procedure exits. The ``libiberty`` implementation does not free
|
|
the memory immediately but will do so eventually during subsequent
|
|
calls to this function. Memory is allocated using ``xmalloc`` under
|
|
normal circumstances.
|
|
|
|
The header file :samp:`alloca-conf.h` can be used in conjunction with the
|
|
GNU Autoconf test ``AC_FUNC_ALLOCA`` to test for and properly make
|
|
available this function. The ``AC_FUNC_ALLOCA`` test requires that
|
|
client code use a block of preprocessor code to be safe (see the Autoconf
|
|
manual for more); this header incorporates that logic and more, including
|
|
the possibility of a GCC built-in function.
|
|
|
|
.. asprintf.c:32
|
|
|
|
.. function:: int asprintf (char **resptr, const char *format, ...)
|
|
|
|
Like ``sprintf``, but instead of passing a pointer to a buffer, you
|
|
pass a pointer to a pointer. This function will compute the size of
|
|
the buffer needed, allocate memory with ``malloc``, and store a
|
|
pointer to the allocated memory in ``*resptr``. The value
|
|
returned is the same as ``sprintf`` would return. If memory could
|
|
not be allocated, minus one is returned and ``NULL`` is stored in
|
|
``*resptr``.
|
|
|
|
.. atexit.c:6
|
|
|
|
.. function:: int atexit (void (*f)())
|
|
|
|
Causes function :samp:`{f}` to be called at exit. Returns 0.
|
|
|
|
.. basename.c:6
|
|
|
|
.. function:: char* basename (const char *name)
|
|
|
|
Returns a pointer to the last component of pathname :samp:`{name}`.
|
|
Behavior is undefined if the pathname ends in a directory separator.
|
|
|
|
.. bcmp.c:6
|
|
|
|
.. function:: int bcmp (char *x, char *y, int count)
|
|
|
|
Compares the first :samp:`{count}` bytes of two areas of memory. Returns
|
|
zero if they are the same, nonzero otherwise. Returns zero if
|
|
:samp:`{count}` is zero. A nonzero result only indicates a difference,
|
|
it does not indicate any sorting order (say, by having a positive
|
|
result mean :samp:`{x}` sorts before :samp:`{y}`).
|
|
|
|
.. bcopy.c:3
|
|
|
|
.. function:: void bcopy (char *in, char *out, int length)
|
|
|
|
Copies :samp:`{length}` bytes from memory region :samp:`{in}` to region
|
|
:samp:`{out}`. The use of ``bcopy`` is deprecated in new programs.
|
|
|
|
.. bsearch.c:33
|
|
|
|
.. function:: void* bsearch (const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *))
|
|
|
|
Performs a search over an array of :samp:`{nmemb}` elements pointed to by
|
|
:samp:`{base}` for a member that matches the object pointed to by :samp:`{key}`.
|
|
The size of each member is specified by :samp:`{size}`. The array contents
|
|
should be sorted in ascending order according to the :samp:`{compar}`
|
|
comparison function. This routine should take two arguments pointing to
|
|
the :samp:`{key}` and to an array member, in that order, and should return an
|
|
integer less than, equal to, or greater than zero if the :samp:`{key}` object
|
|
is respectively less than, matching, or greater than the array member.
|
|
|
|
.. bsearch_r.c:33
|
|
|
|
.. function:: void* bsearch_r (const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *arg)
|
|
|
|
Performs a search over an array of :samp:`{nmemb}` elements pointed to by
|
|
:samp:`{base}` for a member that matches the object pointed to by :samp:`{key}`.
|
|
The size of each member is specified by :samp:`{size}`. The array contents
|
|
should be sorted in ascending order according to the :samp:`{compar}`
|
|
comparison function. This routine should take three arguments: the first
|
|
two point to the :samp:`{key}` and to an array member, and the last is passed
|
|
down unchanged from ``bsearch_r`` 's last argument. It should return an
|
|
integer less than, equal to, or greater than zero if the :samp:`{key}` object
|
|
is respectively less than, matching, or greater than the array member.
|
|
|
|
.. argv.c:138
|
|
|
|
.. function:: char** buildargv (char *sp)
|
|
|
|
Given a pointer to a string, parse the string extracting fields
|
|
separated by whitespace and optionally enclosed within either single
|
|
or double quotes (which are stripped off), and build a vector of
|
|
pointers to copies of the string for each field. The input string
|
|
remains unchanged. The last element of the vector is followed by a
|
|
``NULL`` element.
|
|
|
|
All of the memory for the pointer array and copies of the string
|
|
is obtained from ``xmalloc``. All of the memory can be returned to the
|
|
system with the single function call ``freeargv``, which takes the
|
|
returned result of ``buildargv``, as it's argument.
|
|
|
|
Returns a pointer to the argument vector if successful. Returns
|
|
``NULL`` if :samp:`{sp}` is ``NULL`` or if there is insufficient
|
|
memory to complete building the argument vector.
|
|
|
|
If the input is a null string (as opposed to a ``NULL`` pointer),
|
|
then buildarg returns an argument vector that has one arg, a null
|
|
string.
|
|
|
|
.. bzero.c:6
|
|
|
|
.. function:: void bzero (char *mem, int count)
|
|
|
|
Zeros :samp:`{count}` bytes starting at :samp:`{mem}`. Use of this function
|
|
is deprecated in favor of ``memset``.
|
|
|
|
.. calloc.c:6
|
|
|
|
.. function:: void* calloc (size_t nelem, size_t elsize)
|
|
|
|
Uses ``malloc`` to allocate storage for :samp:`{nelem}` objects of
|
|
:samp:`{elsize}` bytes each, then zeros the memory.
|
|
|
|
.. filename_cmp.c:201
|
|
|
|
.. function:: int canonical_filename_eq (const char *a, const char *b)
|
|
|
|
Return non-zero if file names :samp:`{a}` and :samp:`{b}` are equivalent.
|
|
This function compares the canonical versions of the filenames as returned by
|
|
``lrealpath()``, so that so that different file names pointing to the same
|
|
underlying file are treated as being identical.
|
|
|
|
.. choose-temp.c:45
|
|
|
|
.. function:: char* choose_temp_base (void)
|
|
|
|
Return a prefix for temporary file names or ``NULL`` if unable to
|
|
find one. The current directory is chosen if all else fails so the
|
|
program is exited if a temporary directory can't be found (``mktemp``
|
|
fails). The buffer for the result is obtained with ``xmalloc``.
|
|
|
|
This function is provided for backwards compatibility only. Its use is
|
|
not recommended.
|
|
|
|
.. make-temp-file.c:95
|
|
|
|
.. function:: const char* choose_tmpdir ()
|
|
|
|
Returns a pointer to a directory path suitable for creating temporary
|
|
files in.
|
|
|
|
.. clock.c:27
|
|
|
|
.. function:: long clock (void)
|
|
|
|
Returns an approximation of the CPU time used by the process as a
|
|
``clock_t`` ; divide this number by :samp:`CLOCKS_PER_SEC` to get the
|
|
number of seconds used.
|
|
|
|
.. concat.c:24
|
|
|
|
.. function:: char* concat (const char *s1, const char *s2, ..., NULL)
|
|
|
|
Concatenate zero or more of strings and return the result in freshly
|
|
``xmalloc`` ed memory. The argument list is terminated by the first
|
|
``NULL`` pointer encountered. Pointers to empty strings are ignored.
|
|
|
|
.. argv.c:495
|
|
|
|
.. function:: int countargv (char * const *argv)
|
|
|
|
Return the number of elements in :samp:`{argv}`.
|
|
Returns zero if :samp:`{argv}` is NULL.
|
|
|
|
.. crc32.c:140
|
|
|
|
.. function:: unsigned int crc32 (const unsigned char *buf, int len, unsigned int init)
|
|
|
|
Compute the 32-bit CRC of :samp:`{buf}` which has length :samp:`{len}`. The
|
|
starting value is :samp:`{init}` ; this may be used to compute the CRC of
|
|
data split across multiple buffers by passing the return value of each
|
|
call as the :samp:`{init}` parameter of the next.
|
|
|
|
This is used by the :command:`gdb` remote protocol for the :samp:`qCRC`
|
|
command. In order to get the same results as gdb for a block of data,
|
|
you must pass the first CRC parameter as ``0xffffffff``.
|
|
|
|
This CRC can be specified as:
|
|
|
|
Width : 32
|
|
Poly : 0x04c11db7
|
|
Init : parameter, typically 0xffffffff
|
|
RefIn : false
|
|
RefOut : false
|
|
XorOut : 0
|
|
|
|
This differs from the "standard" CRC-32 algorithm in that the values
|
|
are not reflected, and there is no final XOR value. These differences
|
|
make it easy to compose the values of multiple blocks.
|
|
|
|
.. argv.c:59
|
|
|
|
.. function:: char** dupargv (char * const *vector)
|
|
|
|
Duplicate an argument vector. Simply scans through :samp:`{vector}`,
|
|
duplicating each argument until the terminating ``NULL`` is found.
|
|
Returns a pointer to the argument vector if successful. Returns
|
|
``NULL`` if there is insufficient memory to complete building the
|
|
argument vector.
|
|
|
|
.. strerror.c:572
|
|
|
|
.. function:: int errno_max (void)
|
|
|
|
Returns the maximum ``errno`` value for which a corresponding
|
|
symbolic name or message is available. Note that in the case where we
|
|
use the ``sys_errlist`` supplied by the system, it is possible for
|
|
there to be more symbolic names than messages, or vice versa. In
|
|
fact, the manual page for ``perror(3C)`` explicitly warns that one
|
|
should check the size of the table (``sys_nerr``) before indexing
|
|
it, since new error codes may be added to the system before they are
|
|
added to the table. Thus ``sys_nerr`` might be smaller than value
|
|
implied by the largest ``errno`` value defined in ``<errno.h>``.
|
|
|
|
We return the maximum value that can be used to obtain a meaningful
|
|
symbolic name or message.
|
|
|
|
.. argv.c:352
|
|
|
|
.. function:: void expandargv (int *argcp, char ***argvp)
|
|
|
|
The :samp:`{argcp}` and ``argvp`` arguments are pointers to the usual
|
|
``argc`` and ``argv`` arguments to ``main``. This function
|
|
looks for arguments that begin with the character :samp:`@`. Any such
|
|
arguments are interpreted as 'response files'. The contents of the
|
|
response file are interpreted as additional command line options. In
|
|
particular, the file is separated into whitespace-separated strings;
|
|
each such string is taken as a command-line option. The new options
|
|
are inserted in place of the option naming the response file, and
|
|
``*argcp`` and ``*argvp`` will be updated. If the value of
|
|
``*argvp`` is modified by this function, then the new value has
|
|
been dynamically allocated and can be deallocated by the caller with
|
|
``freeargv``. However, most callers will simply call
|
|
``expandargv`` near the beginning of ``main`` and allow the
|
|
operating system to free the memory when the program exits.
|
|
|
|
.. fdmatch.c:23
|
|
|
|
.. function:: int fdmatch (int fd1, int fd2)
|
|
|
|
Check to see if two open file descriptors refer to the same file.
|
|
This is useful, for example, when we have an open file descriptor for
|
|
an unnamed file, and the name of a file that we believe to correspond
|
|
to that fd. This can happen when we are exec'd with an already open
|
|
file (``stdout`` for example) or from the SVR4 :samp:`/proc` calls
|
|
that return open file descriptors for mapped address spaces. All we
|
|
have to do is open the file by name and check the two file descriptors
|
|
for a match, which is done by comparing major and minor device numbers
|
|
and inode numbers.
|
|
|
|
.. fopen_unlocked.c:49
|
|
|
|
.. function:: FILE * fdopen_unlocked (int fildes, const char * mode)
|
|
|
|
Opens and returns a ``FILE`` pointer via ``fdopen``. If the
|
|
operating system supports it, ensure that the stream is setup to avoid
|
|
any multi-threaded locking. Otherwise return the ``FILE`` pointer
|
|
unchanged.
|
|
|
|
.. ffs.c:3
|
|
|
|
.. function:: int ffs (int valu)
|
|
|
|
Find the first (least significant) bit set in :samp:`{valu}`. Bits are
|
|
numbered from right to left, starting with bit 1 (corresponding to the
|
|
value 1). If :samp:`{valu}` is zero, zero is returned.
|
|
|
|
.. filename_cmp.c:37
|
|
|
|
.. function:: int filename_cmp (const char *s1, const char *s2)
|
|
|
|
Return zero if the two file names :samp:`{s1}` and :samp:`{s2}` are equivalent.
|
|
If not equivalent, the returned value is similar to what ``strcmp``
|
|
would return. In other words, it returns a negative value if :samp:`{s1}`
|
|
is less than :samp:`{s2}`, or a positive value if :samp:`{s2}` is greater than
|
|
:samp:`{s2}`.
|
|
|
|
This function does not normalize file names. As a result, this function
|
|
will treat filenames that are spelled differently as different even in
|
|
the case when the two filenames point to the same underlying file.
|
|
However, it does handle the fact that on DOS-like file systems, forward
|
|
and backward slashes are equal.
|
|
|
|
.. filename_cmp.c:183
|
|
|
|
.. function:: int filename_eq (const void *s1, const void *s2)
|
|
|
|
Return non-zero if file names :samp:`{s1}` and :samp:`{s2}` are equivalent.
|
|
This function is for use with hashtab.c hash tables.
|
|
|
|
.. filename_cmp.c:152
|
|
|
|
.. function:: hashval_t filename_hash (const void *s)
|
|
|
|
Return the hash value for file name :samp:`{s}` that will be compared
|
|
using filename_cmp.
|
|
This function is for use with hashtab.c hash tables.
|
|
|
|
.. filename_cmp.c:94
|
|
|
|
.. function:: int filename_ncmp (const char *s1, const char *s2, size_t n)
|
|
|
|
Return zero if the two file names :samp:`{s1}` and :samp:`{s2}` are equivalent
|
|
in range :samp:`{n}`.
|
|
If not equivalent, the returned value is similar to what ``strncmp``
|
|
would return. In other words, it returns a negative value if :samp:`{s1}`
|
|
is less than :samp:`{s2}`, or a positive value if :samp:`{s2}` is greater than
|
|
:samp:`{s2}`.
|
|
|
|
This function does not normalize file names. As a result, this function
|
|
will treat filenames that are spelled differently as different even in
|
|
the case when the two filenames point to the same underlying file.
|
|
However, it does handle the fact that on DOS-like file systems, forward
|
|
and backward slashes are equal.
|
|
|
|
.. fnmatch.txh:1
|
|
|
|
.. function:: int fnmatch (const char *pattern, const char *string, int flags)
|
|
|
|
Matches :samp:`{string}` against :samp:`{pattern}`, returning zero if it
|
|
matches, ``FNM_NOMATCH`` if not. :samp:`{pattern}` may contain the
|
|
wildcards ``?`` to match any one character, ``*`` to match any
|
|
zero or more characters, or a set of alternate characters in square
|
|
brackets, like :samp:`[a-gt8]`, which match one character (``a``
|
|
through ``g``, or ``t``, or ``8``, in this example) if that one
|
|
character is in the set. A set may be inverted (i.e., match anything
|
|
except what's in the set) by giving ``^`` or ``!`` as the first
|
|
character in the set. To include those characters in the set, list them
|
|
as anything other than the first character of the set. To include a
|
|
dash in the set, list it last in the set. A backslash character makes
|
|
the following character not special, so for example you could match
|
|
against a literal asterisk with :samp:`\\*`. To match a literal
|
|
backslash, use :samp:`\\\\`.
|
|
|
|
``flags`` controls various aspects of the matching process, and is a
|
|
boolean OR of zero or more of the following values (defined in
|
|
``<fnmatch.h>``):
|
|
|
|
.. envvar:: FNM_PATHNAME
|
|
|
|
:samp:`{string}` is assumed to be a path name. No wildcard will ever match
|
|
``/``.
|
|
|
|
.. envvar:: FNM_NOESCAPE
|
|
|
|
Do not interpret backslashes as quoting the following special character.
|
|
|
|
.. envvar:: FNM_PERIOD
|
|
|
|
A leading period (at the beginning of :samp:`{string}`, or if
|
|
``FNM_PATHNAME`` after a slash) is not matched by ``*`` or
|
|
``?`` but must be matched explicitly.
|
|
|
|
.. envvar:: FNM_LEADING_DIR
|
|
|
|
Means that :samp:`{string}` also matches :samp:`{pattern}` if some initial part
|
|
of :samp:`{string}` matches, and is followed by ``/`` and zero or more
|
|
characters. For example, :samp:`foo*` would match either :samp:`foobar`
|
|
or :samp:`foobar/grill`.
|
|
|
|
.. envvar:: FNM_CASEFOLD
|
|
|
|
Ignores case when performing the comparison.
|
|
|
|
.. fopen_unlocked.c:39
|
|
|
|
.. function:: FILE * fopen_unlocked (const char *path, const char * mode)
|
|
|
|
Opens and returns a ``FILE`` pointer via ``fopen``. If the
|
|
operating system supports it, ensure that the stream is setup to avoid
|
|
any multi-threaded locking. Otherwise return the ``FILE`` pointer
|
|
unchanged.
|
|
|
|
.. argv.c:93
|
|
|
|
.. function:: void freeargv (char **vector)
|
|
|
|
Free an argument vector that was built using ``buildargv``. Simply
|
|
scans through :samp:`{vector}`, freeing the memory for each argument until
|
|
the terminating ``NULL`` is found, and then frees :samp:`{vector}`
|
|
itself.
|
|
|
|
.. fopen_unlocked.c:59
|
|
|
|
.. function:: FILE * freopen_unlocked (const char * path, const char * mode, FILE * stream)
|
|
|
|
Opens and returns a ``FILE`` pointer via ``freopen``. If the
|
|
operating system supports it, ensure that the stream is setup to avoid
|
|
any multi-threaded locking. Otherwise return the ``FILE`` pointer
|
|
unchanged.
|
|
|
|
.. getruntime.c:86
|
|
|
|
.. function:: long get_run_time (void)
|
|
|
|
Returns the time used so far, in microseconds. If possible, this is
|
|
the time used by this process, else it is the elapsed time since the
|
|
process started.
|
|
|
|
.. getcwd.c:6
|
|
|
|
.. function:: char* getcwd (char *pathname, int len)
|
|
|
|
Copy the absolute pathname for the current working directory into
|
|
:samp:`{pathname}`, which is assumed to point to a buffer of at least
|
|
:samp:`{len}` bytes, and return a pointer to the buffer. If the current
|
|
directory's path doesn't fit in :samp:`{len}` characters, the result is
|
|
``NULL`` and ``errno`` is set. If :samp:`{pathname}` is a null pointer,
|
|
``getcwd`` will obtain :samp:`{len}` bytes of space using
|
|
``malloc``.
|
|
|
|
.. getpagesize.c:5
|
|
|
|
.. function:: int getpagesize (void)
|
|
|
|
Returns the number of bytes in a page of memory. This is the
|
|
granularity of many of the system memory management routines. No
|
|
guarantee is made as to whether or not it is the same as the basic
|
|
memory management hardware page size.
|
|
|
|
.. getpwd.c:5
|
|
|
|
.. function:: char* getpwd (void)
|
|
|
|
Returns the current working directory. This implementation caches the
|
|
result on the assumption that the process will not call ``chdir``
|
|
between calls to ``getpwd``.
|
|
|
|
.. gettimeofday.c:12
|
|
|
|
.. function:: int gettimeofday (struct timeval *tp, void *tz)
|
|
|
|
Writes the current time to :samp:`{tp}`. This implementation requires
|
|
that :samp:`{tz}` be NULL. Returns 0 on success, -1 on failure.
|
|
|
|
.. hex.c:33
|
|
|
|
.. function:: void hex_init (void)
|
|
|
|
Initializes the array mapping the current character set to
|
|
corresponding hex values. This function must be called before any
|
|
call to ``hex_p`` or ``hex_value``. If you fail to call it, a
|
|
default ASCII-based table will normally be used on ASCII systems.
|
|
|
|
.. hex.c:42
|
|
|
|
.. function:: int hex_p (int c)
|
|
|
|
Evaluates to non-zero if the given character is a valid hex character,
|
|
or zero if it is not. Note that the value you pass will be cast to
|
|
``unsigned char`` within the macro.
|
|
|
|
.. hex.c:50
|
|
|
|
.. function:: unsigned int hex_value (int c)
|
|
|
|
Returns the numeric equivalent of the given character when interpreted
|
|
as a hexadecimal digit. The result is undefined if you pass an
|
|
invalid hex digit. Note that the value you pass will be cast to
|
|
``unsigned char`` within the macro.
|
|
|
|
The ``hex_value`` macro returns ``unsigned int``, rather than
|
|
signed ``int``, to make it easier to use in parsing addresses from
|
|
hex dump files: a signed ``int`` would be sign-extended when
|
|
converted to a wider unsigned type --- like ``bfd_vma``, on some
|
|
systems.
|
|
|
|
.. safe-ctype.c:24
|
|
|
|
.. index:: HOST_CHARSET
|
|
|
|
.. c:macro:: HOST_CHARSET
|
|
|
|
This macro indicates the basic character set and encoding used by the
|
|
host: more precisely, the encoding used for character constants in
|
|
preprocessor :samp:`#if` statements (the C "execution character set").
|
|
It is defined by :samp:`safe-ctype.h`, and will be an integer constant
|
|
with one of the following values:
|
|
|
|
.. envvar:: HOST_CHARSET_UNKNOWN
|
|
|
|
The host character set is unknown - that is, not one of the next two
|
|
possibilities.
|
|
|
|
.. envvar:: HOST_CHARSET_ASCII
|
|
|
|
The host character set is ASCII.
|
|
|
|
.. envvar:: HOST_CHARSET_EBCDIC
|
|
|
|
The host character set is some variant of EBCDIC. (Only one of the
|
|
nineteen EBCDIC varying characters is tested; exercise caution.)
|
|
|
|
.. hashtab.c:327
|
|
|
|
.. function:: htab_t htab_create_typed_alloc (size_t size, htab_hash hash_f, htab_eq eq_f, htab_del del_f, htab_alloc alloc_tab_f, htab_alloc alloc_f, htab_free free_f)
|
|
|
|
This function creates a hash table that uses two different allocators
|
|
:samp:`{alloc_tab_f}` and :samp:`{alloc_f}` to use for allocating the table itself
|
|
and its entries respectively. This is useful when variables of different
|
|
types need to be allocated with different allocators.
|
|
|
|
The created hash table is slightly larger than :samp:`{size}` and it is
|
|
initially empty (all the hash table entries are ``HTAB_EMPTY_ENTRY``).
|
|
The function returns the created hash table, or ``NULL`` if memory
|
|
allocation fails.
|
|
|
|
.. index.c:5
|
|
|
|
.. function:: char* index (char *s, int c)
|
|
|
|
Returns a pointer to the first occurrence of the character :samp:`{c}` in
|
|
the string :samp:`{s}`, or ``NULL`` if not found. The use of ``index`` is
|
|
deprecated in new programs in favor of ``strchr``.
|
|
|
|
.. insque.c:6
|
|
|
|
.. function:: void insque (struct qelem *elem, struct qelem *pred)
|
|
void remque (struct qelem *elem)
|
|
|
|
Routines to manipulate queues built from doubly linked lists. The
|
|
``insque`` routine inserts :samp:`{elem}` in the queue immediately
|
|
after :samp:`{pred}`. The ``remque`` routine removes :samp:`{elem}` from
|
|
its containing queue. These routines expect to be passed pointers to
|
|
structures which have as their first members a forward pointer and a
|
|
back pointer, like this prototype (although no prototype is provided):
|
|
|
|
.. code-block:: c++
|
|
|
|
struct qelem {
|
|
struct qelem *q_forw;
|
|
struct qelem *q_back;
|
|
char q_data[];
|
|
};
|
|
|
|
.. safe-ctype.c:45
|
|
|
|
.. c:macro:: ISALPHA (c)
|
|
ISALNUM (c)
|
|
ISBLANK (c)
|
|
ISCNTRL (c)
|
|
ISDIGIT (c)
|
|
ISGRAPH (c)
|
|
ISLOWER (c)
|
|
ISPRINT (c)
|
|
ISPUNCT (c)
|
|
ISSPACE (c)
|
|
ISUPPER (c)
|
|
ISXDIGIT (c)
|
|
|
|
These twelve macros are defined by :samp:`safe-ctype.h`. Each has the
|
|
same meaning as the corresponding macro (with name in lowercase)
|
|
defined by the standard header :samp:`ctype.h`. For example,
|
|
``ISALPHA`` returns true for alphabetic characters and false for
|
|
others. However, there are two differences between these macros and
|
|
those provided by :samp:`ctype.h`:
|
|
|
|
* These macros are guaranteed to have well-defined behavior for all
|
|
values representable by ``signed char`` and ``unsigned char``, and
|
|
for ``EOF``.
|
|
|
|
* These macros ignore the current locale; they are true for these
|
|
fixed sets of characters:
|
|
|
|
.. list-table::
|
|
|
|
* - ``ALPHA``
|
|
- A-Za-z
|
|
* - ``ALNUM``
|
|
- A-Za-z0-9
|
|
* - ``BLANK``
|
|
- space tab
|
|
* - ``CNTRL``
|
|
- ``!PRINT``
|
|
* - ``DIGIT``
|
|
- 0-9
|
|
* - ``GRAPH``
|
|
- ``ALNUM || PUNCT``
|
|
* - ``LOWER``
|
|
- a-z
|
|
* - ``PRINT``
|
|
- ``GRAPH ||`` space
|
|
* - ``PUNCT``
|
|
- `~!@#$%^&\*()_-=+[{]}\|;:'",<.>/?
|
|
* - ``SPACE``
|
|
- space tab \n \r \f \v
|
|
* - ``UPPER``
|
|
- A-Z
|
|
* - ``XDIGIT``
|
|
- 0-9A-Fa-f
|
|
|
|
Note that, if the host character set is ASCII or a superset thereof,
|
|
all these macros will return false for all values of ``char`` outside
|
|
the range of 7-bit ASCII. In particular, both ISPRINT and ISCNTRL return
|
|
false for characters with numeric values from 128 to 255.
|
|
|
|
.. safe-ctype.c:94
|
|
|
|
.. c:macro:: ISIDNUM (c)
|
|
ISIDST (c)
|
|
IS_VSPACE (c)
|
|
IS_NVSPACE (c)
|
|
IS_SPACE_OR_NUL (c)
|
|
IS_ISOBASIC (c)
|
|
|
|
These six macros are defined by safe-ctype.h and provide
|
|
additional character classes which are useful when doing lexical
|
|
analysis of C or similar languages. They are true for the following
|
|
sets of characters:
|
|
|
|
.. list-table::
|
|
|
|
* - ``IDNUM``
|
|
- A-Za-z0-9\_
|
|
* - ``IDST``
|
|
- A-Za-z\_
|
|
* - ``VSPACE``
|
|
- \r \n
|
|
* - ``NVSPACE``
|
|
- space tab \f \v \0
|
|
* - ``SPACE_OR_NUL``
|
|
- ``VSPACE || NVSPACE``
|
|
* - ``ISOBASIC``
|
|
- ``VSPACE || NVSPACE || PRINT``
|
|
|
|
.. lbasename.c:23
|
|
|
|
.. function:: const char* lbasename (const char *name)
|
|
|
|
Given a pointer to a string containing a typical pathname
|
|
(:samp:`/usr/src/cmd/ls/ls.c` for example), returns a pointer to the
|
|
last component of the pathname (:samp:`ls.c` in this case). The
|
|
returned pointer is guaranteed to lie within the original
|
|
string. This latter fact is not true of many vendor C
|
|
libraries, which return special strings or modify the passed
|
|
strings for particular input.
|
|
|
|
In particular, the empty string returns the same empty string,
|
|
and a path ending in ``/`` returns the empty string after it.
|
|
|
|
.. lrealpath.c:25
|
|
|
|
.. function:: const char* lrealpath (const char *name)
|
|
|
|
Given a pointer to a string containing a pathname, returns a canonical
|
|
version of the filename. Symlinks will be resolved, and '.' and '..'
|
|
components will be simplified. The returned value will be allocated using
|
|
``malloc``, or ``NULL`` will be returned on a memory allocation error.
|
|
|
|
.. make-relative-prefix.c:23
|
|
|
|
.. function:: const char* make_relative_prefix (const char *progname, const char *bin_prefix, const char *prefix)
|
|
|
|
Given three paths :samp:`{progname}`, :samp:`{bin_prefix}`, :samp:`{prefix}`,
|
|
return the path that is in the same position relative to
|
|
:samp:`{progname}` 's directory as :samp:`{prefix}` is relative to
|
|
:samp:`{bin_prefix}`. That is, a string starting with the directory
|
|
portion of :samp:`{progname}`, followed by a relative pathname of the
|
|
difference between :samp:`{bin_prefix}` and :samp:`{prefix}`.
|
|
|
|
If :samp:`{progname}` does not contain any directory separators,
|
|
``make_relative_prefix`` will search :envvar:`PATH` to find a program
|
|
named :samp:`{progname}`. Also, if :samp:`{progname}` is a symbolic link,
|
|
the symbolic link will be resolved.
|
|
|
|
For example, if :samp:`{bin_prefix}` is ``/alpha/beta/gamma/gcc/delta``,
|
|
:samp:`{prefix}` is ``/alpha/beta/gamma/omega/``, and :samp:`{progname}` is
|
|
``/red/green/blue/gcc``, then this function will return
|
|
``/red/green/blue/../../omega/``.
|
|
|
|
The return value is normally allocated via ``malloc``. If no
|
|
relative prefix can be found, return ``NULL``.
|
|
|
|
.. make-temp-file.c:173
|
|
|
|
.. function:: char* make_temp_file (const char *suffix)
|
|
|
|
Return a temporary file name (as a string) or ``NULL`` if unable to
|
|
create one. :samp:`{suffix}` is a suffix to append to the file name. The
|
|
string is ``malloc`` ed, and the temporary file has been created.
|
|
|
|
.. memchr.c:3
|
|
|
|
.. function:: void* memchr (const void *s, int c, size_t n)
|
|
|
|
This function searches memory starting at ``*s`` for the
|
|
character :samp:`{c}`. The search only ends with the first occurrence of
|
|
:samp:`{c}`, or after :samp:`{length}` characters; in particular, a null
|
|
character does not terminate the search. If the character :samp:`{c}` is
|
|
found within :samp:`{length}` characters of ``*s``, a pointer
|
|
to the character is returned. If :samp:`{c}` is not found, then ``NULL`` is
|
|
returned.
|
|
|
|
.. memcmp.c:6
|
|
|
|
.. function:: int memcmp (const void *x, const void *y, size_t count)
|
|
|
|
Compares the first :samp:`{count}` bytes of two areas of memory. Returns
|
|
zero if they are the same, a value less than zero if :samp:`{x}` is
|
|
lexically less than :samp:`{y}`, or a value greater than zero if :samp:`{x}`
|
|
is lexically greater than :samp:`{y}`. Note that lexical order is determined
|
|
as if comparing unsigned char arrays.
|
|
|
|
.. memcpy.c:6
|
|
|
|
.. function:: void* memcpy (void *out, const void *in, size_t length)
|
|
|
|
Copies :samp:`{length}` bytes from memory region :samp:`{in}` to region
|
|
:samp:`{out}`. Returns a pointer to :samp:`{out}`.
|
|
|
|
.. memmem.c:20
|
|
|
|
.. function:: void* memmem (const void *haystack,size_t haystack_len, const void *needle, size_t needle_len)
|
|
|
|
Returns a pointer to the first occurrence of :samp:`{needle}` (length
|
|
:samp:`{needle_len}`) in :samp:`{haystack}` (length :samp:`{haystack_len}`).
|
|
Returns ``NULL`` if not found.
|
|
|
|
.. memmove.c:6
|
|
|
|
.. function:: void* memmove (void *from, const void *to, size_t count)
|
|
|
|
Copies :samp:`{count}` bytes from memory area :samp:`{from}` to memory area
|
|
:samp:`{to}`, returning a pointer to :samp:`{to}`.
|
|
|
|
.. mempcpy.c:23
|
|
|
|
.. function:: void* mempcpy (void *out, const void *in, size_t length)
|
|
|
|
Copies :samp:`{length}` bytes from memory region :samp:`{in}` to region
|
|
:samp:`{out}`. Returns a pointer to :samp:`{out}` + :samp:`{length}`.
|
|
|
|
.. memset.c:6
|
|
|
|
.. function:: void* memset (void *s, int c, size_t count)
|
|
|
|
Sets the first :samp:`{count}` bytes of :samp:`{s}` to the constant byte
|
|
:samp:`{c}`, returning a pointer to :samp:`{s}`.
|
|
|
|
.. mkstemps.c:60
|
|
|
|
.. function:: int mkstemps (char *pattern, int suffix_len)
|
|
|
|
Generate a unique temporary file name from :samp:`{pattern}`.
|
|
:samp:`{pattern}` has the form:
|
|
|
|
.. code-block:: c++
|
|
|
|
path/ccXXXXXXsuffix
|
|
|
|
:samp:`{suffix_len}` tells us how long :samp:`{suffix}` is (it can be zero
|
|
length). The last six characters of :samp:`{pattern}` before :samp:`{suffix}`
|
|
must be :samp:`XXXXXX`; they are replaced with a string that makes the
|
|
filename unique. Returns a file descriptor open on the file for
|
|
reading and writing.
|
|
|
|
.. pexecute.txh:278
|
|
|
|
.. function:: void pex_free (struct pex_obj obj)
|
|
|
|
Clean up and free all data associated with :samp:`{obj}`. If you have not
|
|
yet called ``pex_get_times`` or ``pex_get_status``, this will
|
|
try to kill the subprocesses.
|
|
|
|
.. pexecute.txh:251
|
|
|
|
.. function:: int pex_get_status (struct pex_obj *obj, int count, int *vector)
|
|
|
|
Returns the exit status of all programs run using :samp:`{obj}`.
|
|
:samp:`{count}` is the number of results expected. The results will be
|
|
placed into :samp:`{vector}`. The results are in the order of the calls
|
|
to ``pex_run``. Returns 0 on error, 1 on success.
|
|
|
|
.. pexecute.txh:261
|
|
|
|
.. function:: int pex_get_times (struct pex_obj *obj, int count, struct pex_time *vector)
|
|
|
|
Returns the process execution times of all programs run using
|
|
:samp:`{obj}`. :samp:`{count}` is the number of results expected. The
|
|
results will be placed into :samp:`{vector}`. The results are in the
|
|
order of the calls to ``pex_run``. Returns 0 on error, 1 on
|
|
success.
|
|
|
|
``struct pex_time`` has the following fields of the type
|
|
``unsigned long`` : ``user_seconds``,
|
|
``user_microseconds``, ``system_seconds``,
|
|
``system_microseconds``. On systems which do not support reporting
|
|
process times, all the fields will be set to ``0``.
|
|
|
|
.. pexecute.txh:2
|
|
|
|
.. function:: struct pex_obj * pex_init (int flags, const char *pname, const char *tempbase)
|
|
|
|
Prepare to execute one or more programs, with standard output of each
|
|
program fed to standard input of the next. This is a system
|
|
independent interface to execute a pipeline.
|
|
|
|
:samp:`{flags}` is a bitwise combination of the following:
|
|
|
|
.. index:: PEX_RECORD_TIMES
|
|
|
|
.. envvar:: PEX_RECORD_TIMES
|
|
|
|
Record subprocess times if possible.
|
|
|
|
.. index:: PEX_USE_PIPES
|
|
|
|
.. envvar:: PEX_USE_PIPES
|
|
|
|
Use pipes for communication between processes, if possible.
|
|
|
|
.. index:: PEX_SAVE_TEMPS
|
|
|
|
.. envvar:: PEX_SAVE_TEMPS
|
|
|
|
Don't delete temporary files used for communication between
|
|
processes.
|
|
|
|
:samp:`{pname}` is the name of program to be executed, used in error
|
|
messages. :samp:`{tempbase}` is a base name to use for any required
|
|
temporary files; it may be ``NULL`` to use a randomly chosen name.
|
|
|
|
.. pexecute.txh:161
|
|
|
|
.. function:: FILE * pex_input_file (struct pex_obj *obj, int flags, const char *in_name)
|
|
|
|
Return a stream for a temporary file to pass to the first program in
|
|
the pipeline as input.
|
|
|
|
The name of the input file is chosen according to the same rules
|
|
``pex_run`` uses to choose output file names, based on
|
|
:samp:`{in_name}`, :samp:`{obj}` and the ``PEX_SUFFIX`` bit in :samp:`{flags}`.
|
|
|
|
Don't call ``fclose`` on the returned stream; the first call to
|
|
``pex_run`` closes it automatically.
|
|
|
|
If :samp:`{flags}` includes ``PEX_BINARY_OUTPUT``, open the stream in
|
|
binary mode; otherwise, open it in the default mode. Including
|
|
``PEX_BINARY_OUTPUT`` in :samp:`{flags}` has no effect on Unix.
|
|
|
|
.. pexecute.txh:179
|
|
|
|
.. function:: FILE * pex_input_pipe (struct pex_obj *obj, int binary)
|
|
|
|
Return a stream :samp:`{fp}` for a pipe connected to the standard input of
|
|
the first program in the pipeline; :samp:`{fp}` is opened for writing.
|
|
You must have passed ``PEX_USE_PIPES`` to the ``pex_init`` call
|
|
that returned :samp:`{obj}`.
|
|
|
|
You must close :samp:`{fp}` using ``fclose`` yourself when you have
|
|
finished writing data to the pipeline.
|
|
|
|
The file descriptor underlying :samp:`{fp}` is marked not to be inherited
|
|
by child processes.
|
|
|
|
On systems that do not support pipes, this function returns
|
|
``NULL``, and sets ``errno`` to ``EINVAL``. If you would
|
|
like to write code that is portable to all systems the ``pex``
|
|
functions support, consider using ``pex_input_file`` instead.
|
|
|
|
There are two opportunities for deadlock using
|
|
``pex_input_pipe`` :
|
|
|
|
* Most systems' pipes can buffer only a fixed amount of data; a process
|
|
that writes to a full pipe blocks. Thus, if you write to :samp:`fp`
|
|
before starting the first process, you run the risk of blocking when
|
|
there is no child process yet to read the data and allow you to
|
|
continue. ``pex_input_pipe`` makes no promises about the
|
|
size of the pipe's buffer, so if you need to write any data at all
|
|
before starting the first process in the pipeline, consider using
|
|
``pex_input_file`` instead.
|
|
|
|
* Using ``pex_input_pipe`` and ``pex_read_output`` together
|
|
may also cause deadlock. If the output pipe fills up, so that each
|
|
program in the pipeline is waiting for the next to read more data, and
|
|
you fill the input pipe by writing more data to :samp:`{fp}`, then there
|
|
is no way to make progress: the only process that could read data from
|
|
the output pipe is you, but you are blocked on the input pipe.
|
|
|
|
.. pexecute.txh:286
|
|
|
|
.. function:: const char * pex_one (int flags, const char *executable, char * const *argv, const char *pname, const char *outname, const char *errname, int *status, int *err)
|
|
|
|
An interface to permit the easy execution of a
|
|
single program. The return value and most of the parameters are as
|
|
for a call to ``pex_run``. :samp:`{flags}` is restricted to a
|
|
combination of ``PEX_SEARCH``, ``PEX_STDERR_TO_STDOUT``, and
|
|
``PEX_BINARY_OUTPUT``. :samp:`{outname}` is interpreted as if
|
|
``PEX_LAST`` were set. On a successful return, ``*status`` will
|
|
be set to the exit status of the program.
|
|
|
|
.. pexecute.txh:237
|
|
|
|
.. function:: FILE * pex_read_err (struct pex_obj *obj, int binary)
|
|
|
|
Returns a ``FILE`` pointer which may be used to read the standard
|
|
error of the last program in the pipeline. When this is used,
|
|
``PEX_LAST`` should not be used in a call to ``pex_run``. After
|
|
this is called, ``pex_run`` may no longer be called with the same
|
|
:samp:`{obj}`. :samp:`{binary}` should be non-zero if the file should be
|
|
opened in binary mode. Don't call ``fclose`` on the returned file;
|
|
it will be closed by ``pex_free``.
|
|
|
|
.. pexecute.txh:224
|
|
|
|
.. function:: FILE * pex_read_output (struct pex_obj *obj, int binary)
|
|
|
|
Returns a ``FILE`` pointer which may be used to read the standard
|
|
output of the last program in the pipeline. When this is used,
|
|
``PEX_LAST`` should not be used in a call to ``pex_run``. After
|
|
this is called, ``pex_run`` may no longer be called with the same
|
|
:samp:`{obj}`. :samp:`{binary}` should be non-zero if the file should be
|
|
opened in binary mode. Don't call ``fclose`` on the returned file;
|
|
it will be closed by ``pex_free``.
|
|
|
|
.. pexecute.txh:34
|
|
|
|
.. function:: const char * pex_run (struct pex_obj *obj, int flags, const char *executable, char * const *argv, const char *outname, const char *errname, int *err)
|
|
|
|
Execute one program in a pipeline. On success this returns
|
|
``NULL``. On failure it returns an error message, a statically
|
|
allocated string.
|
|
|
|
:samp:`{obj}` is returned by a previous call to ``pex_init``.
|
|
|
|
:samp:`{flags}` is a bitwise combination of the following:
|
|
|
|
.. index:: PEX_LAST
|
|
|
|
.. envvar:: PEX_LAST
|
|
|
|
This must be set on the last program in the pipeline. In particular,
|
|
it should be set when executing a single program. The standard output
|
|
of the program will be sent to :samp:`{outname}`, or, if :samp:`{outname}` is
|
|
``NULL``, to the standard output of the calling program. Do *not*
|
|
set this bit if you want to call ``pex_read_output``
|
|
(described below). After a call to ``pex_run`` with this bit set,
|
|
:samp:`{pex_run}` may no longer be called with the same :samp:`{obj}`.
|
|
|
|
.. index:: PEX_SEARCH
|
|
|
|
.. envvar:: PEX_SEARCH
|
|
|
|
Search for the program using the user's executable search path.
|
|
|
|
.. index:: PEX_SUFFIX
|
|
|
|
.. envvar:: PEX_SUFFIX
|
|
|
|
:samp:`{outname}` is a suffix. See the description of :samp:`{outname}`,
|
|
below.
|
|
|
|
.. index:: PEX_STDERR_TO_STDOUT
|
|
|
|
.. envvar:: PEX_STDERR_TO_STDOUT
|
|
|
|
Send the program's standard error to standard output, if possible.
|
|
|
|
.. index:: PEX_BINARY_INPUT, PEX_BINARY_OUTPUT, PEX_BINARY_ERROR
|
|
|
|
.. envvar:: PEX_BINARY_INPUT
|
|
|
|
The standard input (output or error) of the program should be read (written) in
|
|
binary mode rather than text mode. These flags are ignored on systems
|
|
which do not distinguish binary mode and text mode, such as Unix. For
|
|
proper behavior these flags should match appropriately---a call to
|
|
``pex_run`` using ``PEX_BINARY_OUTPUT`` should be followed by a
|
|
call using ``PEX_BINARY_INPUT``.
|
|
|
|
.. index:: PEX_STDERR_TO_PIPE
|
|
|
|
.. envvar:: PEX_STDERR_TO_PIPE
|
|
|
|
Send the program's standard error to a pipe, if possible. This flag
|
|
cannot be specified together with ``PEX_STDERR_TO_STDOUT``. This
|
|
flag can be specified only on the last program in pipeline.
|
|
|
|
:samp:`{executable}` is the program to execute. :samp:`{argv}` is the set of
|
|
arguments to pass to the program; normally ``argv[0]`` will
|
|
be a copy of :samp:`{executable}`.
|
|
|
|
:samp:`{outname}` is used to set the name of the file to use for standard
|
|
output. There are two cases in which no output file will be used:
|
|
|
|
* if ``PEX_LAST`` is not set in :samp:`{flags}`, and ``PEX_USE_PIPES``
|
|
was set in the call to ``pex_init``, and the system supports pipes
|
|
|
|
* if ``PEX_LAST`` is set in :samp:`{flags}`, and :samp:`{outname}` is
|
|
``NULL``
|
|
|
|
Otherwise the code will use a file to hold standard
|
|
output. If ``PEX_LAST`` is not set, this file is considered to be
|
|
a temporary file, and it will be removed when no longer needed, unless
|
|
``PEX_SAVE_TEMPS`` was set in the call to ``pex_init``.
|
|
|
|
There are two cases to consider when setting the name of the file to
|
|
hold standard output.
|
|
|
|
* ``PEX_SUFFIX`` is set in :samp:`{flags}`. In this case
|
|
:samp:`{outname}` may not be ``NULL``. If the :samp:`{tempbase}` parameter
|
|
to ``pex_init`` was not ``NULL``, then the output file name is
|
|
the concatenation of :samp:`{tempbase}` and :samp:`{outname}`. If
|
|
:samp:`{tempbase}` was ``NULL``, then the output file name is a random
|
|
file name ending in :samp:`{outname}`.
|
|
|
|
* ``PEX_SUFFIX`` was not set in :samp:`{flags}`. In this
|
|
case, if :samp:`{outname}` is not ``NULL``, it is used as the output
|
|
file name. If :samp:`{outname}` is ``NULL``, and :samp:`{tempbase}` was
|
|
not NULL, the output file name is randomly chosen using
|
|
:samp:`{tempbase}`. Otherwise the output file name is chosen completely
|
|
at random.
|
|
|
|
:samp:`{errname}` is the file name to use for standard error output. If
|
|
it is ``NULL``, standard error is the same as the caller's.
|
|
Otherwise, standard error is written to the named file.
|
|
|
|
On an error return, the code sets ``*err`` to an ``errno``
|
|
value, or to 0 if there is no relevant ``errno``.
|
|
|
|
.. pexecute.txh:145
|
|
|
|
.. function:: const char * pex_run_in_environment (struct pex_obj *obj, int flags, const char *executable, char * const *argv, char * const *env, int env_size, const char *outname, const char *errname, int *err)
|
|
|
|
Execute one program in a pipeline, permitting the environment for the
|
|
program to be specified. Behaviour and parameters not listed below are
|
|
as for ``pex_run``.
|
|
|
|
:samp:`{env}` is the environment for the child process, specified as an array of
|
|
character pointers. Each element of the array should point to a string of the
|
|
form ``VAR=VALUE``, with the exception of the last element that must be
|
|
``NULL``.
|
|
|
|
.. pexecute.txh:301
|
|
|
|
.. function:: int pexecute (const char *program, char * const *argv, const char *this_pname, const char *temp_base, char **errmsg_fmt, char **errmsg_arg, int flags)
|
|
|
|
This is the old interface to execute one or more programs. It is
|
|
still supported for compatibility purposes, but is no longer
|
|
documented.
|
|
|
|
.. strsignal.c:541
|
|
|
|
.. function:: void psignal (int signo, char *message)
|
|
|
|
Print :samp:`{message}` to the standard error, followed by a colon,
|
|
followed by the description of the signal specified by :samp:`{signo}`,
|
|
followed by a newline.
|
|
|
|
.. putenv.c:21
|
|
|
|
.. function:: int putenv (const char *string)
|
|
|
|
Uses ``setenv`` or ``unsetenv`` to put :samp:`{string}` into
|
|
the environment or remove it. If :samp:`{string}` is of the form
|
|
:samp:`name=value` the string is added; if no :samp:`=` is present the
|
|
name is unset/removed.
|
|
|
|
.. pexecute.txh:312
|
|
|
|
.. function:: int pwait (int pid, int *status, int flags)
|
|
|
|
Another part of the old execution interface.
|
|
|
|
.. random.c:39
|
|
|
|
.. function:: long int random (void)
|
|
void srandom (unsigned int seed)
|
|
void* initstate (unsigned int seed, void *arg_state, unsigned long n)
|
|
void* setstate (void *arg_state)
|
|
|
|
Random number functions. ``random`` returns a random number in the
|
|
range 0 to ``LONG_MAX``. ``srandom`` initializes the random
|
|
number generator to some starting point determined by :samp:`{seed}`
|
|
(else, the values returned by ``random`` are always the same for each
|
|
run of the program). ``initstate`` and ``setstate`` allow fine-grained
|
|
control over the state of the random number generator.
|
|
|
|
.. concat.c:160
|
|
|
|
.. function:: char* reconcat (char *optr, const char *s1, ..., NULL)
|
|
|
|
Same as ``concat``, except that if :samp:`{optr}` is not ``NULL`` it
|
|
is freed after the string is created. This is intended to be useful
|
|
when you're extending an existing string or building up a string in a
|
|
loop:
|
|
|
|
.. code-block:: c++
|
|
|
|
str = reconcat (str, "pre-", str, NULL);
|
|
|
|
.. rename.c:6
|
|
|
|
.. function:: int rename (const char *old, const char *new)
|
|
|
|
Renames a file from :samp:`{old}` to :samp:`{new}`. If :samp:`{new}` already
|
|
exists, it is removed.
|
|
|
|
.. rindex.c:5
|
|
|
|
.. function:: char* rindex (const char *s, int c)
|
|
|
|
Returns a pointer to the last occurrence of the character :samp:`{c}` in
|
|
the string :samp:`{s}`, or ``NULL`` if not found. The use of ``rindex`` is
|
|
deprecated in new programs in favor of ``strrchr``.
|
|
|
|
.. setenv.c:22
|
|
|
|
.. function:: int setenv (const char *name, const char *value, int overwrite)
|
|
void unsetenv (const char *name)
|
|
|
|
``setenv`` adds :samp:`{name}` to the environment with value
|
|
:samp:`{value}`. If the name was already present in the environment,
|
|
the new value will be stored only if :samp:`{overwrite}` is nonzero.
|
|
The companion ``unsetenv`` function removes :samp:`{name}` from the
|
|
environment. This implementation is not safe for multithreaded code.
|
|
|
|
.. setproctitle.c:31
|
|
|
|
.. function:: void setproctitle (const char *fmt, ...)
|
|
|
|
Set the title of a process to :samp:`{fmt}`. va args not supported for now,
|
|
but defined for compatibility with BSD.
|
|
|
|
.. strsignal.c:348
|
|
|
|
.. function:: int signo_max (void)
|
|
|
|
Returns the maximum signal value for which a corresponding symbolic
|
|
name or message is available. Note that in the case where we use the
|
|
``sys_siglist`` supplied by the system, it is possible for there to
|
|
be more symbolic names than messages, or vice versa. In fact, the
|
|
manual page for ``psignal(3b)`` explicitly warns that one should
|
|
check the size of the table (``NSIG``) before indexing it, since
|
|
new signal codes may be added to the system before they are added to
|
|
the table. Thus ``NSIG`` might be smaller than value implied by
|
|
the largest signo value defined in ``<signal.h>``.
|
|
|
|
We return the maximum value that can be used to obtain a meaningful
|
|
symbolic name or message.
|
|
|
|
.. sigsetmask.c:8
|
|
|
|
.. function:: int sigsetmask (int set)
|
|
|
|
Sets the signal mask to the one provided in :samp:`{set}` and returns
|
|
the old mask (which, for libiberty's implementation, will always
|
|
be the value ``1``).
|
|
|
|
.. simple-object.txh:96
|
|
|
|
.. function:: const char * simple_object_attributes_compare (simple_object_attributes *attrs1, simple_object_attributes *attrs2, int *err)
|
|
|
|
Compare :samp:`{attrs1}` and :samp:`{attrs2}`. If they could be linked
|
|
together without error, return ``NULL``. Otherwise, return an
|
|
error message and set ``*err`` to an errno value or ``0``
|
|
if there is no relevant errno.
|
|
|
|
.. simple-object.txh:81
|
|
|
|
.. function:: simple_object_attributes * simple_object_fetch_attributes (simple_object_read *simple_object, const char **errmsg, int *err)
|
|
|
|
Fetch the attributes of :samp:`{simple_object}`. The attributes are
|
|
internal information such as the format of the object file, or the
|
|
architecture it was compiled for. This information will persist until
|
|
``simple_object_attributes_release`` is called, even if
|
|
:samp:`{simple_object}` itself is released.
|
|
|
|
On error this returns ``NULL``, sets ``*errmsg`` to an
|
|
error message, and sets ``*err`` to an errno value or
|
|
``0`` if there is no relevant errno.
|
|
|
|
.. simple-object.txh:49
|
|
|
|
.. function:: int simple_object_find_section (simple_object_read *simple_object, off_t *offset, off_t *length, const char **errmsg, int *err)
|
|
|
|
Look for the section :samp:`{name}` in :samp:`{simple_object}`. This returns
|
|
information for the first section with that name.
|
|
|
|
If found, return 1 and set ``*offset`` to the offset in the
|
|
file of the section contents and set ``*length`` to the
|
|
length of the section contents. The value in ``*offset``
|
|
will be relative to the offset passed to
|
|
``simple_object_open_read``.
|
|
|
|
If the section is not found, and no error occurs,
|
|
``simple_object_find_section`` returns ``0`` and set
|
|
``*errmsg`` to ``NULL``.
|
|
|
|
If an error occurs, ``simple_object_find_section`` returns
|
|
``0``, sets ``*errmsg`` to an error message, and sets
|
|
``*err`` to an errno value or ``0`` if there is no
|
|
relevant errno.
|
|
|
|
.. simple-object.txh:27
|
|
|
|
.. function:: const char * simple_object_find_sections (simple_object_read *simple_object, int (*pfn) (void *data, const char *name, off_t offset, off_t length), void *data, int *err)
|
|
|
|
This function calls :samp:`{pfn}` for each section in :samp:`{simple_object}`.
|
|
It calls :samp:`{pfn}` with the section name, the offset within the file
|
|
of the section contents, and the length of the section contents. The
|
|
offset within the file is relative to the offset passed to
|
|
``simple_object_open_read``. The :samp:`{data}` argument to this
|
|
function is passed along to :samp:`{pfn}`.
|
|
|
|
If :samp:`{pfn}` returns ``0``, the loop over the sections stops and
|
|
``simple_object_find_sections`` returns. If :samp:`{pfn}` returns some
|
|
other value, the loop continues.
|
|
|
|
On success ``simple_object_find_sections`` returns. On error it
|
|
returns an error string, and sets ``*err`` to an errno value
|
|
or ``0`` if there is no relevant errno.
|
|
|
|
.. simple-object.txh:2
|
|
|
|
.. function:: simple_object_read * simple_object_open_read (int descriptor, off_t offset, const char *segment_name, const char **errmsg, int *err)
|
|
|
|
Opens an object file for reading. Creates and returns an
|
|
``simple_object_read`` pointer which may be passed to other
|
|
functions to extract data from the object file.
|
|
|
|
:samp:`{descriptor}` holds a file descriptor which permits reading.
|
|
|
|
:samp:`{offset}` is the offset into the file; this will be ``0`` in the
|
|
normal case, but may be a different value when reading an object file
|
|
in an archive file.
|
|
|
|
:samp:`{segment_name}` is only used with the Mach-O file format used on
|
|
Darwin aka Mac OS X. It is required on that platform, and means to
|
|
only look at sections within the segment with that name. The
|
|
parameter is ignored on other systems.
|
|
|
|
If an error occurs, this functions returns ``NULL`` and sets
|
|
``*errmsg`` to an error string and sets ``*err`` to
|
|
an errno value or ``0`` if there is no relevant errno.
|
|
|
|
.. simple-object.txh:107
|
|
|
|
.. function:: void simple_object_release_attributes (simple_object_attributes *attrs)
|
|
|
|
Release all resources associated with :samp:`{attrs}`.
|
|
|
|
.. simple-object.txh:73
|
|
|
|
.. function:: void simple_object_release_read (simple_object_read *simple_object)
|
|
|
|
Release all resources associated with :samp:`{simple_object}`. This does
|
|
not close the file descriptor.
|
|
|
|
.. simple-object.txh:184
|
|
|
|
.. function:: void simple_object_release_write (simple_object_write *simple_object)
|
|
|
|
Release all resources associated with :samp:`{simple_object}`.
|
|
|
|
.. simple-object.txh:114
|
|
|
|
.. function:: simple_object_write * simple_object_start_write (simple_object_attributes attrs, const char *segment_name, const char **errmsg, int *err)
|
|
|
|
Start creating a new object file using the object file format
|
|
described in :samp:`{attrs}`. You must fetch attribute information from
|
|
an existing object file before you can create a new one. There is
|
|
currently no support for creating an object file de novo.
|
|
|
|
:samp:`{segment_name}` is only used with Mach-O as found on Darwin aka Mac
|
|
OS X. The parameter is required on that target. It means that all
|
|
sections are created within the named segment. It is ignored for
|
|
other object file formats.
|
|
|
|
On error ``simple_object_start_write`` returns ``NULL``, sets
|
|
``*ERRMSG`` to an error message, and sets ``*err``
|
|
to an errno value or ``0`` if there is no relevant errno.
|
|
|
|
.. simple-object.txh:153
|
|
|
|
.. function:: const char * simple_object_write_add_data (simple_object_write *simple_object, simple_object_write_section *section, const void *buffer, size_t size, int copy, int *err)
|
|
|
|
Add data :samp:`{buffer}` / :samp:`{size}` to :samp:`{section}` in
|
|
:samp:`{simple_object}`. If :samp:`{copy}` is non-zero, the data will be
|
|
copied into memory if necessary. If :samp:`{copy}` is zero, :samp:`{buffer}`
|
|
must persist until ``simple_object_write_to_file`` is called. is
|
|
released.
|
|
|
|
On success this returns ``NULL``. On error this returns an error
|
|
message, and sets ``*err`` to an errno value or 0 if there is
|
|
no relevant erro.
|
|
|
|
.. simple-object.txh:134
|
|
|
|
.. function:: simple_object_write_section * simple_object_write_create_section (simple_object_write *simple_object, const char *name, unsigned int align, const char **errmsg, int *err)
|
|
|
|
Add a section to :samp:`{simple_object}`. :samp:`{name}` is the name of the
|
|
new section. :samp:`{align}` is the required alignment expressed as the
|
|
number of required low-order 0 bits (e.g., 2 for alignment to a 32-bit
|
|
boundary).
|
|
|
|
The section is created as containing data, readable, not writable, not
|
|
executable, not loaded at runtime. The section is not written to the
|
|
file until ``simple_object_write_to_file`` is called.
|
|
|
|
On error this returns ``NULL``, sets ``*errmsg`` to an
|
|
error message, and sets ``*err`` to an errno value or
|
|
``0`` if there is no relevant errno.
|
|
|
|
.. simple-object.txh:170
|
|
|
|
.. function:: const char * simple_object_write_to_file (simple_object_write *simple_object, int descriptor, int *err)
|
|
|
|
Write the complete object file to :samp:`{descriptor}`, an open file
|
|
descriptor. This writes out all the data accumulated by calls to
|
|
``simple_object_write_create_section`` and
|
|
:samp:`{simple_object_write_add_data}`.
|
|
|
|
This returns ``NULL`` on success. On error this returns an error
|
|
message and sets ``*err`` to an errno value or ``0`` if
|
|
there is no relevant errno.
|
|
|
|
.. snprintf.c:28
|
|
|
|
.. function:: int snprintf (char *buf, size_t n, const char *format, ...)
|
|
|
|
This function is similar to ``sprintf``, but it will write to
|
|
:samp:`{buf}` at most ``n-1`` bytes of text, followed by a
|
|
terminating null byte, for a total of :samp:`{n}` bytes.
|
|
On error the return value is -1, otherwise it returns the number of
|
|
bytes, not including the terminating null byte, that would have been
|
|
written had :samp:`{n}` been sufficiently large, regardless of the actual
|
|
value of :samp:`{n}`. Note some pre-C99 system libraries do not implement
|
|
this correctly so users cannot generally rely on the return value if
|
|
the system version of this function is used.
|
|
|
|
.. spaces.c:22
|
|
|
|
.. function:: char* spaces (int count)
|
|
|
|
Returns a pointer to a memory region filled with the specified
|
|
number of spaces and null terminated. The returned pointer is
|
|
valid until at least the next call.
|
|
|
|
.. splay-tree.c:305
|
|
|
|
.. function:: splay_tree splay_tree_new_with_typed_alloc (splay_tree_compare_fn compare_fn, splay_tree_delete_key_fn delete_key_fn, splay_tree_delete_value_fn delete_value_fn, splay_tree_allocate_fn tree_allocate_fn, splay_tree_allocate_fn node_allocate_fn, splay_tree_deallocate_fn deallocate_fn, void * allocate_data)
|
|
|
|
This function creates a splay tree that uses two different allocators
|
|
:samp:`{tree_allocate_fn}` and :samp:`{node_allocate_fn}` to use for allocating the
|
|
tree itself and its nodes respectively. This is useful when variables of
|
|
different types need to be allocated with different allocators.
|
|
|
|
The splay tree will use :samp:`{compare_fn}` to compare nodes,
|
|
:samp:`{delete_key_fn}` to deallocate keys, and :samp:`{delete_value_fn}` to
|
|
deallocate values. Keys and values will be deallocated when the
|
|
tree is deleted using splay_tree_delete or when a node is removed
|
|
using splay_tree_remove. splay_tree_insert will release the previously
|
|
inserted key and value using :samp:`{delete_key_fn}` and :samp:`{delete_value_fn}`
|
|
if the inserted key is already found in the tree.
|
|
|
|
.. stack-limit.c:28
|
|
|
|
.. function:: void stack_limit_increase (unsigned long pref)
|
|
|
|
Attempt to increase stack size limit to :samp:`{pref}` bytes if possible.
|
|
|
|
.. stpcpy.c:23
|
|
|
|
.. function:: char* stpcpy (char *dst, const char *src)
|
|
|
|
Copies the string :samp:`{src}` into :samp:`{dst}`. Returns a pointer to
|
|
:samp:`{dst}` + strlen(:samp:`{src}`).
|
|
|
|
.. stpncpy.c:23
|
|
|
|
.. function:: char* stpncpy (char *dst, const char *src, size_t len)
|
|
|
|
Copies the string :samp:`{src}` into :samp:`{dst}`, copying exactly :samp:`{len}`
|
|
and padding with zeros if necessary. If :samp:`{len}` < strlen(:samp:`{src}`)
|
|
then return :samp:`{dst}` + :samp:`{len}`, otherwise returns :samp:`{dst}` +
|
|
strlen(:samp:`{src}`).
|
|
|
|
.. strcasecmp.c:15
|
|
|
|
.. function:: int strcasecmp (const char *s1, const char *s2)
|
|
|
|
A case-insensitive ``strcmp``.
|
|
|
|
.. strchr.c:6
|
|
|
|
.. function:: char* strchr (const char *s, int c)
|
|
|
|
Returns a pointer to the first occurrence of the character :samp:`{c}` in
|
|
the string :samp:`{s}`, or ``NULL`` if not found. If :samp:`{c}` is itself the
|
|
null character, the results are undefined.
|
|
|
|
.. strdup.c:3
|
|
|
|
.. function:: char* strdup (const char *s)
|
|
|
|
Returns a pointer to a copy of :samp:`{s}` in memory obtained from
|
|
``malloc``, or ``NULL`` if insufficient memory was available.
|
|
|
|
.. strerror.c:675
|
|
|
|
.. function:: const char* strerrno (int errnum)
|
|
|
|
Given an error number returned from a system call (typically returned
|
|
in ``errno``), returns a pointer to a string containing the
|
|
symbolic name of that error number, as found in ``<errno.h>``.
|
|
|
|
If the supplied error number is within the valid range of indices for
|
|
symbolic names, but no name is available for the particular error
|
|
number, then returns the string :samp:`Error {num}`, where :samp:`{num}`
|
|
is the error number.
|
|
|
|
If the supplied error number is not within the range of valid
|
|
indices, then returns ``NULL``.
|
|
|
|
The contents of the location pointed to are only guaranteed to be
|
|
valid until the next call to ``strerrno``.
|
|
|
|
.. strerror.c:608
|
|
|
|
.. function:: char* strerror (int errnoval)
|
|
|
|
Maps an ``errno`` number to an error message string, the contents
|
|
of which are implementation defined. On systems which have the
|
|
external variables ``sys_nerr`` and ``sys_errlist``, these
|
|
strings will be the same as the ones used by ``perror``.
|
|
|
|
If the supplied error number is within the valid range of indices for
|
|
the ``sys_errlist``, but no message is available for the particular
|
|
error number, then returns the string :samp:`Error {num}`, where
|
|
:samp:`{num}` is the error number.
|
|
|
|
If the supplied error number is not a valid index into
|
|
``sys_errlist``, returns ``NULL``.
|
|
|
|
The returned string is only guaranteed to be valid only until the
|
|
next call to ``strerror``.
|
|
|
|
.. strncasecmp.c:15
|
|
|
|
.. function:: int strncasecmp (const char *s1, const char *s2)
|
|
|
|
A case-insensitive ``strncmp``.
|
|
|
|
.. strncmp.c:6
|
|
|
|
.. function:: int strncmp (const char *s1, const char *s2, size_t n)
|
|
|
|
Compares the first :samp:`{n}` bytes of two strings, returning a value as
|
|
``strcmp``.
|
|
|
|
.. strndup.c:23
|
|
|
|
.. function:: char* strndup (const char *s, size_t n)
|
|
|
|
Returns a pointer to a copy of :samp:`{s}` with at most :samp:`{n}` characters
|
|
in memory obtained from ``malloc``, or ``NULL`` if insufficient
|
|
memory was available. The result is always NUL terminated.
|
|
|
|
.. strnlen.c:6
|
|
|
|
.. function:: size_t strnlen (const char *s, size_t maxlen)
|
|
|
|
Returns the length of :samp:`{s}`, as with ``strlen``, but never looks
|
|
past the first :samp:`{maxlen}` characters in the string. If there is no
|
|
'\0' character in the first :samp:`{maxlen}` characters, returns
|
|
:samp:`{maxlen}`.
|
|
|
|
.. strrchr.c:6
|
|
|
|
.. function:: char* strrchr (const char *s, int c)
|
|
|
|
Returns a pointer to the last occurrence of the character :samp:`{c}` in
|
|
the string :samp:`{s}`, or ``NULL`` if not found. If :samp:`{c}` is itself the
|
|
null character, the results are undefined.
|
|
|
|
.. strsignal.c:383
|
|
|
|
.. function:: const char * strsignal (int signo)
|
|
|
|
Maps an signal number to an signal message string, the contents of
|
|
which are implementation defined. On systems which have the external
|
|
variable ``sys_siglist``, these strings will be the same as the
|
|
ones used by ``psignal()``.
|
|
|
|
If the supplied signal number is within the valid range of indices for
|
|
the ``sys_siglist``, but no message is available for the particular
|
|
signal number, then returns the string :samp:`Signal {num}`, where
|
|
:samp:`{num}` is the signal number.
|
|
|
|
If the supplied signal number is not a valid index into
|
|
``sys_siglist``, returns ``NULL``.
|
|
|
|
The returned string is only guaranteed to be valid only until the next
|
|
call to ``strsignal``.
|
|
|
|
.. strsignal.c:448
|
|
|
|
.. function:: const char* strsigno (int signo)
|
|
|
|
Given an signal number, returns a pointer to a string containing the
|
|
symbolic name of that signal number, as found in ``<signal.h>``.
|
|
|
|
If the supplied signal number is within the valid range of indices for
|
|
symbolic names, but no name is available for the particular signal
|
|
number, then returns the string :samp:`Signal {num}`, where
|
|
:samp:`{num}` is the signal number.
|
|
|
|
If the supplied signal number is not within the range of valid
|
|
indices, then returns ``NULL``.
|
|
|
|
The contents of the location pointed to are only guaranteed to be
|
|
valid until the next call to ``strsigno``.
|
|
|
|
.. strstr.c:6
|
|
|
|
.. function:: char* strstr (const char *string, const char *sub)
|
|
|
|
This function searches for the substring :samp:`{sub}` in the string
|
|
:samp:`{string}`, not including the terminating null characters. A pointer
|
|
to the first occurrence of :samp:`{sub}` is returned, or ``NULL`` if the
|
|
substring is absent. If :samp:`{sub}` points to a string with zero
|
|
length, the function returns :samp:`{string}`.
|
|
|
|
.. strtod.c:27
|
|
|
|
.. function:: double strtod (const char *string, char **endptr)
|
|
|
|
This ISO C function converts the initial portion of :samp:`{string}` to a
|
|
``double``. If :samp:`{endptr}` is not ``NULL``, a pointer to the
|
|
character after the last character used in the conversion is stored in
|
|
the location referenced by :samp:`{endptr}`. If no conversion is
|
|
performed, zero is returned and the value of :samp:`{string}` is stored in
|
|
the location referenced by :samp:`{endptr}`.
|
|
|
|
.. strerror.c:734
|
|
|
|
.. function:: int strtoerrno (const char *name)
|
|
|
|
Given the symbolic name of a error number (e.g., ``EACCES``), map it
|
|
to an errno value. If no translation is found, returns 0.
|
|
|
|
.. strtol.c:33
|
|
|
|
.. function:: long int strtol (const char *string, char **endptr, int base)
|
|
unsigned long int strtoul (const char *string, char **endptr, int base)
|
|
|
|
The ``strtol`` function converts the string in :samp:`{string}` to a
|
|
long integer value according to the given :samp:`{base}`, which must be
|
|
between 2 and 36 inclusive, or be the special value 0. If :samp:`{base}`
|
|
is 0, ``strtol`` will look for the prefixes ``0`` and ``0x``
|
|
to indicate bases 8 and 16, respectively, else default to base 10.
|
|
When the base is 16 (either explicitly or implicitly), a prefix of
|
|
``0x`` is allowed. The handling of :samp:`{endptr}` is as that of
|
|
``strtod`` above. The ``strtoul`` function is the same, except
|
|
that the converted value is unsigned.
|
|
|
|
.. strtoll.c:33
|
|
|
|
.. function:: long long int strtoll (const char *string, char **endptr, int base)
|
|
unsigned long long int strtoull (const char *string, char **endptr, int base)
|
|
|
|
The ``strtoll`` function converts the string in :samp:`{string}` to a
|
|
long long integer value according to the given :samp:`{base}`, which must be
|
|
between 2 and 36 inclusive, or be the special value 0. If :samp:`{base}`
|
|
is 0, ``strtoll`` will look for the prefixes ``0`` and ``0x``
|
|
to indicate bases 8 and 16, respectively, else default to base 10.
|
|
When the base is 16 (either explicitly or implicitly), a prefix of
|
|
``0x`` is allowed. The handling of :samp:`{endptr}` is as that of
|
|
``strtod`` above. The ``strtoull`` function is the same, except
|
|
that the converted value is unsigned.
|
|
|
|
.. strsignal.c:502
|
|
|
|
.. function:: int strtosigno (const char *name)
|
|
|
|
Given the symbolic name of a signal, map it to a signal number. If no
|
|
translation is found, returns 0.
|
|
|
|
.. strverscmp.c:25
|
|
|
|
.. function:: int strverscmp (const char *s1, const char *s2)
|
|
|
|
The ``strverscmp`` function compares the string :samp:`{s1}` against
|
|
:samp:`{s2}`, considering them as holding indices/version numbers. Return
|
|
value follows the same conventions as found in the ``strverscmp``
|
|
function. In fact, if :samp:`{s1}` and :samp:`{s2}` contain no digits,
|
|
``strverscmp`` behaves like ``strcmp``.
|
|
|
|
Basically, we compare strings normally (character by character), until
|
|
we find a digit in each string - then we enter a special comparison
|
|
mode, where each sequence of digits is taken as a whole. If we reach the
|
|
end of these two parts without noticing a difference, we return to the
|
|
standard comparison mode. There are two types of numeric parts:
|
|
"integral" and "fractional" (those begin with a '0'). The types
|
|
of the numeric parts affect the way we sort them:
|
|
|
|
* integral/integral: we compare values as you would expect.
|
|
|
|
* fractional/integral: the fractional part is less than the integral one.
|
|
Again, no surprise.
|
|
|
|
* fractional/fractional: the things become a bit more complex.
|
|
If the common prefix contains only leading zeroes, the longest part is less
|
|
than the other one; else the comparison behaves normally.
|
|
|
|
.. code-block::
|
|
|
|
strverscmp ("no digit", "no digit")
|
|
⇒ 0 // same behavior as strcmp.
|
|
strverscmp ("item#99", "item#100")
|
|
⇒ <0 // same prefix, but 99 < 100.
|
|
strverscmp ("alpha1", "alpha001")
|
|
⇒ >0 // fractional part inferior to integral one.
|
|
strverscmp ("part1_f012", "part1_f01")
|
|
⇒ >0 // two fractional parts.
|
|
strverscmp ("foo.009", "foo.0")
|
|
⇒ <0 // idem, but with leading zeroes only.
|
|
|
|
This function is especially useful when dealing with filename sorting,
|
|
because filenames frequently hold indices/version numbers.
|
|
|
|
.. timeval-utils.c:43
|
|
|
|
.. function:: void timeval_add (struct timeval *a, struct timeval *b, struct timeval *result)
|
|
|
|
Adds :samp:`{a}` to :samp:`{b}` and stores the result in :samp:`{result}`.
|
|
|
|
.. timeval-utils.c:67
|
|
|
|
.. function:: void timeval_sub (struct timeval *a, struct timeval *b, struct timeval *result)
|
|
|
|
Subtracts :samp:`{b}` from :samp:`{a}` and stores the result in :samp:`{result}`.
|
|
|
|
.. tmpnam.c:3
|
|
|
|
.. function:: char* tmpnam (char *s)
|
|
|
|
This function attempts to create a name for a temporary file, which
|
|
will be a valid file name yet not exist when ``tmpnam`` checks for
|
|
it. :samp:`{s}` must point to a buffer of at least ``L_tmpnam`` bytes,
|
|
or be ``NULL``. Use of this function creates a security risk, and it must
|
|
not be used in new projects. Use ``mkstemp`` instead.
|
|
|
|
.. unlink-if-ordinary.c:27
|
|
|
|
.. function:: int unlink_if_ordinary (const char*)
|
|
|
|
Unlinks the named file, unless it is special (e.g. a device file).
|
|
Returns 0 when the file was unlinked, a negative value (and errno set) when
|
|
there was an error deleting the file, and a positive value if no attempt
|
|
was made to unlink the file because it is special.
|
|
|
|
.. fopen_unlocked.c:31
|
|
|
|
.. function:: void unlock_std_streams (void)
|
|
|
|
If the OS supports it, ensure that the standard I/O streams,
|
|
``stdin``, ``stdout`` and ``stderr`` are setup to avoid any
|
|
multi-threaded locking. Otherwise do nothing.
|
|
|
|
.. fopen_unlocked.c:23
|
|
|
|
.. function:: void unlock_stream (FILE * stream)
|
|
|
|
If the OS supports it, ensure that the supplied stream is setup to
|
|
avoid any multi-threaded locking. Otherwise leave the ``FILE``
|
|
pointer unchanged. If the :samp:`{stream}` is ``NULL`` do nothing.
|
|
|
|
.. vasprintf.c:47
|
|
|
|
.. function:: int vasprintf (char **resptr, const char *format, va_list args)
|
|
|
|
Like ``vsprintf``, but instead of passing a pointer to a buffer,
|
|
you pass a pointer to a pointer. This function will compute the size
|
|
of the buffer needed, allocate memory with ``malloc``, and store a
|
|
pointer to the allocated memory in ``*resptr``. The value
|
|
returned is the same as ``vsprintf`` would return. If memory could
|
|
not be allocated, minus one is returned and ``NULL`` is stored in
|
|
``*resptr``.
|
|
|
|
.. vfork.c:6
|
|
|
|
.. function:: int vfork (void)
|
|
|
|
Emulates ``vfork`` by calling ``fork`` and returning its value.
|
|
|
|
.. vprintf.c:3
|
|
|
|
.. function:: int vprintf (const char *format, va_list ap)
|
|
int vfprintf (FILE *stream, const char *format, va_list ap)
|
|
int vsprintf (char *str, const char *format, va_list ap)
|
|
|
|
These functions are the same as ``printf``, ``fprintf``, and
|
|
``sprintf``, respectively, except that they are called with a
|
|
``va_list`` instead of a variable number of arguments. Note that
|
|
they do not call ``va_end`` ; this is the application's
|
|
responsibility. In ``libiberty`` they are implemented in terms of the
|
|
nonstandard but common function ``_doprnt``.
|
|
|
|
.. vsnprintf.c:28
|
|
|
|
.. function:: int vsnprintf (char *buf, size_t n, const char *format, va_list ap)
|
|
|
|
This function is similar to ``vsprintf``, but it will write to
|
|
:samp:`{buf}` at most ``n-1`` bytes of text, followed by a
|
|
terminating null byte, for a total of :samp:`{n}` bytes. On error the
|
|
return value is -1, otherwise it returns the number of characters that
|
|
would have been printed had :samp:`{n}` been sufficiently large,
|
|
regardless of the actual value of :samp:`{n}`. Note some pre-C99 system
|
|
libraries do not implement this correctly so users cannot generally
|
|
rely on the return value if the system version of this function is
|
|
used.
|
|
|
|
.. waitpid.c:3
|
|
|
|
.. function:: int waitpid (int pid, int *status, int)
|
|
|
|
This is a wrapper around the ``wait`` function. Any 'special'
|
|
values of :samp:`{pid}` depend on your implementation of ``wait``, as
|
|
does the return value. The third argument is unused in ``libiberty``.
|
|
|
|
.. argv.c:289
|
|
|
|
.. function:: int writeargv (char * const *argv, FILE *file)
|
|
|
|
Write each member of ARGV, handling all necessary quoting, to the file
|
|
named by FILE, separated by whitespace. Return 0 on success, non-zero
|
|
if an error occurred while writing to FILE.
|
|
|
|
.. xasprintf.c:31
|
|
|
|
.. function:: char* xasprintf (const char *format, ...)
|
|
|
|
Print to allocated string without fail. If ``xasprintf`` fails,
|
|
this will print a message to ``stderr`` (using the name set by
|
|
``xmalloc_set_program_name``, if any) and then call ``xexit``.
|
|
|
|
.. xatexit.c:11
|
|
|
|
.. function:: int xatexit (void (*fn) (void))
|
|
|
|
Behaves as the standard ``atexit`` function, but with no limit on
|
|
the number of registered functions. Returns 0 on success, or -1 on
|
|
failure. If you use ``xatexit`` to register functions, you must use
|
|
``xexit`` to terminate your program.
|
|
|
|
.. xmalloc.c:38
|
|
|
|
.. function:: void* xcalloc (size_t nelem, size_t elsize)
|
|
|
|
Allocate memory without fail, and set it to zero. This routine functions
|
|
like ``calloc``, but will behave the same as ``xmalloc`` if memory
|
|
cannot be found.
|
|
|
|
.. xexit.c:22
|
|
|
|
.. function:: void xexit (int code)
|
|
|
|
Terminates the program. If any functions have been registered with
|
|
the ``xatexit`` replacement function, they will be called first.
|
|
Termination is handled via the system's normal ``exit`` call.
|
|
|
|
.. xmalloc.c:22
|
|
|
|
.. function:: void* xmalloc (size_t)
|
|
|
|
Allocate memory without fail. If ``malloc`` fails, this will print
|
|
a message to ``stderr`` (using the name set by
|
|
``xmalloc_set_program_name``,
|
|
if any) and then call ``xexit``. Note that it is therefore safe for
|
|
a program to contain ``#define malloc xmalloc`` in its source.
|
|
|
|
.. xmalloc.c:53
|
|
|
|
.. function:: void xmalloc_failed (size_t)
|
|
|
|
This function is not meant to be called by client code, and is listed
|
|
here for completeness only. If any of the allocation routines fail, this
|
|
function will be called to print an error message and terminate execution.
|
|
|
|
.. xmalloc.c:46
|
|
|
|
.. function:: void xmalloc_set_program_name (const char *name)
|
|
|
|
You can use this to set the name of the program used by
|
|
``xmalloc_failed`` when printing a failure message.
|
|
|
|
.. xmemdup.c:7
|
|
|
|
.. function:: void* xmemdup (void *input, size_t copy_size, size_t alloc_size)
|
|
|
|
Duplicates a region of memory without fail. First, :samp:`{alloc_size}` bytes
|
|
are allocated, then :samp:`{copy_size}` bytes from :samp:`{input}` are copied into
|
|
it, and the new memory is returned. If fewer bytes are copied than were
|
|
allocated, the remaining memory is zeroed.
|
|
|
|
.. xmalloc.c:32
|
|
|
|
.. function:: void* xrealloc (void *ptr, size_t size)
|
|
|
|
Reallocate memory without fail. This routine functions like ``realloc``,
|
|
but will behave the same as ``xmalloc`` if memory cannot be found.
|
|
|
|
.. xstrdup.c:7
|
|
|
|
.. function:: char* xstrdup (const char *s)
|
|
|
|
Duplicates a character string without fail, using ``xmalloc`` to
|
|
obtain memory.
|
|
|
|
.. xstrerror.c:7
|
|
|
|
.. function:: char* xstrerror (int errnum)
|
|
|
|
Behaves exactly like the standard ``strerror`` function, but
|
|
will never return a ``NULL`` pointer.
|
|
|
|
.. xstrndup.c:23
|
|
|
|
.. function:: char* xstrndup (const char *s, size_t n)
|
|
|
|
Returns a pointer to a copy of :samp:`{s}` with at most :samp:`{n}` characters
|
|
without fail, using ``xmalloc`` to obtain memory. The result is
|
|
always NUL terminated.
|
|
|
|
.. xvasprintf.c:38
|
|
|
|
.. function:: char* xvasprintf (const char *format, va_list args)
|
|
|
|
Print to allocated string without fail. If ``xvasprintf`` fails,
|
|
this will print a message to ``stderr`` (using the name set by
|
|
``xmalloc_set_program_name``, if any) and then call ``xexit``.
|