On 10/1/2021 5:08 PM, Marek Polacek via Gcc-patches wrote:
On Fri, Oct 01, 2021 at 11:15:45PM +0200, Jakub Jelinek wrote:
On Fri, Oct 01, 2021 at 04:11:08PM -0400, Marek Polacek via Gcc-patches wrote:
+  auto_diagnostic_group d;
+  if (warning_at (location, OPT_Warray_compare,
+                 "comparison between two arrays%s",
+                 (c_dialect_cxx () && cxx_dialect >= cxx20)
+                 ? " is deprecated in C++20" : ""))
Not a review, just a comment.
The above is impossible to translate, translators would translate the
first half and the second one would be in English; but even translating
the second part too would mean one can't reword it in some other language
in different word order.

You can e.g. use
   if (warning_at (location, OPT_Warray_compare,
                  (c_dialect_cxx () && cxx_dialect >= cxx20)
                  ? G_("comparison between two arrays is deprecated in C++20")
                  : G_("comparison between two arrays")))
instead.
Thanks, fixed:

Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?

-- >8 --
This patch addresses one of my leftovers from GCC 11.  C++20 introduced
[depr.array.comp]: "Equality and relational comparisons between two operands
of array type are deprecated." so this patch adds -Warray-compare.  Since the
code in question is dubious (the comparison doesn't actually compare the array
elements), I've added this warning for C too, and enabled it in all C++ modes.

        PR c++/97573

gcc/c-family/ChangeLog:

        * c-common.h (do_warn_array_compare): Declare.
        * c-warn.c (do_warn_array_compare): New.
        * c.opt (Warray-compare): New option.

gcc/c/ChangeLog:

        * c-typeck.c (parser_build_binary_op): Call do_warn_array_compare.

gcc/cp/ChangeLog:

        * typeck.c (cp_build_binary_op): Call do_warn_array_compare.

gcc/ChangeLog:

        * doc/invoke.texi: Document -Warray-compare.

gcc/testsuite/ChangeLog:

        * c-c++-common/Warray-compare-1.c: New test.
        * c-c++-common/Warray-compare-2.c: New test.
OK.  It'll be interesting to see how many dusty packages trip over this ;-)

jeff

Reply via email to