aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-05-17 17:55:43 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-05-17 11:55:43 -0600
commita9c697b88395a0f2b175ac30c59bd8c0c22d0db1 (patch)
tree824792abb43c3e017801b6e124f310ffffc36c17 /gcc/cp
parent6df6f67a283c62f0590d88b39d309b2c37cd7de1 (diff)
downloadgcc-a9c697b88395a0f2b175ac30c59bd8c0c22d0db1.zip
gcc-a9c697b88395a0f2b175ac30c59bd8c0c22d0db1.tar.gz
gcc-a9c697b88395a0f2b175ac30c59bd8c0c22d0db1.tar.bz2
trans.c (check_inlining_for_nested_subprog): Quote reserved names.
gcc/ada/ChangeLog: * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote reserved names. gcc/brig/ChangeLog: * brigfrontend/brig-control-handler.cc (brig_directive_control_handler::operator): Remove trailing newline from a diagnostic. * brigfrontend/brig-module-handler.cc (brig_directive_module_handler::operator): Remove a duplicated space from a diagnostic. gcc/c/ChangeLog: * c-decl.c (start_decl): Quote keywords, operators, and types in diagnostics. (finish_decl): Same. * c-parser.c (c_parser_asm_statement): Same. (c_parser_conditional_expression): Same. (c_parser_transaction_cancel): Same. * c-typeck.c (c_common_type): Same. (build_conditional_expr): Same. (digest_init): Same. (process_init_element): Same. (build_binary_op): Same. gcc/c-family/ChangeLog: * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers, keywords, operators, and types in diagnostics. (handle_scalar_storage_order_attribute): Same. (handle_mode_attribute): Same. (handle_visibility_attribute): Same. (handle_assume_aligned_attribute): Same. (handle_no_split_stack_attribute): Same. * c-common.c (shorten_compare): Same. (c_common_truthvalue_conversion): Same. (cb_get_source_date_epoch): Same. * c-lex.c (cb_def_pragma): Quote keywords, operators, and types in diagnostics. (interpret_float): Same. * c-omp.c (c_finish_omp_for): Same. * c-opts.c (c_common_post_options): Same. * c-pch.c (c_common_pch_pragma): Same. * c-pragma.c (pop_alignment): Same. (handle_pragma_pack): Same. (apply_pragma_weak): Same. (handle_pragma_weak): Same. (handle_pragma_scalar_storage_order): Same. (handle_pragma_redefine_extname): Same. (add_to_renaming_pragma_list): Same. (maybe_apply_renaming_pragma): Same. (push_visibility): Same. (handle_pragma_visibility): Same. (handle_pragma_optimize): Same. (handle_pragma_message): Same. * c-warn.c (warn_for_omitted_condop): Same. (lvalue_error): Same. gcc/cp/ChangeLog: * call.c (print_z_candidate): Wrap diagnostic text in a gettext macro. Adjust. (print_z_candidates): Same. (build_conditional_expr_1): Quote keywords, operators, and types in diagnostics. (build_op_delete_call): Same. (maybe_print_user_conv_context): Wrap diagnostic text in a gettext macro. (convert_like_real): Same. (convert_arg_to_ellipsis): Quote keywords, operators, and types in diagnostics. (build_over_call): Same. (joust): Break up an overlong line. Wrap diagnostic text in a gettext macro. * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English. (cxx_eval_constant_expression): Quote keywords, operators, and types in diagnostics. (potential_constant_expression_1): Same. * cp-gimplify.c (cp_genericize_r): Same. * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types in diagnostics. (type_promotes_to): Same. * decl.c (check_previous_goto_1): Same. (check_goto): Same. (start_decl): Same. (cp_finish_decl): Avoid parenthesizing a sentence for consistency. (grok_op_properties): Quote keywords, operators, and types in diagnostics. * decl2.c (grokfield): Same. (coerce_delete_type): Same. * except.c (is_admissible_throw_operand_or_catch_parameter): Same. * friend.c (do_friend): Quote C++ tokens. * init.c (build_new_1): Quote keywords, operators, and types in diagnostics. (build_vec_delete_1): Same. (build_delete): Same. * lex.c (parse_strconst_pragma): Same. (handle_pragma_implementation): Same. (unqualified_fn_lookup_error): Same. * mangle.c (write_type): Same. * method.c (defaulted_late_check): Avoid two consecutive punctuators. * name-lookup.c (cp_binding_level_debug): Remove a trailing newline. (pop_everything): Same. * parser.c (cp_lexer_start_debugging): Quote a macro name. in a diagnostic (cp_lexer_stop_debugging): Same. (cp_parser_userdef_numeric_literal): Quote a C++ header name in a diagnostic. (cp_parser_nested_name_specifier_opt): Quote keywords, operators, and types in diagnostics. (cp_parser_question_colon_clause): Same. (cp_parser_asm_definition): Same. (cp_parser_init_declarator): Same. (cp_parser_template_declaration_after_parameters): Avoid capitalizing a sentence in a diagnostic. (cp_parser_omp_declare_reduction): Quote keywords, operators, and types in diagnostics. (cp_parser_transaction): Same. * pt.c (maybe_process_partial_specialization): Replace second call to permerror with inform for consistency with other uses. (expand_integer_pack): Quote keywords, operators, and types in diagnostics. * rtti.c (get_typeid): Quote keywords, operators, and types in diagnostics. (build_dynamic_cast_1): Same. * semantics.c (finish_asm_stmt): Same. (finish_label_decl): Same. (finish_bases): Same. (finish_offsetof): Same. (cp_check_omp_declare_reduction): Same. (finish_decltype_type): Same. * tree.c (handle_init_priority_attribute): Same. Add detail to diagnostics. (maybe_warn_zero_as_null_pointer_constant): Same. * typeck.c (cp_build_binary_op): Quote keywords, operators, and types in diagnostics. (cp_build_unary_op): Same. (check_for_casting_away_constness): Same. (build_static_cast): Same. (build_const_cast_1): Same. (maybe_warn_about_returning_address_of_local): Same. (check_return_expr): Same. * typeck2.c (abstract_virtuals_error_sfinae): Same. (digest_init_r): Replace a tab with spaces in a diagnostic. (build_functional_cast): Quote keywords, operators, and types in diagnostics. gcc/d/ChangeLog: * d-builtins.cc (d_init_builtins): Quote keywords, operators, and types in diagnostics. * d-codegen.cc (get_array_length): Same. Replace can't with cannot. * d-convert.cc (convert_expr): Same. * d-frontend.cc (getTypeInfoType): Quote an option name in a diagnostic. * d-lang.cc (d_handle_option): Same. (d_parse_file): Same. * decl.cc: Remove a trailing period from a diagnostic. * expr.cc: Use a directive for an apostrophe. * toir.cc: Quote keywords, operators, and types in diagnostics. * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic. gcc/fortran/ChangeLog: * gfortranspec.c (append_arg): Spell out the word "argument." gcc/ChangeLog: * config/i386/i386-expand.c (get_element_number): Quote keywords and other internal names in diagnostics. Adjust other diagnostic formatting issues noted by -Wformat-diag. * config/i386/i386-features.c (ix86_mangle_function_version_assembler_name): Same. * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. * config/i386/i386.c (ix86_function_type_abi): Same. (ix86_function_ms_hook_prologue): Same. (classify_argument): Same. (ix86_expand_prologue): Same. (ix86_md_asm_adjust): Same. (ix86_memmodel_check): Same. gcc/ChangeLog: * builtins.c (expand_builtin_atomic_always_lock_free): Quote identifiers, keywords, operators, and types in diagnostics. Correct quoting, spelling, and sentence capitalization issues. (expand_builtin_atomic_is_lock_free): Same. (fold_builtin_next_arg): Same. * cfgexpand.c (expand_one_var): Same. (tree_conflicts_with_clobbers_p): Same. (expand_asm_stmt): Same. (verify_loop_structure): Same. * cgraphunit.c (process_function_and_variable_attributes): Same. * collect-utils.c (collect_execute): Same. * collect2.c (maybe_run_lto_and_relink): Same. (is_lto_object_file): Same. (scan_prog_file): Same. * convert.c (convert_to_real_1): Same. * dwarf2out.c (dwarf2out_begin_prologue): Same. * except.c (verify_eh_tree): Same. * gcc.c (execute): Same. (eval_spec_function): Same. (run_attempt): Same. (driver::set_up_specs): Same. (compare_debug_auxbase_opt_spec_function): Same. * gcov-tool.c (unlink_gcda_file): Same. (do_merge): Same. (do_rewrite): Same. * gcse.c (gcse_or_cprop_is_too_expensive): Same. * gimplify.c (gimplify_asm_expr): Same. (gimplify_adjust_omp_clauses): Same. * hsa-gen.c (gen_hsa_addr_insns): Same. (gen_hsa_insns_for_load): Same. (gen_hsa_cmp_insn_from_gimple): Same. (gen_hsa_insns_for_operation_assignment): Same. (gen_get_level): Same. (gen_hsa_alloca): Same. (omp_simple_builtin::generate): Same. (gen_hsa_atomic_for_builtin): Same. (gen_hsa_insns_for_call): Same. * input.c (dump_location_info): Same. * ipa-devirt.c (compare_virtual_tables): Same. * ira.c (ira_setup_eliminable_regset): Same. * lra-assigns.c (lra_assign): Same. * lra-constraints.c (lra_constraints): Same. * lto-streamer-in.c (lto_input_mode_table): Same. * lto-wrapper.c (get_options_from_collect_gcc_options): Same. (merge_and_complain): Same. (compile_offload_image): Same. (compile_images_for_offload_targets): Same. (debug_objcopy): Same. (run_gcc): Same. (main): Same. * opts.c (print_specific_help): Same. (parse_no_sanitize_attribute): Same. (print_help): Same. (handle_param): Same. * plugin.c (add_new_plugin): Same. (parse_plugin_arg_opt): Same. (try_init_one_plugin): Same. * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, operators, and types in diagnostics. Correct quoting and spelling issues. * read-rtl-function.c (parse_edge_flag_token): Same. (function_reader::parse_enum_value): Same. * reg-stack.c (check_asm_stack_operands): Same. * regcprop.c (validate_value_data): Same. * sched-rgn.c (make_pass_sched_fusion): Same. * stmt.c (check_unique_operand_names): Same. * targhooks.c (default_target_option_pragma_parse): Same. * tlink.c (recompile_files): Same. * toplev.c (process_options): Same. (do_compile): Same. * trans-mem.c (diagnose_tm_1): Same. (ipa_tm_scan_irr_block): Same. (ipa_tm_diagnose_transaction): Same. * tree-cfg.c (verify_address): Same. Use get_tree_code_name to format a tree code name in a diagnostic. (verify_types_in_gimple_min_lval): Same. (verify_types_in_gimple_reference): Same. (verify_gimple_call): Same. (verify_gimple_assign_unary): Same. (verify_gimple_assign_binary): Same. (verify_gimple_assign_ternary): Same. (verify_gimple_assign_single): Same. (verify_gimple_switch): Same. (verify_gimple_label): Same. (verify_gimple_phi): Same. (verify_gimple_in_seq): Same. (verify_eh_throw_stmt_node): Same. (collect_subblocks): Same. (gimple_verify_flow_info): Same. (do_warn_unused_result): Same. * tree-inline.c (expand_call_inline): Same. * tree-into-ssa.c (update_ssa): Same. * tree.c (tree_int_cst_elt_check_failed): Same. (tree_vec_elt_check_failed): Same. (omp_clause_operand_check_failed): Same. (verify_type_variant): Same. (verify_type): Same. * value-prof.c (verify_histograms): Same. * varasm.c (assemble_start_function): Same. gcc/lto/ChangeLog: * lto-dump.c (lto_main): Same. * lto.c (stream_out): Same. gcc/objc/ChangeLog: * objc-act.c (objc_begin_catch_clause): Quote keywords and options in diagnostics. (objc_build_throw_stmt): Same. (objc_finish_message_expr): Same. (get_super_receiver): Same. * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell out "less than" in English./ * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell out "greater" in English. gcc/testsuite/ChangeLog: * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics. * c-c++-common/Wvarargs-2.c: Same. * c-c++-common/Wvarargs.c: Same. * c-c++-common/pr51768.c: Same. * c-c++-common/tm/inline-asm.c: Same. * c-c++-common/tm/safe-1.c: Same. * g++.dg/asm-qual-1.C: Same. * g++.dg/asm-qual-3.C: Same. * g++.dg/conversion/dynamic1.C: Same. * g++.dg/cpp0x/constexpr-89599.C: Same. * g++.dg/cpp0x/constexpr-cast.C: Same. * g++.dg/cpp0x/constexpr-shift1.C: Same. * g++.dg/cpp0x/lambda/lambda-conv11.C: Same. * g++.dg/cpp0x/nullptr04.C: Same. * g++.dg/cpp0x/static_assert12.C: Same. * g++.dg/cpp0x/static_assert8.C: Same. * g++.dg/cpp1y/lambda-conv1.C: Same. * g++.dg/cpp1y/pr79393-3.C: Same. * g++.dg/cpp1y/static_assert1.C: Same. * g++.dg/cpp1z/constexpr-if4.C: Same. * g++.dg/cpp1z/constexpr-if5.C: Same. * g++.dg/cpp1z/constexpr-if9.C: Same. * g++.dg/eh/goto2.C: Same. * g++.dg/eh/goto3.C: Same. * g++.dg/expr/static_cast8.C: Same. * g++.dg/ext/flexary5.C: Same. * g++.dg/ext/utf-array-short-wchar.C: Same. * g++.dg/ext/utf-array.C: Same. * g++.dg/ext/utf8-2.C: Same. * g++.dg/gomp/loop-4.C: Same. * g++.dg/gomp/macro-4.C: Same. * g++.dg/gomp/udr-1.C: Same. * g++.dg/init/initializer-string-too-long.C: Same. * g++.dg/other/offsetof9.C: Same. * g++.dg/ubsan/pr63956.C: Same. * g++.dg/warn/Wbool-operation-1.C: Same. * g++.dg/warn/Wtype-limits-Wextra.C: Same. * g++.dg/warn/Wtype-limits.C: Same. * g++.dg/wrappers/pr88680.C: Same. * g++.old-deja/g++.mike/eh55.C: Same. * gcc.dg/Wsign-compare-1.c: Same. * gcc.dg/Wtype-limits-Wextra.c: Same. * gcc.dg/Wtype-limits.c: Same. * gcc.dg/Wunknownprag.c: Same. * gcc.dg/Wunsuffixed-float-constants-1.c: Same. * gcc.dg/asm-6.c: Same. * gcc.dg/asm-qual-1.c: Same. * gcc.dg/cast-1.c: Same. * gcc.dg/cast-2.c: Same. * gcc.dg/cast-3.c: Same. * gcc.dg/cpp/source_date_epoch-2.c: Same. * gcc.dg/debug/pr85252.c: Same. * gcc.dg/dfp/cast-bad.c: Same. * gcc.dg/format/gcc_diag-1.c: Same. * gcc.dg/format/gcc_diag-11.c: Same.New test. * gcc.dg/gcc_diag-11.c: Same.New test. * gcc.dg/gnu-cond-expr-2.c: Same. * gcc.dg/gnu-cond-expr-3.c: Same. * gcc.dg/gomp/macro-4.c: Same. * gcc.dg/init-bad-1.c: Same. * gcc.dg/init-bad-2.c: Same. * gcc.dg/init-bad-3.c: Same. * gcc.dg/pr27528.c: Same. * gcc.dg/pr48552-1.c: Same. * gcc.dg/pr48552-2.c: Same. * gcc.dg/pr59846.c: Same. * gcc.dg/pr61096-1.c: Same. * gcc.dg/pr8788-1.c: Same. * gcc.dg/pr90082.c: Same. * gcc.dg/simd-2.c: Same. * gcc.dg/spellcheck-params-2.c: Same. * gcc.dg/spellcheck-params.c: Same. * gcc.dg/strlenopt-49.c: Same. * gcc.dg/tm/pr52141.c: Same. * gcc.dg/torture/pr51106-1.c: Same. * gcc.dg/torture/pr51106-2.c: Same. * gcc.dg/utf-array-short-wchar.c: Same. * gcc.dg/utf-array.c: Same. * gcc.dg/utf8-2.c: Same. * gcc.dg/warn-sprintf-no-nul.c: Same. * gcc.target/i386/asm-flag-0.c: Same. * gcc.target/i386/inline_error.c: Same. * gcc.target/i386/pr30848.c: Same. * gcc.target/i386/pr39082-1.c: Same. * gcc.target/i386/pr39678.c: Same. * gcc.target/i386/pr57756.c: Same. * gcc.target/i386/pr68843-1.c: Same. * gcc.target/i386/pr79804.c: Same. * gcc.target/i386/pr82673.c: Same. * obj-c++.dg/class-protocol-1.mm: Same. * obj-c++.dg/exceptions-3.mm: Same. * obj-c++.dg/exceptions-4.mm: Same. * obj-c++.dg/exceptions-5.mm: Same. * obj-c++.dg/exceptions-6.mm: Same. * obj-c++.dg/method-12.mm: Same. * obj-c++.dg/method-13.mm: Same. * obj-c++.dg/method-6.mm: Same. * obj-c++.dg/method-7.mm: Same. * obj-c++.dg/method-9.mm: Same. * obj-c++.dg/method-lookup-1.mm: Same. * obj-c++.dg/proto-lossage-4.mm: Same. * obj-c++.dg/protocol-qualifier-2.mm: Same. * objc.dg/call-super-2.m: Same. * objc.dg/class-protocol-1.m: Same. * objc.dg/desig-init-1.m: Same. * objc.dg/exceptions-3.m: Same. * objc.dg/exceptions-4.m: Same. * objc.dg/exceptions-5.m: Same. * objc.dg/exceptions-6.m: Same. * objc.dg/method-19.m: Same. * objc.dg/method-2.m: Same. * objc.dg/method-5.m: Same. * objc.dg/method-6.m: Same. * objc.dg/method-7.m: Same. * objc.dg/method-lookup-1.m: Same. * objc.dg/proto-hier-1.m: Same. * objc.dg/proto-lossage-4.m: Same. From-SVN: r271338
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog89
-rw-r--r--gcc/cp/call.c50
-rw-r--r--gcc/cp/constexpr.c20
-rw-r--r--gcc/cp/cp-gimplify.c8
-rw-r--r--gcc/cp/cvt.c10
-rw-r--r--gcc/cp/decl.c31
-rw-r--r--gcc/cp/decl2.c10
-rw-r--r--gcc/cp/except.c2
-rw-r--r--gcc/cp/friend.c7
-rw-r--r--gcc/cp/init.c20
-rw-r--r--gcc/cp/lex.c12
-rw-r--r--gcc/cp/mangle.c4
-rw-r--r--gcc/cp/method.c12
-rw-r--r--gcc/cp/name-lookup.c8
-rw-r--r--gcc/cp/parser.c43
-rw-r--r--gcc/cp/pt.c16
-rw-r--r--gcc/cp/repo.c2
-rw-r--r--gcc/cp/rtti.c12
-rw-r--r--gcc/cp/semantics.c16
-rw-r--r--gcc/cp/tree.c10
-rw-r--r--gcc/cp/typeck.c30
-rw-r--r--gcc/cp/typeck2.c10
22 files changed, 266 insertions, 156 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 058773f..08b7d53 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,92 @@
+2019-05-16 Martin Sebor <msebor@redhat.com>
+
+ * call.c (print_z_candidate): Wrap diagnostic text in a gettext
+ macro. Adjust.
+ (print_z_candidates): Same.
+ (build_conditional_expr_1): Quote keywords, operators, and types
+ in diagnostics.
+ (build_op_delete_call): Same.
+ (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
+ macro.
+ (convert_like_real): Same.
+ (convert_arg_to_ellipsis): Quote keywords, operators, and types
+ in diagnostics.
+ (build_over_call): Same.
+ (joust): Break up an overlong line. Wrap diagnostic text in a gettext
+ macro.
+ * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
+ (cxx_eval_constant_expression): Quote keywords, operators, and types
+ in diagnostics.
+ (potential_constant_expression_1): Same.
+ * cp-gimplify.c (cp_genericize_r): Same.
+ * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
+ in diagnostics.
+ (type_promotes_to): Same.
+ * decl.c (check_previous_goto_1): Same.
+ (check_goto): Same.
+ (start_decl): Same.
+ (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
+ (grok_op_properties): Quote keywords, operators, and types
+ in diagnostics.
+ * decl2.c (grokfield): Same.
+ (coerce_delete_type): Same.
+ * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
+ * friend.c (do_friend): Quote C++ tokens.
+ * init.c (build_new_1): Quote keywords, operators, and types
+ in diagnostics.
+ (build_vec_delete_1): Same.
+ (build_delete): Same.
+ * lex.c (parse_strconst_pragma): Same.
+ (handle_pragma_implementation): Same.
+ (unqualified_fn_lookup_error): Same.
+ * mangle.c (write_type): Same.
+ * method.c (defaulted_late_check): Avoid two consecutive punctuators.
+ * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
+ (pop_everything): Same.
+ * parser.c (cp_lexer_start_debugging): Quote a macro name.
+ in a diagnostic
+ (cp_lexer_stop_debugging): Same.
+ (cp_parser_userdef_numeric_literal): Quote a C++ header name
+ in a diagnostic.
+ (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
+ and types in diagnostics.
+ (cp_parser_question_colon_clause): Same.
+ (cp_parser_asm_definition): Same.
+ (cp_parser_init_declarator): Same.
+ (cp_parser_template_declaration_after_parameters): Avoid capitalizing
+ a sentence in a diagnostic.
+ (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
+ in diagnostics.
+ (cp_parser_transaction): Same.
+ * pt.c (maybe_process_partial_specialization): Replace second call
+ to permerror with inform for consistency with other uses.
+ (expand_integer_pack): Quote keywords, operators, and types
+ in diagnostics.
+ * rtti.c (get_typeid): Quote keywords, operators, and types
+ in diagnostics.
+ (build_dynamic_cast_1): Same.
+ * semantics.c (finish_asm_stmt): Same.
+ (finish_label_decl): Same.
+ (finish_bases): Same.
+ (finish_offsetof): Same.
+ (cp_check_omp_declare_reduction): Same.
+ (finish_decltype_type): Same.
+ * tree.c (handle_init_priority_attribute): Same. Add detail
+ to diagnostics.
+ (maybe_warn_zero_as_null_pointer_constant): Same.
+ * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
+ in diagnostics.
+ (cp_build_unary_op): Same.
+ (check_for_casting_away_constness): Same.
+ (build_static_cast): Same.
+ (build_const_cast_1): Same.
+ (maybe_warn_about_returning_address_of_local): Same.
+ (check_return_expr): Same.
+ * typeck2.c (abstract_virtuals_error_sfinae): Same.
+ (digest_init_r): Replace a tab with spaces in a diagnostic.
+ (build_functional_cast): Quote keywords, operators, and types
+ in diagnostics.
+
2019-05-15 Jakub Jelinek <jakub@redhat.com>
PR debug/90197
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 0a5147a..e160dd1 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -3603,7 +3603,7 @@ print_z_candidate (location_t loc, const char *msgstr,
{
const char *msg = (msgstr == NULL
? ""
- : ACONCAT ((msgstr, " ", NULL)));
+ : ACONCAT ((_(msgstr), " ", NULL)));
tree fn = candidate->fn;
if (flag_new_inheriting_ctors)
fn = strip_inheriting_ctors (fn);
@@ -3613,24 +3613,24 @@ print_z_candidate (location_t loc, const char *msgstr,
{
cloc = loc;
if (candidate->num_convs == 3)
- inform (cloc, "%s%<%D(%T, %T, %T)%> <built-in>", msg, fn,
+ inform (cloc, "%s%<%D(%T, %T, %T)%> (built-in)", msg, fn,
candidate->convs[0]->type,
candidate->convs[1]->type,
candidate->convs[2]->type);
else if (candidate->num_convs == 2)
- inform (cloc, "%s%<%D(%T, %T)%> <built-in>", msg, fn,
+ inform (cloc, "%s%<%D(%T, %T)%> (built-in)", msg, fn,
candidate->convs[0]->type,
candidate->convs[1]->type);
else
- inform (cloc, "%s%<%D(%T)%> <built-in>", msg, fn,
+ inform (cloc, "%s%<%D(%T)%> (built-in)", msg, fn,
candidate->convs[0]->type);
}
else if (TYPE_P (fn))
- inform (cloc, "%s%qT <conversion>", msg, fn);
+ inform (cloc, "%s%qT (conversion)", msg, fn);
else if (candidate->viable == -1)
- inform (cloc, "%s%#qD <near match>", msg, fn);
+ inform (cloc, "%s%#qD (near match)", msg, fn);
else if (DECL_DELETED_FN (fn))
- inform (cloc, "%s%#qD <deleted>", msg, fn);
+ inform (cloc, "%s%#qD (deleted)", msg, fn);
else
inform (cloc, "%s%#qD", msg, fn);
if (fn != candidate->fn)
@@ -3763,7 +3763,7 @@ print_z_candidates (location_t loc, struct z_candidate *candidates)
}
for (; candidates; candidates = candidates->next)
- print_z_candidate (loc, "candidate:", candidates);
+ print_z_candidate (loc, N_("candidate:"), candidates);
}
/* USER_SEQ is a user-defined conversion sequence, beginning with a
@@ -5003,7 +5003,8 @@ build_conditional_expr_1 (const op_location_t &loc,
{
if (complain & tf_error)
pedwarn (loc, OPT_Wpedantic,
- "ISO C++ forbids omitting the middle term of a ?: expression");
+ "ISO C++ forbids omitting the middle term of "
+ "a %<?:%> expression");
if ((complain & tf_warning) && !truth_value_p (TREE_CODE (arg1)))
warn_for_omitted_condop (loc, arg1);
@@ -5276,7 +5277,8 @@ build_conditional_expr_1 (const op_location_t &loc,
{
if (complain & tf_error)
{
- error_at (loc, "operands to ?: have different types %qT and %qT",
+ error_at (loc, "operands to %<?:%> have different types "
+ "%qT and %qT",
arg2_type, arg3_type);
if (conv2 && !conv2->bad_p && conv3 && !conv3->bad_p)
inform (loc, " and each type can be converted to the other");
@@ -5392,7 +5394,7 @@ build_conditional_expr_1 (const op_location_t &loc,
if (!any_viable_p)
{
if (complain & tf_error)
- error_at (loc, "operands to ?: have different types %qT and %qT",
+ error_at (loc, "operands to %<?:%> have different types %qT and %qT",
arg2_type, arg3_type);
return error_mark_node;
}
@@ -5539,7 +5541,7 @@ build_conditional_expr_1 (const op_location_t &loc,
if (!result_type)
{
if (complain & tf_error)
- error_at (loc, "operands to ?: have different types %qT and %qT",
+ error_at (loc, "operands to %<?:%> have different types %qT and %qT",
arg2_type, arg3_type);
return error_mark_node;
}
@@ -6489,10 +6491,10 @@ build_op_delete_call (enum tree_code code, tree addr, tree size,
{
const char *const msg1
= G_("exception cleanup for this placement new selects "
- "non-placement operator delete");
+ "non-placement %<operator delete%>");
const char *const msg2
= G_("%qD is a usual (non-placement) deallocation "
- "function in C++14 (or with -fsized-deallocation)");
+ "function in C++14 (or with %<-fsized-deallocation%>)");
/* But if the class has an operator delete (void *), then that is
the usual deallocation function, so we shouldn't complain
@@ -6889,7 +6891,7 @@ maybe_print_user_conv_context (conversion *convs)
for (conversion *t = convs; t; t = next_conversion (t))
if (t->kind == ck_user)
{
- print_z_candidate (0, " after user-defined conversion:",
+ print_z_candidate (0, N_(" after user-defined conversion:"),
t->cand);
break;
}
@@ -7002,7 +7004,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
"from %qH to %qI", TREE_TYPE (expr),
totype);
if (complained)
- print_z_candidate (loc, "candidate is:", t->cand);
+ print_z_candidate (loc, N_("candidate is:"), t->cand);
expr = convert_like_real (t, expr, fn, argnum,
/*issue_conversion_warnings=*/false,
/*c_cast_p=*/false,
@@ -7514,8 +7516,9 @@ convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain)
if (abi_version_crosses (6)
&& TYPE_MODE (TREE_TYPE (prom)) != TYPE_MODE (arg_type)
&& (complain & tf_warning))
- warning_at (loc, OPT_Wabi, "scoped enum %qT passed through ... as "
- "%qT before %<-fabi-version=6%>, %qT after", arg_type,
+ warning_at (loc, OPT_Wabi, "scoped enum %qT passed through %<...%>"
+ "as %qT before %<-fabi-version=6%>, %qT after",
+ arg_type,
TREE_TYPE (prom), ENUM_UNDERLYING_TYPE (arg_type));
if (!abi_version_at_least (6))
arg = prom;
@@ -8593,8 +8596,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain)
if (is_std_init_list (type)
&& conv_binds_ref_to_prvalue (convs[1]))
warning_at (loc, OPT_Winit_list_lifetime,
- "assignment from temporary initializer_list does not "
- "extend the lifetime of the underlying array");
+ "assignment from temporary %<initializer_list%> does "
+ "not extend the lifetime of the underlying array");
arg = cp_build_fold_indirect_ref (arg);
val = build2 (MODIFY_EXPR, TREE_TYPE (to), to, arg);
}
@@ -10740,7 +10743,8 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn,
&& warning (OPT_Wconversion, " for conversion from %qH to %qI",
source, w->second_conv->type))
{
- inform (input_location, " because conversion sequence for the argument is better");
+ inform (input_location, " because conversion sequence "
+ "for the argument is better");
}
}
else
@@ -11026,8 +11030,8 @@ tweak:
"though the worst conversion for the first is "
"better than the worst conversion for the second:"))
{
- print_z_candidate (input_location, _("candidate 1:"), w);
- print_z_candidate (input_location, _("candidate 2:"), l);
+ print_z_candidate (input_location, N_("candidate 1:"), w);
+ print_z_candidate (input_location, N_("candidate 2:"), l);
}
}
else
diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c
index 8ae0fd5..67a8f04 100644
--- a/gcc/cp/constexpr.c
+++ b/gcc/cp/constexpr.c
@@ -2020,9 +2020,9 @@ cxx_eval_check_shift_p (location_t loc, const constexpr_ctx *ctx,
if (compare_tree_int (rhs, uprec) >= 0)
{
if (!ctx->quiet)
- permerror (loc, "right operand of shift expression %q+E is >= than "
- "the precision of the left operand",
- build2_loc (loc, code, type, lhs, rhs));
+ permerror (loc, "right operand of shift expression %q+E is greater "
+ "than or equal to the precision %wu of the left operand",
+ build2_loc (loc, code, type, lhs, rhs), uprec);
return (!flag_permissive || ctx->quiet);
}
@@ -4420,7 +4420,7 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
if (!ctx->quiet)
error_at (cp_expr_loc_or_loc (t, input_location),
"%<constexpr%> evaluation operation count exceeds limit of "
- "%wd (use -fconstexpr-ops-limit= to increase the limit)",
+ "%wd (use %<-fconstexpr-ops-limit=%> to increase the limit)",
constexpr_ops_limit);
*ctx->constexpr_ops_count = INTTYPE_MINIMUM (HOST_WIDE_INT);
*non_constant_p = true;
@@ -4957,7 +4957,7 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
{
if (!ctx->quiet)
error_at (cp_expr_loc_or_loc (t, input_location),
- "a reinterpret_cast is not a constant expression");
+ "%<reinterpret_cast%> is not a constant expression");
*non_constant_p = true;
return t;
}
@@ -6116,7 +6116,7 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
if (REINTERPRET_CAST_P (t))
{
if (flags & tf_error)
- error_at (loc, "a reinterpret_cast is not a constant expression");
+ error_at (loc, "%<reinterpret_cast%> is not a constant expression");
return false;
}
/* FALLTHRU */
@@ -6135,7 +6135,8 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
&& !integer_zerop (from))
{
if (flags & tf_error)
- error_at (loc, "reinterpret_cast from integer to pointer");
+ error_at (loc,
+ "%<reinterpret_cast%> from integer to pointer");
return false;
}
}
@@ -6389,7 +6390,8 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
/* In C++2a virtual calls can be constexpr, don't give up yet. */
return true;
else if (flags & tf_error)
- error_at (loc, "virtual functions cannot be constexpr before C++2a");
+ error_at (loc,
+ "virtual functions cannot be %<constexpr%> before C++2a");
return false;
case TYPEID_EXPR:
@@ -6401,7 +6403,7 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
&& TYPE_POLYMORPHIC_P (TREE_TYPE (e)))
{
if (flags & tf_error)
- error_at (loc, "typeid-expression is not a constant expression "
+ error_at (loc, "%<typeid%> is not a constant expression "
"because %qE is of polymorphic type", e);
return false;
}
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 72d8581..e8c22c0 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -1489,10 +1489,10 @@ cp_genericize_r (tree *stmt_p, int *walk_subtrees, void *data)
{
auto_diagnostic_group d;
if (warning_at (loc, OPT_Wterminate,
- "throw will always call terminate()")
+ "%<throw%> will always call %<terminate%>")
&& cxx_dialect >= cxx11
&& DECL_DESTRUCTOR_P (current_function_decl))
- inform (loc, "in C++11 destructors default to noexcept");
+ inform (loc, "in C++11 destructors default to %<noexcept%>");
}
}
else
@@ -1504,8 +1504,8 @@ cp_genericize_r (tree *stmt_p, int *walk_subtrees, void *data)
&& (get_defaulted_eh_spec (current_function_decl)
== empty_except_spec))
warning_at (loc, OPT_Wc__11_compat,
- "in C++11 this throw will terminate because "
- "destructors default to noexcept");
+ "in C++11 this %<throw%> will call %<terminate%> "
+ "because destructors default to %<noexcept%>");
}
}
break;
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 3d40927..7ebbf3c 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -88,7 +88,7 @@ cp_convert_to_pointer (tree type, tree expr, bool dofold,
if (!COMPLETE_TYPE_P (intype))
{
if (complain & tf_error)
- error_at (loc, "can%'t convert from incomplete type %qH to %qI",
+ error_at (loc, "cannot convert from incomplete type %qH to %qI",
intype, type);
return error_mark_node;
}
@@ -1060,14 +1060,14 @@ maybe_warn_nodiscard (tree expr, impl_conv_void implicit)
auto_diagnostic_group d;
if (warning_at (loc, OPT_Wunused_result,
"ignoring return value of %qD, "
- "declared with attribute warn_unused_result",
+ "declared with attribute %<warn_unused_result%>",
fn))
inform (DECL_SOURCE_LOCATION (fn), "declared here");
}
else
warning_at (loc, OPT_Wunused_result,
"ignoring return value of function "
- "declared with attribute warn_unused_result");
+ "declared with attribute %<warn_unused_result%>");
}
}
@@ -1820,7 +1820,7 @@ build_expr_type_conversion (int desires, tree expr, bool complain)
if (TREE_CODE (cand) == TEMPLATE_DECL)
{
if (complain)
- error ("default type conversion can%'t deduce template"
+ error ("default type conversion cannot deduce template"
" argument for %qD", cand);
return error_mark_node;
}
@@ -1920,7 +1920,7 @@ type_promotes_to (tree type)
{
if (abi_version_crosses (6)
&& TYPE_MODE (prom) != TYPE_MODE (type))
- warning (OPT_Wabi, "scoped enum %qT passed through ... as "
+ warning (OPT_Wabi, "scoped enum %qT passed through %<...%> as "
"%qT before %<-fabi-version=6%>, %qT after",
type, prom, ENUM_UNDERLYING_TYPE (type));
if (!abi_version_at_least (6))
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 6918c3b..19d14a6 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -3228,32 +3228,32 @@ check_previous_goto_1 (tree decl, cp_binding_level* level, tree names,
{
case sk_try:
if (!saw_eh)
- inf = N_("enters try block");
+ inf = G_(" enters %<try%> block");
saw_eh = true;
break;
case sk_catch:
if (!saw_eh)
- inf = N_("enters catch block");
+ inf = G_(" enters %<catch%> block");
saw_eh = true;
break;
case sk_omp:
if (!saw_omp)
- inf = N_("enters OpenMP structured block");
+ inf = G_(" enters OpenMP structured block");
saw_omp = true;
break;
case sk_transaction:
if (!saw_tm)
- inf = N_("enters synchronized or atomic statement");
+ inf = G_(" enters synchronized or atomic statement");
saw_tm = true;
break;
case sk_block:
if (!saw_cxif && level_for_constexpr_if (b->level_chain))
{
- inf = N_("enters constexpr if statement");
+ inf = G_(" enters %<constexpr if%> statement");
loc = EXPR_LOCATION (b->level_chain->this_entity);
saw_cxif = true;
}
@@ -3269,7 +3269,7 @@ check_previous_goto_1 (tree decl, cp_binding_level* level, tree names,
complained = identify_goto (decl, input_location, locus, DK_ERROR);
identified = 2;
if (complained)
- inform (loc, " %s", inf);
+ inform (loc, inf);
}
}
@@ -3364,7 +3364,7 @@ check_goto (tree decl)
identified = 2;
}
if (complained)
- inform (DECL_SOURCE_LOCATION (bad), " enters catch block");
+ inform (DECL_SOURCE_LOCATION (bad), " enters %<catch%> block");
saw_catch = true;
}
else if (complained)
@@ -3382,13 +3382,13 @@ check_goto (tree decl)
if (complained)
{
if (ent->in_try_scope)
- inform (input_location, " enters try block");
+ inform (input_location, " enters %<try%> block");
else if (ent->in_catch_scope && !saw_catch)
- inform (input_location, " enters catch block");
+ inform (input_location, " enters %<catch%> block");
else if (ent->in_transaction_scope)
inform (input_location, " enters synchronized or atomic statement");
else if (ent->in_constexpr_if)
- inform (input_location, " enters %<constexpr%> if statement");
+ inform (input_location, " enters %<constexpr if%> statement");
}
if (ent->in_omp_scope)
@@ -5078,7 +5078,8 @@ start_decl (const cp_declarator *declarator,
&& TREE_CODE (decl) == TYPE_DECL)
{
error_at (DECL_SOURCE_LOCATION (decl),
- "typedef %qD is initialized (use decltype instead)", decl);
+ "typedef %qD is initialized (use %qs instead)",
+ decl, "decltype");
return error_mark_node;
}
@@ -7020,8 +7021,8 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p,
return;
if (TREE_CODE (type) == FUNCTION_TYPE)
{
- error ("initializer for %<decltype(auto) %D%> has function type "
- "(did you forget the %<()%> ?)", decl);
+ error ("initializer for %<decltype(auto) %D%> has function type; "
+ "did you forget the %<()%>?", decl);
TREE_TYPE (decl) = error_mark_node;
return;
}
@@ -11569,7 +11570,7 @@ grokdeclarator (const cp_declarator *declarator,
error ("friend declaration not in class definition");
if (current_function_decl && funcdef_flag)
{
- error ("can%'t define friend function %qs in a local "
+ error ("cannot define friend function %qs in a local "
"class definition", name);
friendp = 0;
}
@@ -13612,7 +13613,7 @@ grok_op_properties (tree decl, bool complain)
if (operator_code == COND_EXPR)
{
/* 13.4.0.3 */
- error_at (loc, "ISO C++ prohibits overloading operator ?:");
+ error_at (loc, "ISO C++ prohibits overloading %<operator ?:%>");
return false;
}
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index fb3b911..bd022ca 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -830,7 +830,8 @@ grokfield (const cp_declarator *declarator,
if (TREE_CODE (value) == TYPE_DECL && init)
{
error_at (cp_expr_loc_or_loc (init, DECL_SOURCE_LOCATION (value)),
- "typedef %qD is initialized (use decltype instead)", value);
+ "typedef %qD is initialized (use %qs instead)",
+ value, "decltype");
init = NULL_TREE;
}
@@ -1772,12 +1773,13 @@ coerce_delete_type (tree decl, location_t loc)
else
/* A destroying operator delete shall be a class member function named
operator delete. */
- error_at (loc, "destroying operator delete must be a member function");
+ error_at (loc,
+ "destroying %<operator delete%> must be a member function");
const ovl_op_info_t *op = IDENTIFIER_OVL_OP_INFO (DECL_NAME (decl));
if (op->flags & OVL_OP_FLAG_VEC)
- error_at (loc, "operator delete[] cannot be a destroying delete");
+ error_at (loc, "%<operator delete[]%> cannot be a destroying delete");
if (!usual_deallocation_fn_p (decl))
- error_at (loc, "destroying operator delete must be a usual "
+ error_at (loc, "destroying %<operator delete%> must be a usual "
"deallocation function");
}
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 3b792cb..892d520 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -936,7 +936,7 @@ is_admissible_throw_operand_or_catch_parameter (tree t, bool is_throw)
&& TYPE_REF_P (type)
&& TYPE_REF_IS_RVALUE (type))
{
- error ("cannot declare catch parameter to be of rvalue "
+ error ("cannot declare %<catch%> parameter to be of rvalue "
"reference type %qT", type);
return false;
}
diff --git a/gcc/cp/friend.c b/gcc/cp/friend.c
index 2429cd4..4ea4bbc 100644
--- a/gcc/cp/friend.c
+++ b/gcc/cp/friend.c
@@ -638,9 +638,10 @@ do_friend (tree ctype, tree declarator, tree decl,
"%q#D declares a non-template function", decl);
if (! explained && warned)
{
- inform (input_location, "(if this is not what you intended, make sure "
- "the function template has already been declared "
- "and add <> after the function name here) ");
+ inform (input_location, "(if this is not what you intended, "
+ "make sure the function template has already been "
+ "declared and add %<<>%> after the function name "
+ "here)");
explained = 1;
}
}
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 68d04ad..4ffd96e 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -3005,7 +3005,7 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
pedwarn (cp_expr_loc_or_loc (outer_nelts, input_location), OPT_Wvla,
typedef_variant_p (orig_type)
? G_("non-constant array new length must be specified "
- "directly, not by typedef")
+ "directly, not by %<typedef%>")
: G_("non-constant array new length must be specified "
"without parentheses around the type-id"));
}
@@ -3016,13 +3016,13 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
if (VOID_TYPE_P (elt_type))
{
if (complain & tf_error)
- error ("invalid type %<void%> for new");
+ error ("invalid type %<void%> for %<new%>");
return error_mark_node;
}
if (is_std_init_list (elt_type))
warning (OPT_Winit_list_lifetime,
- "%<new%> of initializer_list does not "
+ "%<new%> of %<initializer_list%> does not "
"extend the lifetime of the underlying array");
if (abstract_virtuals_error_sfinae (ACU_NEW, elt_type, complain))
@@ -3867,11 +3867,11 @@ build_vec_delete_1 (tree base, tree maxindex, tree type,
auto_diagnostic_group d;
if (warning (OPT_Wdelete_incomplete,
"possible problem detected in invocation of "
- "delete [] operator:"))
+ "operator %<delete []%>"))
{
cxx_incomplete_type_diagnostic (base, type, DK_WARNING);
inform (input_location, "neither the destructor nor the "
- "class-specific operator delete [] will be called, "
+ "class-specific operator %<delete []%> will be called, "
"even if they are declared when the class is defined");
}
}
@@ -4753,14 +4753,14 @@ build_delete (tree otype, tree addr, special_function_kind auto_delete,
{
auto_diagnostic_group d;
if (warning (OPT_Wdelete_incomplete,
- "possible problem detected in invocation of "
- "delete operator:"))
+ "possible problem detected in invocation of "
+ "%<operator delete%>"))
{
cxx_incomplete_type_diagnostic (addr, type, DK_WARNING);
inform (input_location,
- "neither the destructor nor the class-specific "
- "operator delete will be called, even if they "
- "are declared when the class is defined");
+ "neither the destructor nor the class-specific "
+ "%<operator delete%> will be called, even if "
+ "they are declared when the class is defined");
}
}
}
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 369ecc0..20965e4 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -385,14 +385,14 @@ parse_strconst_pragma (const char* name, int opt)
if (t == CPP_STRING)
{
if (pragma_lex (&x) != CPP_EOF)
- warning (0, "junk at end of #pragma %s", name);
+ warning (0, "junk at end of %<#pragma %s%>", name);
return result;
}
if (t == CPP_EOF && opt)
return NULL_TREE;
- error ("invalid #pragma %s", name);
+ error ("invalid %<#pragma %s%>", name);
return error_mark_node;
}
@@ -400,7 +400,7 @@ static void
handle_pragma_vtable (cpp_reader* /*dfile*/)
{
parse_strconst_pragma ("vtable", 0);
- sorry ("#pragma vtable no longer supported");
+ sorry ("%<#pragma vtable%> no longer supported");
}
static void
@@ -472,7 +472,7 @@ handle_pragma_implementation (cpp_reader* /*dfile*/)
{
filename = TREE_STRING_POINTER (fname);
if (cpp_included_before (parse_in, filename, input_location))
- warning (0, "#pragma implementation for %qs appears after "
+ warning (0, "%<#pragma implementation%> for %qs appears after "
"file is included", filename);
}
@@ -568,8 +568,8 @@ unqualified_fn_lookup_error (cp_expr name_expr)
if (!hint)
{
inform (loc, "(if you use %<-fpermissive%>, G++ will accept your "
- "code, but allowing the use of an undeclared name is "
- "deprecated)");
+ "code, but allowing the use of an undeclared name is "
+ "deprecated)");
hint = true;
}
}
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index acb81d1..d66482b 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -2305,11 +2305,11 @@ write_type (tree type)
break;
case TYPEOF_TYPE:
- sorry ("mangling typeof, use decltype instead");
+ sorry ("mangling %<typeof%>, use %<decltype%> instead");
break;
case UNDERLYING_TYPE:
- sorry ("mangling __underlying_type");
+ sorry ("mangling %<__underlying_type%>");
break;
case LANG_TYPE:
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 31737d1..3fb3b5a 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -826,13 +826,13 @@ do_build_copy_assign (tree fndecl)
if (CP_TYPE_CONST_P (expr_type))
{
- error ("non-static const member %q#D, can%'t use default "
+ error ("non-static const member %q#D, cannot use default "
"assignment operator", field);
continue;
}
else if (TYPE_REF_P (expr_type))
{
- error ("non-static reference member %q#D, can%'t use "
+ error ("non-static reference member %q#D, cannot use "
"default assignment operator", field);
continue;
}
@@ -1336,13 +1336,13 @@ walk_field_subobs (tree fields, special_function_kind sfk, tree fnname,
if (CP_TYPE_CONST_P (mem_type) && !CLASS_TYPE_P (mem_type))
{
if (diag)
- error ("non-static const member %q#D, can%'t use default "
+ error ("non-static const member %q#D, cannot use default "
"assignment operator", field);
}
else if (TYPE_REF_P (mem_type))
{
if (diag)
- error ("non-static reference member %q#D, can%'t use "
+ error ("non-static reference member %q#D, cannot use "
"default assignment operator", field);
}
else
@@ -2248,8 +2248,8 @@ defaulted_late_check (tree fn)
if (!CLASSTYPE_TEMPLATE_INSTANTIATION (ctx))
{
error ("explicitly defaulted function %q+D cannot be declared "
- "as %<constexpr%> because the implicit declaration is not "
- "%<constexpr%>:", fn);
+ "%qs because the implicit declaration is not %qs:",
+ fn, "constexpr", "constexpr");
explain_implicit_non_constexpr (fn);
}
DECL_DECLARED_CONSTEXPR_P (fn) = false;
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 89d85f6..d8d71be 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -3270,10 +3270,10 @@ cp_binding_level_debug (cp_binding_level *scope, int line, const char *action)
{
const char *desc = cp_binding_level_descriptor (scope);
if (scope->this_entity)
- verbatim ("%s %<%s(%E)%> %p %d\n", action, desc,
+ verbatim ("%s %<%s(%E)%> %p %d", action, desc,
scope->this_entity, (void *) scope, line);
else
- verbatim ("%s %s %p %d\n", action, desc, (void *) scope, line);
+ verbatim ("%s %s %p %d", action, desc, (void *) scope, line);
}
/* A chain of binding_level structures awaiting reuse. */
@@ -7499,7 +7499,7 @@ void
pop_everything (void)
{
if (ENABLE_SCOPE_CHECKING)
- verbatim ("XXX entering pop_everything ()\n");
+ verbatim ("XXX entering %<pop_everything ()%>");
while (!namespace_bindings_p ())
{
if (current_binding_level->kind == sk_class)
@@ -7508,7 +7508,7 @@ pop_everything (void)
poplevel (0, 0, 0);
}
if (ENABLE_SCOPE_CHECKING)
- verbatim ("XXX leaving pop_everything ()\n");
+ verbatim ("XXX leaving %<pop_everything ()%>");
}
/* Emit debugging information for using declarations and directives.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index ab3e672..e6ef5a9 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -1308,7 +1308,7 @@ cp_lexer_start_debugging (cp_lexer* lexer)
{
if (!LEXER_DEBUGGING_ENABLED_P)
fatal_error (input_location,
- "LEXER_DEBUGGING_ENABLED_P is not set to true");
+ "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true");
lexer->debugging_p = true;
cp_lexer_debug_stream = stderr;
@@ -1321,7 +1321,7 @@ cp_lexer_stop_debugging (cp_lexer* lexer)
{
if (!LEXER_DEBUGGING_ENABLED_P)
fatal_error (input_location,
- "LEXER_DEBUGGING_ENABLED_P is not set to true");
+ "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true");
lexer->debugging_p = false;
cp_lexer_debug_stream = NULL;
@@ -4537,7 +4537,7 @@ cp_parser_userdef_numeric_literal (cp_parser *parser)
else if (i14)
{
inform (token->location, "add %<using namespace std::complex_literals%> "
- "(from <complex>) to enable the C++14 user-defined literal "
+ "(from %<<complex>%>) to enable the C++14 user-defined literal "
"suffixes");
if (ext)
inform (token->location, "or use %<j%> instead of %<i%> for the "
@@ -6400,7 +6400,7 @@ cp_parser_nested_name_specifier_opt (cp_parser *parser,
== CPP_SCOPE))
{
token = cp_lexer_consume_token (parser->lexer);
- error_at (token->location, "decltype evaluates to %qT, "
+ error_at (token->location, "%<decltype%> evaluates to %qT, "
"which is not a class or enumeration type",
token->u.tree_check_value->value);
parser->scope = error_mark_node;
@@ -9671,7 +9671,7 @@ cp_parser_question_colon_clause (cp_parser* parser, cp_expr logical_or_expr)
&& token->type == CPP_COLON)
{
pedwarn (token->location, OPT_Wpedantic,
- "ISO C++ does not allow ?: with omitted middle operand");
+ "ISO C++ does not allow %<?:%> with omitted middle operand");
/* Implicit true clause. */
expr = NULL_TREE;
c_inhibit_evaluation_warnings +=
@@ -14442,7 +14442,7 @@ cp_parser_static_assert(cp_parser *parser, bool member_p)
{
if (cxx_dialect < cxx17)
pedwarn (input_location, OPT_Wpedantic,
- "static_assert without a message "
+ "%<static_assert%> without a message "
"only available with %<-std=c++17%> or %<-std=gnu++17%>");
/* Eat the ')' */
cp_lexer_consume_token (parser->lexer);
@@ -19818,14 +19818,15 @@ cp_parser_asm_definition (cp_parser* parser)
case RID_VOLATILE:
if (volatile_loc)
{
- error_at (loc, "duplicate asm qualifier %qT", token->u.value);
+ error_at (loc, "duplicate %<asm%> qualifier %qT",
+ token->u.value);
inform (volatile_loc, "first seen here");
}
else
{
if (!parser->in_function_body)
- warning_at (loc, 0, "asm qualifier %qT ignored outside of "
- "function body", token->u.value);
+ warning_at (loc, 0, "%<asm%> qualifier %qT ignored "
+ "outside of function body", token->u.value);
volatile_loc = loc;
}
cp_lexer_consume_token (parser->lexer);
@@ -19834,7 +19835,8 @@ cp_parser_asm_definition (cp_parser* parser)
case RID_INLINE:
if (inline_loc)
{
- error_at (loc, "duplicate asm qualifier %qT", token->u.value);
+ error_at (loc, "duplicate %<asm%> qualifier %qT",
+ token->u.value);
inform (inline_loc, "first seen here");
}
else
@@ -19847,7 +19849,8 @@ cp_parser_asm_definition (cp_parser* parser)
case RID_GOTO:
if (goto_loc)
{
- error_at (loc, "duplicate asm qualifier %qT", token->u.value);
+ error_at (loc, "duplicate %<asm%> qualifier %qT",
+ token->u.value);
inform (goto_loc, "first seen here");
}
else
@@ -19859,7 +19862,7 @@ cp_parser_asm_definition (cp_parser* parser)
case RID_CONST:
case RID_RESTRICT:
- error_at (loc, "%qT is not an asm qualifier", token->u.value);
+ error_at (loc, "%qT is not an %<asm%> qualifier", token->u.value);
cp_lexer_consume_token (parser->lexer);
continue;
@@ -19875,7 +19878,7 @@ cp_parser_asm_definition (cp_parser* parser)
if (!parser->in_function_body && (inline_p || goto_p))
{
- error_at (first_loc, "asm qualifier outside of function body");
+ error_at (first_loc, "%<asm%> qualifier outside of function body");
inline_p = goto_p = false;
}
@@ -20257,7 +20260,7 @@ cp_parser_init_declarator (cp_parser* parser,
on a function-definition. */
if (asm_specification)
error_at (asm_spec_start_token->location,
- "an asm-specification is not allowed "
+ "an %<asm%> specification is not allowed "
"on a function-definition");
if (attributes)
error_at (attributes_start_token->location,
@@ -27913,12 +27916,12 @@ cp_parser_template_declaration_after_parameters (cp_parser* parser,
{
if (cxx_dialect > cxx17)
error ("literal operator template %qD has invalid parameter list;"
- " Expected non-type template parameter pack <char...> "
+ " expected non-type template parameter pack %<<char...>%> "
"or single non-type parameter of class type",
decl);
else
- error ("literal operator template %qD has invalid parameter list."
- " Expected non-type template parameter pack <char...>",
+ error ("literal operator template %qD has invalid parameter list;"
+ " expected non-type template parameter pack %<<char...>%>",
decl);
}
}
@@ -39634,8 +39637,8 @@ cp_parser_omp_declare_reduction (cp_parser *parser, cp_token *pragma_tok,
error_at (loc, "reference type %qT in "
"%<#pragma omp declare reduction%>", type);
else if (TYPE_QUALS_NO_ADDR_SPACE (type))
- error_at (loc, "const, volatile or __restrict qualified type %qT in "
- "%<#pragma omp declare reduction%>", type);
+ error_at (loc, "%<const%>, %<volatile%> or %<__restrict%>-qualified "
+ "type %qT in %<#pragma omp declare reduction%>", type);
else
types.safe_push (type);
@@ -40486,7 +40489,7 @@ cp_parser_transaction (cp_parser *parser, cp_token *token)
else if (keyword == RID_ATOMIC_CANCEL)
{
/* cancel-and-throw is unimplemented. */
- sorry ("atomic_cancel");
+ sorry ("%<atomic_cancel%>");
noex = NULL_TREE;
}
else
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index edb0701..ab79a9e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1058,10 +1058,11 @@ maybe_process_partial_specialization (tree type)
if (current_namespace
!= decl_namespace_context (tmpl))
{
- permerror (input_location,
- "specializing %q#T in different namespace", type);
- permerror (DECL_SOURCE_LOCATION (tmpl),
- " from definition of %q#D", tmpl);
+ if (permerror (input_location,
+ "specialization of %qD in different namespace",
+ type))
+ inform (DECL_SOURCE_LOCATION (tmpl),
+ "from definition of %q#D", tmpl);
}
/* Check for invalid specialization after instantiation:
@@ -3606,7 +3607,8 @@ expand_integer_pack (tree call, tree args, tsubst_flags_t complain,
{
if ((complain & tf_error)
&& hi != error_mark_node)
- error ("argument to __integer_pack must be between 0 and %d", max);
+ error ("argument to %<__integer_pack%> must be between 0 and %d",
+ max);
return error_mark_node;
}
@@ -4081,7 +4083,7 @@ check_for_bare_parameter_packs (tree t, location_t loc /* = UNKNOWN_LOCATION */)
if (name)
inform (loc, " %qD", name);
else
- inform (loc, " <anonymous>");
+ inform (loc, " %s", "<anonymous>");
parameter_packs = TREE_CHAIN (parameter_packs);
}
@@ -6565,7 +6567,7 @@ unify_template_deduction_failure (bool explain_p, tree parm, tree arg)
{
if (explain_p)
inform (input_location,
- " can%'t deduce a template for %qT from non-template type %qT",
+ " cannot deduce a template for %qT from non-template type %qT",
parm, arg);
return unify_invalid (explain_p);
}
diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c
index 5588e6a..4c44a07 100644
--- a/gcc/cp/repo.c
+++ b/gcc/cp/repo.c
@@ -218,7 +218,7 @@ reopen_repo_file_for_write (void)
if (repo_file == 0)
{
- error ("can%'t create repository information file %qs", repo_name);
+ error ("cannot create repository information file %qs", repo_name);
flag_use_repository = 0;
}
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 26dae3c..ef78564 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -512,7 +512,7 @@ get_typeid (tree type, tsubst_flags_t complain)
|| type_memfn_rqual (type) != REF_QUAL_NONE))
{
if (complain & tf_error)
- error ("typeid of qualified function type %qT", type);
+ error ("%<typeid%> of qualified function type %qT", type);
return error_mark_node;
}
@@ -693,8 +693,8 @@ build_dynamic_cast_1 (tree type, tree expr, tsubst_flags_t complain)
{
tree expr = throw_bad_cast ();
if (complain & tf_warning)
- warning (0, "dynamic_cast of %q#D to %q#T can never succeed",
- old_expr, type);
+ warning (0, "%<dynamic_cast<%#T>(%#D)%> can never succeed",
+ type, old_expr);
/* Bash it to the expected type. */
TREE_TYPE (expr) = type;
return expr;
@@ -708,8 +708,8 @@ build_dynamic_cast_1 (tree type, tree expr, tsubst_flags_t complain)
&& TREE_CODE (TREE_TYPE (op)) == RECORD_TYPE)
{
if (complain & tf_warning)
- warning (0, "dynamic_cast of %q#D to %q#T can never succeed",
- op, type);
+ warning (0, "%<dynamic_cast<%#T>(%#D)%> can never succeed",
+ type, op);
retval = build_int_cst (type, 0);
return retval;
}
@@ -798,7 +798,7 @@ build_dynamic_cast_1 (tree type, tree expr, tsubst_flags_t complain)
fail:
if (complain & tf_error)
- error ("cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)",
+ error ("cannot %<dynamic_cast%> %qE (of type %q#T) to type %q#T (%s)",
old_expr, TREE_TYPE (old_expr), type, errstr);
return error_mark_node;
}
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 3845934..fc5edde 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1585,7 +1585,7 @@ finish_asm_stmt (int volatile_p, tree string, tree output_operands,
resolve the overloading. */
if (TREE_TYPE (operand) == unknown_type_node)
{
- error ("type of asm operand %qE could not be determined",
+ error ("type of %<asm%> operand %qE could not be determined",
TREE_VALUE (t));
operand = error_mark_node;
}
@@ -1667,7 +1667,7 @@ finish_label_decl (tree name)
{
if (!at_function_scope_p ())
{
- error ("__label__ declarations are only allowed in function scopes");
+ error ("%<__label__%> declarations are only allowed in function scopes");
return;
}
@@ -4099,7 +4099,7 @@ finish_bases (tree type, bool direct)
if (!processing_template_decl)
{
/* Parameter packs can only be used in templates */
- error ("Parameter pack __bases only valid in template declaration");
+ error ("parameter pack %<__bases%> only valid in template declaration");
return error_mark_node;
}
@@ -4164,7 +4164,7 @@ finish_offsetof (tree object_ptr, tree expr, location_t loc)
&& CLASS_TYPE_P (TREE_TYPE (TREE_TYPE (object_ptr)))
&& CLASSTYPE_NON_STD_LAYOUT (TREE_TYPE (TREE_TYPE (object_ptr)))
&& cp_unevaluated_operand == 0)
- warning_at (loc, OPT_Winvalid_offsetof, "offsetof within "
+ warning_at (loc, OPT_Winvalid_offsetof, "%<offsetof%> within "
"non-standard-layout type %qT is conditionally-supported",
TREE_TYPE (TREE_TYPE (object_ptr)));
return fold_offsetof (expr);
@@ -5546,8 +5546,8 @@ cp_check_omp_declare_reduction (tree udr)
}
else if (TYPE_QUALS_NO_ADDR_SPACE (type))
{
- error_at (loc, "const, volatile or __restrict qualified type %qT in "
- "%<#pragma omp declare reduction%>", type);
+ error_at (loc, "%<const%>, %<volatile%> or %<__restrict%>-qualified "
+ "type %qT in %<#pragma omp declare reduction%>", type);
return;
}
@@ -9334,7 +9334,7 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p,
&& TYPE_P (TREE_OPERAND (expr, 0))))
{
if (complain & tf_error)
- error ("argument to decltype must be an expression");
+ error ("argument to %<decltype%> must be an expression");
return error_mark_node;
}
@@ -9362,7 +9362,7 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p,
if (type_unknown_p (expr))
{
if (complain & tf_error)
- error ("decltype cannot resolve address of overloaded function");
+ error ("%<decltype%> cannot resolve address of overloaded function");
return error_mark_node;
}
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 14d6aff..8d7f7a2 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -4472,7 +4472,7 @@ handle_init_priority_attribute (tree* node,
if (!initp_expr || TREE_CODE (initp_expr) != INTEGER_CST)
{
- error ("requested init_priority is not an integer constant");
+ error ("requested %<init_priority%> is not an integer constant");
cxx_constant_value (initp_expr);
*no_add_attrs = true;
return NULL_TREE;
@@ -4502,7 +4502,8 @@ handle_init_priority_attribute (tree* node,
if (pri > MAX_INIT_PRIORITY || pri <= 0)
{
- error ("requested init_priority is out of range");
+ error ("requested %<init_priority%> %i is out of range [0, %i]",
+ pri, MAX_INIT_PRIORITY);
*no_add_attrs = true;
return NULL_TREE;
}
@@ -4512,7 +4513,8 @@ handle_init_priority_attribute (tree* node,
if (pri <= MAX_RESERVED_INIT_PRIORITY)
{
warning
- (0, "requested init_priority is reserved for internal use");
+ (0, "requested %<init_priority%> %i is reserved for internal use",
+ pri);
}
if (SUPPORTS_INIT_PRIORITY)
@@ -5477,7 +5479,7 @@ maybe_warn_zero_as_null_pointer_constant (tree expr, location_t loc)
void
lang_check_failed (const char* file, int line, const char* function)
{
- internal_error ("lang_* check: failed in %s, at %s:%d",
+ internal_error ("%<lang_*%> check: failed in %s, at %s:%d",
function, trim_filename (file), line);
}
#endif /* ENABLE_TREE_CHECKING */
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 36e6b24..7289f2c 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -4887,7 +4887,7 @@ cp_build_binary_op (const op_location_t &location,
&& c_inhibit_evaluation_warnings == 0
&& (FLOAT_TYPE_P (type0) || FLOAT_TYPE_P (type1)))
warning (OPT_Wfloat_equal,
- "comparing floating point with == or != is unsafe");
+ "comparing floating point with %<==%> or %<!=%> is unsafe");
if (complain & tf_warning)
{
tree stripped_orig_op0 = tree_strip_any_location_wrapper (orig_op0);
@@ -6274,7 +6274,7 @@ cp_build_unary_op (enum tree_code code, tree xarg, bool noconvert,
if (TREE_CODE (TREE_TYPE (arg)) == BOOLEAN_TYPE
&& (complain & tf_warning)
&& warning_at (location, OPT_Wbool_operation,
- "%<~%> on an expression of type bool"))
+ "%<~%> on an expression of type %<bool%>"))
inform (location, "did you mean to use logical not (%<!%>)?");
arg = cp_perform_integral_promotions (arg, complain);
}
@@ -6942,13 +6942,15 @@ check_for_casting_away_constness (tree src_type, tree dest_type,
case STATIC_CAST_EXPR:
if (complain & tf_error)
- error ("static_cast from type %qT to type %qT casts away qualifiers",
+ error ("%<static_cast%> from type %qT to type %qT casts away "
+ "qualifiers",
src_type, dest_type);
return true;
case REINTERPRET_CAST_EXPR:
if (complain & tf_error)
- error ("reinterpret_cast from type %qT to type %qT casts away qualifiers",
+ error ("%<reinterpret_cast%> from type %qT to type %qT casts away "
+ "qualifiers",
src_type, dest_type);
return true;
@@ -7401,7 +7403,7 @@ build_static_cast (tree type, tree oexpr, tsubst_flags_t complain)
if (complain & tf_error)
{
- error ("invalid static_cast from type %qT to type %qT",
+ error ("invalid %<static_cast%> from type %qT to type %qT",
TREE_TYPE (expr), type);
if ((TYPE_PTR_P (type) || TYPE_REF_P (type))
&& CLASS_TYPE_P (TREE_TYPE (type))
@@ -7738,7 +7740,7 @@ build_const_cast_1 (tree dst_type, tree expr, tsubst_flags_t complain,
if (!INDIRECT_TYPE_P (dst_type) && !TYPE_PTRDATAMEM_P (dst_type))
{
if (complain & tf_error)
- error ("invalid use of const_cast with type %qT, "
+ error ("invalid use of %<const_cast%> with type %qT, "
"which is not a pointer, "
"reference, nor a pointer-to-data-member type", dst_type);
return error_mark_node;
@@ -7747,8 +7749,9 @@ build_const_cast_1 (tree dst_type, tree expr, tsubst_flags_t complain,
if (TREE_CODE (TREE_TYPE (dst_type)) == FUNCTION_TYPE)
{
if (complain & tf_error)
- error ("invalid use of const_cast with type %qT, which is a pointer "
- "or reference to a function type", dst_type);
+ error ("invalid use of %<const_cast%> with type %qT, "
+ "which is a pointer or reference to a function type",
+ dst_type);
return error_mark_node;
}
@@ -7788,7 +7791,8 @@ build_const_cast_1 (tree dst_type, tree expr, tsubst_flags_t complain,
else
{
if (complain & tf_error)
- error ("invalid const_cast of an rvalue of type %qT to type %qT",
+ error ("invalid %<const_cast%> of an rvalue of type %qT "
+ "to type %qT",
src_type, dst_type);
return error_mark_node;
}
@@ -7857,7 +7861,7 @@ build_const_cast_1 (tree dst_type, tree expr, tsubst_flags_t complain,
}
if (complain & tf_error)
- error ("invalid const_cast from type %qT to type %qT",
+ error ("invalid %<const_cast%> from type %qT to type %qT",
src_type, dst_type);
return error_mark_node;
}
@@ -9260,7 +9264,7 @@ maybe_warn_about_returning_address_of_local (tree retval)
"returning reference to temporary");
else if (is_std_init_list (valtype))
warning_at (loc, OPT_Winit_list_lifetime,
- "returning temporary initializer_list does not extend "
+ "returning temporary %<initializer_list%> does not extend "
"the lifetime of the underlying array");
return true;
}
@@ -9298,7 +9302,7 @@ maybe_warn_about_returning_address_of_local (tree retval)
whats_returned);
else if (is_std_init_list (valtype))
w = warning_at (loc, OPT_Winit_list_lifetime,
- "returning local initializer_list variable %qD "
+ "returning local %<initializer_list%> variable %qD "
"does not extend the lifetime of the underlying array",
whats_returned);
else if (TREE_CODE (whats_returned) == LABEL_DECL)
@@ -9654,7 +9658,7 @@ check_return_expr (tree retval, bool *no_warning)
&& ! flag_check_new
&& retval && null_ptr_cst_p (retval))
warning (0, "%<operator new%> must not return NULL unless it is "
- "declared %<throw()%> (or -fcheck-new is in effect)");
+ "declared %<throw()%> (or %<-fcheck-new%> is in effect)");
/* Effective C++ rule 15. See also start_function. */
if (warn_ecpp
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 618eed9..e9f759d 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -360,7 +360,7 @@ abstract_virtuals_error_sfinae (tree decl, tree type, abstract_class_use use,
"be used in throw-expression", type);
break;
case ACU_CATCH:
- error ("cannot declare catch parameter to be of abstract "
+ error ("cannot declare %<catch%> parameter to be of abstract "
"class type %qT", type);
break;
default:
@@ -380,7 +380,7 @@ abstract_virtuals_error_sfinae (tree decl, tree type, abstract_class_use use,
FOR_EACH_VEC_ELT (*pure, ix, fn)
if (! DECL_CLONED_FUNCTION_P (fn)
|| DECL_COMPLETE_DESTRUCTOR_P (fn))
- inform (DECL_SOURCE_LOCATION (fn), "\t%#qD", fn);
+ inform (DECL_SOURCE_LOCATION (fn), " %#qD", fn);
/* Now truncate the vector. This leaves it non-null, so we know
there are pure virtuals, but empty so we don't list them out
@@ -1164,8 +1164,8 @@ digest_init_r (tree type, tree init, int nested, int flags,
be invalid. */
if (size < TREE_STRING_LENGTH (stripped_init))
{
- permerror (loc, "initializer-string for array "
- "of chars is too long");
+ permerror (loc, "initializer-string for %qT is too long",
+ type);
init = build_string (size,
TREE_STRING_POINTER (stripped_init));
@@ -2215,7 +2215,7 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain)
if (type == error_mark_node)
{
if (complain & tf_error)
- error ("cannot deduce template arguments for %qT from ()",
+ error ("cannot deduce template arguments for %qT from %<()%>",
anode);
return error_mark_node;
}