diff mbox

[doc] use "cannot" consistently

Message ID 48f37d2c-7273-aaf9-cbdc-e6100115183b@gmail.com
State New
Headers show

Commit Message

Martin Sebor March 14, 2017, 7:19 p.m. UTC
In formal writing it's recommended to prefer the word "cannot"
to the somewhat informal "can't."

The GCC manual uses "cannot" in most places (280 lines) but there
are a few instances of "can't" (33 lines).

The attached patch replaces the informal "can't" with the former
for consistency.

Thanks
Martin

PS I wasted quite a bit of time updating tm.texi.  I kept getting
the error below and didn't realize (forgot) that it was asking me
to copy $objdir/gcc/tm.texi to $srcdir/gcc/doc/tm.texi.  Can
someone explain why this file requires these special steps when
the rest of the .texi files can be updated directly?

mv tmp2-tm.texi tmp-tm.texi
/bin/sh /src/gcc/svn/gcc/../move-if-change tmp-tm.texi tm.texi

Verify that you have permission to grant a GFDL license for all
new text in tm.texi, then copy it to /src/gcc/svn/gcc/doc/tm.texi.,
Makefile:2437: recipe for target 's-tm-texi' failed

Comments

Richard Sandiford March 14, 2017, 7:41 p.m. UTC | #1
Martin Sebor <msebor@gmail.com> writes:
> @@ -373,7 +373,7 @@ example, this code would produce an error:
>  
>  @smallexample
>  #if 0
> -You can't expect this to work.
> +You cannot expect this to work.
>  #endif
>  @end smallexample
>  

Sure the maintainers would have caught this, but: the "'" is needed here.
The point is that code doesn't tokenise properly.

Thanks,
Richard
Richard Kenner March 14, 2017, 8:53 p.m. UTC | #2
> The GCC manual uses "cannot" in most places (280 lines) but there
> are a few instances of "can't" (33 lines).
> 
> The attached patch replaces the informal "can't" with the former
> for consistency.

In my opinion, this is the wrong direction.  Contractions are becoming
more acceptable in even more formal writing and there's even a current
US Supreme Court justice who uses them in her opinions.

I certainly don't think it's worth a change to use "can't" throughout,
but I'm not in favor of eliminating it either.
Martin Sebor March 14, 2017, 10:37 p.m. UTC | #3
On 03/14/2017 01:41 PM, Richard Sandiford wrote:
> Martin Sebor <msebor@gmail.com> writes:
>> @@ -373,7 +373,7 @@ example, this code would produce an error:
>>
>>  @smallexample
>>  #if 0
>> -You can't expect this to work.
>> +You cannot expect this to work.
>>  #endif
>>  @end smallexample
>>
>
> Sure the maintainers would have caught this, but: the "'" is needed here.
> The point is that code doesn't tokenise properly.

Great catch, thanks!  I'll be sure to fix that if the patch is
approved.

Martin
Joseph Myers March 14, 2017, 10:47 p.m. UTC | #4
On Tue, 14 Mar 2017, Martin Sebor wrote:

> PS I wasted quite a bit of time updating tm.texi.  I kept getting
> the error below and didn't realize (forgot) that it was asking me
> to copy $objdir/gcc/tm.texi to $srcdir/gcc/doc/tm.texi.  Can
> someone explain why this file requires these special steps when
> the rest of the .texi files can be updated directly?

Both a GPL copy and a GFDL copy of the text shared between tm.texi and 
target.def need to be checked in (hence not just having tm.texi.in but not 
tm.texi checked in).  If existing text that was only in one place (so only 
under one of GPL and GFDL) is being moved so that there are copies under 
both licenses, then this involves docstring relicensing review (otherwise, 
just copying the generated tm.texi without any extra review for that 
copying is appropriate).
Martin Sebor March 15, 2017, 1:41 a.m. UTC | #5
On 03/14/2017 02:53 PM, Richard Kenner wrote:
>> The GCC manual uses "cannot" in most places (280 lines) but there
>> are a few instances of "can't" (33 lines).
>>
>> The attached patch replaces the informal "can't" with the former
>> for consistency.
>
> In my opinion, this is the wrong direction.  Contractions are becoming
> more acceptable in even more formal writing and there's even a current
> US Supreme Court justice who uses them in her opinions.
>
> I certainly don't think it's worth a change to use "can't" throughout,
> but I'm not in favor of eliminating it either.

I don't consider this change important enough to spend too much
time on but since you voiced an objection but offered little in
the way of a rationale I feel I'd be remiss not to respond and
explain my perspective.

First, I agree that the less formal language is becoming more
acceptable.  Some style guides explicitly allow contractions,
but others advise against them.  The technical specifications
that significant parts of GCC aim to conform to, and those I
happen  to work with the most closely (the C, C++, and POSIX
standards), avoid them.  The IEEE Editorial Style Manual
recommends against using them.  The author of Engineer's Guide
to Technical Writing, Kenneth Budinski, equates them with slang.

I personally don't feel too strongly about it, but the change
seems like an opportunity to improve not just the style of
the manual but also increase its consistency.  I could see
one being indifferent to such changes but I have trouble
understanding how they could be viewed as the wrong direction.
What is your rationale against it and what would you consider
the right direction for the manual?

Martin

PS While researching this subject I came across the following
two interesting references that I think are worth quoting:

In Engineer's Guide to Technical Writing, the author writes:

   Contractions should never be used in technical writing [my
   opinion].  They are essentially a form of slang, and slang
   expressions are not appropriate in technical writing.  Some
   technical writers disagree with it.  They believe that writing
   without contractions is stiff.  Use the appropriate practice
   for your organization.  Use contractions sparingly, if at all.

The NASA Technical Documentation Style Guide offers, in my view,
sound advice:

   Contractions (for example, it's for it is or it has; don't for
   do not; doesn't for does not; isn't for is not; and won't for
   will not) are not forbidden in technical or business writing.
   A few well-placed contractions can help your material sound as
   if a person wrote it--always a worthy goal.  But too many
   contractions can make your message sound too casual.

The challenge with following this advice in the GCC manual is
that engineers are rarely good at writing or judging the right
tone of text.  Often, contributions are also made by non-native
speakers some of whom may not be able to discern between the of
a contraction that helps achieve the goal and one that works
against it.  The one thing most of us do have is an eye and
affinity for consistency, so using one style consistently
throughout the manual seems like a good (and safe) approach.
Richard Kenner March 15, 2017, 11 a.m. UTC | #6
> First, I agree that the less formal language is becoming more
> acceptable.  Some style guides explicitly allow contractions,
> but others advise against them.  The technical specifications
> that significant parts of GCC aim to conform to, and those I
> happen  to work with the most closely (the C, C++, and POSIX
> standards), avoid them.  The IEEE Editorial Style Manual
> recommends against using them.  The author of Engineer's Guide
> to Technical Writing, Kenneth Budinski, equates them with slang.

How old are those documents?  More recently, see

    http://www.plainlanguage.gov/howto/guidelines/bigdoc/writeContract.cfm
    https://lawyerist.com/61487/is-it-time-for-contractions-in-legal-writing/

The latter references other documents, which advocate for more use of
contractions even in formal writing.

> I personally don't feel too strongly about it, but the change
> seems like an opportunity to improve not just the style of
> the manual but also increase its consistency.  I could see
> one being indifferent to such changes but I have trouble
> understanding how they could be viewed as the wrong direction.
> What is your rationale against it and what would you consider
> the right direction for the manual?

I think it's the wrong direction because I'd be in favor of gradually
*introducing* contractions into to the manual instead of a change that
eliminates them.  I wouldn't be against a change that went in the other
direction (used contractions consistently), but it would be good a large
change, so I'm not advocating for doing that, but just instead using
contractions in all new material and when modifying old material for
other reasons.
Martin Sebor March 15, 2017, 3:40 p.m. UTC | #7
On 03/15/2017 05:00 AM, Richard Kenner wrote:
>> First, I agree that the less formal language is becoming more
>> acceptable.  Some style guides explicitly allow contractions,
>> but others advise against them.  The technical specifications
>> that significant parts of GCC aim to conform to, and those I
>> happen  to work with the most closely (the C, C++, and POSIX
>> standards), avoid them.  The IEEE Editorial Style Manual
>> recommends against using them.  The author of Engineer's Guide
>> to Technical Writing, Kenneth Budinski, equates them with slang.
>
> How old are those documents?  More recently, see

They're all the latest versions (C++ 2011, C++ 2017, and the IEEE
Editorial Style Manual is the 2016 update).

But to get a more representative sample I've surveyed some other
references I have sitting on my hard drive.  I found none that
uses contractions:

   ARM Compiler Toolchain 4.1 Reference (2011)
   Clang 5,0 Compiler User’s Manual(*) (2017)
   DWARF Debugging Information Format Version 5 (2017)
   HP aCC 6.20 C Programmer's Guide(**)(2008)
   IBM Power ISA Version 3.0 (2015)
   IBM XL C/C++ for Linux, V13.1 Compiler Reference (2014)
   Intel C++ Compiler 17.0 Developer Guide and Reference (2016)
   Intel 64 and IA-32 Architectures Software Developer’s Manual (2011)
   MIPS64 Architecture for Programmers (2010)
   Oracle Developer Studio 12.5 C/C++ Users Guide (2016)

   [*] Except for a few instances of don't.
   [**] "Can't" used in comments in coding examples.

>     http://www.plainlanguage.gov/howto/guidelines/bigdoc/writeContract.cfm
>     https://lawyerist.com/61487/is-it-time-for-contractions-in-legal-writing/
>
> The latter references other documents, which advocate for more use of
> contractions even in formal writing.

These are legal guides, obviously not relevant in the context
of technical writing.

>> I personally don't feel too strongly about it, but the change
>> seems like an opportunity to improve not just the style of
>> the manual but also increase its consistency.  I could see
>> one being indifferent to such changes but I have trouble
>> understanding how they could be viewed as the wrong direction.
>> What is your rationale against it and what would you consider
>> the right direction for the manual?
>
> I think it's the wrong direction because I'd be in favor of gradually
> *introducing* contractions into to the manual instead of a change that
> eliminates them.  I wouldn't be against a change that went in the other
> direction (used contractions consistently), but it would be good a large
> change, so I'm not advocating for doing that, but just instead using
> contractions in all new material and when modifying old material for
> other reasons.

Interesting.  I don't share that view and clearly neither do
writers of any of the technical specifications I listed above
but I will go along with whatever the documentation maintainers
think is appropriate or preferable for GCC.

Martin
Martin Sebor March 15, 2017, 4:20 p.m. UTC | #8
On 03/15/2017 09:40 AM, Martin Sebor wrote:
> On 03/15/2017 05:00 AM, Richard Kenner wrote:
>>> First, I agree that the less formal language is becoming more
>>> acceptable.  Some style guides explicitly allow contractions,
>>> but others advise against them.  The technical specifications
>>> that significant parts of GCC aim to conform to, and those I
>>> happen  to work with the most closely (the C, C++, and POSIX
>>> standards), avoid them.  The IEEE Editorial Style Manual
>>> recommends against using them.  The author of Engineer's Guide
>>> to Technical Writing, Kenneth Budinski, equates them with slang.
>>
>> How old are those documents?  More recently, see
>
> They're all the latest versions (C++ 2011, C++ 2017, and the IEEE
> Editorial Style Manual is the 2016 update).
>
> But to get a more representative sample I've surveyed some other
> references I have sitting on my hard drive.  I found none that
> uses contractions:
>
>   ARM Compiler Toolchain 4.1 Reference (2011)
>   Clang 5,0 Compiler User’s Manual(*) (2017)
>   DWARF Debugging Information Format Version 5 (2017)
>   HP aCC 6.20 C Programmer's Guide(**)(2008)
>   IBM Power ISA Version 3.0 (2015)
>   IBM XL C/C++ for Linux, V13.1 Compiler Reference (2014)
>   Intel C++ Compiler 17.0 Developer Guide and Reference (2016)
>   Intel 64 and IA-32 Architectures Software Developer’s Manual (2011)
>   MIPS64 Architecture for Programmers (2010)
>   Oracle Developer Studio 12.5 C/C++ Users Guide (2016)
>
>   [*] Except for a few instances of don't.
>   [**] "Can't" used in comments in coding examples.
>
>>
>> http://www.plainlanguage.gov/howto/guidelines/bigdoc/writeContract.cfm
>>
>> https://lawyerist.com/61487/is-it-time-for-contractions-in-legal-writing/
>>
>> The latter references other documents, which advocate for more use of
>> contractions even in formal writing.
>
> These are legal guides, obviously not relevant in the context
> of technical writing.

Sorry, I meant "not obviously relevant."

>
>>> I personally don't feel too strongly about it, but the change
>>> seems like an opportunity to improve not just the style of
>>> the manual but also increase its consistency.  I could see
>>> one being indifferent to such changes but I have trouble
>>> understanding how they could be viewed as the wrong direction.
>>> What is your rationale against it and what would you consider
>>> the right direction for the manual?
>>
>> I think it's the wrong direction because I'd be in favor of gradually
>> *introducing* contractions into to the manual instead of a change that
>> eliminates them.  I wouldn't be against a change that went in the other
>> direction (used contractions consistently), but it would be good a large
>> change, so I'm not advocating for doing that, but just instead using
>> contractions in all new material and when modifying old material for
>> other reasons.

My disagreement aside, I should have thanked you for clarifying
your view.  (Thank you.)

>
> Interesting.  I don't share that view and clearly neither do
> writers of any of the technical specifications I listed above
> but I will go along with whatever the documentation maintainers
> think is appropriate or preferable for GCC.
>
> Martin
Toon Moene March 15, 2017, 7:13 p.m. UTC | #9
On 03/14/2017 09:53 PM, Richard Kenner wrote:

>> The GCC manual uses "cannot" in most places (280 lines) but there
>> are a few instances of "can't" (33 lines).
>>
>> The attached patch replaces the informal "can't" with the former
>> for consistency.
>
> In my opinion, this is the wrong direction.  Contractions are becoming
> more acceptable in even more formal writing and there's even a current
> US Supreme Court justice who uses them in her opinions.
>
> I certainly don't think it's worth a change to use "can't" throughout,
> but I'm not in favor of eliminating it either.

I think for non-native speakers of English, using the full word is 
easier to read (you can't take my experience as an example, as I was 
exposed to written English 48 years ago).

I think replacing the few instances of can't with cannot is worth the 
clarity.

Kind regards,
Richard Kenner March 15, 2017, 7:13 p.m. UTC | #10
> > The latter references other documents, which advocate for more use of
> > contractions even in formal writing.
> 
> These are legal guides, not obviously relevant in the context
> of technical writing.

Yes and no.  The argument for them is that legal writing is the most formal
of all and has been the slowest to adopt contractions.
Sandra Loosemore March 19, 2017, 8:12 p.m. UTC | #11
On 03/15/2017 09:40 AM, Martin Sebor wrote:
> On 03/15/2017 05:00 AM, Richard Kenner wrote:
>>> First, I agree that the less formal language is becoming more
>>> acceptable.  Some style guides explicitly allow contractions,
>>> but others advise against them.  The technical specifications
>>> that significant parts of GCC aim to conform to, and those I
>>> happen  to work with the most closely (the C, C++, and POSIX
>>> standards), avoid them.  The IEEE Editorial Style Manual
>>> recommends against using them.  The author of Engineer's Guide
>>> to Technical Writing, Kenneth Budinski, equates them with slang.
>>
>> How old are those documents?  More recently, see
>
> They're all the latest versions (C++ 2011, C++ 2017, and the IEEE
> Editorial Style Manual is the 2016 update).
>
> But to get a more representative sample I've surveyed some other
> references I have sitting on my hard drive.  I found none that
> uses contractions:
>
>    ARM Compiler Toolchain 4.1 Reference (2011)
>    Clang 5,0 Compiler User’s Manual(*) (2017)
>    DWARF Debugging Information Format Version 5 (2017)
>    HP aCC 6.20 C Programmer's Guide(**)(2008)
>    IBM Power ISA Version 3.0 (2015)
>    IBM XL C/C++ for Linux, V13.1 Compiler Reference (2014)
>    Intel C++ Compiler 17.0 Developer Guide and Reference (2016)
>    Intel 64 and IA-32 Architectures Software Developer’s Manual (2011)
>    MIPS64 Architecture for Programmers (2010)
>    Oracle Developer Studio 12.5 C/C++ Users Guide (2016)
>
>    [*] Except for a few instances of don't.
>    [**] "Can't" used in comments in coding examples.
>
>>
>> http://www.plainlanguage.gov/howto/guidelines/bigdoc/writeContract.cfm
>>
>> https://lawyerist.com/61487/is-it-time-for-contractions-in-legal-writing/
>>
>> The latter references other documents, which advocate for more use of
>> contractions even in formal writing.
>
> These are legal guides, obviously not relevant in the context
> of technical writing.
>
>>> I personally don't feel too strongly about it, but the change
>>> seems like an opportunity to improve not just the style of
>>> the manual but also increase its consistency.  I could see
>>> one being indifferent to such changes but I have trouble
>>> understanding how they could be viewed as the wrong direction.
>>> What is your rationale against it and what would you consider
>>> the right direction for the manual?
>>
>> I think it's the wrong direction because I'd be in favor of gradually
>> *introducing* contractions into to the manual instead of a change that
>> eliminates them.  I wouldn't be against a change that went in the other
>> direction (used contractions consistently), but it would be good a large
>> change, so I'm not advocating for doing that, but just instead using
>> contractions in all new material and when modifying old material for
>> other reasons.
>
> Interesting.  I don't share that view and clearly neither do
> writers of any of the technical specifications I listed above
> but I will go along with whatever the documentation maintainers
> think is appropriate or preferable for GCC.

I got behind on mail so I'm coming into this a few days late....  :-(

The GCC manual isn't as formal a document as a language standards 
document.  I think "can't" is OK, but OTOH I would write "cannot" 
myself, and since there's already a clear bias in favor of "cannot" in 
the text, I think the patch is OK, modulo fixing the one use in the example.

-Sandra
diff mbox

Patch

Index: gcc/doc/extend.texi
===================================================================
--- gcc/doc/extend.texi	(revision 246134)
+++ gcc/doc/extend.texi	(working copy)
@@ -7509,7 +7509,7 @@  In this case, GCC does not actually output assembl
 function, unless you specify the option @option{-fkeep-inline-functions}.
 If there is a nonintegrated call, then the function is compiled to
 assembler code as usual.  The function must also be compiled as usual if
-the program refers to its address, because that can't be inlined.
+the program refers to its address, because that cannot be inlined.
 
 @opindex Winline
 Note that certain usages in a function definition can make it unsuitable
@@ -9176,7 +9176,7 @@  This results in an incomplete type, much like what
 @code{struct foo} without describing the elements.  A later declaration
 that does specify the possible values completes the type.
 
-You can't allocate variables or storage using the type while it is
+You cannot allocate variables or storage using the type while it is
 incomplete.  However, you can work with pointers to that type.
 
 This extension may not be very useful, but it makes the handling of
Index: gcc/doc/hostconfig.texi
===================================================================
--- gcc/doc/hostconfig.texi	(revision 246134)
+++ gcc/doc/hostconfig.texi	(working copy)
@@ -22,7 +22,7 @@  header.  @xref{System Config}.
 
 @menu
 * Host Common::         Things every host probably needs implemented.
-* Filesystem::          Your host can't have the letter `a' in filenames?
+* Filesystem::          Your host cannot have the letter `a' in filenames?
 * Host Misc::           Rare configuration options for hosts.
 @end menu
 
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 246134)
+++ gcc/doc/install.texi	(working copy)
@@ -3633,7 +3633,7 @@  The libffi library haven't been ported to 64-bit H
 
 Refer to @uref{binaries.html,,binaries} for information about obtaining
 precompiled GCC binaries for HP-UX@.  Precompiled binaries must be obtained
-to build the Ada language as it can't be bootstrapped using C@.  Ada is
+to build the Ada language as it cannot be bootstrapped using C@.  Ada is
 only available for the 32-bit PA-RISC runtime.
 
 Starting with GCC 3.4 an ISO C compiler is required to bootstrap.  The
@@ -3713,12 +3713,12 @@  Although the HP and GNU linkers are both supported
 HP linker be used for link editing on this target.
 
 At this time, the GNU linker does not support the creation of long
-branch stubs.  As a result, it can't successfully link binaries
+branch stubs.  As a result, it cannot successfully link binaries
 containing branch offsets larger than 8 megabytes.  In addition,
 there are problems linking shared libraries, linking executables
 with @option{-static}, and with dwarf2 unwind and exception support.
 It also doesn't provide stubs for internal calls to global functions
-in shared libraries, so these calls can't be overloaded.
+in shared libraries, so these calls cannot be overloaded.
 
 The HP dynamic loader does not support GNU symbol versioning, so symbol
 versioning is not supported.  It may be necessary to disable symbol
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 246134)
+++ gcc/doc/invoke.texi	(working copy)
@@ -6471,7 +6471,7 @@  different size.
 @opindex Winvalid-pch
 @opindex Wno-invalid-pch
 Warn if a precompiled header (@pxref{Precompiled Headers}) is found in
-the search path but can't be used.
+the search path but cannot be used.
 
 @item -Wlong-long
 @opindex Wlong-long
@@ -10733,7 +10733,7 @@  more details.  The run-time behavior can be influe
 the available options are shown at startup of the instrumented program.  See
 @url{https://github.com/google/sanitizers/wiki/AddressSanitizerFlags#run-time-flags}
 for a list of supported options.
-The option can't be combined with @option{-fsanitize=thread}
+The option cannot be combined with @option{-fsanitize=thread}
 and/or @option{-fcheck-pointer-bounds}.
 
 @item -fsanitize=kernel-address
@@ -10740,7 +10740,7 @@  and/or @option{-fcheck-pointer-bounds}.
 @opindex fsanitize=kernel-address
 Enable AddressSanitizer for Linux kernel.
 See @uref{https://github.com/google/kasan/wiki} for more details.
-The option can't be combined with @option{-fcheck-pointer-bounds}.
+The option cannot be combined with @option{-fcheck-pointer-bounds}.
 
 @item -fsanitize=thread
 @opindex fsanitize=thread
@@ -10751,7 +10751,7 @@  details. The run-time behavior can be influenced u
 environment variable; see
 @url{https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags} for a list of
 supported options.
-The option can't be combined with @option{-fsanitize=address},
+The option cannot be combined with @option{-fsanitize=address},
 @option{-fsanitize=leak} and/or @option{-fcheck-pointer-bounds}.
 
 @item -fsanitize=leak
@@ -10763,7 +10763,7 @@  and other allocator functions.  See
 @uref{https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer} for more
 details.  The run-time behavior can be influenced using the
 @env{LSAN_OPTIONS} environment variable.
-The option can't be combined with @option{-fsanitize=thread}.
+The option cannot be combined with @option{-fsanitize=thread}.
 
 @item -fsanitize=undefined
 @opindex fsanitize=undefined
@@ -10841,7 +10841,7 @@  a++;
 This option enables instrumentation of array bounds.  Various out of bounds
 accesses are detected.  Flexible array members, flexible array member-like
 arrays, and initializers of variables with static storage are not instrumented.
-The option can't be combined with @option{-fcheck-pointer-bounds}.
+The option cannot be combined with @option{-fcheck-pointer-bounds}.
 
 @item -fsanitize=bounds-strict
 @opindex fsanitize=bounds-strict
@@ -10848,7 +10848,7 @@  arrays, and initializers of variables with static
 This option enables strict instrumentation of array bounds.  Most out of bounds
 accesses are detected, including flexible array members and flexible array
 member-like arrays.  Initializers of variables with static storage are not
-instrumented.  The option can't be combined
+instrumented.  The option cannot be combined
 with @option{-fcheck-pointer-bounds}.
 
 @item -fsanitize=alignment
@@ -23164,7 +23164,7 @@  disabled by specifying @option{-mno-zdcbranch}.
 @item -mcbranch-force-delay-slot
 @opindex mcbranch-force-delay-slot
 Force the usage of delay slots for conditional branches, which stuffs the delay
-slot with a @code{nop} if a suitable instruction can't be found.  By default
+slot with a @code{nop} if a suitable instruction cannot be found.  By default
 this option is disabled.  It can be enabled to work around hardware bugs as
 found in the original SH7055.
 
@@ -24689,7 +24689,7 @@  Generate output containing library calls for float
 
 @strong{Warning:} the requisite libraries are not part of GCC@.
 Normally the facilities of the machine's usual C compiler are used, but
-this can't be done directly in cross-compilation.  You must make your
+this cannot be done directly in cross-compilation.  You must make your
 own arrangements to provide suitable library functions for
 cross-compilation.
 
@@ -26593,7 +26593,7 @@  If a standard directory begins with the configured
 @findex COMPILER_PATH
 The value of @env{COMPILER_PATH} is a colon-separated list of
 directories, much like @env{PATH}.  GCC tries the directories thus
-specified when searching for subprograms, if it can't find the
+specified when searching for subprograms, if it cannot find the
 subprograms using @env{GCC_EXEC_PREFIX}.
 
 @item LIBRARY_PATH
@@ -26601,7 +26601,7 @@  subprograms using @env{GCC_EXEC_PREFIX}.
 The value of @env{LIBRARY_PATH} is a colon-separated list of
 directories, much like @env{PATH}.  When configured as a native compiler,
 GCC tries the directories thus specified when searching for special
-linker files, if it can't find them using @env{GCC_EXEC_PREFIX}.  Linking
+linker files, if it cannot find them using @env{GCC_EXEC_PREFIX}.  Linking
 using GCC also uses these directories when searching for ordinary
 libraries for the @option{-l} option (but directories specified with
 @option{-L} come first).
@@ -26660,7 +26660,7 @@  seen in the compilation.  As it searches for the i
 compiler looks for a precompiled header in each directory just before it
 looks for the include file in that directory.  The name searched for is
 the name specified in the @code{#include} with @samp{.gch} appended.  If
-the precompiled header file can't be used, it is ignored.
+the precompiled header file cannot be used, it is ignored.
 
 For instance, if you have @code{#include "all.h"}, and you have
 @file{all.h.gch} in the same directory as @file{all.h}, then the
@@ -26701,13 +26701,13 @@  A precompiled header file can be used only when th
 Only one precompiled header can be used in a particular compilation.
 
 @item
-A precompiled header can't be used once the first C token is seen.  You
+A precompiled header cannot be used once the first C token is seen.  You
 can have preprocessor directives before a precompiled header; you cannot
 include a precompiled header from inside another header.
 
 @item
 The precompiled header file must be produced for the same language as
-the current compilation.  You can't use a C precompiled header for a C++
+the current compilation.  You cannot use a C precompiled header for a C++
 compilation.
 
 @item
Index: gcc/doc/loop.texi
===================================================================
--- gcc/doc/loop.texi	(revision 246134)
+++ gcc/doc/loop.texi	(working copy)
@@ -567,7 +567,7 @@  relative to @code{p + i}. The access functions of
 @code{@{i_init, + i_step@}_for1} and @code{@{j_init, +, j_step@}_for2}
 relative to @code{a}.
 
-Usually, the object the pointer refers to is either unknown, or we can't
+Usually, the object the pointer refers to is either unknown, or we cannot
 prove that the access is confined to the boundaries of a certain object.
 
 Two data references can be compared only if at least one of these two
Index: gcc/doc/md.texi
===================================================================
--- gcc/doc/md.texi	(revision 246134)
+++ gcc/doc/md.texi	(working copy)
@@ -3728,7 +3728,7 @@  Any kind of immediate operand, unless it matches t
 Memory location with B base register, but not using a long offset.
 
 @item W
-A memory operand with an address that can't be used in an unaligned access.
+A memory operand with an address that cannot be used in an unaligned access.
 
 @end ifset
 @item Z
Index: gcc/doc/objc.texi
===================================================================
--- gcc/doc/objc.texi	(revision 246134)
+++ gcc/doc/objc.texi	(working copy)
@@ -1157,7 +1157,7 @@  GCC version 4.6.
 
 The GNU Objective-C runtime provides a hook, called
 @code{__objc_msg_forward2}, which is called by
-@code{objc_msg_lookup()} when it can't find a method implementation in
+@code{objc_msg_lookup()} when it cannot find a method implementation in
 the runtime tables and after calling @code{+resolveInstanceMethod:}
 and @code{+resolveClassMethod:} has been attempted and did not succeed
 in dynamically registering the method.
Index: gcc/doc/rtl.texi
===================================================================
--- gcc/doc/rtl.texi	(revision 246134)
+++ gcc/doc/rtl.texi	(working copy)
@@ -2225,7 +2225,7 @@  Represents the result of subtracting @var{y} from
 of comparison.  The result is computed without overflow, as if with
 infinite precision.
 
-Of course, machines can't really subtract with infinite precision.
+Of course, machines cannot really subtract with infinite precision.
 However, they can pretend to do so when only the sign of the result will
 be used, which is the case when the result is stored in the condition
 code.  And that is the @emph{only} way this kind of expression may
Index: gcc/doc/tm.texi
===================================================================
--- gcc/doc/tm.texi	(revision 246134)
+++ gcc/doc/tm.texi	(working copy)
@@ -2546,7 +2546,7 @@  force @var{x} into a memory location.  For example
 immediate values into general-purpose registers, but does not have an
 instruction for loading an immediate value into a floating-point
 register, so @code{PREFERRED_RELOAD_CLASS} returns @code{NO_REGS} when
-@var{x} is a floating-point constant.  If the constant can't be loaded
+@var{x} is a floating-point constant.  If the constant cannot be loaded
 into any kind of register, code generation will be better if
 @code{TARGET_LEGITIMATE_CONSTANT_P} makes the constant illegitimate instead
 of using @code{TARGET_PREFERRED_RELOAD_CLASS}.
@@ -2577,7 +2577,7 @@  to use when it is necessary to be able to hold a v
 ordinarily be used.
 
 Unlike @code{PREFERRED_RELOAD_CLASS}, this macro should be used when
-there are certain modes that simply can't go in certain reload classes.
+there are certain modes that simply cannot go in certain reload classes.
 
 The value is a register class; perhaps @var{class}, or perhaps another,
 smaller class.
@@ -9996,7 +9996,7 @@  floating point operations, but to perform a single
 the FPSCR PR bit has to be cleared, while for a double precision
 operation, this bit has to be set.  Changing the PR bit requires a general
 purpose register as a scratch register, hence these FPSCR sets have to
-be inserted before reload, i.e.@: you can't put this into instruction emitting
+be inserted before reload, i.e.@: you cannot put this into instruction emitting
 or @code{TARGET_MACHINE_DEPENDENT_REORG}.
 
 You can have multiple entities that are mode-switched, and select at run time
Index: gcc/doc/tm.texi.in
===================================================================
--- gcc/doc/tm.texi.in	(revision 246134)
+++ gcc/doc/tm.texi.in	(working copy)
@@ -2304,7 +2304,7 @@  force @var{x} into a memory location.  For example
 immediate values into general-purpose registers, but does not have an
 instruction for loading an immediate value into a floating-point
 register, so @code{PREFERRED_RELOAD_CLASS} returns @code{NO_REGS} when
-@var{x} is a floating-point constant.  If the constant can't be loaded
+@var{x} is a floating-point constant.  If the constant cannot be loaded
 into any kind of register, code generation will be better if
 @code{TARGET_LEGITIMATE_CONSTANT_P} makes the constant illegitimate instead
 of using @code{TARGET_PREFERRED_RELOAD_CLASS}.
@@ -2326,7 +2326,7 @@  to use when it is necessary to be able to hold a v
 ordinarily be used.
 
 Unlike @code{PREFERRED_RELOAD_CLASS}, this macro should be used when
-there are certain modes that simply can't go in certain reload classes.
+there are certain modes that simply cannot go in certain reload classes.
 
 The value is a register class; perhaps @var{class}, or perhaps another,
 smaller class.
@@ -7266,7 +7266,7 @@  floating point operations, but to perform a single
 the FPSCR PR bit has to be cleared, while for a double precision
 operation, this bit has to be set.  Changing the PR bit requires a general
 purpose register as a scratch register, hence these FPSCR sets have to
-be inserted before reload, i.e.@: you can't put this into instruction emitting
+be inserted before reload, i.e.@: you cannot put this into instruction emitting
 or @code{TARGET_MACHINE_DEPENDENT_REORG}.
 
 You can have multiple entities that are mode-switched, and select at run time
Index: gcc/doc/trouble.texi
===================================================================
--- gcc/doc/trouble.texi	(revision 246134)
+++ gcc/doc/trouble.texi	(working copy)
@@ -25,7 +25,7 @@  where people's opinions differ as to what is best.
                         This is necessary, but doesn't always work smoothly.
 * Standard Libraries::  GCC uses the system C library, which might not be
                         compliant with the ISO C standard.
-* Disappointments::     Regrettable things we can't change, but not quite bugs.
+* Disappointments::     Regrettable things we cannot change, but not quite bugs.
 * C++ Misunderstandings:: Common misunderstandings with GNU C++.
 * Non-bugs::            Things we think are right, but some others disagree.
 * Warnings and Errors:: Which problems in your code get warnings,
@@ -373,7 +373,7 @@  example, this code would produce an error:
 
 @smallexample
 #if 0
-You can't expect this to work.
+You cannot expect this to work.
 #endif
 @end smallexample
 
@@ -743,7 +743,7 @@  In @code{get_i()}, @code{i} is not used in a depen
 compiler will look for a name declared at the enclosing namespace scope
 (which is the global scope here).  It will not look into the base class,
 since that is dependent and you may declare specializations of
-@code{Base} even after declaring @code{Derived}, so the compiler can't
+@code{Base} even after declaring @code{Derived}, so the compiler cannot
 really know what @code{i} would refer to.  If there is no global
 variable @code{i}, then you will get an error message.