mirror of git://gcc.gnu.org/git/gcc.git
diagnostic-core.h (warning_at_rich_loc_n): Declare.
2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * diagnostic-core.h (warning_at_rich_loc_n): Declare. * diagnostic.c (warning_at_rich_loc_n): New function. (diagnostic_n_impl_richloc): Likewise. (diagnostic_n_impl): Move most of the function to diagnostic_n_impl_richloc and call it. From-SVN: r240891
This commit is contained in:
parent
9c453de707
commit
a5fb7ad2d1
|
|
@ -1,3 +1,11 @@
|
||||||
|
2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||||||
|
|
||||||
|
* diagnostic-core.h (warning_at_rich_loc_n): Declare.
|
||||||
|
* diagnostic.c (warning_at_rich_loc_n): New function.
|
||||||
|
(diagnostic_n_impl_richloc): Likewise.
|
||||||
|
(diagnostic_n_impl): Move most of the function to
|
||||||
|
diagnostic_n_impl_richloc and call it.
|
||||||
|
|
||||||
2016-10-08 Jakub Jelinek <jakub@redhat.com>
|
2016-10-08 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* gen-pass-instances.awk: Rewritten.
|
* gen-pass-instances.awk: Rewritten.
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,9 @@ extern bool warning_at (location_t, int, const char *, ...)
|
||||||
ATTRIBUTE_GCC_DIAG(3,4);
|
ATTRIBUTE_GCC_DIAG(3,4);
|
||||||
extern bool warning_at_rich_loc (rich_location *, int, const char *, ...)
|
extern bool warning_at_rich_loc (rich_location *, int, const char *, ...)
|
||||||
ATTRIBUTE_GCC_DIAG(3,4);
|
ATTRIBUTE_GCC_DIAG(3,4);
|
||||||
|
extern bool warning_at_rich_loc_n (rich_location *, int, int, const char *,
|
||||||
|
const char *, ...)
|
||||||
|
ATTRIBUTE_GCC_DIAG(4, 6) ATTRIBUTE_GCC_DIAG(5, 6);
|
||||||
extern void error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
|
extern void error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
|
||||||
extern void error_n (location_t, int, const char *, const char *, ...)
|
extern void error_n (location_t, int, const char *, const char *, ...)
|
||||||
ATTRIBUTE_GCC_DIAG(3,5) ATTRIBUTE_GCC_DIAG(4,5);
|
ATTRIBUTE_GCC_DIAG(3,5) ATTRIBUTE_GCC_DIAG(4,5);
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,10 @@ static bool diagnostic_impl (rich_location *, int, const char *,
|
||||||
static bool diagnostic_n_impl (location_t, int, int, const char *,
|
static bool diagnostic_n_impl (location_t, int, int, const char *,
|
||||||
const char *, va_list *,
|
const char *, va_list *,
|
||||||
diagnostic_t) ATTRIBUTE_GCC_DIAG(5,0);
|
diagnostic_t) ATTRIBUTE_GCC_DIAG(5,0);
|
||||||
|
static bool diagnostic_n_impl_richloc (rich_location *, int, int, const char *,
|
||||||
|
const char *, va_list *,
|
||||||
|
diagnostic_t) ATTRIBUTE_GCC_DIAG(5,0);
|
||||||
|
|
||||||
static void error_recursion (diagnostic_context *) ATTRIBUTE_NORETURN;
|
static void error_recursion (diagnostic_context *) ATTRIBUTE_NORETURN;
|
||||||
static void real_abort (void) ATTRIBUTE_NORETURN;
|
static void real_abort (void) ATTRIBUTE_NORETURN;
|
||||||
|
|
||||||
|
|
@ -1064,6 +1068,22 @@ diagnostic_impl (rich_location *richloc, int opt,
|
||||||
return report_diagnostic (&diagnostic);
|
return report_diagnostic (&diagnostic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Same as diagonostic_n_impl taking rich_location instead of location_t. */
|
||||||
|
static bool
|
||||||
|
diagnostic_n_impl_richloc (rich_location *richloc, int opt, int n,
|
||||||
|
const char *singular_gmsgid,
|
||||||
|
const char *plural_gmsgid,
|
||||||
|
va_list *ap, diagnostic_t kind)
|
||||||
|
{
|
||||||
|
diagnostic_info diagnostic;
|
||||||
|
diagnostic_set_info_translated (&diagnostic,
|
||||||
|
ngettext (singular_gmsgid, plural_gmsgid, n),
|
||||||
|
ap, richloc, kind);
|
||||||
|
if (kind == DK_WARNING)
|
||||||
|
diagnostic.option_index = opt;
|
||||||
|
return report_diagnostic (&diagnostic);
|
||||||
|
}
|
||||||
|
|
||||||
/* Implement inform_n, warning_n, and error_n, as documented and
|
/* Implement inform_n, warning_n, and error_n, as documented and
|
||||||
defined below. */
|
defined below. */
|
||||||
static bool
|
static bool
|
||||||
|
|
@ -1072,14 +1092,9 @@ diagnostic_n_impl (location_t location, int opt, int n,
|
||||||
const char *plural_gmsgid,
|
const char *plural_gmsgid,
|
||||||
va_list *ap, diagnostic_t kind)
|
va_list *ap, diagnostic_t kind)
|
||||||
{
|
{
|
||||||
diagnostic_info diagnostic;
|
|
||||||
rich_location richloc (line_table, location);
|
rich_location richloc (line_table, location);
|
||||||
diagnostic_set_info_translated (&diagnostic,
|
return diagnostic_n_impl_richloc (&richloc, opt, n,
|
||||||
ngettext (singular_gmsgid, plural_gmsgid, n),
|
singular_gmsgid, plural_gmsgid, ap, kind);
|
||||||
ap, &richloc, kind);
|
|
||||||
if (kind == DK_WARNING)
|
|
||||||
diagnostic.option_index = opt;
|
|
||||||
return report_diagnostic (&diagnostic);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -1170,6 +1185,21 @@ warning_at_rich_loc (rich_location *richloc, int opt, const char *gmsgid, ...)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Same as warning_at_rich_loc but for plural variant. */
|
||||||
|
|
||||||
|
bool
|
||||||
|
warning_at_rich_loc_n (rich_location *richloc, int opt, int n,
|
||||||
|
const char *singular_gmsgid, const char *plural_gmsgid, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start (ap, plural_gmsgid);
|
||||||
|
bool ret = diagnostic_n_impl_richloc (richloc, opt, n,
|
||||||
|
singular_gmsgid, plural_gmsgid,
|
||||||
|
&ap, DK_WARNING);
|
||||||
|
va_end (ap);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* A warning at LOCATION. Use this for code which is correct according to the
|
/* A warning at LOCATION. Use this for code which is correct according to the
|
||||||
relevant language specification but is likely to be buggy anyway.
|
relevant language specification but is likely to be buggy anyway.
|
||||||
Returns true if the warning was printed, false if it was inhibited. */
|
Returns true if the warning was printed, false if it was inhibited. */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue