]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jk/refs-g11-workaround'
authorJunio C Hamano <gitster@pobox.com>
Fri, 10 Dec 2021 22:35:12 +0000 (14:35 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Dec 2021 22:35:12 +0000 (14:35 -0800)
Workaround for a false-alarm by gcc-11

* jk/refs-g11-workaround:
  refs: work around gcc-11 warning with REF_HAVE_NEW

refs.c

diff --git a/refs.c b/refs.c
index 996ac2716417de5e84f919782091d03ff75624b0..be687ddeb1f6df6ee3e5a23579f186f0b077f572 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1094,6 +1094,13 @@ int ref_transaction_update(struct ref_transaction *transaction,
        if (flags & ~REF_TRANSACTION_UPDATE_ALLOWED_FLAGS)
                BUG("illegal flags 0x%x passed to ref_transaction_update()", flags);
 
+       /*
+        * Clear flags outside the allowed set; this should be a noop because
+        * of the BUG() check above, but it works around a -Wnonnull warning
+        * with some versions of "gcc -O3".
+        */
+       flags &= REF_TRANSACTION_UPDATE_ALLOWED_FLAGS;
+
        flags |= (new_oid ? REF_HAVE_NEW : 0) | (old_oid ? REF_HAVE_OLD : 0);
 
        ref_transaction_add_update(transaction, refname, flags,