From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Carlo Arenas <carenas@gmail.com>,
git@vger.kernel.org, phillip.wood@talktalk.net
Subject: Re: [PATCH 1/2] config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job
Date: Sat, 16 Apr 2022 14:33:09 +0200 [thread overview]
Message-ID: <220416.86czhh9ov0.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <xmqqo8117er2.fsf@gitster.g>
On Fri, Apr 15 2022, Junio C Hamano wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> On Fri, Apr 15 2022, Carlo Arenas wrote:
>>
>>>> > +# https://bugzilla.redhat.com/show_bug.cgi?id=2075786
>>>> > +ifneq ($(filter gcc12,$(COMPILER_FEATURES)),)
>>>> > +DEVELOPER_CFLAGS += -Wno-error=stringop-overread
>>>> > +endif
>>>>
>>>> What I meant with "just set -Wno-error=stringop-overread on gcc12 for
>>>> dir.(o|s|sp)?" was that you can set this per-file:
>>>
>>> of course, but that change goes in the Makefile and therefore affects
>>> ...
>> I mean it can go in config.mak.dev, it doesn't need to be in the
>> Makefile itself.
>> ...
>>>> dir.sp dir.s dir.o: EXTRA_CPPFLAGS += -Wno-error=stringop-overread
>>>
>>> I know at least one developer that will then rightfully complain that
>>> the git build doesn't work in AIX with xl after this.
>>
>> Yes, it would break if it were in the Makfile, but not if it's in
>> config.mak.dev.
>
> I do not think you can blame Carlo for poor reading/comprehension in
> this case---I too (mis)read what you wrote, and didn't realize that
> you were suggesting to add the "for these target, EXTRA_CPPFLAGS
> additionally gets this value" inside the ifneq/endif Carlo added to
> hold the DEVELOPER_CFLAGS thing.
Indeed, I don't think I would have understood myself, I didn't mean to
imply any fault (except my own for not elaborating). Just claifying that
we can use that trick.
I.e. my own config.mak has had this (or a form thereof) for a while:
http.sp http.s http.o: EXTRA_CPPFLAGS += -Wno-error=dangling-pointer=
dir.sp dir.s dir.o: EXTRA_CPPFLAGS += -Wno-error=stringop-overread
> For now, let's stick to the simpler form, though.
Sure, works for me.
Note though that one important difference between this solution and the
patch I had for http.c is that the patch will fix things for all builds,
whereas a config.mak.dev change (whether it's Carlos's global addition,
or my per-file) can only do so for cases where DEVELOPER=1.
Although in practice that's probably fine, anyone turning on -Werror is
likely to do so through DEVELOPER=1, and fore those that don't it's
"just a warning".
So yeah, it's probably better to do that for now.
But FWIW I did write up and test the below monstrosity as a replacement
just now, it's guaranteed to work with/without DEVELOPER, and squashes
only that specific warning, and only on GCC:
diff --git a/dir.c b/dir.c
index f2b0f242101..e7a5acb126f 100644
--- a/dir.c
+++ b/dir.c
@@ -3089,6 +3089,13 @@ char *git_url_basename(const char *repo, int is_bundle, int is_bare)
* result in a dir '2222' being guessed due to backwards
* compatibility.
*/
+#ifdef __clang__
+#elif defined(__GNUC__)
+#if __GNUC__ >= 12
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstringop-overread"
+#endif
+#endif
if (memchr(start, '/', end - start) == NULL
&& memchr(start, ':', end - start) != NULL) {
ptr = end;
@@ -3097,6 +3104,12 @@ char *git_url_basename(const char *repo, int is_bundle, int is_bare)
if (start < ptr && ptr[-1] == ':')
end = ptr - 1;
}
+#ifdef __clang__
+#elif defined(__GNUC__)
+#if __GNUC__ >= 12
+#pragma GCC diagnostic pop
+#endif
+#endif
/*
* Find last component. To remain backwards compatible we
diff --git a/http.c b/http.c
index 229da4d1488..e63d4ab9527 100644
--- a/http.c
+++ b/http.c
@@ -1329,7 +1329,21 @@ void run_active_slot(struct active_request_slot *slot)
struct timeval select_timeout;
int finished = 0;
+#ifdef __clang__
+#elif defined(__GNUC__)
+#if __GNUC__ >= 12
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
+#endif
+#endif
slot->finished = &finished;
+#ifdef __clang__
+#elif defined(__GNUC__)
+#if __GNUC__ >= 12
+#pragma GCC diagnostic pop
+#endif
+#endif
+
while (!finished) {
step_active_slots();
But yeah, between us not having -Werror by default and DEVELOPER
handling it it's probably not worth it just to be able to selectively
suppress the warnings involved.
next prev parent reply other threads:[~2022-04-16 12:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-15 12:39 [PATCH] ci: lock "pedantic" job into fedora 35 and other cleanup Carlo Marcelo Arenas Belón
2022-04-15 13:17 ` Ævar Arnfjörð Bjarmason
2022-04-15 13:50 ` Phillip Wood
2022-04-15 18:31 ` Junio C Hamano
2022-04-15 21:03 ` Carlo Arenas
2022-04-15 22:20 ` Junio C Hamano
2022-04-15 23:13 ` [PATCH 0/2] ci: avoid failures for pedantic job with fedora 36 Carlo Marcelo Arenas Belón
2022-04-15 23:13 ` [PATCH 1/2] config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job Carlo Marcelo Arenas Belón
2022-04-15 23:41 ` Ævar Arnfjörð Bjarmason
2022-04-16 0:08 ` Carlo Arenas
2022-04-16 0:55 ` Ævar Arnfjörð Bjarmason
2022-04-16 5:56 ` Junio C Hamano
2022-04-16 12:33 ` Ævar Arnfjörð Bjarmason [this message]
2022-04-16 0:19 ` Junio C Hamano
2022-04-15 23:56 ` Junio C Hamano
2022-04-15 23:13 ` [PATCH 2/2] config.mak.dev: alternative workaround to gcc 12 warning in http.c Carlo Marcelo Arenas Belón
2022-04-15 23:34 ` Junio C Hamano
2022-04-16 0:02 ` Carlo Arenas
2022-04-16 0:28 ` Junio C Hamano
2022-04-16 0:51 ` Carlo Arenas
2022-04-16 1:00 ` Junio C Hamano
2022-04-16 12:50 ` Ævar Arnfjörð Bjarmason
2022-04-16 1:20 ` Ævar Arnfjörð Bjarmason
2022-04-16 14:23 ` Junio C Hamano
2022-04-16 1:08 ` Ævar Arnfjörð Bjarmason
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=220416.86czhh9ov0.gmgdl@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=carenas@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=phillip.wood@talktalk.net \
/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 NNTP newsgroup(s).