aboutsummaryrefslogtreecommitdiff
path: root/gcc/substring-locations.h
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2018-09-17 20:31:01 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2018-09-17 20:31:01 +0000
commitc896ecfeab0658dc61ed0a9ad4b649c69d1d8679 (patch)
treec755d1e0d94404c15b74070d31c234e3d0d6d0e6 /gcc/substring-locations.h
parent69d7aabfd8fec442047cefb136b1fd2680310fa9 (diff)
downloadgcc-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.h74
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. */