From: Nobuyoshi Nakada Date: Thu, 19 Oct 2023 04:35:49 +0000 (+0900) Subject: Add printf format attributes to `rb_parser_config_t` X-Git-Tag: v3_3_0_preview3~659 X-Git-Url: https://repo.or.cz/ruby.git/commitdiff_plain/5bbb6fd6c3d26ffb7b1ffbe674c43cd07f3153ba Add printf format attributes to `rb_parser_config_t` --- diff --git a/ruby_parser.c b/ruby_parser.c index ba2c1e5d69..17fc352bed 100644 --- a/ruby_parser.c +++ b/ruby_parser.c @@ -110,6 +110,7 @@ rcomplex_get_imag(VALUE obj) return RCOMPLEX(obj)->imag; } +RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 6, 0) static VALUE syntax_error_append(VALUE exc, VALUE file, int line, int column, void *enc, const char *fmt, va_list args) diff --git a/rubyparser.h b/rubyparser.h index c13883bd60..7679fef549 100644 --- a/rubyparser.h +++ b/rubyparser.h @@ -1191,6 +1191,7 @@ typedef struct rb_parser_config_struct { ID (*sym2id)(VALUE sym); /* String */ + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) VALUE (*str_catf)(VALUE str, const char *format, ...); VALUE (*str_cat_cstr)(VALUE str, const char *ptr); VALUE (*str_subseq)(VALUE str, long beg, long len); @@ -1209,8 +1210,10 @@ typedef struct rb_parser_config_struct { VALUE (*enc_str_new)(const char *ptr, long len, rb_encoding *enc); VALUE (*enc_str_buf_cat)(VALUE str, const char *ptr, long len, rb_encoding *enc); VALUE (*str_buf_append)(VALUE str, VALUE str2); + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0) VALUE (*str_vcatf)(VALUE str, const char *fmt, va_list ap); char *(*string_value_cstr)(volatile VALUE *ptr); + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 2) VALUE (*rb_sprintf)(const char *format, ...); char *(*rstring_ptr)(VALUE str); char *(*rstring_end)(VALUE str); @@ -1314,7 +1317,9 @@ typedef struct rb_parser_config_struct { /* Error (Exception) */ const char *(*builtin_class_name)(VALUE x); + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 6, 0) VALUE (*syntax_error_append)(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list); + RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 3) void (*raise)(VALUE exc, const char *fmt, ...); VALUE (*syntax_error_new)(void);