diff options
author | Sandra Loosemore <sloosemore@baylibre.com> | 2025-02-11 21:52:36 +0000 |
---|---|---|
committer | Sandra Loosemore <sloosemore@baylibre.com> | 2025-02-12 01:46:18 +0000 |
commit | b9857b78a4afb7ccdb8ff3858b48d25b1df5ceb3 (patch) | |
tree | 30ca46870173d03416174b73a062b22e5e8f0b0e | |
parent | 29a5b1bdd9ff1bbfd2c367aea2f38fc23e6dbfb4 (diff) | |
download | gcc-b9857b78a4afb7ccdb8ff3858b48d25b1df5ceb3.zip gcc-b9857b78a4afb7ccdb8ff3858b48d25b1df5ceb3.tar.gz gcc-b9857b78a4afb7ccdb8ff3858b48d25b1df5ceb3.tar.bz2 |
Doc: Fix some typos and other nearby sloppy-writing issues
I spotted some typos in the GCC manual. Since often these are a sign
that the text was inserted without being proofread, I looked at the
context and fixed some grammar/punctuation/wording issues as well.
gcc/ChangeLog
* doc/extend.texi: Fix a bunch of typos and other writing bugs.
* doc/invoke.texi: Likewise.
-rw-r--r-- | gcc/doc/extend.texi | 87 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 62 |
2 files changed, 74 insertions, 75 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index d79e97d..065bd8b 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -1004,17 +1004,16 @@ The ISO C++14 library also defines the @samp{i} suffix, so C++14 code that includes the @samp{<complex>} header cannot use @samp{i} for the GNU extension. The @samp{j} suffix still has the GNU meaning. -GCC can handle both implicit and explicit casts between the @code{_Complex} -types and other @code{_Complex} types as casting both the real and imaginary -parts to the scalar type. -GCC can handle implicit and explicit casts from a scalar type to a @code{_Complex} -type and where the imaginary part will be considered zero. -The C front-end can handle implicit and explicit casts from a @code{_Complex} type -to a scalar type where the imaginary part will be ignored. In C++ code, this cast -is considered illformed and G++ will error out. - -GCC provides a built-in function @code{__builtin_complex} will can be used to -construct a complex value. +GCC handles both implicit and explicit casts between the +@code{_Complex} types with different scalar base types by casting both +the real and imaginary parts to the base type of the result. +GCC also handles implicit and explicit casts from a scalar type to a +@code{_Complex} type, by giving the imaginary part a zero value. + +The C front end can handle implicit and explicit casts from a +@code{_Complex} type to a scalar type, which uses the value of the +real part and ignores the imaginary part. In C++ code, this cast is +considered ill-formed and G++ diagnoses it as an error. @cindex @code{__real__} keyword @cindex @code{__imag__} keyword @@ -1023,7 +1022,7 @@ GCC has a few extensions which can be used to extract the real and the imaginary part of the complex-valued expression. Note these expressions are lvalues if the @var{exp} is an lvalue. These expressions operands have the type of a complex type -which might get prompoted to a complex type from a scalar type. +which might get promoted to a complex type from a scalar type. E.g. @code{__real__ (int)@var{x}} is the same as casting to @code{_Complex int} before @code{__real__} is done. @@ -1035,7 +1034,7 @@ E.g. @code{__real__ (int)@var{x}} is the same as casting to @tab Extract the imaginary part of @var{exp}. @end multitable -For values of floating point, you should use the ISO C99 +For values of floating-point type, you should use the ISO C99 functions, declared in @code{<complex.h>} and also provided as built-in functions by GCC@. @@ -1053,7 +1052,7 @@ with a complex type. This is a GNU extension; for values of floating type, you should use the ISO C99 functions @code{conjf}, @code{conj} and @code{conjl}, declared in @code{<complex.h>} and also provided as built-in functions by GCC@. Note unlike the @code{__real__} -and @code{__imag__} operators, this operator will not do an implicit cast +and @code{__imag__} operators, this operator does not do an implicit cast to the complex type because the @samp{~} is already a normal operator. GCC can allocate complex automatic variables in a noncontiguous @@ -3526,7 +3525,7 @@ mismatched allocation and deallocation functions and diagnose them under the control of options such as @option{-Wmismatched-dealloc}. It also makes it possible to diagnose attempts to deallocate objects that were not allocated dynamically, by @option{-Wfree-nonheap-object}. To indicate -that an allocation function both satisifies the nonaliasing property and +that an allocation function both satisfies the nonaliasing property and has a deallocator associated with it, both the plain form of the attribute and the one with the @var{deallocator} argument must be used. The same function can be both an allocator and a deallocator. Since inlining one @@ -3949,7 +3948,7 @@ caveats. If the pointer argument is also referred to by an @code{access} attribute on the function with @var{access-mode} either @code{read_only} or @code{read_write} and the latter attribute has the optional @var{size-index} argument -referring to a size argument, this expressses the maximum size of the access. +referring to a size argument, this expresses the maximum size of the access. For example, given: @smallexample @@ -4378,7 +4377,7 @@ is a usage of a function with @code{target_clones} attribute. Note that any subsequent call of a function without @code{target_clone} from a @code{target_clone} caller will not lead to copying (target clone) of the called function. -If you want to enforce such behaviour, +If you want to enforce such behavior, we recommend declaring the calling function with the @code{flatten} attribute? @cindex @code{unavailable} function attribute @@ -7624,7 +7623,7 @@ Enable/disable the generation of the AVX10.2 instructions. @cindex @code{target("avx10.2-256")} function attribute, x86 @item avx10.2-256 @itemx no-avx10.2-256 -Enable/disbale the generation of the AVX10.2 instructions. +Enable/disable the generation of the AVX10.2 instructions. @cindex @code{target("avx10.2-512")} function attribute, x86 @item avx10.2-512 @@ -8075,7 +8074,7 @@ negative integer value, the compiler treats the value as zero. An explicit @code{counted_by} annotation defines a relationship between two objects, @code{p->array} and @code{p->count}, and there are the -following requirementthat on the relationship between this pair: +following requirements on the relationship between this pair: @itemize @bullet @item @@ -8088,12 +8087,12 @@ available all the time. This relationship must hold even after any of these related objects are updated during the program. @end itemize -It's the user's responsibility to make sure the above requirements to -be kept all the time. Otherwise the compiler reports warnings, -at the same time, the results of the array bound sanitizer and the -@code{__builtin_dynamic_object_size} is undefined. +It's the programmer's responsibility to make sure the above requirements to +be kept all the time. Otherwise the compiler reports warnings and +the results of the array bound sanitizer and the +@code{__builtin_dynamic_object_size} built-in are undefined. -One important feature of the attribute is, a reference to the flexible +One important feature of the attribute is that a reference to the flexible array member field uses the latest value assigned to the field that represents the number of the elements before that reference. For example, @@ -8105,7 +8104,7 @@ represents the number of the elements before that reference. For example, @end smallexample @noindent -in the above, @code{ref1} uses @code{val1} as the number of the elements in +In the above, @code{ref1} uses @code{val1} as the number of the elements in @code{p->array}, and @code{ref2} uses @code{val2} as the number of elements in @code{p->array}. @@ -8339,7 +8338,7 @@ between processor resets. This attribute is specific to ELF targets and relies on the linker script to place the sections with the @code{.persistent} prefix in the -right location. Specifically, some type of non-volatile, writeable +right location. Specifically, some type of non-volatile, writable memory is required. @cindex @code{section} variable attribute @@ -8397,7 +8396,7 @@ The @code{strict_flex_array} attribute should be attached to the trailing array field of a structure. It controls when to treat the trailing array field of a structure as a flexible array member for the purposes of accessing the elements of such an array. -@var{level} must be an integer betwen 0 to 3. +@var{level} must be an integer between 0 to 3. @var{level}=0 is the least strict level, all trailing arrays of structures are treated as flexible array members. @var{level}=3 is the strictest level, @@ -8486,7 +8485,7 @@ With the option @code{-ftrivial-auto-var-init}, all the automatic variables that do not have explicit initializers will be initialized by the compiler. These additional compiler initializations might incur run-time overhead, sometimes dramatically. This attribute can be used to mark some variables -to be excluded from such automatical initialization in order to reduce runtime +to be excluded from such automatic initialization in order to reduce runtime overhead. This attribute has no effect when the option @code{-ftrivial-auto-var-init} @@ -8581,7 +8580,7 @@ The @code{weak} attribute is described in @cindex @code{aux} variable attribute, ARC @item aux The @code{aux} attribute is used to directly access the ARC's -auxiliary register space from C. The auxilirary register number is +auxiliary register space from C. The auxiliary register number is given via attribute argument. @end table @@ -9207,7 +9206,7 @@ argument of an integer type. It indicates that the returned pointer points to an object whose size is given by the function argument at @var{position-1}, or by the product of the arguments at @var{position-1} and @var{position-2}. Meaningful sizes are positive values less than -@code{PTRDIFF_MAX}. Other sizes are disagnosed when detected. GCC uses +@code{PTRDIFF_MAX}. Other sizes are diagnosed when detected. GCC uses this information to improve the results of @code{__builtin_object_size}. For instance, the following declarations @@ -11628,7 +11627,7 @@ for @code{d} by specifying both constraints. Some targets have a special register that holds the ``flags'' for the result of an operation or comparison. Normally, the contents of that -register are either unmodifed by the asm, or the @code{asm} statement is +register are either unmodified by the asm, or the @code{asm} statement is considered to clobber the contents. On some targets, a special form of output operand exists by which @@ -12595,7 +12594,7 @@ instruction, depending on the mode. @item @code{p} @tab Print the value of 2, raised to the power of the given constant. Used to select the specified bit position. @item @code{r} @tab Inverse of condition code, for signed comparisons. -@item @code{x} @tab Equivialent to @code{X}, but only for pointers. +@item @code{x} @tab Equivalent to @code{X}, but only for pointers. @end multitable @anchor{loongarchOperandmodifiers} @@ -13509,7 +13508,7 @@ well as in assignments and some casts. You can specify a vector type as a return type for a function. Vector types can also be used as function arguments. It is possible to cast from one vector type to another, provided they are of the same size (in fact, you can also cast vectors -to and from other datatypes of the same size). +to and from other data types of the same size). You cannot operate between vectors of different lengths or different signedness without a cast. @@ -14202,7 +14201,7 @@ i.e.@: they add 3 unsigned values, set what the last argument points to to 1 if any of the two additions overflowed (otherwise 0) and return the sum of those 3 unsigned values. Note, while all the first 3 arguments can have arbitrary values, better code will be -emitted if one of them (preferrably the third one) has only values +emitted if one of them (preferably the third one) has only values 0 or 1 (i.e.@: carry-in). @enddefbuiltin @@ -15546,7 +15545,7 @@ the pointer points to. Inside of a union, the only cleared bits are bits that are padding bits for all the union members. This built-in-function is useful if the padding bits of an object might -have intederminate values and the object representation needs to be +have indeterminate values and the object representation needs to be bitwise compared to some other object, for example for atomic operations. For C++, @var{ptr} argument type should be pointer to trivially-copyable @@ -18134,7 +18133,7 @@ The intrinsics provided are listed below: void __builtin_loongarch_break (imm0_32767) @end smallexample -These instrisic functions are available by using @option{-mfrecipe}. +These intrinsic functions are available by using @option{-mfrecipe}. @smallexample float __builtin_loongarch_frecipe_s (float); double __builtin_loongarch_frecipe_d (double); @@ -18214,7 +18213,7 @@ function you need to include @code{larchintrin.h}. void __break (imm0_32767) @end smallexample -These instrisic functions are available by including @code{larchintrin.h} and +These intrinsic functions are available by including @code{larchintrin.h} and using @option{-mfrecipe}. @smallexample float __frecipe_s (float); @@ -19059,7 +19058,7 @@ __m128i __lsx_vxori_b (__m128i, imm0_255); __m128i __lsx_vxor_v (__m128i, __m128i); @end smallexample -These instrisic functions are available by including @code{lsxintrin.h} and +These intrinsic functions are available by including @code{lsxintrin.h} and using @option{-mfrecipe} and @option{-mlsx}. @smallexample __m128d __lsx_vfrecipe_d (__m128d); @@ -19907,7 +19906,7 @@ __m256i __lasx_xvxori_b (__m256i, imm0_255); __m256i __lasx_xvxor_v (__m256i, __m256i); @end smallexample -These instrisic functions are available by including @code{lasxintrin.h} and +These intrinsic functions are available by including @code{lasxintrin.h} and using @option{-mfrecipe} and @option{-mlasx}. @smallexample __m256d __lasx_xvfrecipe_d (__m256d); @@ -22123,7 +22122,7 @@ between @code{lo_1} and @code{hi_1} inclusive or the range bounded between @code{lo_2} and @code{hi_2} inclusive. The @code{__builtin_dfp_dtstsfi_lt} function returns a non-zero value -if and only if the number of signficant digits of its @code{value} argument +if and only if the number of significant digits of its @code{value} argument is less than its @code{comparison} argument. The @code{__builtin_dfp_dtstsfi_lt_dd} and @code{__builtin_dfp_dtstsfi_lt_td} functions behave similarly, but @@ -22131,7 +22130,7 @@ require that the type of the @code{value} argument be @code{__Decimal64} and @code{__Decimal128} respectively. The @code{__builtin_dfp_dtstsfi_gt} function returns a non-zero value -if and only if the number of signficant digits of its @code{value} argument +if and only if the number of significant digits of its @code{value} argument is greater than its @code{comparison} argument. The @code{__builtin_dfp_dtstsfi_gt_dd} and @code{__builtin_dfp_dtstsfi_gt_td} functions behave similarly, but @@ -22139,7 +22138,7 @@ require that the type of the @code{value} argument be @code{__Decimal64} and @code{__Decimal128} respectively. The @code{__builtin_dfp_dtstsfi_eq} function returns a non-zero value -if and only if the number of signficant digits of its @code{value} argument +if and only if the number of significant digits of its @code{value} argument equals its @code{comparison} argument. The @code{__builtin_dfp_dtstsfi_eq_dd} and @code{__builtin_dfp_dtstsfi_eq_td} functions behave similarly, but @@ -28526,7 +28525,7 @@ subsequent functions. @subsection LoongArch Pragmas The list of attributes supported by Pragma is the same as that of target -function attributres. @xref{LoongArch Function Attributes}. +function attributes. @xref{LoongArch Function Attributes}. Example: @@ -29758,7 +29757,7 @@ user with a way of explicitly directing the compiler to emit entities with vague linkage (and debugging information) in a particular translation unit. -@emph{Note:} These @code{#pragma}s have been superceded as of GCC 2.7.2 +@emph{Note:} These @code{#pragma}s have been superseded as of GCC 2.7.2 by COMDAT support and the ``key method'' heuristic mentioned in @ref{Vague Linkage}. Using them can actually cause your program to grow due to unnecessary out-of-line copies of inline diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 56d43cb..bd42a8b 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -3014,10 +3014,10 @@ Version 17, which first appeared in G++ 12, fixes layout of classes that inherit from aggregate classes with default member initializers in C++14 and up. -Version 18, which first appeard in G++ 13, fixes manglings of lambdas +Version 18, which first appeared in G++ 13, fixes manglings of lambdas that have additional context. -Version 19, which first appeard in G++ 14, fixes manglings of structured +Version 19, which first appeared in G++ 14, fixes manglings of structured bindings to include ABI tags. Version 20, which first appeared in G++ 15, fixes manglings of lambdas @@ -10162,7 +10162,7 @@ old-style definition for older standards. @opindex Wdeprecated-non-prototype @opindex Wno-deprecated-non-prototype @item -Wdeprecated-non-prototype @r{(C and Objective-C only)} -Warn if a function declarated with an empty parameter list @samp{()} is +Warn if a function declared with an empty parameter list @samp{()} is called with one or more arguments, or if a function definition with one or more parameters is encountered after such a declaration. Both cases are errors in C23 and later dialects of C. @@ -15158,12 +15158,12 @@ This option is enabled by @option{-fauto-profile}. @opindex fprofile-partial-training @item -fprofile-partial-training With @code{-fprofile-use} all portions of programs not executed during train -run are optimized agressively for size rather than speed. In some cases it is +run are optimized aggressively for size rather than speed. In some cases it is not practical to train all possible hot paths in the program. (For example, program may contain functions specific for a given hardware and -trianing may not cover all hardware configurations program is run on.) With -@code{-fprofile-partial-training} profile feedback will be ignored for all -functions not executed during the train run leading them to be optimized as if +training may not cover all hardware configurations program is run on.) With +@code{-fprofile-partial-training} profile feedback is ignored for all +functions not executed during the train run, leading them to be optimized as if they were compiled without profile feedback. This leads to better performance when train run is not representative but also leads to significantly bigger code. @@ -15619,7 +15619,7 @@ Control whether @code{malloc} (and its variants such as @code{calloc} or @code{strdup}), can be optimized away provided its return value is only used as a parameter of @code{free} call or compared with @code{NULL}. If @option{-fmalloc-dce=1} is used, only calls to @code{free} are allowed while -with @option{-fmalloc-dce=2} also comparsions with @code{NULL} pointer are +with @option{-fmalloc-dce=2} also comparisons with @code{NULL} pointer are considered safe to remove. The default is @option{-fmalloc-dce=2}. See also @option{-fallocation-dce}. @@ -15888,12 +15888,12 @@ by the compiler are investigated. To those functions, a different be applied (@option{--param max-inline-insns-auto}). @item max-inline-insns-small -This is bound applied to calls which are considered relevant with +This is the bound applied to calls that are considered relevant with @option{-finline-small-functions}. @item max-inline-insns-size -This is bound applied to calls which are optimized for size. Small growth -may be desirable to anticipate optimization oppurtunities exposed by inlining. +This is the bound applied to calls that are optimized for size. Small growth +may be desirable to anticipate optimization opportunities exposed by inlining. @item uninlined-function-insns Number of instructions accounted by inliner for function overhead such as @@ -15928,7 +15928,7 @@ to avoid extreme compilation time caused by non-linear algorithms used by the back end. @item large-function-growth -Specifies maximal growth of large function caused by inlining in percents. +Specifies maximal growth of large functions caused by inlining in percents. For example, parameter value 100 limits large function growth to 2.0 times the original size. @@ -17276,12 +17276,12 @@ With @option{--param=openacc-privatization=noisy}, do diagnose. @item cycle-accurate-model Specifies whether GCC should assume that the scheduling description is mostly -a cycle-accurate model of the target processor, where the code is intended to +a cycle-accurate model of the target processor the code is intended to run on, in the absence of cache misses. Nonzero means that the selected scheduling model is accurate and likely describes an in-order processor, -and that scheduling will aggressively spill to try and fill any pipeline -bubbles. This is the current default. Zero could mean scheduling descrption -might not be available/accurate or perhaps not applicale at all such as for +and that scheduling should aggressively spill to try and fill any pipeline +bubbles. This is the current default. Zero means the scheduling description +might not be available/accurate or perhaps not applicable at all, such as for modern out-of-order processors. @end table @@ -17314,7 +17314,7 @@ approximation is enabled. The default value is 1. @item aarch64-double-recp-precision The number of Newton iterations for calculating the reciprocal for double type. -The precision of division is propotional to this param when division +The precision of division is proportional to this param when division approximation is enabled. The default value is 2. @item aarch64-autovec-preference @@ -20084,7 +20084,7 @@ the implementation of the @file{libatomic} runtime library. @opindex fzero-init-padding-bits=@var{value} @item -fzero-init-padding-bits=@var{value} -Guarantee zero initalization of padding bits in automatic variable +Guarantee zero initialization of padding bits in automatic variable initializers. Certain languages guarantee zero initialization of padding bits in certain cases, e.g. C23 when using empty initializers (@code{@{@}}), @@ -27646,7 +27646,7 @@ Incrementally adjust the scope of the SIMD extensions (none / LSX / LASX) that can be used by the compiler for code generation. Enabling LASX with @option{mlasx} automatically enables LSX, and diabling LSX with @option{mno-lsx} automatically disables LASX. These driver-only options act upon the final -@option{msimd} configuration state and make incremental chagnes in the order +@option{msimd} configuration state and make incremental changes in the order they appear on the GCC driver's command line, deriving the final / canonicalized @option{msimd} option that is passed to the compiler proper. @@ -29345,11 +29345,11 @@ relocation operators. This option has been superseded by @itemx -mexplicit-relocs=pcrel @itemx -mexplicit-relocs @itemx -mno-explicit-relocs -These options control whether explicit relocs (such as %gp_rel) are used. +These options control whether explicit relocs (such as @code{%gp_rel}) are used. The default value depends on the version of GAS when GCC itself was built. -The @code{base} explicit-relocs support introdunced into GAS in 2001. -The @code{pcrel} explicit-relocs support introdunced into GAS in 2014, +The @code{base} explicit-relocs support was introduced into GAS in 2001. +The @code{pcrel} explicit-relocs support was introduced into GAS in 2014, which supports @code{%pcrel_hi} and @code{%pcrel_lo}. @opindex mcheck-zero-division @@ -29671,7 +29671,7 @@ If a compact branch instruction is not available (or pre-R6), a delay slot form of the branch will be used instead. If it is used for MIPS16/microMIPS targets, it will be just ignored now. -The behaviour for MIPS16/microMIPS may change in future, +The behavior for MIPS16/microMIPS may change in future, since they do have some compact branch instructions. The @option{-mcompact-branches=optimal} option will cause a delay slot @@ -30016,27 +30016,27 @@ into GCC. However, an external @samp{devices.csv} file can be used to extend device support beyond those that have been hard-coded. GCC searches for the @samp{devices.csv} file using the following methods in the -given precedence order, where the first method takes precendence over the +given precedence order, where the first method takes precedence over the second which takes precedence over the third. @table @asis @item Include path specified with @code{-I} and @code{-L} -@samp{devices.csv} will be searched for in each of the directories specified by +@samp{devices.csv} is searched for in each of the directories specified by include paths and linker library search paths. @item Path specified by the environment variable @samp{MSP430_GCC_INCLUDE_DIR} Define the value of the global environment variable @samp{MSP430_GCC_INCLUDE_DIR} to the full path to the directory containing devices.csv, and GCC will search -this directory for devices.csv. If devices.csv is found, this directory will -also be registered as an include path, and linker library path. Header files +this directory for devices.csv. If devices.csv is found, this directory is +also registered as an include path and linker library path. Header files and linker scripts in this directory can therefore be used without manually specifying @code{-I} and @code{-L} on the command line. @item The @samp{msp430-elf@{,bare@}/include/devices} directory -Finally, GCC will examine @samp{msp430-elf@{,bare@}/include/devices} from the +Finally, GCC examines @samp{msp430-elf@{,bare@}/include/devices} from the toolchain root directory. This directory does not exist in a default installation, but if the user has created it and copied @samp{devices.csv} -there, then the MCU data will be read. As above, this directory will -also be registered as an include path, and linker library path. +there, then the MCU data is read. As above, this directory is +also registered as an include path and linker library path. @end table If none of the above search methods find @samp{devices.csv}, then the @@ -30686,7 +30686,7 @@ is to use them if the specified architecture has these instructions. @itemx -mno-fence-tso Do or don't use the @samp{fence.tso} instruction, which is unimplemented on some processors (including those from T-Head). If the @samp{fence.tso} -instruction is not availiable then a stronger fence will be used instead. +instruction is not available then a stronger fence is used instead. @opindex mdiv @item -mdiv |