diff options
author | Marek Polacek <polacek@redhat.com> | 2017-08-09 11:28:22 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2017-08-09 11:28:22 +0000 |
commit | 296c53ac8ad2a1ec7483d81f8ed9e2eee520f841 (patch) | |
tree | 55125f47ef7ad3c4c9971722231b7e845ddabe49 /gcc/diagnostic.c | |
parent | a32c8316ff282ec3eb60e222e91fb19998c12f46 (diff) | |
download | gcc-296c53ac8ad2a1ec7483d81f8ed9e2eee520f841.zip gcc-296c53ac8ad2a1ec7483d81f8ed9e2eee520f841.tar.gz gcc-296c53ac8ad2a1ec7483d81f8ed9e2eee520f841.tar.bz2 |
re PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types missing important detail)
PR c/81233
* c-typeck.c (pedwarn_init): Make the function take a variable list.
Call emit_diagnostic_valist instead of pedwarn.
(convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
Print the relevant types in diagnostics.
* diagnostic-core.h (emit_diagnostic_valist): Add declaration.
* diagnostic.c (emit_diagnostic): Add a comment.
(emit_diagnostic_valist): New function.
* gcc.dg/diagnostic-types-1.c: New test.
* gcc.dg/assign-warn-1.c: Update warning messages.
* gcc.dg/assign-warn-2.c: Likewise.
* gcc.dg/c90-const-expr-5.c: Likewise.
* gcc.dg/c99-const-expr-5.c: Likewise.
* gcc.dg/conv-2.c: Likewise.
* gcc.dg/init-bad-7.c: Likewise.
* gcc.dg/overflow-warn-1.c: Likewise.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/overflow-warn-4.c: Likewise.
* gcc.dg/pointer-array-atomic.c: Likewise.
* gcc.dg/pr26865.c: Likewise.
* gcc.dg/pr61162-2.c: Likewise.
* gcc.dg/pr61162.c: Likewise.
* gcc.dg/pr67730-2.c: Likewise.
* gcc.dg/pr69156.c: Likewise.
* gcc.dg/pr70174.c: Likewise.
* objc.dg/proto-lossage-4.m: Likewise.
From-SVN: r250985
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index bbf5f5c..a98bf4a 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -1128,6 +1128,8 @@ diagnostic_n_impl (location_t location, int opt, int n, singular_gmsgid, plural_gmsgid, ap, kind); } +/* Wrapper around diagnostic_impl taking a variable argument list. */ + bool emit_diagnostic (diagnostic_t kind, location_t location, int opt, const char *gmsgid, ...) @@ -1140,6 +1142,16 @@ emit_diagnostic (diagnostic_t kind, location_t location, int opt, return ret; } +/* Wrapper around diagnostic_impl taking a va_list parameter. */ + +bool +emit_diagnostic_valist (diagnostic_t kind, location_t location, int opt, + const char *gmsgid, va_list *ap) +{ + rich_location richloc (line_table, location); + return diagnostic_impl (&richloc, opt, gmsgid, ap, kind); +} + /* An informative note at LOCATION. Use this for additional details on an error message. */ void |