aboutsummaryrefslogtreecommitdiff
path: root/gcc/diagnostic.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2017-08-09 11:28:22 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2017-08-09 11:28:22 +0000
commit296c53ac8ad2a1ec7483d81f8ed9e2eee520f841 (patch)
tree55125f47ef7ad3c4c9971722231b7e845ddabe49 /gcc/diagnostic.c
parenta32c8316ff282ec3eb60e222e91fb19998c12f46 (diff)
downloadgcc-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.c12
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