Date: Fri, 11 Apr 2025 09:56:22 -0400 From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 75a24e7f9afb - main - ctld: Disable -Wshadow for GCC Message-ID: <0349dcb7-2466-4c6a-bc40-e8405ef52ef6@FreeBSD.org> In-Reply-To: <202504111352.53BDqrmc033812@gitrepo.freebsd.org> References: <202504111352.53BDqrmc033812@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4/11/25 09:52, John Baldwin wrote: > The branch main has been updated by jhb: > > URL: https://cgit.FreeBSD.org/src/commit/?id=75a24e7f9afb128138c3b3462b80731cab0f5bdd > > commit 75a24e7f9afb128138c3b3462b80731cab0f5bdd > Author: John Baldwin <jhb@FreeBSD.org> > AuthorDate: 2025-04-11 13:34:36 +0000 > Commit: John Baldwin <jhb@FreeBSD.org> > CommitDate: 2025-04-11 13:52:39 +0000 > > ctld: Disable -Wshadow for GCC > > GCC raises shadow warnings in C++ when a global function shadows a > structure type name (since it shadows the constructors for that type). > System headers are full of such cases (and some such as struct sigaction > vs sigaction() are mandated by POSIX), so just disable the warning. > > For example: > > In file included from usr.sbin/ctld/ctld.cc:33: > sys/sys/event.h:366:20: error: 'int kqueue()' hides constructor for 'struct kqueue' [-Werror=shadow] > 366 | int kqueue(void); > | ^ > sys/sys/event.h:371:43: error: 'int kevent(int, const kevent*, int, kevent*, int, const timespec*)' hides constructor for 'struct kevent' [-Werror=shadow] > 371 | const struct timespec *timeout); > | ^ > In file included from usr.sbin/ctld/ctld.cc:37: > sys/sys/stat.h:396:63: error: 'int stat(const char*, stat*)' hides constructor for 'struct stat' [-Werror=shadow] > 396 | int stat(const char * __restrict, struct stat * __restrict); > | ^ > > Reported by: bz > --- > usr.sbin/ctld/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/usr.sbin/ctld/Makefile b/usr.sbin/ctld/Makefile > index f96f3152e061..79c69c95fbb1 100644 > --- a/usr.sbin/ctld/Makefile > +++ b/usr.sbin/ctld/Makefile > @@ -14,6 +14,7 @@ CFLAGS+= -I${SRCTOP}/sys/dev/iscsi > CFLAGS+= -I${SRCTOP}/lib/libiscsiutil > #CFLAGS+= -DICL_KERNEL_PROXY > NO_WCAST_ALIGN= > +CXXWARNFLAGS.gcc= -Wno-shadow > MAN= ctld.8 ctl.conf.5 > > LIBADD= bsdxml iscsiutil md sbuf util ucl m nv Possibly we should disable -Wshadow globally for GCC for C++ in bsd.sys.mk. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0349dcb7-2466-4c6a-bc40-e8405ef52ef6>