diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi
index c9049b539d5afe47d7884caa3759301db4758200..260dbaae76bace2fd9271cbf7134114878c6abab 100644
--- a/gcc/fortran/intrinsic.texi
+++ b/gcc/fortran/intrinsic.texi
@@ -502,7 +502,7 @@ Inquiry function
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .70
 @item @var{NAME} @tab Scalar @code{CHARACTER} of default kind with the
-file name. Tailing blank are ignored unless the character @code{achar(0)}
+file name. Trailing blank are ignored unless the character @code{achar(0)}
 is present, then all characters up to and excluding @code{achar(0)} are
 used as file name.
 @item @var{MODE} @tab Scalar @code{CHARACTER} of default kind with the
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index e3bc8863f1b3bcdbe7d67506b8659acc30f89f10..de406ad2e8f2b850e812963975bdb51c5f9ea51e 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -9513,7 +9513,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
     {
       gfc_add_data_component (expr2);
       /* The following is required as gfc_add_data_component doesn't
-	 update ts.type if there is a tailing REF_ARRAY.  */
+	 update ts.type if there is a trailing REF_ARRAY.  */
       expr2->ts.type = BT_DERIVED;
     }
 
diff --git a/gcc/genautomata.c b/gcc/genautomata.c
index e6295e607578770b565ba682813c66d4878ce2c7..6bbfc684afa0fad8688e23d3b5006f8057545d4e 100644
--- a/gcc/genautomata.c
+++ b/gcc/genautomata.c
@@ -6787,7 +6787,7 @@ create_automata (void)
    finish_regexp_representation calls.  */
 
 /* This recursive function forms string representation of regexp
-   (without tailing '\0').  */
+   (without trailing '\0').  */
 static void
 form_regexp (regexp_t regexp)
 {
diff --git a/gcc/testsuite/gcc.dg/format/strfmon-1.c b/gcc/testsuite/gcc.dg/format/strfmon-1.c
index 934242a238cdace7d2d86b0355fcec85ee1e3755..a790db53c9da719f489fd5826736631b0989e825 100644
--- a/gcc/testsuite/gcc.dg/format/strfmon-1.c
+++ b/gcc/testsuite/gcc.dg/format/strfmon-1.c
@@ -57,7 +57,7 @@ foo (char *s, size_t m, double d, long double ld)
   strfmon (s, m, "%n%n", d); /* { dg-warning "matching" "too few args" } */
   strfmon (s, m, ""); /* { dg-warning "zero-length" "empty" } */
   strfmon (s, m, NULL); /* { dg-warning "null" "null format string" } */
-  strfmon (s, m, "%"); /* { dg-warning "trailing" "tailing %" } */
+  strfmon (s, m, "%"); /* { dg-warning "trailing" "trailing %" } */
   strfmon (s, m, "%n\0", d); /* { dg-warning "embedded" "embedded NUL" } */
   strfmon (s, m, "%^^n", d); /* { dg-warning "repeated" "repeated flag" } */
 }
diff --git a/gcc/testsuite/gfortran.dg/char4-subscript.f90 b/gcc/testsuite/gfortran.dg/char4-subscript.f90
index fd1cf69754e9d2b5aef485983b0dafa55e7f9d94..b4e2d11d6c5fc55f88fa4b99bcf1878cc3c2612b 100644
--- a/gcc/testsuite/gfortran.dg/char4-subscript.f90
+++ b/gcc/testsuite/gfortran.dg/char4-subscript.f90
@@ -22,7 +22,7 @@ if (ichar(var%str2(5:5)) /= int(Z'1F608')) stop 2
 deallocate(var%str2)
 end
 
-! Note: the last '\x00' is regarded as string terminator, hence, the tailing \0 byte is not in the dump
+! Note: the last '\x00' is regarded as string terminator, hence, the trailing \0 byte is not in the dump
 
 ! { dg-final { scan-tree-dump {  \(\*var\.str2\)\[1\]{lb: 1 sz: 4} = "(d\\x00\\x00|\\x00\\x00\\x00d)"\[1\]{lb: 1 sz: 4};} "original" } }
 ! { dg-final { scan-tree-dump {  __builtin_memmove \(\(void \*\) &\(\*var.str2\)\[2\]{lb: 1 sz: 4}, \(void \*\) &"(e\\x00\\x00\\x00f\\x00\\x00|\\x00\\x00\\x00e\\x00\\x00\\x00f)"\[1\]{lb: 1 sz: 4}, 8\);} "original" } }
diff --git a/libgfortran/intrinsics/chmod.c b/libgfortran/intrinsics/chmod.c
index d0371ce560f671a9e03343de488bdf55b1b394f9..f4057cb7d063f5776ebce06a237701c81b4a9660 100644
--- a/libgfortran/intrinsics/chmod.c
+++ b/libgfortran/intrinsics/chmod.c
@@ -271,7 +271,7 @@ chmod_internal (char *file, char *mode, gfc_charlen_type mode_len)
 	      part = 3;
 	      break;
 
-	    /* Tailing blanks are valid in Fortran.  */
+	    /* Trailing blanks are valid in Fortran.  */
 	    case ' ':
 	      for (i++; i < mode_len; i++)
 		if (mode[i] != ' ')
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 36e35b48cd32cd107ce27dd38c86e679c972eea6..e44b2df6058b7afa49086c38c7bf9b277ba86b07 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -491,7 +491,7 @@ read_sf (st_parameter_dt *dtp, size_t *length)
 
    If the read is short, then it is because the current record does not
    have enough data to satisfy the read request and the file was
-   opened with PAD=YES.  The caller must assume tailing spaces for
+   opened with PAD=YES.  The caller must assume trailing spaces for
    short reads.  */
 
 void *
diff --git a/libquadmath/libquadmath.texi b/libquadmath/libquadmath.texi
index f9a44acef2b9a160f6d0c7763557583166069aac..261655950e4b7a50fe379810b6eff0ab04321d96 100644
--- a/libquadmath/libquadmath.texi
+++ b/libquadmath/libquadmath.texi
@@ -309,7 +309,7 @@ the format.
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .70
 @item @var{s}    @tab output string
-@item @var{size} @tab byte size of the string, including tailing NUL
+@item @var{size} @tab byte size of the string, including trailing NUL
 @item @var{format} @tab conversion specifier string
 @end multitable