From e744aa373d215d1e8b3f4102a71b26b385dababc Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 20 Jan 2022 09:28:42 +0100 Subject: [PATCH] Fix -Werror=format-diag with RTL checking PR bootstrap/104135 gcc/ChangeLog: * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings. * rtl.cc: Partially disable -Wformat-diag for RTL checking error messages. --- gcc/emit-rtl.cc | 2 +- gcc/rtl.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/emit-rtl.cc b/gcc/emit-rtl.cc index 3260ca8c3fa5..a26bcb0fa2d0 100644 --- a/gcc/emit-rtl.cc +++ b/gcc/emit-rtl.cc @@ -3997,7 +3997,7 @@ make_insn_raw (rtx pattern) || (GET_CODE (insn) == SET && SET_DEST (insn) == pc_rtx))) { - warning (0, "ICE: emit_insn used where emit_jump_insn needed:\n"); + warning (0, "ICE: % used where % needed:"); debug_rtx (insn); } #endif diff --git a/gcc/rtl.cc b/gcc/rtl.cc index 02dd25547285..f17474bfee19 100644 --- a/gcc/rtl.cc +++ b/gcc/rtl.cc @@ -870,6 +870,15 @@ dump_rtx_statistics (void) } #if defined ENABLE_RTL_CHECKING && (GCC_VERSION >= 2007) + +/* Disable warnings about missing quoting in GCC diagnostics for + the internal_error calls. Their format strings deliberately don't + follow GCC diagnostic conventions. */ +#if __GNUC__ >= 10 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-diag" +#endif + void rtl_check_failed_bounds (const_rtx r, int n, const char *file, int line, const char *func) @@ -945,6 +954,10 @@ rtl_check_failed_code_mode (const_rtx r, enum rtx_code code, machine_mode mode, func, trim_filename (file), line); } +#if __GNUC__ >= 10 +#pragma GCC diagnostic pop +#endif + /* Report that line LINE of FILE tried to access the block symbol fields of a non-block symbol. FUNC is the function that contains the line. */ -- 2.47.3