Hi!

Like in r10-7215-g700d4cb08c88aec37c13e21e63dd61fd698baabc 2 years ago,
I've run
grep -v 'long long\|optab optab\|template template\|double double' *.{[chS],cc} 
*/*.{[chS],cc} *.def config/*/* 2>/dev/null | grep ' \([a-zA-Z]\+\) \1 '
and for the cases that looked clearly wrong changed them, mostly by removing
one of the duplicated words but in some cases with other changes.

Committed to trunk as obvious.

2022-03-07  Jakub Jelinek  <ja...@redhat.com>

gcc/
        * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
        * config/riscv/riscv.cc: Likewise.
        * config/darwin.h: Likewise.
        * config/i386/i386.cc: Likewise.
        * config/aarch64/thunderx3t110.md: Likewise.
        * config/aarch64/fractional-cost.h: Likewise.
        * config/vax/vax.cc: Likewise.
        * config/rs6000/pcrel-opt.md: Likewise.
        * config/rs6000/predicates.md: Likewise.
        * ctfc.h: Likewise.
        * tree-ssa-uninit.cc: Likewise.
        * value-relation.h: Likewise.
        * gimple-range-gori.cc: Likewise.
        * ipa-polymorphic-call.cc: Likewise.
        * pointer-query.cc: Likewise.
        * ipa-sra.cc: Likewise.
        * internal-fn.cc: Likewise.
        * varasm.cc: Likewise.
        * gimple-ssa-warn-access.cc: Likewise.
gcc/analyzer/
        * store.cc: Fix up duplicated word issue in a comment.
        * analyzer.cc: Likewise.
        * engine.cc: Likewise.
        * sm-taint.cc: Likewise.
gcc/c-family/
        * c-attribs.cc: Fix up duplicated word issue in a comment.
gcc/cp/
        * cvt.cc: Fix up duplicated word issue in a comment.
        * pt.cc: Likewise.
        * module.cc: Likewise.
        * coroutines.cc: Likewise.
gcc/fortran/
        * trans-expr.cc: Fix up duplicated word issue in a comment.
        * gfortran.h: Likewise.
        * scanner.cc: Likewise.
gcc/jit/
        * libgccjit.h: Fix up duplicated word issue in a comment.

--- gcc/tree-ssa-propagate.cc.jj        2022-01-18 11:59:00.090974799 +0100
+++ gcc/tree-ssa-propagate.cc   2022-03-07 14:33:28.033829512 +0100
@@ -697,7 +697,7 @@ private:
                                 gimple_stmt_iterator new_gsi);
 };
 
-/* Call post_new_stmt for each each new statement that has been added
+/* Call post_new_stmt for each new statement that has been added
    to the current BB.  OLD_GSI is the statement iterator before the BB
    changes ocurred.  NEW_GSI is the iterator which may contain new
    statements.  */
--- gcc/config/riscv/riscv.cc.jj        2022-02-04 14:36:54.467612813 +0100
+++ gcc/config/riscv/riscv.cc   2022-03-07 14:50:54.717372413 +0100
@@ -4984,7 +4984,7 @@ riscv_option_override (void)
     target_flags |= MASK_FDIV;
 
   /* Handle -mtune, use -mcpu if -mtune is not given, and use default -mtune
-     if -mtune and -mcpu both not not given.  */
+     if -mtune and -mcpu both not given.  */
   cpu = riscv_parse_tune (riscv_tune_string ? riscv_tune_string :
                          (riscv_cpu_string ? riscv_cpu_string :
                           RISCV_TUNE_STRING_DEFAULT));
--- gcc/config/darwin.h.jj      2022-01-18 11:58:59.078989257 +0100
+++ gcc/config/darwin.h 2022-03-07 14:36:18.924463533 +0100
@@ -340,7 +340,7 @@ extern GTY(()) int darwin_ms_struct;
 " %:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) "
 
 /* In Darwin linker specs we can put -lcrt0.o and ld will search the library
-   path for crt0.o or -lcrtx.a and it will search for for libcrtx.a.  As for
+   path for crt0.o or -lcrtx.a and it will search for libcrtx.a.  As for
    other ports, we can also put xxx.{o,a}%s and get the appropriate complete
    startfile absolute directory.  This latter point is important when we want
    to override ld's rule of .dylib being found ahead of .a and the user wants
--- gcc/config/i386/i386.cc.jj  2022-03-04 09:35:58.674788325 +0100
+++ gcc/config/i386/i386.cc     2022-03-07 14:50:08.093016106 +0100
@@ -20334,7 +20334,7 @@ ix86_division_cost (const struct process
 
 /* Return cost of shift in MODE.
    If CONSTANT_OP1 is true, the op1 value is known and set in OP1_VAL.
-   AND_IN_OP1 specify in op1 is result of and and SHIFT_AND_TRUNCATE
+   AND_IN_OP1 specify in op1 is result of AND and SHIFT_AND_TRUNCATE
    if op1 is a result of subreg.
 
    SKIP_OP0/1 is set to true if cost of OP0/1 should be ignored.  */
--- gcc/config/aarch64/thunderx3t110.md.jj      2022-01-11 23:11:21.689300005 
+0100
+++ gcc/config/aarch64/thunderx3t110.md 2022-03-07 14:47:39.710064661 +0100
@@ -138,7 +138,7 @@ (define_insn_reservation "thunderx3t110_
                        logic_shift_imm,logics_shift_imm"))
   "thunderx3t110_i01")
 
-; we are going for the the optimistic answer (13)
+; we are going for the optimistic answer (13)
 ; for now, the worst case is 23
 (define_insn_reservation "thunderx3t110_div" 13
   (and (eq_attr "tune" "thunderx3t110")
--- gcc/config/aarch64/fractional-cost.h.jj     2022-01-11 23:11:21.687300033 
+0100
+++ gcc/config/aarch64/fractional-cost.h        2022-03-07 14:47:16.847380301 
+0100
@@ -61,7 +61,7 @@ private:
   constexpr fractional_cost (uint64_t value, raw) : m_value (value) {}
 
   // A multiple of [1, 16] * 16.  This ensures that 1/N is representable
-  // for every every possible SVE element count N, or for any "X per cycle"
+  // for every possible SVE element count N, or for any "X per cycle"
   // value N in the range [1, 16].
   static const uint32_t SCALE = 11531520;
 
--- gcc/config/vax/vax.cc.jj    2022-01-18 11:58:59.262986628 +0100
+++ gcc/config/vax/vax.cc       2022-03-07 14:54:22.759495841 +0100
@@ -1124,7 +1124,7 @@ vax_select_cc_mode (enum rtx_code op,
 
 /* Return the narrowest CC mode that spans both modes offered.  If they
    intersect, this will be the wider of the two, and if they do not then
-   find find one that is a superset of both (i.e. CCNZmode for a pair
+   find one that is a superset of both (i.e. CCNZmode for a pair
    consisting of CCNmode and CCZmode).  A wider CC writer will satisfy
    a narrower CC reader, e.g. a comparison operator that uses CCZmode
    can use a CCNZmode output of a previous instruction.  */
--- gcc/config/rs6000/pcrel-opt.md.jj   2022-01-11 23:11:21.940296477 +0100
+++ gcc/config/rs6000/pcrel-opt.md      2022-03-07 14:52:16.898236733 +0100
@@ -60,7 +60,7 @@
 ;; that both registers may be set in the first insn, and will be used in the
 ;; second insn.
 ;;
-;; Since we use UNSPEC's and link both the the register holding the external
+;; Since we use UNSPEC's and link both the register holding the external
 ;; address and the value being loaded, it should prevent other passes from
 ;; modifying it.
 ;;
--- gcc/config/rs6000/predicates.md.jj  2022-03-05 11:43:13.114451980 +0100
+++ gcc/config/rs6000/predicates.md     2022-03-07 14:53:34.410164598 +0100
@@ -496,7 +496,7 @@ (define_predicate "cc_reg_not_cr0_operan
 })
 
 ;; Return 1 if op is a constant integer valid for D field
-;; or non-special register register.
+;; or non-special register.
 (define_predicate "reg_or_short_operand"
   (if_then_else (match_code "const_int")
     (match_operand 0 "short_cint_operand")
@@ -1109,7 +1109,7 @@ (define_predicate "symbol_ref_operand"
                    && (DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P 
(op))")))
 
 ;; Return 1 if op is an operand that can be loaded via the GOT.
-;; or non-special register register field no cr0
+;; or non-special register field no cr0
 (define_predicate "got_operand"
   (match_code "symbol_ref,const,label_ref"))
 
--- gcc/ctfc.h.jj       2022-01-18 11:58:59.412984485 +0100
+++ gcc/ctfc.h  2022-03-07 14:26:13.594880739 +0100
@@ -144,7 +144,7 @@ typedef struct GTY ((chain_next ("%h.dmd
 typedef struct GTY (()) ctf_func_arg
 {
   ctf_id_t farg_type;            /* Type identifier of the argument.  */
-  const char * farg_name;        /* Name of the the argument.  */
+  const char * farg_name;        /* Name of the argument.  */
   uint32_t farg_name_offset;     /* Offset of the name in str table.  */
   struct ctf_func_arg * farg_next;/* A list node.  */
 } ctf_func_arg_t;
--- gcc/cp/cvt.cc.jj    2022-02-18 12:38:06.022393827 +0100
+++ gcc/cp/cvt.cc       2022-03-07 14:43:08.535808467 +0100
@@ -2092,7 +2092,7 @@ can_convert_tx_safety (tree to, tree fro
 }
 
 /* Return true iff FROM can convert to TO by dropping noexcept.
-   This is just a subroutine of of fnptr_conv_p.  */
+   This is just a subroutine of fnptr_conv_p.  */
 
 static bool
 noexcept_conv_p (tree to, tree from)
--- gcc/cp/pt.cc.jj     2022-03-01 19:42:39.259263856 +0100
+++ gcc/cp/pt.cc        2022-03-07 14:44:42.400512577 +0100
@@ -30049,7 +30049,7 @@ do_class_deduction (tree ptype, tree tmp
 
    OUTER_TARGS is used during template argument deduction (context == 
adc_unify)
    to properly substitute the result.  It's also used in the adc_unify and
-   adc_requirement contexts to communicate the the necessary template arguments
+   adc_requirement contexts to communicate the necessary template arguments
    to satisfaction.  OUTER_TARGS is ignored in other contexts.
 
    For partial-concept-ids, extra args may be appended to the list of deduced
--- gcc/cp/module.cc.jj 2022-03-05 11:43:13.189450927 +0100
+++ gcc/cp/module.cc    2022-03-07 14:44:03.425050667 +0100
@@ -4617,7 +4617,7 @@ create_dirs (char *path)
       }
 }
 
-/* Given a CLASSTYPE_DECL_LIST VALUE get the the template friend decl,
+/* Given a CLASSTYPE_DECL_LIST VALUE get the template friend decl,
    if that's what this is.  */
 
 static tree
--- gcc/cp/coroutines.cc.jj     2022-01-18 11:58:59.297986128 +0100
+++ gcc/cp/coroutines.cc        2022-03-07 14:42:39.719206310 +0100
@@ -1824,7 +1824,7 @@ expand_one_await_expression (tree *stmt,
       cp_walk_tree (await_init, co_await_find_in_subtree, &aw_expr_ptr, NULL))
     expand_one_await_expression (await_init, aw_expr_ptr, d);
 
-  /* Expand any more await expressions in the the original statement.  */
+  /* Expand any more await expressions in the original statement.  */
   if (cp_walk_tree (revised, co_await_find_in_subtree, &aw_expr_ptr, NULL))
     expand_one_await_expression (revised, aw_expr_ptr, d);
 
--- gcc/tree-ssa-uninit.cc.jj   2022-02-11 00:19:22.433063241 +0100
+++ gcc/tree-ssa-uninit.cc      2022-03-07 14:35:05.250480666 +0100
@@ -403,7 +403,7 @@ maybe_warn_read_write_only (tree fndecl,
     return;
 
   /* Initialize a map of attribute access specifications for arguments
-     to the function function call.  */
+     to the function call.  */
   rdwr_map rdwr_idx;
   init_attr_rdwr_indices (&rdwr_idx, TYPE_ATTRIBUTES (fntype));
 
@@ -514,7 +514,7 @@ check_defs (ao_ref *ref, tree vdef, void
   return true;
 }
 
-/* Counters and limits controlling the the depth of analysis and
+/* Counters and limits controlling the depth of analysis and
    strictness of the warning.  */
 struct wlimits
 {
@@ -785,7 +785,7 @@ maybe_warn_pass_by_reference (gcall *stm
   const bool save_always_executed = wlims.always_executed;
 
   /* Initialize a map of attribute access specifications for arguments
-     to the function function call.  */
+     to the function call.  */
   rdwr_map rdwr_idx;
   init_attr_rdwr_indices (&rdwr_idx, TYPE_ATTRIBUTES (fntype));
 
@@ -979,7 +979,7 @@ warn_uninit_phi_uses (basic_block bb)
 static void
 warn_uninitialized_vars (bool wmaybe_uninit)
 {
-  /* Counters and limits controlling the the depth of the warning.  */
+  /* Counters and limits controlling the depth of the warning.  */
   wlimits wlims = { };
   wlims.wmaybe_uninit = wmaybe_uninit;
 
--- gcc/analyzer/store.cc.jj    2022-01-11 23:11:21.540302098 +0100
+++ gcc/analyzer/store.cc       2022-03-07 14:39:45.494611643 +0100
@@ -1204,7 +1204,7 @@ binding_cluster::validate () const
 /* Return a new json::object of the form
    {"escaped": true/false,
     "touched": true/false,
-    "map" : object for the the binding_map.  */
+    "map" : object for the binding_map.  */
 
 json::object *
 binding_cluster::to_json () const
@@ -1892,7 +1892,7 @@ binding_cluster::redundant_p () const
          && !m_touched);
 }
 
-/* Add PV to OUT_PVS, casting it to TYPE if if is not already of that type.  */
+/* Add PV to OUT_PVS, casting it to TYPE if it is not already of that type.  */
 
 static void
 append_pathvar_with_type (path_var pv,
--- gcc/analyzer/analyzer.cc.jj 2022-01-18 11:58:58.874992171 +0100
+++ gcc/analyzer/analyzer.cc    2022-03-07 14:38:24.082735607 +0100
@@ -109,7 +109,7 @@ get_diagnostic_tree_for_gassign_1 (const
 }
 
 /*  Subroutine of fixup_tree_for_diagnostic_1, called on SSA names.
-    Attempt to reconstruct a a tree expression for SSA_NAME
+    Attempt to reconstruct a tree expression for SSA_NAME
     based on its def-stmt.
     SSA_NAME must be non-NULL.
     VISITED must be non-NULL; it is used to ensure termination.
--- gcc/analyzer/engine.cc.jj   2022-02-17 10:24:16.724113721 +0100
+++ gcc/analyzer/engine.cc      2022-03-07 14:38:36.592562897 +0100
@@ -3918,7 +3918,7 @@ exploded_graph::process_node (exploded_n
                         analysis of the current function.
 
                         The analyzer handles calls to such functions while
-                        analysing the stmt itself, so the the function call
+                        analysing the stmt itself, so the function call
                         must have been handled by the anlyzer till now.  */
                      exploded_node *next
                        = get_or_create_node (next_point,
--- gcc/analyzer/sm-taint.cc.jj 2022-02-08 09:23:08.530158329 +0100
+++ gcc/analyzer/sm-taint.cc    2022-03-07 14:39:03.884186114 +0100
@@ -891,7 +891,7 @@ taint_state_machine::check_for_tainted_s
     return;
 
   /* Initialize a map of attribute access specifications for arguments
-     to the function function call.  */
+     to the function call.  */
   rdwr_map rdwr_idx;
   init_attr_rdwr_indices (&rdwr_idx, TYPE_ATTRIBUTES (fntype));
 
--- gcc/value-relation.h.jj     2022-02-04 14:36:56.414585620 +0100
+++ gcc/value-relation.h        2022-03-07 14:27:10.659085904 +0100
@@ -50,7 +50,7 @@ along with GCC; see the file COPYING3.
 // relation comes back EQ_EXPR, it is also possible to query the set of
 // equivlaencies.  These are basically bitmaps over ssa_names.
 //
-// relations are maintained via the dominace trees, are are optimized assuming
+// Relations are maintained via the dominace trees and are optimized assuming
 // they are registered in dominance order.   When a new relation is added, it
 // is intersected with whatever existing relation exists in the dominance tree
 // and registered at the specified block.
--- gcc/jit/libgccjit.h.jj      2022-01-11 23:11:22.717285559 +0100
+++ gcc/jit/libgccjit.h 2022-03-07 14:37:23.823567542 +0100
@@ -842,7 +842,7 @@ gcc_jit_context_new_global (gcc_jit_cont
    set to the corresponding value in `values`.  `fields` and `values`
    are paired by index.
 
-   Each value has to have have the same unqualified type as the field
+   Each value has to have the same unqualified type as the field
    it is applied to.
 
    A NULL value element  in `values` is a shorthand for zero initialization
@@ -892,7 +892,7 @@ gcc_jit_context_new_struct_constructor (
    `value` specifies what value to set the corresponding field to.
    If `value` is NULL, zero initialization will be used.
 
-   Each value has to have have the same unqualified type as the field
+   Each value has to have the same unqualified type as the field
    it is applied to.
 
    `field` need to be the same objects that were used
--- gcc/gimple-range-gori.cc.jj 2022-02-17 10:24:16.780112940 +0100
+++ gcc/gimple-range-gori.cc    2022-03-07 14:28:18.935134901 +0100
@@ -890,7 +890,7 @@ gori_compute::logical_combine (irange &r
       case BIT_AND_EXPR:
         if (!lhs.zero_p ())
          {
-           // The TRUE side is the intersection of the the 2 true ranges.
+           // The TRUE side is the intersection of the 2 true ranges.
            r = op1_true;
            r.intersect (op2_true);
          }
--- gcc/c-family/c-attribs.cc.jj        2022-03-01 19:42:39.201264652 +0100
+++ gcc/c-family/c-attribs.cc   2022-03-07 14:42:05.707675867 +0100
@@ -3421,7 +3421,7 @@ handle_malloc_attribute (tree *node, tre
         it with this one.  Ideally, the attribute would reference
         the DECL of the deallocator but since that changes for each
         redeclaration, use DECL_NAME instead.  (DECL_ASSEMBLER_NAME
-        need not be set set this point and setting it here is too early.  */
+        need not be set at this point and setting it here is too early.  */
       tree attrs = build_tree_list (NULL_TREE, DECL_NAME (fndecl));
       attrs = tree_cons (get_identifier ("*dealloc"), attrs, at_noinline);
       decl_attributes (&dealloc, attrs, 0);
@@ -5142,7 +5142,7 @@ handle_access_attribute (tree node[3], t
      value: "+^2[*],$0$1^3[*],$1$1"
      list:  < <0, x> <1, y> >
 
-   where the list has a single value which itself is is a list each
+   where the list has a single value which itself is a list, each
    of whose <node>s corresponds to one VLA bound for each of the two
    parameters.  */
 
--- gcc/ipa-polymorphic-call.cc.jj      2022-01-18 11:58:59.654981028 +0100
+++ gcc/ipa-polymorphic-call.cc 2022-03-07 14:30:36.660216550 +0100
@@ -1598,7 +1598,7 @@ ipa_polymorphic_call_context::get_dynami
   if (!maybe_in_construction && !maybe_derived_type)
     return false;
 
-  /* If we are in fact not looking at any object object or the instance is
+  /* If we are in fact not looking at any object or the instance is
      some placement new into a random load, give up straight away.  */
   if (TREE_CODE (instance) == MEM_REF)
     return false;
--- gcc/pointer-query.cc.jj     2022-02-04 14:36:55.457598986 +0100
+++ gcc/pointer-query.cc        2022-03-07 14:32:22.599740936 +0100
@@ -959,7 +959,7 @@ void access_ref::add_offset (const offse
         (which may be greater than MAX_OBJECT_SIZE).
         The lower bound is either the sum of the current offset and
         MIN when abs(MAX) is greater than the former, or zero otherwise.
-        Zero because then then inverted range includes the negative of
+        Zero because then the inverted range includes the negative of
         the lower bound.  */
       offset_int maxoff = wi::to_offset (TYPE_MAX_VALUE (ptrdiff_type_node));
       offrng[1] = maxoff;
--- gcc/ipa-sra.cc.jj   2022-02-04 14:36:55.301601165 +0100
+++ gcc/ipa-sra.cc      2022-03-07 14:30:59.966891914 +0100
@@ -2874,7 +2874,7 @@ struct caller_issues
   bool thunk;
   /* Call site with no available information.  */
   bool unknown_callsite;
-  /* Call from outside the the candidate's comdat group.  */
+  /* Call from outside the candidate's comdat group.  */
   bool call_from_outside_comdat;
   /* There is a bit-aligned load into one of non-gimple-typed arguments. */
   bool bit_aligned_aggregate_argument;
--- gcc/internal-fn.cc.jj       2022-02-25 10:56:39.971022192 +0100
+++ gcc/internal-fn.cc  2022-03-07 14:29:42.695968210 +0100
@@ -1500,7 +1500,7 @@ expand_mul_overflow (location_t loc, tre
                 0 and there will be no overflow, if the first argument is
                 negative and the second argument positive, the result when
                 treated as signed will be negative (minimum -0x7f80 or
-                -0x7f..f80..0) there there will be always overflow.  So, do
+                -0x7f..f80..0) there will be always overflow.  So, do
                 res = (U) (s1 * u2)
                 ovf = (S) res < 0  */
              struct separate_ops ops;
--- gcc/fortran/trans-expr.cc.jj        2022-01-18 11:58:59.576982142 +0100
+++ gcc/fortran/trans-expr.cc   2022-03-07 14:46:17.207203686 +0100
@@ -5678,7 +5678,7 @@ gfc_conv_gfc_desc_to_cfi_desc (gfc_se *p
      Note that allocatable implies 'len=:'.  */
   if (e->ts.type != BT_ASSUMED && e->ts.type != BT_CHARACTER )
     {
-      /* Length is known at compile time; use use 'block' for it.  */
+      /* Length is known at compile time; use 'block' for it.  */
       tmp = size_in_bytes (gfc_typenode_for_spec (&e->ts));
       tmp2 = gfc_get_cfi_desc_elem_len (cfi);
       gfc_add_modify (&block, tmp2, fold_convert (TREE_TYPE (tmp2), tmp));
--- gcc/fortran/gfortran.h.jj   2022-02-21 16:51:50.435230224 +0100
+++ gcc/fortran/gfortran.h      2022-03-07 14:36:42.227141820 +0100
@@ -2137,7 +2137,7 @@ typedef struct gfc_namespace
   /* Linked list of !$omp declare variant constructs.  */
   struct gfc_omp_declare_variant *omp_declare_variant;
 
-  /* A hash set for the the gfc expressions that have already
+  /* A hash set for the gfc expressions that have already
      been finalized in this namespace.  */
 
   gfc_was_finalized *was_finalized;
--- gcc/fortran/scanner.cc.jj   2022-01-18 11:58:59.572982199 +0100
+++ gcc/fortran/scanner.cc      2022-03-07 14:45:36.832761090 +0100
@@ -1915,7 +1915,7 @@ load_line (FILE *input, gfc_char_t **pbu
 
       /* For truncation and tab warnings, set seen_comment to false if one has
         either an OpenMP or OpenACC directive - or a !GCC$ attribute.  If
-        OpenMP is enabled, use '!$' as as conditional compilation sentinel
+        OpenMP is enabled, use '!$' as conditional compilation sentinel
         and OpenMP directive ('!$omp').  */
       if (seen_comment && first_comment && flag_openmp && comment_ix + 1 == i
          && c == '$')
--- gcc/varasm.cc.jj    2022-02-23 09:17:04.917123697 +0100
+++ gcc/varasm.cc       2022-03-07 14:35:34.433077776 +0100
@@ -283,7 +283,7 @@ get_noswitch_section (unsigned int flags
    a new section with the given fields if no such structure exists.
    When NOT_EXISTING, then fail if the section already exists.  Return
    the existing section if the SECTION_RETAIN bit doesn't match.  Set
-   the SECTION_WRITE | SECTION_RELRO bits on the the existing section
+   the SECTION_WRITE | SECTION_RELRO bits on the existing section
    if one of the section flags is SECTION_WRITE | SECTION_RELRO and the
    other has none of these flags in named sections and either the section
    hasn't been declared yet or has been declared as writable.  */
--- gcc/gimple-ssa-warn-access.cc.jj    2022-03-05 12:20:44.175848242 +0100
+++ gcc/gimple-ssa-warn-access.cc       2022-03-07 14:28:57.960591321 +0100
@@ -2642,7 +2642,7 @@ pass_waccess::check_strncmp (gcall *stmt
      a bound that's larger than the size of either array makes no sense
      and is likely a bug.  When the length of neither of the two strings
      is known but the sizes of both of the arrays they are stored in is,
-     issue a warning if the bound is larger than than the size of
+     issue a warning if the bound is larger than the size of
      the larger of the two arrays.  */
 
   c_strlen_data lendata1{ }, lendata2{ };


        Jakub

Reply via email to