diff options
author | David Malcolm <dmalcolm@redhat.com> | 2018-09-17 20:31:01 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2018-09-17 20:31:01 +0000 |
commit | c896ecfeab0658dc61ed0a9ad4b649c69d1d8679 (patch) | |
tree | c755d1e0d94404c15b74070d31c234e3d0d6d0e6 /gcc/substring-locations.h | |
parent | 69d7aabfd8fec442047cefb136b1fd2680310fa9 (diff) | |
download | gcc-c896ecfeab0658dc61ed0a9ad4b649c69d1d8679.zip gcc-c896ecfeab0658dc61ed0a9ad4b649c69d1d8679.tar.gz gcc-c896ecfeab0658dc61ed0a9ad4b649c69d1d8679.tar.bz2 |
substring-locations: add class format_string_diagnostic_t
With the addition of ranges in r263564, format_warning_at_substring_n
has 10 arguments.
Reduce the number of args by bundling the shared ones into a
class format_string_diagnostic_t.
gcc/c-family/ChangeLog:
* c-format.c (format_warning_at_char): Update for introduction of
format_string_diagnostic_t.
(format_type_warning): Likewise.
gcc/ChangeLog:
* gimple-ssa-sprintf.c (fmtwarn): Update for introduction of
format_string_diagnostic_t.
(fmtwarn_n): Likewise.
* substring-locations.c
(format_string_diagnostic_t::format_string_diagnostic_t) New ctor.
(format_warning_n_va): Convert to...
(format_string_diagnostic_t::emit_warning_n_va): ...this.
(format_warning_va): Convert to...
(format_string_diagnostic_t::emit_warning_va): ...this.
(format_warning_at_substring): Convert to...
(format_string_diagnostic_t::emit_warning): ...this.
(format_warning_at_substring_n): Convert to...
(format_string_diagnostic_t::emit_warning_n): ...this.
* substring-locations.h (class format_string_diagnostic_t): New
class.
(format_warning_va): Convert to
format_string_diagnostic_t::emit_warning_va.
(format_warning_n_va): Convert to
format_string_diagnostic_t::emit_warning_n_va.
(format_warning_at_substring): Convert to
format_string_diagnostic_t::emit_warning.
(format_warning_at_substring_n): Convert to
format_string_diagnostic_t::emit_warning_n.
From-SVN: r264372
Diffstat (limited to 'gcc/substring-locations.h')
-rw-r--r-- | gcc/substring-locations.h | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/gcc/substring-locations.h b/gcc/substring-locations.h index 919fdf0..caac537 100644 --- a/gcc/substring-locations.h +++ b/gcc/substring-locations.h @@ -74,43 +74,43 @@ class substring_loc int m_end_idx; }; -/* Functions for emitting a warning about a format string. */ - -extern bool format_warning_va (const substring_loc &fmt_loc, - const range_label *fmt_label, - location_t param_loc, - const range_label *param_label, - const char *corrected_substring, - int opt, const char *gmsgid, va_list *ap) - ATTRIBUTE_GCC_DIAG (7, 0); - -extern bool format_warning_n_va (const substring_loc &fmt_loc, - const range_label *fmt_label, - location_t param_loc, - const range_label *param_label, - const char *corrected_substring, - int opt, unsigned HOST_WIDE_INT n, - const char *singular_gmsgid, - const char *plural_gmsgid, va_list *ap) - ATTRIBUTE_GCC_DIAG (8, 0) ATTRIBUTE_GCC_DIAG (9, 0); - -extern bool format_warning_at_substring (const substring_loc &fmt_loc, - const range_label *fmt_label, - location_t param_loc, - const range_label *param_label, - const char *corrected_substring, - int opt, const char *gmsgid, ...) - ATTRIBUTE_GCC_DIAG (7, 8); - -extern bool format_warning_at_substring_n (const substring_loc &fmt_loc, - const range_label *fmt_label, - location_t param_loc, - const range_label *param_label, - const char *corrected_substring, - int opt, unsigned HOST_WIDE_INT n, - const char *singular_gmsgid, - const char *plural_gmsgid, ...) - ATTRIBUTE_GCC_DIAG (8, 10) ATTRIBUTE_GCC_DIAG (9, 10); +/* A bundle of state for emitting a diagnostic relating to a format string. */ + +class format_string_diagnostic_t +{ + public: + format_string_diagnostic_t (const substring_loc &fmt_loc, + const range_label *fmt_label, + location_t param_loc, + const range_label *param_label, + const char *corrected_substring); + + /* Functions for emitting a warning about a format string. */ + + bool emit_warning_va (int opt, const char *gmsgid, va_list *ap) const + ATTRIBUTE_GCC_DIAG (3, 0); + + bool emit_warning_n_va (int opt, unsigned HOST_WIDE_INT n, + const char *singular_gmsgid, + const char *plural_gmsgid, va_list *ap) const + ATTRIBUTE_GCC_DIAG (4, 0) ATTRIBUTE_GCC_DIAG (5, 0); + + bool emit_warning (int opt, const char *gmsgid, ...) const + ATTRIBUTE_GCC_DIAG (3, 4); + + bool emit_warning_n (int opt, unsigned HOST_WIDE_INT n, + const char *singular_gmsgid, + const char *plural_gmsgid, ...) const + ATTRIBUTE_GCC_DIAG (4, 6) ATTRIBUTE_GCC_DIAG (5, 6); + + private: + const substring_loc &m_fmt_loc; + const range_label *m_fmt_label; + location_t m_param_loc; + const range_label *m_param_label; + const char *m_corrected_substring; +}; + /* Implementation detail, for use when implementing LANG_HOOKS_GET_SUBSTRING_LOCATION. */ |