Skip to content

Commit

Permalink
patch 8.2.3770: new compiler warnings from clang-12 and clang-13
Browse files Browse the repository at this point in the history
Problem:    New compiler warnings from clang-12 and clang-13.
Solution:   Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314)
  • Loading branch information
ichizok authored and brammool committed Dec 9, 2021
1 parent 4c8c634 commit dee78e1
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 8 deletions.
20 changes: 14 additions & 6 deletions .github/workflows/ci.yml
Expand Up @@ -75,16 +75,16 @@ jobs:
libtool-bin \
libsodium-dev
- name: Install clang-11
- name: Install clang-13
if: matrix.compiler == 'clang'
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
. /etc/lsb-release
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-11 main"
sudo apt-get install -y clang-11 llvm-11
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-11 100
sudo update-alternatives --set clang /usr/bin/clang-11
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-11 100
sudo add-apt-repository -y "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-13 main"
sudo apt-get install -y clang-13 llvm-13
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
sudo update-alternatives --set clang /usr/bin/clang-13
sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-13 100
- name: Set up environment
run: |
Expand Down Expand Up @@ -188,6 +188,10 @@ jobs:
# Append various warning flags to CFLAGS.
sed -i -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
sed -i -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
if [[ ${CC} = clang ]]; then
# Suppress some warnings produced by clang 12 and later.
sed -i -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
fi
- name: Build
if: (!contains(matrix.extra, 'unittests'))
Expand Down Expand Up @@ -296,6 +300,10 @@ jobs:
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
# On macOS, the entity of gcc is clang.
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
# Suppress some warnings produced by clang 12 and later.
if clang --version | grep -qs 'Apple clang version \(1[3-9]\|[2-9]\)\.'; then
sed -i.bak -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk
fi
- name: Build
env:
Expand Down
3 changes: 3 additions & 0 deletions ci/config.mk.clang-12.sed
@@ -0,0 +1,3 @@
# Clang 12 (or Apple clang 13) and later makes a warning '-Wcompound-token-split-by-macro' enable by default.
/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
10 changes: 9 additions & 1 deletion src/os_unix.c
Expand Up @@ -3376,7 +3376,15 @@ exit_scroll(void)
}

#ifdef USE_GCOV_FLUSH
extern void __gcov_flush();
# if (defined(__GNUC__) \
&& ((__GNUC__ == 11 && __GNUC_MINOR__ >= 1) || (__GNUC__ >= 12))) \
|| (defined(__clang__) && (__clang_major__ >= 12))
extern void __gcov_dump(void);
extern void __gcov_reset(void);
# define __gcov_flush() do { __gcov_dump(); __gcov_reset(); } while (0)
# else
extern void __gcov_flush(void);
# endif
#endif

void
Expand Down
2 changes: 1 addition & 1 deletion src/spellfile.c
Expand Up @@ -6576,7 +6576,7 @@ write_spell_prefcond(FILE *fd, garray_T *gap)
char_u *p;
int len;
int totlen;
size_t x = 1; // collect return value of fwrite()
size_t x UNUSED = 1; // collect return value of fwrite()

if (fd != NULL)
put_bytes(fd, (long_u)gap->ga_len, 2); // <prefcondcnt>
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -753,6 +753,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3770,
/**/
3769,
/**/
Expand Down

0 comments on commit dee78e1

Please sign in to comment.