public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Tsukasa OI <research_trasio@irq.a4lg.com>,
	Andrew Burgess <aburgess@redhat.com>,
	Mike Frysinger <vapier@gentoo.org>,
	Nick Clifton <nickc@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 01/40] gdb/unittests: PR28413, suppress warnings generated by Gnulib
Date: Mon, 14 Nov 2022 09:01:16 -0500	[thread overview]
Message-ID: <404b261a-d1b1-a710-1a5b-f365581811de@simark.ca> (raw)
In-Reply-To: <8b99d666e78ba5b9d32c7889a2161c70b3da88df.1666258361.git.research_trasio@irq.a4lg.com>



On 10/20/22 05:32, Tsukasa OI via Gdb-patches wrote:
> Gnulib generates a warning if the system version of certain functions
> are used (to redirect the developer to use Gnulib version).  It caused a
> compiler error when...
> 
> -   Compiled with Clang
> -   -Werror is specified (by default)
> -   C++ standard used by Clang is before C++17 (by default as of 15.0.0)
>     when this unit test is activated.
> 
> This issue is raised as PR28413.
> 
> However, previous proposal to fix this issue (a "fix" to Gnulib):
> <https://lists.gnu.org/archive/html/bug-gnulib/2021-10/msg00003.html>
> was rejected because it ruins the intent of Gnulib warnings.
> 
> So, we need a Binutils/GDB-side solution.
> 
> This commit tries to address this issue on the GDB side.  We have
> "include/diagnostics.h" to disable certain warnings only when necessary.
> 
> This commit suppresses the Gnulib warnings by surrounding entire #include
> block with DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS to disable Gnulib-
> generated warnings on all standard C++ header files.
> ---
>  gdb/unittests/string_view-selftests.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/gdb/unittests/string_view-selftests.c b/gdb/unittests/string_view-selftests.c
> index 2d7261d18d3..441d533b54e 100644
> --- a/gdb/unittests/string_view-selftests.c
> +++ b/gdb/unittests/string_view-selftests.c
> @@ -23,6 +23,11 @@
>  
>  #define GNULIB_NAMESPACE gnulib
>  
> +#include "diagnostics.h"
> +
> +DIAGNOSTIC_PUSH
> +DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS
> +
>  #include "defs.h"
>  #include "gdbsupport/selftest.h"
>  #include "gdbsupport/gdb_string_view.h"
> @@ -34,6 +39,8 @@
>  #include <fstream>
>  #include <iostream>
>  
> +DIAGNOSTIC_POP
> +
>  /* libstdc++'s testsuite uses VERIFY.  */
>  #define VERIFY SELF_CHECK
>  

I think this is fine, so I went ahead and pushed it, after adding a
little comment.

I tried to look at an alternative way of fixing it, by making
include/libiberty.h using GNULIB_NAMESPACE::free instead of free when
GNULIB_NAMESPACE is defined.  However, we then trip on:

      CXX    unittests/string_view-selftests.o
    In file included from /home/smarchi/src/binutils-gdb/gdb/unittests/string_view-selftests.c:26:
    In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:28:
    In file included from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-defs.h:204:
    In file included from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/ptid.h:36:
    In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/string:40:
    In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/char_traits.h:40:
    In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/postypes.h:40:
    /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/cwchar:231:12: error: The symbol ::wmemchr refers to the system function. Use gnulib::wmemchr instead. [-Werror,-Wuser-defined-warnings]
      { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
               ^

And we can't fix that the same way...

Simon

  reply	other threads:[~2022-11-14 14:01 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-20  9:32 [PATCH 00/40] sim+gdb: Suppress warnings if built with Clang (big batch 1) Tsukasa OI
2022-10-20  9:32 ` [PATCH 01/40] gdb/unittests: PR28413, suppress warnings generated by Gnulib Tsukasa OI
2022-11-14 14:01   ` Simon Marchi [this message]
2022-10-20  9:32 ` [PATCH 02/40] sim: Check known getrusage declaration existence Tsukasa OI
2022-10-23 13:59   ` Mike Frysinger
2022-10-24 10:47     ` Tsukasa OI
2022-10-24 16:03       ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 03/40] sim/aarch64: Remove unused functions Tsukasa OI
2022-10-23 14:02   ` Mike Frysinger
2022-10-24 10:55     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 04/40] cpu/cris: Initialize some variables on CRIS CPU Tsukasa OI
2022-10-20  9:32 ` [PATCH 05/40] cpu/cris: Add u-stall virtual unit to CRIS v32 Tsukasa OI
2022-10-20  9:32 ` [PATCH 06/40] sim/cris: Move declarations of f_specific_init Tsukasa OI
2022-10-23 14:26   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 07/40] sim/cris: Regenerate with CGEN Tsukasa OI
2022-10-23 14:27   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 08/40] sim/erc32: Insert void parameter Tsukasa OI
2022-10-23 14:04   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 09/40] sim/erc32: Use int32_t as event callback argument Tsukasa OI
2022-10-23 14:32   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 10/40] sim/erc32: Use int32_t as IRQ " Tsukasa OI
2022-10-23 14:33   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 11/40] cpu/frv: Initialize some variables Tsukasa OI
2022-10-20  9:32 ` [PATCH 12/40] sim/frv: Initialize nesr variable Tsukasa OI
2022-10-23 14:39   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 13/40] sim/frv: Initialize some variables Tsukasa OI
2022-10-23 14:34   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 14/40] sim/frv: Add explicit casts Tsukasa OI
2022-10-23 14:40   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 15/40] sim/h8300: Add "+ 0x0" to avoid self-assignments Tsukasa OI
2022-10-23 14:05   ` Mike Frysinger
2022-10-24 10:55     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 16/40] sim/lm32: fix some missing function declaration warnings Tsukasa OI
2022-10-23 14:41   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 17/40] sim/lm32: Add explicit casts Tsukasa OI
2022-10-23 14:42   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 18/40] sim/m32c: Stop using middle dot Tsukasa OI
2022-10-23 14:48   ` Mike Frysinger
2022-10-27  2:08     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 19/40] sim/m32r: Initialize "list" variable Tsukasa OI
2022-10-23 14:50   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 20/40] sim/m32r: Prepare required functions Tsukasa OI
2022-10-23 14:53   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 21/40] sim/m32r: Declare all " Tsukasa OI
2022-10-23 14:54   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 22/40] sim/m32r: Fixes to Linux emulator Tsukasa OI
2022-10-23 14:56   ` Mike Frysinger
2022-10-27  2:40     ` Tsukasa OI
2022-10-27 16:05       ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 23/40] sim/m32r: Add explicit casts Tsukasa OI
2022-10-23 14:57   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 24/40] sim/mips: Fix enum type-related issues on cp1.c Tsukasa OI
2022-10-23 15:00   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 25/40] sim/mn10300: Add an explicit cast Tsukasa OI
2022-10-23 15:03   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 26/40] sim/ppc: Remove getrusage declarations if possible Tsukasa OI
2022-10-23 15:04   ` Mike Frysinger
2022-10-27  2:00     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 27/40] sim/ppc: Add extra parenthesis to avoid ambiguity Tsukasa OI
2022-10-23 15:05   ` Mike Frysinger
2022-10-24 10:59     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 28/40] sim/ppc: Initialize stat type buffer Tsukasa OI
2022-10-23 15:06   ` Mike Frysinger
2022-10-24 11:00     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 29/40] sim/ppc: Fix indentation on generated code Tsukasa OI
2022-10-23 15:07   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 30/40] sim/ppc: Use TRACE with initialized entry_point Tsukasa OI
2022-10-23 15:08   ` Mike Frysinger
2022-10-24 11:02     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 31/40] sim/ppc: Initialize help variables Tsukasa OI
2022-10-23 15:08   ` Mike Frysinger
2022-10-24 16:33   ` Andrew Burgess
2022-10-20  9:32 ` [PATCH 32/40] sim/ppc: Add an explicit cast Tsukasa OI
2022-10-23 15:10   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 33/40] sim/ppc: Initialize reg and control_nr Tsukasa OI
2022-10-23 15:14   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 34/40] sim/rx: Mark unused function Tsukasa OI
2022-10-23 15:14   ` Mike Frysinger
2022-10-24 16:30   ` Andrew Burgess
2022-10-29 11:58     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 35/40] sim/sh: Initialize some variables Tsukasa OI
2022-10-23 15:19   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 36/40] sim/sh: Use fabs instead of abs Tsukasa OI
2022-10-23 14:17   ` Mike Frysinger
2022-10-24 10:56     ` Tsukasa OI
2022-10-20  9:32 ` [PATCH 37/40] sim/sh: Remove redundant function declaration Tsukasa OI
2022-10-23 14:19   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 38/40] sim/bpf: Add explicit casts Tsukasa OI
2022-10-23 15:15   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 39/40] sim/iq2000: " Tsukasa OI
2022-10-23 15:16   ` Mike Frysinger
2022-10-20  9:32 ` [PATCH 40/40] sim/or1k: " Tsukasa OI
2022-10-23 15:16   ` Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=404b261a-d1b1-a710-1a5b-f365581811de@simark.ca \
    --to=simark@simark.ca \
    --cc=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=nickc@redhat.com \
    --cc=research_trasio@irq.a4lg.com \
    --cc=vapier@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).