To: vim-dev@vim.org Subject: Patch 7.2.173 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.173 Problem: Without lint there is no check for unused function arguments. Solution: Use gcc -Wunused-parameter instead of lint. For a few files add attributes to arguments that are known not to be used. Files: src/auto/configure, src/buffer.c, src/charset.c, src/diff.c, src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c, src/version.c, src/vim.h *** ../vim-7.2.172/src/auto/configure 2009-05-13 14:48:55.000000000 +0200 --- src/auto/configure 2009-05-14 22:08:12.000000000 +0200 *************** *** 10362,10367 **** --- 10372,10427 ---- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:$LINENO: checking whether __attribute__((unused)) is allowed" >&5 + $as_echo_n "checking whether __attribute__((unused)) is allowed... " >&6; } + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include + int + main () + { + int x __attribute__((unused)); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext + if { (ac_try="$ac_compile" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" + $as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "yes" >&6; }; cat >>confdefs.h <<\_ACEOF + #define HAVE_ATTRIBUTE_UNUSED 1 + _ACEOF + + else + $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } + fi + + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "${ac_cv_header_elf_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for elf.h" >&5 $as_echo_n "checking for elf.h... " >&6; } *** ../vim-7.2.172/src/buffer.c 2009-05-13 20:47:07.000000000 +0200 --- src/buffer.c 2009-05-14 21:34:06.000000000 +0200 *************** *** 512,523 **** * buf_freeall() - free all things allocated for a buffer that are related to * the file. */ - /*ARGSUSED*/ void buf_freeall(buf, del_buf, wipe_buf) buf_T *buf; ! int del_buf; /* buffer is going to be deleted */ ! int wipe_buf; /* buffer is going to be wiped out */ { #ifdef FEAT_AUTOCMD int is_curbuf = (buf == curbuf); --- 512,522 ---- * buf_freeall() - free all things allocated for a buffer that are related to * the file. */ void buf_freeall(buf, del_buf, wipe_buf) buf_T *buf; ! int del_buf UNUSED; /* buffer is going to be deleted */ ! int wipe_buf UNUSED; /* buffer is going to be wiped out */ { #ifdef FEAT_AUTOCMD int is_curbuf = (buf == curbuf); *************** *** 2437,2447 **** * another tab page. * Returns NULL when there isn't any info. */ - /*ARGSUSED*/ static wininfo_T * find_wininfo(buf, skip_diff_buffer) buf_T *buf; ! int skip_diff_buffer; { wininfo_T *wip; --- 2436,2445 ---- * another tab page. * Returns NULL when there isn't any info. */ static wininfo_T * find_wininfo(buf, skip_diff_buffer) buf_T *buf; ! int skip_diff_buffer UNUSED; { wininfo_T *wip; *************** *** 4278,4287 **** * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. * "ffname" becomes a pointer to allocated memory (or NULL). */ - /*ARGSUSED*/ void fname_expand(buf, ffname, sfname) ! buf_T *buf; char_u **ffname; char_u **sfname; { --- 4276,4284 ---- * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. * "ffname" becomes a pointer to allocated memory (or NULL). */ void fname_expand(buf, ffname, sfname) ! buf_T *buf UNUSED; char_u **ffname; char_u **sfname; { *************** *** 5577,5587 **** * this buffer. Call this to wipe out a temp buffer that does not contain any * marks. */ - /*ARGSUSED*/ void wipe_buffer(buf, aucmd) buf_T *buf; ! int aucmd; /* When TRUE trigger autocommands. */ { if (buf->b_fnum == top_file_num - 1) --top_file_num; --- 5574,5583 ---- * this buffer. Call this to wipe out a temp buffer that does not contain any * marks. */ void wipe_buffer(buf, aucmd) buf_T *buf; ! int aucmd UNUSED; /* When TRUE trigger autocommands. */ { if (buf->b_fnum == top_file_num - 1) --top_file_num; *** ../vim-7.2.172/src/charset.c 2009-05-13 14:10:46.000000000 +0200 --- src/charset.c 2009-05-14 21:34:30.000000000 +0200 *************** *** 1026,1038 **** * string at start of line. Warning: *headp is only set if it's a non-zero * value, init to 0 before calling. */ - /*ARGSUSED*/ int win_lbr_chartabsize(wp, s, col, headp) win_T *wp; char_u *s; colnr_T col; ! int *headp; { #ifdef FEAT_LINEBREAK int c; --- 1026,1037 ---- * string at start of line. Warning: *headp is only set if it's a non-zero * value, init to 0 before calling. */ int win_lbr_chartabsize(wp, s, col, headp) win_T *wp; char_u *s; colnr_T col; ! int *headp UNUSED; { #ifdef FEAT_LINEBREAK int c; *** ../vim-7.2.172/src/diff.c 2009-05-13 18:54:14.000000000 +0200 --- src/diff.c 2009-05-14 21:24:59.000000000 +0200 *************** *** 652,661 **** * The buffers are written to a file, also for unmodified buffers (the file * could have been produced by autocommands, e.g. the netrw plugin). */ - /*ARGSUSED*/ void ex_diffupdate(eap) ! exarg_T *eap; /* can be NULL, it's not used */ { buf_T *buf; int idx_orig; --- 652,660 ---- * The buffers are written to a file, also for unmodified buffers (the file * could have been produced by autocommands, e.g. the netrw plugin). */ void ex_diffupdate(eap) ! exarg_T *eap UNUSED; /* can be NULL */ { buf_T *buf; int idx_orig; *************** *** 1094,1103 **** /* * Set options to show difs for the current window. */ - /*ARGSUSED*/ void ex_diffthis(eap) ! exarg_T *eap; { /* Set 'diff', 'scrollbind' on and 'wrap' off. */ diff_win_options(curwin, TRUE); --- 1093,1101 ---- /* * Set options to show difs for the current window. */ void ex_diffthis(eap) ! exarg_T *eap UNUSED; { /* Set 'diff', 'scrollbind' on and 'wrap' off. */ diff_win_options(curwin, TRUE); *** ../vim-7.2.172/src/configure.in 2009-05-13 14:48:55.000000000 +0200 --- src/configure.in 2009-05-14 22:08:06.000000000 +0200 *************** *** 2067,2072 **** --- 2067,2077 ---- AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME), AC_MSG_RESULT(no)) + AC_MSG_CHECKING(whether __attribute__((unused)) is allowed) + AC_TRY_COMPILE([#include ], [int x __attribute__((unused));], + AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED), + AC_MSG_RESULT(no)) + dnl Checks for header files. AC_CHECK_HEADER(elf.h, HAS_ELF=1) dnl AC_CHECK_HEADER(dwarf.h, SVR4=1) *** ../vim-7.2.172/src/config.h.in 2009-03-02 02:44:54.000000000 +0100 --- src/config.h.in 2009-05-14 21:15:02.000000000 +0200 *************** *** 30,35 **** --- 30,38 ---- /* Define when __DATE__ " " __TIME__ can be used */ #undef HAVE_DATE_TIME + /* Define when __attribute__((unused)) can be used */ + #undef HAVE_ATTRIBUTE_UNUSED + /* defined always when using configure */ #undef UNIX *** ../vim-7.2.172/src/edit.c 2009-05-13 18:54:14.000000000 +0200 --- src/edit.c 2009-05-14 21:35:08.000000000 +0200 *************** *** 1447,1456 **** * Only redraw when there are no characters available. This speeds up * inserting sequences of characters (e.g., for CTRL-R). */ - /*ARGSUSED*/ static void ins_redraw(ready) ! int ready; /* not busy with something */ { if (!char_avail()) { --- 1447,1455 ---- * Only redraw when there are no characters available. This speeds up * inserting sequences of characters (e.g., for CTRL-R). */ static void ins_redraw(ready) ! int ready UNUSED; /* not busy with something */ { if (!char_avail()) { *************** *** 1962,1971 **** * Only matters when there are composing characters. * Return TRUE when something was deleted. */ - /*ARGSUSED*/ static int del_char_after_col(limit_col) ! int limit_col; { #ifdef FEAT_MBYTE if (enc_utf8 && limit_col >= 0) --- 1961,1969 ---- * Only matters when there are composing characters. * Return TRUE when something was deleted. */ static int del_char_after_col(limit_col) ! int limit_col UNUSED; { #ifdef FEAT_MBYTE if (enc_utf8 && limit_col >= 0) *** ../vim-7.2.172/src/ex_cmds.c 2009-05-14 21:51:06.000000000 +0200 --- src/ex_cmds.c 2009-05-14 21:11:01.000000000 +0200 *************** *** 43,52 **** /* * ":ascii" and "ga". */ - /*ARGSUSED*/ void do_ascii(eap) ! exarg_T *eap; { int c; int cval; --- 43,51 ---- /* * ":ascii" and "ga". */ void do_ascii(eap) ! exarg_T *eap UNUSED; { int c; int cval; *************** *** 2373,2382 **** * ^? ^H * not ^? ^? */ - /*ARGSUSED*/ void do_fixdel(eap) ! exarg_T *eap; { char_u *p; --- 2372,2380 ---- * ^? ^H * not ^? ^? */ void do_fixdel(eap) ! exarg_T *eap UNUSED; { char_u *p; *************** *** 6127,6136 **** /* * ":exusage" */ - /*ARGSUSED*/ void ex_exusage(eap) ! exarg_T *eap; { do_cmdline_cmd((char_u *)"help ex-cmd-index"); } --- 6125,6133 ---- /* * ":exusage" */ void ex_exusage(eap) ! exarg_T *eap UNUSED; { do_cmdline_cmd((char_u *)"help ex-cmd-index"); } *************** *** 6138,6147 **** /* * ":viusage" */ - /*ARGSUSED*/ void ex_viusage(eap) ! exarg_T *eap; { do_cmdline_cmd((char_u *)"help normal-index"); } --- 6135,6143 ---- /* * ":viusage" */ void ex_viusage(eap) ! exarg_T *eap UNUSED; { do_cmdline_cmd((char_u *)"help normal-index"); } *************** *** 7154,7163 **** * Function given to ExpandGeneric() to obtain the sign command * expansion. */ - /*ARGSUSED*/ char_u * get_sign_name(xp, idx) ! expand_T *xp; int idx; { sign_T *sp; --- 7150,7158 ---- * Function given to ExpandGeneric() to obtain the sign command * expansion. */ char_u * get_sign_name(xp, idx) ! expand_T *xp UNUSED; int idx; { sign_T *sp; *** ../vim-7.2.172/src/ex_cmds2.c 2009-05-13 18:54:14.000000000 +0200 --- src/ex_cmds2.c 2009-05-14 21:35:40.000000000 +0200 *************** *** 680,689 **** /* * ":breaklist". */ - /*ARGSUSED*/ void ex_breaklist(eap) ! exarg_T *eap; { struct debuggy *bp; int i; --- 680,688 ---- /* * ":breaklist". */ void ex_breaklist(eap) ! exarg_T *eap UNUSED; { struct debuggy *bp; int i; *************** *** 1342,1355 **** /* * return TRUE if buffer was changed and cannot be abandoned. */ - /*ARGSUSED*/ int check_changed(buf, checkaw, mult_win, forceit, allbuf) buf_T *buf; int checkaw; /* do autowrite if buffer was changed */ int mult_win; /* check also when several wins for the buf */ int forceit; ! int allbuf; /* may write all buffers */ { if ( !forceit && bufIsChanged(buf) --- 1341,1353 ---- /* * return TRUE if buffer was changed and cannot be abandoned. */ int check_changed(buf, checkaw, mult_win, forceit, allbuf) buf_T *buf; int checkaw; /* do autowrite if buffer was changed */ int mult_win; /* check also when several wins for the buf */ int forceit; ! int allbuf UNUSED; /* may write all buffers */ { if ( !forceit && bufIsChanged(buf) *************** *** 1759,1770 **** * * Return FAIL for failure, OK otherwise. */ - /*ARGSUSED*/ static int do_arglist(str, what, after) char_u *str; ! int what; ! int after; /* 0 means before first one */ { garray_T new_ga; int exp_count; --- 1757,1767 ---- * * Return FAIL for failure, OK otherwise. */ static int do_arglist(str, what, after) char_u *str; ! int what UNUSED; ! int after UNUSED; /* 0 means before first one */ { garray_T new_ga; int exp_count; *************** *** 2549,2559 **** static void source_callback __ARGS((char_u *fname, void *cookie)); - /*ARGSUSED*/ static void source_callback(fname, cookie) char_u *fname; ! void *cookie; { (void)do_source(fname, FALSE, DOSO_NONE); } --- 2546,2555 ---- static void source_callback __ARGS((char_u *fname, void *cookie)); static void source_callback(fname, cookie) char_u *fname; ! void *cookie UNUSED; { (void)do_source(fname, FALSE, DOSO_NONE); } *************** *** 2680,2689 **** /* * ":options" */ - /*ARGSUSED*/ void ex_options(eap) ! exarg_T *eap; { cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); } --- 2676,2684 ---- /* * ":options" */ void ex_options(eap) ! exarg_T *eap UNUSED; { cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); } *************** *** 3190,3199 **** /* * ":scriptnames" */ - /*ARGSUSED*/ void ex_scriptnames(eap) ! exarg_T *eap; { int i; --- 3185,3193 ---- /* * ":scriptnames" */ void ex_scriptnames(eap) ! exarg_T *eap UNUSED; { int i; *************** *** 3317,3328 **** * Return a pointer to the line in allocated memory. * Return NULL for end-of-file or some error. */ - /* ARGSUSED */ char_u * getsourceline(c, cookie, indent) ! int c; /* not used */ void *cookie; ! int indent; /* not used */ { struct source_cookie *sp = (struct source_cookie *)cookie; char_u *line; --- 3311,3321 ---- * Return a pointer to the line in allocated memory. * Return NULL for end-of-file or some error. */ char_u * getsourceline(c, cookie, indent) ! int c UNUSED; void *cookie; ! int indent UNUSED; { struct source_cookie *sp = (struct source_cookie *)cookie; char_u *line; *************** *** 3649,3658 **** * ":scriptencoding": Set encoding conversion for a sourced script. * Without the multi-byte feature it's simply ignored. */ - /*ARGSUSED*/ void ex_scriptencoding(eap) ! exarg_T *eap; { #ifdef FEAT_MBYTE struct source_cookie *sp; --- 3642,3650 ---- * ":scriptencoding": Set encoding conversion for a sourced script. * Without the multi-byte feature it's simply ignored. */ void ex_scriptencoding(eap) ! exarg_T *eap UNUSED; { #ifdef FEAT_MBYTE struct source_cookie *sp; *************** *** 4101,4110 **** * Function given to ExpandGeneric() to obtain the possible arguments of the * ":language" command. */ - /*ARGSUSED*/ char_u * get_lang_arg(xp, idx) ! expand_T *xp; int idx; { if (idx == 0) --- 4093,4101 ---- * Function given to ExpandGeneric() to obtain the possible arguments of the * ":language" command. */ char_u * get_lang_arg(xp, idx) ! expand_T *xp UNUSED; int idx; { if (idx == 0) *** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200 --- src/version.c 2009-05-14 22:14:51.000000000 +0200 *************** *** 1623,1632 **** /* * ":intro": clear screen, display intro screen and wait for return. */ - /*ARGSUSED*/ void ex_intro(eap) ! exarg_T *eap; { screenclear(); intro_message(TRUE); --- 1625,1633 ---- /* * ":intro": clear screen, display intro screen and wait for return. */ void ex_intro(eap) ! exarg_T *eap UNUSED; { screenclear(); intro_message(TRUE); *** ../vim-7.2.172/src/vim.h 2009-05-13 18:54:14.000000000 +0200 --- src/vim.h 2009-05-14 21:17:51.000000000 +0200 *************** *** 262,267 **** --- 262,275 ---- # define __PARMS(x) __ARGS(x) #endif + /* Mark unused function arguments with UNUSED, so that gcc -Wunused-parameter + * can be used to check for mistakes. */ + #ifdef HAVE_ATTRIBUTE_UNUSED + # define UNUSED __attribute__((unused)) + #else + # define UNUSED + #endif + /* if we're compiling in C++ (currently only KVim), the system * headers must have the correct prototypes or nothing will build. * conversely, our prototypes might clash due to throw() specifiers and *** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200 --- src/version.c 2009-05-14 22:14:51.000000000 +0200 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 173, /**/ -- SIGIRO -- irony detected (iron core dumped) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///