diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-12-10 23:35:12 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-12-10 23:35:12 +0100 |
commit | 8bb6fe853f6910526ed761938343cca79648a0b4 (patch) | |
tree | 7a9099eba3494b2c1187f493f13bdbd881182831 /refs.c | |
parent | Merge branch 'jk/fetch-pack-avoid-sigpipe-to-index-pack' (diff) | |
parent | refs: work around gcc-11 warning with REF_HAVE_NEW (diff) | |
download | git-8bb6fe853f6910526ed761938343cca79648a0b4.tar.xz git-8bb6fe853f6910526ed761938343cca79648a0b4.zip |
Merge branch 'jk/refs-g11-workaround'
Workaround for a false-alarm by gcc-11
* jk/refs-g11-workaround:
refs: work around gcc-11 warning with REF_HAVE_NEW
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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, |