# HG changeset patch # User Bram Moolenaar # Date 1586621704 -7200 # Node ID a042d2a3b13d5a609eb423a864709e4aac721865 # Parent 881b067e7cc6ba0c4b854c7437b4ef4d90a4c73b patch 8.2.0541: Travis CI does not give compiler warnings Commit: https://github.com/vim/vim/commit/81ea1dfb97af6622c9ad3efdbad317ec965ebaeb Author: Bram Moolenaar Date: Sat Apr 11 18:01:41 2020 +0200 patch 8.2.0541: Travis CI does not give compiler warnings Problem: Travis CI does not give compiler warnings. Solution: Add flags for warnings. Fix uncovered problems. (Ozaki Kiichi, closes #5898) diff --git a/.travis.yml b/.travis.yml --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ language: c _anchors: envs: - &tiny-nogui - BUILD=yes TEST=test FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no + BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - &tiny BUILD=yes TEST=test FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - &small @@ -12,10 +12,10 @@ language: c BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - &linux-huge BUILD=yes TEST="scripttests test_libvterm" CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" + CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &osx-huge # macOS build BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'" + CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - &unittests BUILD=no TEST=unittests CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes - &asan # ASAN build @@ -124,6 +124,10 @@ script: - echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K" - | if [[ "${BUILD}" = "yes" ]]; then + # Append various warning flags to CFLAGS. + # BSD sed needs backup extension specified. + sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk + sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk make ${SHADOWOPT} -j${NPROC} fi - echo -en "travis_fold:end:build\\r\\033[0K" @@ -215,11 +219,6 @@ jobs: compiler: gcc env: *linux-huge after_success: *coverage - - <<: *linux - name: unittests+coverage/gcc - compiler: gcc - env: *unittests - after_success: *coverage - <<: *linux # ASAN name: huge+asan/gcc compiler: gcc @@ -235,6 +234,11 @@ jobs: - TEST="-C src testgui" after_success: *coverage - <<: *linux + name: unittests+coverage/gcc + compiler: gcc + env: *unittests + after_success: *coverage + - <<: *linux name: vimtags/gcc compiler: gcc env: diff --git a/ci/config.mk.clang.sed b/ci/config.mk.clang.sed new file mode 100644 --- /dev/null +++ b/ci/config.mk.clang.sed @@ -0,0 +1,1 @@ +/^RUBY_CFLAGS\b/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/ diff --git a/ci/config.mk.gcc.sed b/ci/config.mk.gcc.sed new file mode 100644 --- /dev/null +++ b/ci/config.mk.gcc.sed @@ -0,0 +1,1 @@ +/^CFLAGS\b/s/$/ -Wno-error=maybe-uninitialized/ diff --git a/ci/config.mk.sed b/ci/config.mk.sed new file mode 100644 --- /dev/null +++ b/ci/config.mk.sed @@ -0,0 +1,2 @@ +/^CFLAGS\b/s/$/ -Wall -Wextra -Wshadow -Werror/ +/^PERL_CFLAGS\b/s/$/ -Wno-error=unused-function/ diff --git a/src/if_perl.xs b/src/if_perl.xs --- a/src/if_perl.xs +++ b/src/if_perl.xs @@ -195,7 +195,9 @@ typedef int perl_key; # define Perl_croak_xs_usage dll_Perl_croak_xs_usage # endif # ifndef PROTO -# define Perl_croak_nocontext dll_Perl_croak_nocontext +# ifdef PERL_IMPLICIT_CONTEXT +# define Perl_croak_nocontext dll_Perl_croak_nocontext +# endif # define Perl_call_argv dll_Perl_call_argv # define Perl_call_pv dll_Perl_call_pv # define Perl_eval_sv dll_Perl_eval_sv @@ -345,7 +347,9 @@ static void (*Perl_croak_xs_usage)(pTHX_ __attribute__noreturn__; # endif # endif +# ifdef PERL_IMPLICIT_CONTEXT static void (*Perl_croak_nocontext)(const char*, ...) __attribute__noreturn__; +# endif static I32 (*Perl_dowantarray)(pTHX); static void (*Perl_free_tmps)(pTHX); static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -99,6 +99,12 @@ # define rb_ary_detransient rb_ary_detransient_stub #endif +// On macOS pre-installed Ruby defines "SIZEOF_TIME_T" as "SIZEOF_LONG" so it +// conflicts with the definition in config.h then causes macro-redifned warning. +#ifdef SIZEOF_TIME_T +# undef SIZEOF_TIME_T +#endif + #include #if RUBY_VERSION >= 19 # include diff --git a/src/libvterm/t/harness.c b/src/libvterm/t/harness.c --- a/src/libvterm/t/harness.c +++ b/src/libvterm/t/harness.c @@ -67,7 +67,8 @@ static VTermEncodingInstance encoding; static int parser_text(const char bytes[], size_t len, void *user) { - int i; + size_t i; + (void)user; printf("text "); for(i = 0; i < len; i++) { @@ -83,6 +84,7 @@ static int parser_text(const char bytes[ static int parser_control(unsigned char control, void *user) { + (void)user; printf("control %02x\n", control); return 1; @@ -90,7 +92,8 @@ static int parser_control(unsigned char static int parser_escape(const char bytes[], size_t len, void *user) { - int i; + size_t i; + (void)user; if(bytes[0] >= 0x20 && bytes[0] < 0x30) { if(len < 2) @@ -112,6 +115,7 @@ static int parser_escape(const char byte static int parser_csi(const char *leader, const long args[], int argcount, const char *intermed, char command, void *user) { int i; + (void)user; printf("csi %02x", command); if(leader && leader[0]) { @@ -142,7 +146,9 @@ static int parser_csi(const char *leader static int parser_osc(const char *command, size_t cmdlen, void *user) { - int i; + size_t i; + (void)user; + printf("osc "); for(i = 0; i < cmdlen; i++) printf("%02x", command[i]); @@ -153,7 +159,9 @@ static int parser_osc(const char *comman static int parser_dcs(const char *command, size_t cmdlen, void *user) { - int i; + size_t i; + (void)user; + printf("dcs "); for(i = 0; i < cmdlen; i++) printf("%02x", command[i]); @@ -178,6 +186,7 @@ static int want_movecursor = 0; static VTermPos state_pos; static int movecursor(VTermPos pos, VTermPos oldpos, int visible, void *user) { + (void)oldpos, (void)visible, (void)user; state_pos = pos; if(want_movecursor) @@ -189,6 +198,7 @@ static int movecursor(VTermPos pos, VTer static int want_scrollrect = 0; static int scrollrect(VTermRect rect, int downward, int rightward, void *user) { + (void)user; if(!want_scrollrect) return 0; @@ -202,6 +212,7 @@ static int scrollrect(VTermRect rect, in static int want_moverect = 0; static int moverect(VTermRect dest, VTermRect src, void *user) { + (void)user; if(!want_moverect) return 0; @@ -215,6 +226,7 @@ static int moverect(VTermRect dest, VTer static int want_settermprop = 0; static int settermprop(VTermProp prop, VTermValue *val, void *user) { + (void)user; VTermValueType type; if(!want_settermprop) return 1; @@ -247,6 +259,7 @@ static int want_state_putglyph = 0; static int state_putglyph(VTermGlyphInfo *info, VTermPos pos, void *user) { int i; + (void)user; if(!want_state_putglyph) return 1; @@ -268,6 +281,7 @@ static int state_putglyph(VTermGlyphInfo static int want_state_erase = 0; static int state_erase(VTermRect rect, int selective, void *user) { + (void)user; if(!want_state_erase) return 1; @@ -291,6 +305,7 @@ static struct { } state_pen; static int state_setpenattr(VTermAttr attr, VTermValue *val, void *user) { + (void)user; switch(attr) { case VTERM_ATTR_BOLD: state_pen.bold = val->boolean; @@ -329,6 +344,7 @@ static int state_setpenattr(VTermAttr at static int state_setlineinfo(int row, const VTermLineInfo *newinfo, const VTermLineInfo *oldinfo, void *user) { + (void)row, (void)newinfo, (void)oldinfo, (void)user; return 1; } @@ -350,6 +366,7 @@ static int want_screen_damage = 0; static int want_screen_damage_cells = 0; static int screen_damage(VTermRect rect, void *user) { + (void)user; if(!want_screen_damage) return 1; @@ -404,6 +421,7 @@ static int screen_sb_pushline(int cols, { int eol; int c; + (void)user; if(!want_screen_scrollback) return 1; @@ -423,6 +441,7 @@ static int screen_sb_pushline(int cols, static int screen_sb_popline(int cols, VTermScreenCell *cells, void *user) { int col; + (void)user; if(!want_screen_scrollback) return 0; @@ -456,6 +475,7 @@ int main(int argc, char **argv) { char line[1024] = {0}; int flag; + (void)argc, (void)argv; int err; @@ -926,7 +946,7 @@ int main(int argc, char **argv) outlen = vterm_output_get_buffer_current(vt); if(outlen > 0) { - int i; + size_t i; char outbuff[1024]; vterm_output_read(vt, outbuff, outlen); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 541, +/**/ 540, /**/ 539,