]> granicus.if.org Git - vim/commitdiff
patch 8.2.3274: macro for printf format check can be simplified v8.2.3274
authorBram Moolenaar <Bram@vim.org>
Mon, 2 Aug 2021 16:07:18 +0000 (18:07 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 2 Aug 2021 16:07:18 +0000 (18:07 +0200)
Problem:    Macro for printf format check can be simplified.
Solution:   Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique PellĂ©, issue #8635)

src/channel.c
src/gui_xim.c
src/if_mzsch.c
src/nbdebug.c
src/nbdebug.h
src/netbeans.c
src/proto.h
src/term.c
src/version.c
src/vim.h
src/vim9execute.c

index 5307792e8c4e169f0e97bc6c63a0adde4ebd8fdd..47c742d8303a3c984856d2f5a20430812a70f3eb 100644 (file)
@@ -229,11 +229,7 @@ ch_log(channel_T *ch, const char *fmt, ...)
 #endif
 
     static void
-ch_error(channel_T *ch, const char *fmt, ...)
-#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 2, 3)))
-#endif
-    ;
+ch_error(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 
     static void
 ch_error(channel_T *ch, const char *fmt, ...)
index 2dd6fd91596787974a4d890cbf11a4029c7c1ca5..2a12412dab7cf7ae20d73198a51b3a9ccd8b1dd9 100644 (file)
@@ -31,7 +31,9 @@
  * in the "xim.log" file.
  */
 // #define XIM_DEBUG
-#ifdef XIM_DEBUG
+#if defined(XIM_DEBUG) && defined(FEAT_GUI_GTK)
+static void xim_log(char *s, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
+
     static void
 xim_log(char *s, ...)
 {
index c8be940bc90bdadad8b70cf7300bb9d5d29a57e8..57b593a19e47813512d67913a9a80e47bd6472e5 100644 (file)
@@ -139,7 +139,7 @@ static char *string_to_line(Scheme_Object *obj);
 # define OUTPUT_LEN_TYPE long
 #endif
 static void do_output(char *mesg, OUTPUT_LEN_TYPE len);
-static void do_printf(char *format, ...);
+static void do_printf(char *format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
 static void do_flush(void);
 static Scheme_Object *_apply_thunk_catch_exceptions(
        Scheme_Object *, Scheme_Object **);
index 43bee8d8fdaba2f9ab006ccff432afdb13d7174a..c79081bea74fa06c9a5ca43fa188b1ea5d5cb527 100644 (file)
@@ -32,7 +32,7 @@
 FILE           *nb_debug = NULL;
 u_int           nb_dlevel = 0;         // nb_debug verbosity level
 
-void            nbdb(char *, ...);
+void            nbdb(char *, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
 
 static int      lookup(char *);
 #ifdef USE_NB_ERRORHANDLER
index e1bb1717baadcf7a030f14467355563bad2c8139..9a47c3a890b97e8c2d7c63d90060d4d7ffc1876a 100644 (file)
@@ -42,11 +42,7 @@ typedef enum {
 } WtWait;
 
 
-void            nbdbg(char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-   __attribute__((format(printf, 1, 2)))
-# endif
-;
+void            nbdbg(char *, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
 
 void nbdebug_wait(u_int wait_flags, char *wait_var, u_int wait_secs);
 void nbdebug_log_init(char *log_var, char *level_var);
index 1a565df003498eeddff69df744fe33bbe51e2abf..bf47df713c8aa135cb37e23093b9c06ac3f444e1 100644 (file)
@@ -54,7 +54,7 @@ static void special_keys(char_u *args);
 static int getConnInfo(char *file, char **host, char **port, char **password);
 
 static void nb_init_graphics(void);
-static void coloncmd(char *cmd, ...);
+static void coloncmd(char *cmd, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
 static void nb_set_curbuf(buf_T *buf);
 static void nb_parse_cmd(char_u *);
 static int  nb_do_cmd(int, char_u *, int, int, char_u *);
index 29f8238446665a520f372ee00515fccc77f44f4e..f639ad553b2ab13200a137237225b6c6324c6728 100644 (file)
@@ -121,52 +121,26 @@ extern int _stricoll(char *a, char *b);
 # endif
 
 // These prototypes cannot be produced automatically.
-int smsg(const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 1, 2)))
-# endif
-    ;
+int smsg(const char *, ...) ATTRIBUTE_COLD ATTRIBUTE_FORMAT_PRINTF(1, 2);
 
-int smsg_attr(int, const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 2, 3)))
-# endif
-    ;
+int smsg_attr(int, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 
-int smsg_attr_keep(int, const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 2, 3)))
-# endif
-    ;
+int smsg_attr_keep(int, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 
 // These prototypes cannot be produced automatically.
-int semsg(const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 1, 2)))
-# endif
-    ;
+int semsg(const char *, ...) ATTRIBUTE_COLD ATTRIBUTE_FORMAT_PRINTF(1, 2);
 
 // These prototypes cannot be produced automatically.
-void siemsg(const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 1, 2)))
-# endif
-    ;
+void siemsg(const char *, ...) ATTRIBUTE_COLD ATTRIBUTE_FORMAT_PRINTF(1, 2);
 
-int vim_snprintf_add(char *, size_t, const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 3, 4)))
-# endif
-    ;
+int vim_snprintf_add(char *, size_t, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(3, 4);
 
-int vim_snprintf(char *, size_t, const char *, ...)
-# ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 3, 4)))
-# endif
-    ;
+int vim_snprintf(char *, size_t, const char *, ...) ATTRIBUTE_FORMAT_PRINTF(3, 4);
 
-int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap);
-int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, typval_T *tvs);
+int vim_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap)
+       ATTRIBUTE_FORMAT_PRINTF(3, 0);
+int vim_vsnprintf_typval(char *str, size_t str_m, const char *fmt, va_list ap, typval_T *tvs)
+       ATTRIBUTE_FORMAT_PRINTF(3, 0);
 
 # include "message.pro"
 # include "misc1.pro"
@@ -284,11 +258,7 @@ void mbyte_im_set_active(int active_arg);
 #  include "channel.pro"
 
 // Not generated automatically, to add extra attribute.
-void ch_log(channel_T *ch, const char *fmt, ...)
-#  ifdef USE_PRINTF_FORMAT_ATTRIBUTE
-    __attribute__((format(printf, 2, 3)))
-#  endif
-    ;
+void ch_log(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 
 # endif
 
index a13959b1c31f1d05972ee50962a55b4b6972c5ca..b61667de8c6e177712131a720df15054b4547997 100644 (file)
@@ -100,7 +100,7 @@ char                *tgetstr(char *, char **);
     // Change this to "if 1" to debug what happens with termresponse.
 #  if 0
 #   define DEBUG_TERMRESPONSE
-static void log_tr(const char *fmt, ...);
+static void log_tr(const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
 #   define LOG_TR(msg) log_tr msg
 #  else
 #   define LOG_TR(msg) do { /**/ } while (0)
index b15034ecf3f1b2d86e0a630f56cc175e6fb625bd..34e4ceb49eead2d224bef0aeda0684b62a1fe8ba 100644 (file)
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3274,
 /**/
     3273,
 /**/
index 7d239867137879f827b3eeb2e7c2f7441bb37e8e..b9105b5d1d04b4dab0590daa11ced97859a04be8 100644 (file)
--- a/src/vim.h
+++ b/src/vim.h
@@ -2132,8 +2132,21 @@ typedef struct _stat64 stat_T;
 typedef struct stat stat_T;
 #endif
 
-#if defined(__GNUC__) && !defined(__MINGW32__)
-# define USE_PRINTF_FORMAT_ATTRIBUTE
+#if (defined(__GNUC__) || defined(__clang__)) && !defined(__MINGW32__)
+# define ATTRIBUTE_FORMAT_PRINTF(fmt_idx, arg_idx) \
+    __attribute__((format(printf, fmt_idx, arg_idx)))
+#else
+# define ATTRIBUTE_FORMAT_PRINTF(fmt_idx, arg_idx)
+#endif
+
+#if defined(__GNUC__) || defined(__clang__)
+# define likely(x)      __builtin_expect((x), 1)
+# define unlikely(x)    __builtin_expect((x), 0)
+# define ATTRIBUTE_COLD __attribute__((cold))
+#else
+# define unlikely(x)  (x)
+# define likely(x)    (x)
+# define ATTRIBUTE_COLD
 #endif
 
 typedef enum {
index f944fd7093fbd8a134189191c87df30ccb97551b..11f190c0d46ffd54dc55d67b910a45b7251ee4ad 100644 (file)
 
 #include "vim9.h"
 
-#if defined(__GNUC__) || defined(__clang__)
-# define likely(x)    __builtin_expect((x), 1)
-# define unlikely(x)  __builtin_expect((x), 0)
-#else
-# define unlikely(x)  (x)
-# define likely(x)    (x)
-#endif
-
 // Structure put on ec_trystack when ISN_TRY is encountered.
 typedef struct {
     int            tcd_frame_idx;      // ec_frame_idx at ISN_TRY