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
This commit is contained in:
parent
6df6f67a28
commit
a9c697b883
239 changed files with 1767 additions and 1053 deletions
117
gcc/ChangeLog
117
gcc/ChangeLog
|
@ -1,3 +1,120 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
||||
|
||||
* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
|
||||
reserved names.
|
||||
|
||||
2019-05-08 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* standard.ads.h: New file.
|
||||
|
|
|
@ -2024,12 +2024,13 @@ check_inlining_for_nested_subprog (tree fndecl)
|
|||
|
||||
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (parent_decl)))
|
||||
{
|
||||
error_at (loc1, "subprogram %q+F not marked Inline_Always", fndecl);
|
||||
error_at (loc1, "subprogram %q+F not marked %<Inline_Always%>",
|
||||
fndecl);
|
||||
error_at (loc2, "parent subprogram cannot be inlined");
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_at (loc1, OPT_Winline, "subprogram %q+F not marked Inline",
|
||||
warning_at (loc1, OPT_Winline, "subprogram %q+F not marked %<Inline%>",
|
||||
fndecl);
|
||||
warning_at (loc2, OPT_Winline, "parent subprogram cannot be inlined");
|
||||
}
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Update copyright years.
|
||||
|
|
|
@ -102,7 +102,7 @@ brig_directive_control_handler::operator () (const BrigBase *base)
|
|||
/* Unimplemented. */
|
||||
break;
|
||||
default:
|
||||
sorry ("Unsupported control directive %x.\n", inst->control);
|
||||
sorry ("Unsupported control directive %x.", inst->control);
|
||||
}
|
||||
return base->byteCount;
|
||||
}
|
||||
|
|
|
@ -28,10 +28,10 @@ brig_directive_module_handler::operator () (const BrigBase *base)
|
|||
const BrigDirectiveModule* mod = (const BrigDirectiveModule*)base;
|
||||
m_parent.m_module_name = m_parent.get_string (mod->name).substr (1);
|
||||
if (mod->hsailMajor != 1 || mod->hsailMinor != 0)
|
||||
fatal_error (UNKNOWN_LOCATION, PHSA_ERROR_PREFIX_INCOMPATIBLE_MODULE " "
|
||||
fatal_error (UNKNOWN_LOCATION, PHSA_ERROR_PREFIX_INCOMPATIBLE_MODULE
|
||||
"HSAIL version not supported. HSAIL 1.0 required.");
|
||||
if (mod->machineModel != BRIG_MACHINE_LARGE)
|
||||
fatal_error (UNKNOWN_LOCATION, PHSA_ERROR_PREFIX_INCOMPATIBLE_MODULE " "
|
||||
fatal_error (UNKNOWN_LOCATION, PHSA_ERROR_PREFIX_INCOMPATIBLE_MODULE
|
||||
"Only HSA 'large' machine model supported.");
|
||||
/* Do not check for the profile as the runtime conformance suite tests
|
||||
with 'full' profile BRIGs even though they don't use any full profile
|
||||
|
|
|
@ -6784,7 +6784,7 @@ expand_builtin_atomic_always_lock_free (tree exp)
|
|||
|
||||
if (TREE_CODE (arg0) != INTEGER_CST)
|
||||
{
|
||||
error ("non-constant argument 1 to __atomic_always_lock_free");
|
||||
error ("non-constant argument 1 to %qs", "__atomic_always_lock_free");
|
||||
return const0_rtx;
|
||||
}
|
||||
|
||||
|
@ -6826,7 +6826,7 @@ expand_builtin_atomic_is_lock_free (tree exp)
|
|||
|
||||
if (!INTEGRAL_TYPE_P (TREE_TYPE (arg0)))
|
||||
{
|
||||
error ("non-integer argument 1 to __atomic_is_lock_free");
|
||||
error ("non-integer argument 1 to %qs", "__atomic_is_lock_free");
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
|
@ -10224,7 +10224,7 @@ fold_builtin_next_arg (tree exp, bool va_start_p)
|
|||
|
||||
if (!stdarg_p (fntype))
|
||||
{
|
||||
error ("%<va_start%> used in function with fixed args");
|
||||
error ("%<va_start%> used in function with fixed arguments");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-15 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR c/90474
|
||||
|
|
|
@ -891,7 +891,7 @@ handle_no_sanitize_attribute (tree *node, tree name, tree args, int,
|
|||
tree id = TREE_VALUE (args);
|
||||
if (TREE_CODE (id) != STRING_CST)
|
||||
{
|
||||
error ("no_sanitize argument not a string");
|
||||
error ("%qE argument not a string", name);
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
|
@ -1418,8 +1418,8 @@ handle_scalar_storage_order_attribute (tree *node, tree name, tree args,
|
|||
|
||||
if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
|
||||
{
|
||||
error ("scalar_storage_order is not supported because endianness "
|
||||
"is not uniform");
|
||||
error ("%qE attribute is not supported because endianness is not uniform",
|
||||
name);
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
|
@ -1435,8 +1435,8 @@ handle_scalar_storage_order_attribute (tree *node, tree name, tree args,
|
|||
reverse = BYTES_BIG_ENDIAN;
|
||||
else
|
||||
{
|
||||
error ("scalar_storage_order argument must be one of \"big-endian\""
|
||||
" or \"little-endian\"");
|
||||
error ("attribute %qE argument must be one of %qs or %qs",
|
||||
name, "big-endian", "little-endian");
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
|
@ -1759,9 +1759,9 @@ handle_mode_attribute (tree *node, tree name, tree args,
|
|||
case MODE_VECTOR_ACCUM:
|
||||
case MODE_VECTOR_UACCUM:
|
||||
warning (OPT_Wattributes, "specifying vector types with "
|
||||
"__attribute__ ((mode)) is deprecated");
|
||||
warning (OPT_Wattributes,
|
||||
"use __attribute__ ((vector_size)) instead");
|
||||
"%<__attribute__ ((mode))%> is deprecated");
|
||||
inform (input_location,
|
||||
"use %<__attribute__ ((vector_size))%> instead");
|
||||
valid_mode = vector_mode_valid_p (mode);
|
||||
break;
|
||||
|
||||
|
@ -2671,7 +2671,8 @@ handle_visibility_attribute (tree *node, tree name, tree args,
|
|||
vis = VISIBILITY_PROTECTED;
|
||||
else
|
||||
{
|
||||
error ("visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\"");
|
||||
error ("attribute %qE argument must be one of %qs, %qs, %qs, or %qs",
|
||||
name, "default", "hidden", "protected", "internal");
|
||||
vis = VISIBILITY_DEFAULT;
|
||||
}
|
||||
|
||||
|
@ -2935,8 +2936,8 @@ handle_assume_aligned_attribute (tree *node, tree name, tree args, int,
|
|||
/* The misalignment specified by the second argument
|
||||
must be non-negative and less than the alignment. */
|
||||
warning (OPT_Wattributes,
|
||||
"%qE attribute argument %E is not in the range [0, %E)",
|
||||
name, val, align);
|
||||
"%qE attribute argument %E is not in the range [0, %wu]",
|
||||
name, val, tree_to_uhwi (align) - 1);
|
||||
*no_add_attrs = true;
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
@ -3083,7 +3084,7 @@ handle_no_limit_stack_attribute (tree *node, tree name,
|
|||
else if (DECL_INITIAL (decl))
|
||||
{
|
||||
error_at (DECL_SOURCE_LOCATION (decl),
|
||||
"can%'t set %qE attribute after definition", name);
|
||||
"cannot set %qE attribute after definition", name);
|
||||
*no_add_attrs = true;
|
||||
}
|
||||
else
|
||||
|
@ -3974,7 +3975,7 @@ handle_no_split_stack_attribute (tree *node, tree name,
|
|||
else if (DECL_INITIAL (decl))
|
||||
{
|
||||
error_at (DECL_SOURCE_LOCATION (decl),
|
||||
"can%'t set %qE attribute after definition", name);
|
||||
"cannot set %qE attribute after definition", name);
|
||||
*no_add_attrs = true;
|
||||
}
|
||||
|
||||
|
@ -3985,13 +3986,13 @@ handle_no_split_stack_attribute (tree *node, tree name,
|
|||
struct attribute_spec.handler. */
|
||||
|
||||
static tree
|
||||
handle_returns_nonnull_attribute (tree *node, tree, tree, int,
|
||||
handle_returns_nonnull_attribute (tree *node, tree name, tree, int,
|
||||
bool *no_add_attrs)
|
||||
{
|
||||
// Even without a prototype we still have a return type we can check.
|
||||
if (TREE_CODE (TREE_TYPE (*node)) != POINTER_TYPE)
|
||||
{
|
||||
error ("returns_nonnull attribute on a function not returning a pointer");
|
||||
error ("%qE attribute on a function not returning a pointer", name);
|
||||
*no_add_attrs = true;
|
||||
}
|
||||
return NULL_TREE;
|
||||
|
|
|
@ -3063,14 +3063,16 @@ shorten_compare (location_t loc, tree *op0_ptr, tree *op1_ptr,
|
|||
case GE_EXPR:
|
||||
if (warn)
|
||||
warning_at (loc, OPT_Wtype_limits,
|
||||
"comparison of unsigned expression >= 0 is always true");
|
||||
"comparison of unsigned expression in %<>= 0%> "
|
||||
"is always true");
|
||||
value = truthvalue_true_node;
|
||||
break;
|
||||
|
||||
case LT_EXPR:
|
||||
if (warn)
|
||||
warning_at (loc, OPT_Wtype_limits,
|
||||
"comparison of unsigned expression < 0 is always false");
|
||||
"comparison of unsigned expression in %<< 0%> "
|
||||
"is always false");
|
||||
value = truthvalue_false_node;
|
||||
break;
|
||||
|
||||
|
@ -3379,7 +3381,7 @@ c_common_truthvalue_conversion (location_t location, tree expr)
|
|||
if (TREE_CODE (TREE_TYPE (expr)) == INTEGER_TYPE
|
||||
&& !TYPE_UNSIGNED (TREE_TYPE (expr)))
|
||||
warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context,
|
||||
"%<<<%> in boolean context, did you mean %<<%> ?");
|
||||
"%<<<%> in boolean context, did you mean %<<%>?");
|
||||
break;
|
||||
|
||||
case COND_EXPR:
|
||||
|
@ -3395,7 +3397,7 @@ c_common_truthvalue_conversion (location_t location, tree expr)
|
|||
&& (!integer_onep (val1)
|
||||
|| !integer_onep (val2)))
|
||||
warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context,
|
||||
"?: using integer constants in boolean context, "
|
||||
"%<?:%> using integer constants in boolean context, "
|
||||
"the expression will always evaluate to %<true%>");
|
||||
else if ((TREE_CODE (val1) == INTEGER_CST
|
||||
&& !integer_zerop (val1)
|
||||
|
@ -3404,7 +3406,7 @@ c_common_truthvalue_conversion (location_t location, tree expr)
|
|||
&& !integer_zerop (val2)
|
||||
&& !integer_onep (val2)))
|
||||
warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context,
|
||||
"?: using integer constants in boolean context");
|
||||
"%<?:%> using integer constants in boolean context");
|
||||
}
|
||||
/* Distribute the conversion into the arms of a COND_EXPR. */
|
||||
if (c_dialect_cxx ())
|
||||
|
@ -8259,9 +8261,9 @@ cb_get_source_date_epoch (cpp_reader *pfile ATTRIBUTE_UNUSED)
|
|||
if (errno != 0 || endptr == source_date_epoch || *endptr != '\0'
|
||||
|| epoch < 0 || epoch > MAX_SOURCE_DATE_EPOCH)
|
||||
{
|
||||
error_at (input_location, "environment variable SOURCE_DATE_EPOCH must "
|
||||
error_at (input_location, "environment variable %qs must "
|
||||
"expand to a non-negative integer less than or equal to %wd",
|
||||
MAX_SOURCE_DATE_EPOCH);
|
||||
"SOURCE_DATE_EPOCH", MAX_SOURCE_DATE_EPOCH);
|
||||
return (time_t) -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -258,7 +258,7 @@ cb_def_pragma (cpp_reader *pfile, location_t loc)
|
|||
name = cpp_token_as_text (pfile, s);
|
||||
}
|
||||
|
||||
warning_at (fe_loc, OPT_Wunknown_pragmas, "ignoring #pragma %s %s",
|
||||
warning_at (fe_loc, OPT_Wunknown_pragmas, "ignoring %<#pragma %s %s%>",
|
||||
space, name);
|
||||
}
|
||||
}
|
||||
|
@ -818,7 +818,7 @@ interpret_float (const cpp_token *token, unsigned int flags,
|
|||
if (((flags & CPP_N_HEX) == 0) && ((flags & CPP_N_IMAGINARY) == 0))
|
||||
{
|
||||
warning (OPT_Wunsuffixed_float_constants,
|
||||
"unsuffixed float constant");
|
||||
"unsuffixed floating constant");
|
||||
if (float_const_decimal64_p ())
|
||||
flags |= CPP_N_DFLOAT;
|
||||
}
|
||||
|
|
|
@ -974,7 +974,7 @@ c_finish_omp_for (location_t locus, enum tree_code code, tree declv,
|
|||
{
|
||||
error_at (elocus,
|
||||
"increment is not constant 1 or "
|
||||
"-1 for != condition");
|
||||
"-1 for %<!=%> condition");
|
||||
fail = true;
|
||||
}
|
||||
}
|
||||
|
@ -992,7 +992,7 @@ c_finish_omp_for (location_t locus, enum tree_code code, tree declv,
|
|||
{
|
||||
error_at (elocus,
|
||||
"increment is not constant 1 or -1 for"
|
||||
" != condition");
|
||||
" %<!=%> condition");
|
||||
fail = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1022,8 +1022,8 @@ c_common_post_options (const char **pfilename)
|
|||
warn_return_type = 1;
|
||||
|
||||
if (num_in_fnames > 1)
|
||||
error ("too many filenames given. Type %s --help for usage",
|
||||
progname);
|
||||
error ("too many filenames given; type %<%s %s%> for usage",
|
||||
progname, "--help");
|
||||
|
||||
if (flag_preprocess_only)
|
||||
{
|
||||
|
@ -1057,7 +1057,7 @@ c_common_post_options (const char **pfilename)
|
|||
debug formats we warn here and refuse to load any PCH files. */
|
||||
if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
|
||||
warning (OPT_Wdeprecated,
|
||||
"the \"%s\" debug format cannot be used with "
|
||||
"the %qs debug format cannot be used with "
|
||||
"pre-compiled headers", debug_type_names[write_symbols]);
|
||||
}
|
||||
else if (write_symbols != NO_DEBUG && write_symbols != DWARF2_DEBUG)
|
||||
|
|
|
@ -103,7 +103,7 @@ pch_init (void)
|
|||
|
||||
f = fopen (pch_file, "w+b");
|
||||
if (f == NULL)
|
||||
fatal_error (input_location, "can%'t create precompiled header %s: %m",
|
||||
fatal_error (input_location, "cannot create precompiled header %s: %m",
|
||||
pch_file);
|
||||
pch_outfile = f;
|
||||
|
||||
|
@ -124,7 +124,7 @@ pch_init (void)
|
|||
|| fwrite (executable_checksum, 16, 1, f) != 1
|
||||
|| fwrite (&v, sizeof (v), 1, f) != 1
|
||||
|| fwrite (target_validity, v.target_data_length, 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t write to %s: %m", pch_file);
|
||||
fatal_error (input_location, "cannot write to %s: %m", pch_file);
|
||||
|
||||
/* Let the debugging format deal with the PCHness. */
|
||||
(*debug_hooks->handle_pch) (0);
|
||||
|
@ -182,7 +182,7 @@ c_common_write_pch (void)
|
|||
|
||||
if (fseek (pch_outfile, 0, SEEK_SET) != 0
|
||||
|| fwrite (get_ident (), IDENT_LENGTH, 1, pch_outfile) != 1)
|
||||
fatal_error (input_location, "can%'t write %s: %m", pch_file);
|
||||
fatal_error (input_location, "cannot write %s: %m", pch_file);
|
||||
|
||||
fclose (pch_outfile);
|
||||
|
||||
|
@ -208,7 +208,7 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
|
|||
|
||||
sizeread = read (fd, ident, IDENT_LENGTH + 16);
|
||||
if (sizeread == -1)
|
||||
fatal_error (input_location, "can%'t read %s: %m", name);
|
||||
fatal_error (input_location, "cannot read %s: %m", name);
|
||||
else if (sizeread != IDENT_LENGTH + 16)
|
||||
{
|
||||
if (cpp_get_options (pfile)->warn_invalid_pch)
|
||||
|
@ -249,7 +249,7 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
|
|||
executable, so it ought to be long enough that we can read a
|
||||
c_pch_validity structure. */
|
||||
if (read (fd, &v, sizeof (v)) != sizeof (v))
|
||||
fatal_error (input_location, "can%'t read %s: %m", name);
|
||||
fatal_error (input_location, "cannot read %s: %m", name);
|
||||
|
||||
/* The allowable debug info combinations are that either the PCH file
|
||||
was built with the same as is being used now, or the PCH file was
|
||||
|
@ -300,7 +300,7 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
|
|||
|
||||
if ((size_t) read (fd, this_file_data, v.target_data_length)
|
||||
!= v.target_data_length)
|
||||
fatal_error (input_location, "can%'t read %s: %m", name);
|
||||
fatal_error (input_location, "cannot read %s: %m", name);
|
||||
msg = targetm.pch_valid_p (this_file_data, v.target_data_length);
|
||||
free (this_file_data);
|
||||
if (msg != NULL)
|
||||
|
@ -406,9 +406,9 @@ c_common_pch_pragma (cpp_reader *pfile, const char *name)
|
|||
|
||||
if (!cpp_get_options (pfile)->preprocessed)
|
||||
{
|
||||
error ("pch_preprocess pragma should only be used "
|
||||
error ("%<pch_preprocess%> pragma should only be used "
|
||||
"with %<-fpreprocessed%>");
|
||||
inform (input_location, "use #include instead");
|
||||
inform (input_location, "use %<#include%> instead");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,8 @@ pop_alignment (tree id)
|
|||
align_stack * entry;
|
||||
|
||||
if (alignment_stack == NULL)
|
||||
GCC_BAD ("#pragma pack (pop) encountered without matching #pragma pack (push)");
|
||||
GCC_BAD ("%<#pragma pack (pop)%> encountered without matching "
|
||||
"%<#pragma pack (push)%>");
|
||||
|
||||
/* If we got an identifier, strip away everything above the target
|
||||
entry so that the next step will restore the state just below it. */
|
||||
|
@ -104,8 +105,9 @@ pop_alignment (tree id)
|
|||
break;
|
||||
}
|
||||
if (entry == NULL)
|
||||
warning (OPT_Wpragmas, "\
|
||||
#pragma pack(pop, %E) encountered without matching #pragma pack(push, %E)"
|
||||
warning (OPT_Wpragmas,
|
||||
"%<#pragma pack(pop, %E)%> encountered without matching "
|
||||
"%<#pragma pack(push, %E)%>"
|
||||
, id, id);
|
||||
}
|
||||
|
||||
|
@ -197,7 +199,7 @@ handle_pragma_pack (cpp_reader * ARG_UNUSED (dummy))
|
|||
warning (OPT_Wpragmas, "junk at end of %<#pragma pack%>");
|
||||
|
||||
if (flag_pack_struct)
|
||||
GCC_BAD ("#pragma pack has no effect with %<-fpack-struct%> - ignored");
|
||||
GCC_BAD ("%<#pragma pack%> has no effect with %<-fpack-struct%> - ignored");
|
||||
|
||||
if (action != pop)
|
||||
switch (align)
|
||||
|
@ -257,7 +259,7 @@ apply_pragma_weak (tree decl, tree value)
|
|||
&& !DECL_WEAK (decl) /* Don't complain about a redundant #pragma. */
|
||||
&& DECL_ASSEMBLER_NAME_SET_P (decl)
|
||||
&& TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
|
||||
warning (OPT_Wpragmas, "applying #pragma weak %q+D after first use "
|
||||
warning (OPT_Wpragmas, "applying %<#pragma weak %+D%> after first use "
|
||||
"results in unspecified behavior", decl);
|
||||
|
||||
declare_weak (decl);
|
||||
|
@ -354,12 +356,12 @@ handle_pragma_weak (cpp_reader * ARG_UNUSED (dummy))
|
|||
value = 0;
|
||||
|
||||
if (pragma_lex (&name) != CPP_NAME)
|
||||
GCC_BAD ("malformed #pragma weak, ignored");
|
||||
GCC_BAD ("malformed %<#pragma weak%>, ignored");
|
||||
t = pragma_lex (&x);
|
||||
if (t == CPP_EQ)
|
||||
{
|
||||
if (pragma_lex (&value) != CPP_NAME)
|
||||
GCC_BAD ("malformed #pragma weak, ignored");
|
||||
GCC_BAD ("%<malformed #pragma weak%>, ignored");
|
||||
t = pragma_lex (&x);
|
||||
}
|
||||
if (t != CPP_EOF)
|
||||
|
@ -417,7 +419,7 @@ handle_pragma_scalar_storage_order (cpp_reader *ARG_UNUSED(dummy))
|
|||
|
||||
if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
|
||||
{
|
||||
error ("scalar_storage_order is not supported because endianness "
|
||||
error ("%<scalar_storage_order%> is not supported because endianness "
|
||||
"is not uniform");
|
||||
return;
|
||||
}
|
||||
|
@ -495,9 +497,9 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
|
|||
bool found;
|
||||
|
||||
if (pragma_lex (&oldname) != CPP_NAME)
|
||||
GCC_BAD ("malformed #pragma redefine_extname, ignored");
|
||||
GCC_BAD ("malformed %<#pragma redefine_extname%>, ignored");
|
||||
if (pragma_lex (&newname) != CPP_NAME)
|
||||
GCC_BAD ("malformed #pragma redefine_extname, ignored");
|
||||
GCC_BAD ("malformed %<#pragma redefine_extname%>, ignored");
|
||||
t = pragma_lex (&x);
|
||||
if (t != CPP_EOF)
|
||||
warning (OPT_Wpragmas, "junk at end of %<#pragma redefine_extname%>");
|
||||
|
@ -528,8 +530,8 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
|
|||
name = targetm.strip_name_encoding (name);
|
||||
|
||||
if (!id_equal (newname, name))
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous rename");
|
||||
warning (OPT_Wpragmas, "%<#pragma redefine_extname%> "
|
||||
"ignored due to conflict with previous rename");
|
||||
}
|
||||
else
|
||||
symtab->change_decl_assembler_name (decl, newname);
|
||||
|
@ -556,8 +558,8 @@ add_to_renaming_pragma_list (tree oldname, tree newname)
|
|||
if (oldname == p->oldname)
|
||||
{
|
||||
if (p->newname != newname)
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous #pragma redefine_extname");
|
||||
warning (OPT_Wpragmas, "%<#pragma redefine_extname%> ignored due to "
|
||||
"conflict with previous %<#pragma redefine_extname%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -592,7 +594,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
|||
oldname = targetm.strip_name_encoding (oldname);
|
||||
|
||||
if (asmname && strcmp (TREE_STRING_POINTER (asmname), oldname))
|
||||
warning (OPT_Wpragmas, "asm declaration ignored due to "
|
||||
warning (OPT_Wpragmas, "%<asm%> declaration ignored due to "
|
||||
"conflict with previous rename");
|
||||
|
||||
/* Take any pending redefine_extname off the list. */
|
||||
|
@ -601,8 +603,8 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
|||
{
|
||||
/* Only warn if there is a conflict. */
|
||||
if (!id_equal (p->newname, oldname))
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous rename");
|
||||
warning (OPT_Wpragmas, "%<#pragma redefine_extname%> ignored "
|
||||
"due to conflict with previous rename");
|
||||
|
||||
pending_redefine_extname->unordered_remove (ix);
|
||||
break;
|
||||
|
@ -623,8 +625,8 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
|||
{
|
||||
if (strcmp (TREE_STRING_POINTER (asmname),
|
||||
IDENTIFIER_POINTER (newname)) != 0)
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with __asm__ declaration");
|
||||
warning (OPT_Wpragmas, "%<#pragma redefine_extname%> ignored "
|
||||
"due to conflict with %<asm%> declaration");
|
||||
return asmname;
|
||||
}
|
||||
|
||||
|
@ -684,7 +686,8 @@ push_visibility (const char *str, int kind)
|
|||
else if (!strcmp (str, "protected"))
|
||||
default_visibility = VISIBILITY_PROTECTED;
|
||||
else
|
||||
GCC_BAD ("#pragma GCC visibility push() must specify default, internal, hidden or protected");
|
||||
GCC_BAD ("%<#pragma GCC visibility push()%> must specify %<default%>, "
|
||||
"%<internal%>, %<hidden%> or %<protected%>");
|
||||
visibility_options.inpragma = 1;
|
||||
}
|
||||
|
||||
|
@ -726,7 +729,8 @@ handle_pragma_visibility (cpp_reader *dummy ATTRIBUTE_UNUSED)
|
|||
action = pop;
|
||||
}
|
||||
if (bad == action)
|
||||
GCC_BAD ("#pragma GCC visibility must be followed by push or pop");
|
||||
GCC_BAD ("%<#pragma GCC visibility%> must be followed by %<push%> "
|
||||
"or %<pop%>");
|
||||
else
|
||||
{
|
||||
if (pop == action)
|
||||
|
@ -740,7 +744,7 @@ handle_pragma_visibility (cpp_reader *dummy ATTRIBUTE_UNUSED)
|
|||
GCC_BAD ("missing %<(%> after %<#pragma GCC visibility push%> - ignored");
|
||||
token = pragma_lex (&x);
|
||||
if (token != CPP_NAME)
|
||||
GCC_BAD ("malformed #pragma GCC visibility push");
|
||||
GCC_BAD ("malformed %<#pragma GCC visibility push%>");
|
||||
else
|
||||
push_visibility (IDENTIFIER_POINTER (x), 0);
|
||||
if (pragma_lex (&x) != CPP_CLOSE_PAREN)
|
||||
|
@ -860,7 +864,7 @@ handle_pragma_target(cpp_reader *ARG_UNUSED(dummy))
|
|||
|
||||
if (cfun)
|
||||
{
|
||||
error ("#pragma GCC option is not allowed inside functions");
|
||||
error ("%<#pragma GCC option%> is not allowed inside functions");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -906,7 +910,7 @@ handle_pragma_target(cpp_reader *ARG_UNUSED(dummy))
|
|||
|
||||
if (token != CPP_EOF)
|
||||
{
|
||||
error ("#pragma GCC target string... is badly formed");
|
||||
error ("%<#pragma GCC target%> string is badly formed");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -929,7 +933,7 @@ handle_pragma_optimize (cpp_reader *ARG_UNUSED(dummy))
|
|||
|
||||
if (cfun)
|
||||
{
|
||||
error ("#pragma GCC optimize is not allowed inside functions");
|
||||
error ("%<#pragma GCC optimize%> is not allowed inside functions");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -974,7 +978,7 @@ handle_pragma_optimize (cpp_reader *ARG_UNUSED(dummy))
|
|||
|
||||
if (token != CPP_EOF)
|
||||
{
|
||||
error ("#pragma GCC optimize string... is badly formed");
|
||||
error ("%<#pragma GCC optimize%> string is badly formed");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1147,7 +1151,8 @@ handle_pragma_message (cpp_reader *ARG_UNUSED(dummy))
|
|||
warning (OPT_Wpragmas, "junk at end of %<#pragma message%>");
|
||||
|
||||
if (TREE_STRING_LENGTH (message) > 1)
|
||||
inform (input_location, "#pragma message: %s", TREE_STRING_POINTER (message));
|
||||
inform (input_location, "%<#pragma message: %s%>",
|
||||
TREE_STRING_POINTER (message));
|
||||
}
|
||||
|
||||
/* Mark whether the current location is valid for a STDC pragma. */
|
||||
|
|
|
@ -1663,7 +1663,7 @@ warn_for_omitted_condop (location_t location, tree cond)
|
|||
|| (TREE_TYPE (cond) != NULL_TREE
|
||||
&& TREE_CODE (TREE_TYPE (cond)) == BOOLEAN_TYPE))
|
||||
warning_at (location, OPT_Wparentheses,
|
||||
"the omitted middle operand in ?: will always be %<true%>, "
|
||||
"the omitted middle operand in %<?:%> will always be %<true%>, "
|
||||
"suggest explicit middle operand");
|
||||
}
|
||||
|
||||
|
@ -1762,7 +1762,7 @@ lvalue_error (location_t loc, enum lvalue_use use)
|
|||
error_at (loc, "lvalue required as unary %<&%> operand");
|
||||
break;
|
||||
case lv_asm:
|
||||
error_at (loc, "lvalue required in asm statement");
|
||||
error_at (loc, "lvalue required in %<asm%> statement");
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
|
|
|
@ -562,6 +562,10 @@ Wformat-contains-nul
|
|||
C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
|
||||
Warn about format strings that contain NUL bytes.
|
||||
|
||||
Wformat-diag
|
||||
C ObjC C++ ObjC++ Var(warn_format_diag) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
|
||||
Warn about GCC format strings with strings unsuitable for diagnostics..
|
||||
|
||||
Wformat-extra-args
|
||||
C ObjC C++ ObjC++ Var(warn_format_extra_args) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 1, 0)
|
||||
Warn if passing too many arguments to a function for its format string.
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-17 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
|
||||
|
|
|
@ -1780,15 +1780,16 @@ diagnose_arglist_conflict (tree newdecl, tree olddecl,
|
|||
if (TREE_CHAIN (t) == NULL_TREE
|
||||
&& TYPE_MAIN_VARIANT (type) != void_type_node)
|
||||
{
|
||||
inform (input_location, "a parameter list with an ellipsis can%'t match "
|
||||
"an empty parameter name list declaration");
|
||||
inform (input_location, "a parameter list with an ellipsis "
|
||||
"cannot match an empty parameter name list declaration");
|
||||
break;
|
||||
}
|
||||
|
||||
if (c_type_promotes_to (type) != type)
|
||||
{
|
||||
inform (input_location, "an argument type that has a default promotion can%'t match "
|
||||
"an empty parameter name list declaration");
|
||||
inform (input_location, "an argument type that has a default "
|
||||
"promotion cannot match an empty parameter name list "
|
||||
"declaration");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -4887,7 +4888,7 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
|
|||
switch (TREE_CODE (decl))
|
||||
{
|
||||
case TYPE_DECL:
|
||||
error ("typedef %qD is initialized (use __typeof__ instead)", decl);
|
||||
error ("typedef %qD is initialized (use %<__typeof__%> instead)", decl);
|
||||
initialized = false;
|
||||
break;
|
||||
|
||||
|
@ -5282,7 +5283,7 @@ finish_decl (tree decl, location_t init_loc, tree init,
|
|||
&& VAR_P (decl)
|
||||
&& !C_DECL_REGISTER (decl)
|
||||
&& !TREE_STATIC (decl))
|
||||
warning (0, "ignoring asm-specifier for non-static local "
|
||||
warning (0, "ignoring %<asm%> specifier for non-static local "
|
||||
"variable %q+D", decl);
|
||||
else
|
||||
set_user_assembler_name (decl, asmspec);
|
||||
|
@ -5725,10 +5726,10 @@ warn_variable_length_array (tree name, tree size)
|
|||
if (name)
|
||||
pedwarn_c90 (input_location, OPT_Wvla,
|
||||
"ISO C90 forbids array %qE whose size "
|
||||
"can%'t be evaluated", name);
|
||||
"cannot be evaluated", name);
|
||||
else
|
||||
pedwarn_c90 (input_location, OPT_Wvla, "ISO C90 forbids array "
|
||||
"whose size can%'t be evaluated");
|
||||
"whose size cannot be evaluated");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -6401,7 +6401,7 @@ c_parser_asm_statement (c_parser *parser)
|
|||
case RID_VOLATILE:
|
||||
if (volatile_loc)
|
||||
{
|
||||
error_at (loc, "duplicate asm qualifier %qE", token->value);
|
||||
error_at (loc, "duplicate %<asm%> qualifier %qE", token->value);
|
||||
inform (volatile_loc, "first seen here");
|
||||
}
|
||||
else
|
||||
|
@ -6412,7 +6412,7 @@ c_parser_asm_statement (c_parser *parser)
|
|||
case RID_INLINE:
|
||||
if (inline_loc)
|
||||
{
|
||||
error_at (loc, "duplicate asm qualifier %qE", token->value);
|
||||
error_at (loc, "duplicate %<asm%> qualifier %qE", token->value);
|
||||
inform (inline_loc, "first seen here");
|
||||
}
|
||||
else
|
||||
|
@ -6423,7 +6423,7 @@ c_parser_asm_statement (c_parser *parser)
|
|||
case RID_GOTO:
|
||||
if (goto_loc)
|
||||
{
|
||||
error_at (loc, "duplicate asm qualifier %qE", token->value);
|
||||
error_at (loc, "duplicate %<asm%> qualifier %qE", token->value);
|
||||
inform (goto_loc, "first seen here");
|
||||
}
|
||||
else
|
||||
|
@ -6433,7 +6433,7 @@ c_parser_asm_statement (c_parser *parser)
|
|||
|
||||
case RID_CONST:
|
||||
case RID_RESTRICT:
|
||||
error_at (loc, "%qE is not an asm qualifier", token->value);
|
||||
error_at (loc, "%qE is not a valid %<asm%> qualifier", token->value);
|
||||
c_parser_consume_token (parser);
|
||||
continue;
|
||||
|
||||
|
@ -6791,7 +6791,7 @@ c_parser_conditional_expression (c_parser *parser, struct c_expr *after,
|
|||
|
||||
location_t middle_loc = c_parser_peek_token (parser)->location;
|
||||
pedwarn (middle_loc, OPT_Wpedantic,
|
||||
"ISO C forbids omitting the middle term of a ?: expression");
|
||||
"ISO C forbids omitting the middle term of a %<?:%> expression");
|
||||
if (TREE_CODE (cond.value) == EXCESS_PRECISION_EXPR)
|
||||
{
|
||||
eptype = TREE_TYPE (cond.value);
|
||||
|
@ -19825,8 +19825,8 @@ c_parser_transaction_cancel (c_parser *parser)
|
|||
&& !is_tm_may_cancel_outer (current_function_decl))
|
||||
{
|
||||
error_at (loc, "outer %<__transaction_cancel%> not "
|
||||
"within outer %<__transaction_atomic%>");
|
||||
error_at (loc, " or a %<transaction_may_cancel_outer%> function");
|
||||
"within outer %<__transaction_atomic%> or "
|
||||
"a %<transaction_may_cancel_outer%> function");
|
||||
goto ret_error;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -743,17 +743,18 @@ c_common_type (tree t1, tree t2)
|
|||
{
|
||||
if (code1 == VECTOR_TYPE || code2 == VECTOR_TYPE)
|
||||
{
|
||||
error ("can%'t mix operands of decimal float and vector types");
|
||||
error ("cannot mix operands of decimal floating and vector types");
|
||||
return error_mark_node;
|
||||
}
|
||||
if (code1 == COMPLEX_TYPE || code2 == COMPLEX_TYPE)
|
||||
{
|
||||
error ("can%'t mix operands of decimal float and complex types");
|
||||
error ("cannot mix operands of decimal floating and complex types");
|
||||
return error_mark_node;
|
||||
}
|
||||
if (code1 == REAL_TYPE && code2 == REAL_TYPE)
|
||||
{
|
||||
error ("can%'t mix operands of decimal float and other float types");
|
||||
error ("cannot mix operands of decimal floating "
|
||||
"and other floating types");
|
||||
return error_mark_node;
|
||||
}
|
||||
}
|
||||
|
@ -5253,13 +5254,13 @@ build_conditional_expr (location_t colon_loc, tree ifexp, bool ifexp_bcp,
|
|||
/* OK */;
|
||||
else if (unsigned_op2)
|
||||
warning_at (op1_loc, OPT_Wsign_compare,
|
||||
"operand of ?: changes signedness from "
|
||||
"operand of %<?:%> changes signedness from "
|
||||
"%qT to %qT due to unsignedness of other "
|
||||
"operand", TREE_TYPE (orig_op1),
|
||||
TREE_TYPE (orig_op2));
|
||||
else
|
||||
warning_at (op2_loc, OPT_Wsign_compare,
|
||||
"operand of ?: changes signedness from "
|
||||
"operand of %<?:%> changes signedness from "
|
||||
"%qT to %qT due to unsignedness of other "
|
||||
"operand", TREE_TYPE (orig_op2),
|
||||
TREE_TYPE (orig_op1));
|
||||
|
@ -7764,13 +7765,13 @@ digest_init (location_t init_loc, tree type, tree init, tree origtype,
|
|||
that is counted in the length of the constant. */
|
||||
if (compare_tree_int (TYPE_SIZE_UNIT (type), len - unit) < 0)
|
||||
pedwarn_init (init_loc, 0,
|
||||
("initializer-string for array of chars "
|
||||
"is too long"));
|
||||
("initializer-string for array of %qT "
|
||||
"is too long"), typ1);
|
||||
else if (warn_cxx_compat
|
||||
&& compare_tree_int (TYPE_SIZE_UNIT (type), len) < 0)
|
||||
warning_at (init_loc, OPT_Wc___compat,
|
||||
("initializer-string for array chars "
|
||||
"is too long for C++"));
|
||||
("initializer-string for array of %qT "
|
||||
"is too long for C++"), typ1);
|
||||
if (compare_tree_int (TYPE_SIZE_UNIT (type), len) < 0)
|
||||
{
|
||||
unsigned HOST_WIDE_INT size
|
||||
|
@ -9888,7 +9889,7 @@ process_init_element (location_t loc, struct c_expr value, bool implicit,
|
|||
&& integer_zerop (constructor_unfilled_index))
|
||||
{
|
||||
if (constructor_stack->replacement_value.value)
|
||||
error_init (loc, "excess elements in char array initializer");
|
||||
error_init (loc, "excess elements in %<char%> array initializer");
|
||||
constructor_stack->replacement_value = value;
|
||||
return;
|
||||
}
|
||||
|
@ -11937,7 +11938,7 @@ build_binary_op (location_t location, enum tree_code code,
|
|||
if (FLOAT_TYPE_P (type0) || FLOAT_TYPE_P (type1))
|
||||
warning_at (location,
|
||||
OPT_Wfloat_equal,
|
||||
"comparing floating point with == or != is unsafe");
|
||||
"comparing floating point with %<==%> or %<!=%> is unsafe");
|
||||
/* Result of comparison is always int,
|
||||
but don't convert the args to int! */
|
||||
build_type = integer_type_node;
|
||||
|
|
|
@ -1702,7 +1702,7 @@ expand_one_var (tree var, bool toplevel, bool really_expand)
|
|||
{
|
||||
if (lookup_attribute ("naked",
|
||||
DECL_ATTRIBUTES (current_function_decl)))
|
||||
error ("cannot allocate stack for variable %q+D, naked function.",
|
||||
error ("cannot allocate stack for variable %q+D, naked function",
|
||||
var);
|
||||
|
||||
expand_one_stack_var (origvar);
|
||||
|
@ -2840,7 +2840,8 @@ tree_conflicts_with_clobbers_p (tree t, HARD_REG_SET *clobbered_regs)
|
|||
|
||||
if (overlap)
|
||||
{
|
||||
error ("asm-specifier for variable %qE conflicts with asm clobber list",
|
||||
error ("%<asm%> specifier for variable %qE conflicts with "
|
||||
"%<asm%> clobber list",
|
||||
DECL_NAME (overlap));
|
||||
|
||||
/* Reset registerness to stop multiple errors emitted for a single
|
||||
|
@ -3262,7 +3263,8 @@ expand_asm_stmt (gasm *stmt)
|
|||
if (allows_reg && TYPE_MODE (type) != BLKmode)
|
||||
op = force_reg (TYPE_MODE (type), op);
|
||||
else if (!allows_mem)
|
||||
warning (0, "asm operand %d probably doesn%'t match constraints",
|
||||
warning (0, "%<asm%> operand %d probably does not match "
|
||||
"constraints",
|
||||
i + noutputs);
|
||||
else if (MEM_P (op))
|
||||
{
|
||||
|
@ -3445,11 +3447,13 @@ expand_asm_stmt (gasm *stmt)
|
|||
tripping over the under-construction body. */
|
||||
for (unsigned k = 0; k < noutputs; ++k)
|
||||
if (reg_overlap_mentioned_p (clobbered_reg, output_rvec[k]))
|
||||
internal_error ("asm clobber conflict with output operand");
|
||||
internal_error ("%<asm%> clobber conflict with "
|
||||
"output operand");
|
||||
|
||||
for (unsigned k = 0; k < ninputs - ninout; ++k)
|
||||
if (reg_overlap_mentioned_p (clobbered_reg, input_rvec[k]))
|
||||
internal_error ("asm clobber conflict with input operand");
|
||||
internal_error ("%<asm%> clobber conflict with "
|
||||
"input operand");
|
||||
}
|
||||
|
||||
XVECEXP (body, 0, i++) = gen_rtx_CLOBBER (VOIDmode, clobbered_reg);
|
||||
|
|
|
@ -796,8 +796,8 @@ process_function_and_variable_attributes (cgraph_node *first,
|
|||
/* redefining extern inline function makes it DECL_UNINLINABLE. */
|
||||
&& !DECL_UNINLINABLE (decl))
|
||||
warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes,
|
||||
"always_inline function might not be inlinable");
|
||||
|
||||
"%<always_inline%> function might not be inlinable");
|
||||
|
||||
process_common_attributes (node, decl);
|
||||
}
|
||||
for (vnode = symtab->first_variable (); vnode != first_var;
|
||||
|
|
|
@ -65,7 +65,7 @@ collect_wait (const char *prog, struct pex_obj *pex)
|
|||
int status;
|
||||
|
||||
if (!pex_get_status (pex, 1, &status))
|
||||
fatal_error (input_location, "can%'t get program status: %m");
|
||||
fatal_error (input_location, "cannot get program status: %m");
|
||||
pex_free (pex);
|
||||
|
||||
if (response_file && !save_temps)
|
||||
|
@ -180,7 +180,7 @@ collect_execute (const char *prog, char **argv, const char *outname,
|
|||
|
||||
pex = pex_init (0, "collect2", NULL);
|
||||
if (pex == NULL)
|
||||
fatal_error (input_location, "pex_init failed: %m");
|
||||
fatal_error (input_location, "%<pex_init%> failed: %m");
|
||||
|
||||
errmsg = pex_run (pex, flags, argv[0], argv, outname,
|
||||
errname, &err);
|
||||
|
|
|
@ -701,7 +701,8 @@ maybe_run_lto_and_relink (char **lto_ld_argv, char **object_lst,
|
|||
size_t num_files;
|
||||
|
||||
if (!lto_wrapper)
|
||||
fatal_error (input_location, "COLLECT_LTO_WRAPPER must be set");
|
||||
fatal_error (input_location, "environment variable "
|
||||
"%<COLLECT_LTO_WRAPPER%> must be set");
|
||||
|
||||
num_lto_c_args++;
|
||||
|
||||
|
@ -1396,7 +1397,7 @@ main (int argc, char **argv)
|
|||
|
||||
stream = fopen (list_filename, "r");
|
||||
if (stream == NULL)
|
||||
fatal_error (input_location, "can%'t open %s: %m",
|
||||
fatal_error (input_location, "cannot open %s: %m",
|
||||
list_filename);
|
||||
|
||||
while (fgets (buf, sizeof buf, stream) != NULL)
|
||||
|
@ -2382,7 +2383,7 @@ is_lto_object_file (const char *prog_name)
|
|||
return true;
|
||||
|
||||
if (errmsg)
|
||||
fatal_error (0, "%s: %s\n", errmsg, xstrerror (err));
|
||||
fatal_error (0, "%s: %s", errmsg, xstrerror (err));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -2448,7 +2449,7 @@ scan_prog_file (const char *prog_name, scanpass which_pass,
|
|||
|
||||
pex = pex_init (PEX_USE_PIPES, "collect2", NULL);
|
||||
if (pex == NULL)
|
||||
fatal_error (input_location, "pex_init failed: %m");
|
||||
fatal_error (input_location, "%<pex_init%> failed: %m");
|
||||
|
||||
errmsg = pex_run (pex, 0, nm_file_name, real_nm_argv, NULL, HOST_BIT_BUCKET,
|
||||
&err);
|
||||
|
@ -2470,7 +2471,7 @@ scan_prog_file (const char *prog_name, scanpass which_pass,
|
|||
|
||||
inf = pex_read_output (pex, 0);
|
||||
if (inf == NULL)
|
||||
fatal_error (input_location, "can%'t open nm output: %m");
|
||||
fatal_error (input_location, "cannot open nm output: %m");
|
||||
|
||||
if (debug)
|
||||
fprintf (stderr, "\nnm output with constructors/destructors.\n");
|
||||
|
@ -2639,7 +2640,7 @@ scan_libraries (const char *prog_name)
|
|||
|
||||
inf = pex_read_output (pex, 0);
|
||||
if (inf == NULL)
|
||||
fatal_error (input_location, "can%'t open ldd output: %m");
|
||||
fatal_error (input_location, "cannot open ldd output: %m");
|
||||
|
||||
if (debug)
|
||||
notice ("\nldd output with constructors/destructors.\n");
|
||||
|
|
|
@ -11828,9 +11828,9 @@ aarch64_validate_mbranch_protection (const char *const_str)
|
|||
enum aarch64_parse_opt_result res =
|
||||
aarch64_parse_branch_protection (const_str, &str);
|
||||
if (res == AARCH64_PARSE_INVALID_ARG)
|
||||
error ("invalid arg %<%s%> for %<-mbranch-protection=%>", str);
|
||||
error ("invalid argument %<%s%> for %<-mbranch-protection=%>", str);
|
||||
else if (res == AARCH64_PARSE_MISSING_ARG)
|
||||
error ("missing arg for %<-mbranch-protection=%>");
|
||||
error ("missing argument for %<-mbranch-protection=%>");
|
||||
free (str);
|
||||
return res == AARCH64_PARSE_OK;
|
||||
}
|
||||
|
|
|
@ -7969,7 +7969,7 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
|
|||
if (fndecl
|
||||
&& (lookup_attribute ("interrupt",
|
||||
TYPE_ATTRIBUTES (TREE_TYPE (fndecl)))))
|
||||
error ("interrupt service routine can%'t be called directly");
|
||||
error ("interrupt service routine cannot be called directly");
|
||||
}
|
||||
else
|
||||
fndecl = NULL_TREE;
|
||||
|
@ -10761,7 +10761,8 @@ get_element_number (tree vec_type, tree arg)
|
|||
if (!tree_fits_uhwi_p (arg)
|
||||
|| (elt = tree_to_uhwi (arg), elt > max))
|
||||
{
|
||||
error ("selector must be an integer constant in the range 0..%wi", max);
|
||||
error ("selector must be an integer constant in the range "
|
||||
"[0, %wi]", max);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -2447,7 +2447,7 @@ ix86_mangle_function_version_assembler_name (tree decl, tree id)
|
|||
&& lookup_attribute ("gnu_inline",
|
||||
DECL_ATTRIBUTES (decl)))
|
||||
error_at (DECL_SOURCE_LOCATION (decl),
|
||||
"function versions cannot be marked as gnu_inline,"
|
||||
"function versions cannot be marked as %<gnu_inline%>,"
|
||||
" bodies have to be generated");
|
||||
|
||||
if (DECL_VIRTUAL_P (decl)
|
||||
|
|
|
@ -3462,7 +3462,8 @@ ix86_handle_abi_attribute (tree *node, tree name, tree, int,
|
|||
{
|
||||
if (lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (*node)))
|
||||
{
|
||||
error ("ms_abi and sysv_abi attributes are not compatible");
|
||||
error ("%qs and %qs attributes are not compatible",
|
||||
"ms_abi", "sysv_abi");
|
||||
}
|
||||
|
||||
return NULL_TREE;
|
||||
|
@ -3471,7 +3472,8 @@ ix86_handle_abi_attribute (tree *node, tree name, tree, int,
|
|||
{
|
||||
if (lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (*node)))
|
||||
{
|
||||
error ("ms_abi and sysv_abi attributes are not compatible");
|
||||
error ("%qs and %qs attributes are not compatible",
|
||||
"ms_abi", "sysv_abi");
|
||||
}
|
||||
|
||||
return NULL_TREE;
|
||||
|
@ -3582,7 +3584,7 @@ ix86_handle_interrupt_attribute (tree *node, tree, tree, int, bool *)
|
|||
error ("interrupt service routine can only have a pointer argument "
|
||||
"and an optional integer argument");
|
||||
if (! VOID_TYPE_P (return_type))
|
||||
error ("interrupt service routine can%'t have non-void return value");
|
||||
error ("interrupt service routine must return %<void%>");
|
||||
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
|
|
@ -1525,7 +1525,7 @@ ix86_function_type_abi (const_tree fntype)
|
|||
static int warned;
|
||||
if (TARGET_X32 && !warned)
|
||||
{
|
||||
error ("X32 does not support ms_abi attribute");
|
||||
error ("X32 does not support %<ms_abi%> attribute");
|
||||
warned = 1;
|
||||
}
|
||||
|
||||
|
@ -1559,7 +1559,8 @@ ix86_function_ms_hook_prologue (const_tree fn)
|
|||
{
|
||||
if (decl_function_context (fn) != NULL_TREE)
|
||||
error_at (DECL_SOURCE_LOCATION (fn),
|
||||
"ms_hook_prologue is not compatible with nested function");
|
||||
"%<ms_hook_prologue%> attribute is not compatible "
|
||||
"with nested function");
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
@ -2266,7 +2267,7 @@ classify_argument (machine_mode mode, const_tree type,
|
|||
{
|
||||
warned = true;
|
||||
inform (input_location,
|
||||
"the ABI of passing union with long double"
|
||||
"the ABI of passing union with %<long double%>"
|
||||
" has changed in GCC 4.4");
|
||||
}
|
||||
return 0;
|
||||
|
@ -2384,7 +2385,7 @@ classify_argument (machine_mode mode, const_tree type,
|
|||
{
|
||||
warned = true;
|
||||
inform (input_location,
|
||||
"the ABI of passing structure with complex float"
|
||||
"the ABI of passing structure with %<complex float%>"
|
||||
" member has changed in GCC 4.4");
|
||||
}
|
||||
classes[1] = X86_64_SSESF_CLASS;
|
||||
|
@ -7787,7 +7788,7 @@ ix86_expand_prologue (void)
|
|||
/* Check if profiling is active and we shall use profiling before
|
||||
prologue variant. If so sorry. */
|
||||
if (crtl->profile && flag_fentry != 0)
|
||||
sorry ("ms_hook_prologue attribute isn%'t compatible "
|
||||
sorry ("%<ms_hook_prologue%> attribute is not compatible "
|
||||
"with %<-mfentry%> for 32-bit");
|
||||
|
||||
/* In ix86_asm_output_function_label we emitted:
|
||||
|
@ -20655,7 +20656,7 @@ ix86_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &/*inputs*/,
|
|||
con += 4;
|
||||
if (strchr (con, ',') != NULL)
|
||||
{
|
||||
error ("alternatives not allowed in asm flag output");
|
||||
error ("alternatives not allowed in %<asm%> flag output");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -20719,7 +20720,7 @@ ix86_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &/*inputs*/,
|
|||
}
|
||||
if (code == UNKNOWN)
|
||||
{
|
||||
error ("unknown asm flag output %qs", constraints[i]);
|
||||
error ("unknown %<asm%> flag output %qs", constraints[i]);
|
||||
continue;
|
||||
}
|
||||
if (invert)
|
||||
|
@ -20748,7 +20749,7 @@ ix86_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &/*inputs*/,
|
|||
machine_mode dest_mode = GET_MODE (dest);
|
||||
if (!SCALAR_INT_MODE_P (dest_mode))
|
||||
{
|
||||
error ("invalid type for asm flag output");
|
||||
error ("invalid type for %<asm%> flag output");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -21682,13 +21683,15 @@ ix86_memmodel_check (unsigned HOST_WIDE_INT val)
|
|||
if (val & IX86_HLE_ACQUIRE && !(is_mm_acquire (model) || strong))
|
||||
{
|
||||
warning (OPT_Winvalid_memory_model,
|
||||
"HLE_ACQUIRE not used with ACQUIRE or stronger memory model");
|
||||
"%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger "
|
||||
"memory model");
|
||||
return MEMMODEL_SEQ_CST | IX86_HLE_ACQUIRE;
|
||||
}
|
||||
if (val & IX86_HLE_RELEASE && !(is_mm_release (model) || strong))
|
||||
{
|
||||
warning (OPT_Winvalid_memory_model,
|
||||
"HLE_RELEASE not used with RELEASE or stronger memory model");
|
||||
"%<HLE_RELEASE%> not used with %<RELEASE%> or stronger "
|
||||
"memory model");
|
||||
return MEMMODEL_SEQ_CST | IX86_HLE_RELEASE;
|
||||
}
|
||||
return val;
|
||||
|
|
|
@ -415,11 +415,11 @@ convert_to_real_1 (tree type, tree expr, bool fold_p)
|
|||
|
||||
case POINTER_TYPE:
|
||||
case REFERENCE_TYPE:
|
||||
error ("pointer value used where a floating point value was expected");
|
||||
error ("pointer value used where a floating point was expected");
|
||||
return convert_to_real_1 (type, integer_zero_node, fold_p);
|
||||
|
||||
default:
|
||||
error ("aggregate value used where a float was expected");
|
||||
error ("aggregate value used where a floating point was expected");
|
||||
return convert_to_real_1 (type, integer_zero_node, fold_p);
|
||||
}
|
||||
}
|
||||
|
@ -1029,7 +1029,7 @@ convert_to_integer_1 (tree type, tree expr, bool dofold)
|
|||
case VECTOR_TYPE:
|
||||
if (!tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (TREE_TYPE (expr))))
|
||||
{
|
||||
error ("can%'t convert a vector of type %qT"
|
||||
error ("cannot convert a vector of type %qT"
|
||||
" to type %qT which has different size",
|
||||
TREE_TYPE (expr), type);
|
||||
return error_mark_node;
|
||||
|
@ -1166,7 +1166,7 @@ convert_to_vector (tree type, tree expr)
|
|||
case VECTOR_TYPE:
|
||||
if (!tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (TREE_TYPE (expr))))
|
||||
{
|
||||
error ("can%'t convert a value of type %qT"
|
||||
error ("cannot convert a value of type %qT"
|
||||
" to vector type %qT which has different size",
|
||||
TREE_TYPE (expr), type);
|
||||
return error_mark_node;
|
||||
|
@ -1174,7 +1174,7 @@ convert_to_vector (tree type, tree expr)
|
|||
return build1 (VIEW_CONVERT_EXPR, type, expr);
|
||||
|
||||
default:
|
||||
error ("can%'t convert value to a vector");
|
||||
error ("cannot convert value to a vector");
|
||||
return error_mark_node;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
10
gcc/cp/cvt.c
10
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))
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
12
gcc/cp/lex.c
12
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
16
gcc/cp/pt.c
16
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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-04-25 Johannes Pfau <johannespfau@gmail.com>
|
||||
|
||||
* config-lang.in: Do not add target_libs if phobos is disabled.
|
||||
|
|
|
@ -1117,7 +1117,7 @@ d_init_builtins (void)
|
|||
Type::tvalist = build_frontend_type (va_list_type_node);
|
||||
if (!Type::tvalist)
|
||||
{
|
||||
error ("cannot represent built-in va_list type in D");
|
||||
error ("cannot represent built-in %<va_list%> type in D");
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
||||
|
|
|
@ -316,7 +316,7 @@ get_array_length (tree exp, Type *type)
|
|||
return d_array_length (exp);
|
||||
|
||||
default:
|
||||
error ("can't determine the length of a %qs", type->toChars ());
|
||||
error ("cannot determine the length of a %qs", type->toChars ());
|
||||
return error_mark_node;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -376,7 +376,7 @@ convert_expr (tree exp, Type *etype, Type *totype)
|
|||
}
|
||||
else
|
||||
{
|
||||
error ("can't convert a delegate expression to %qs",
|
||||
error ("cannot convert a delegate expression to %qs",
|
||||
totype->toChars ());
|
||||
return error_mark_node;
|
||||
}
|
||||
|
@ -392,7 +392,7 @@ convert_expr (tree exp, Type *etype, Type *totype)
|
|||
}
|
||||
else
|
||||
{
|
||||
error ("can't convert struct %qs to %qs",
|
||||
error ("cannot convert struct %qs to %qs",
|
||||
etype->toChars (), totype->toChars ());
|
||||
return error_mark_node;
|
||||
}
|
||||
|
@ -475,7 +475,7 @@ convert_expr (tree exp, Type *etype, Type *totype)
|
|||
|
||||
if ((dim * esize) % tsize != 0)
|
||||
{
|
||||
error ("cannot cast %qs to %qs since sizes don't line up",
|
||||
error ("cannot cast %qs to %qs since sizes do not line up",
|
||||
etype->toChars (), totype->toChars ());
|
||||
return error_mark_node;
|
||||
}
|
||||
|
|
|
@ -625,7 +625,7 @@ getTypeInfoType (Loc loc, Type *type, Scope *sc)
|
|||
if (!warned)
|
||||
{
|
||||
error_at (make_location_t (loc),
|
||||
"%<object.TypeInfo%> cannot be used with -fno-rtti");
|
||||
"%<object.TypeInfo%> cannot be used with %<-fno-rtti%>");
|
||||
warned = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -449,7 +449,7 @@ d_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value,
|
|||
break;
|
||||
}
|
||||
|
||||
error ("bad argument for -fdebug %qs", arg);
|
||||
error ("bad argument for %<-fdebug%>: %qs", arg);
|
||||
break;
|
||||
|
||||
case OPT_fdoc:
|
||||
|
@ -497,7 +497,7 @@ d_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value,
|
|||
case OPT_fmodule_file_:
|
||||
global.params.modFileAliasStrings->push (arg);
|
||||
if (!strchr (arg, '='))
|
||||
error ("bad argument for -fmodule-file %qs", arg);
|
||||
error ("bad argument for %<-fmodule-file%>: %qs", arg);
|
||||
break;
|
||||
|
||||
case OPT_fmoduleinfo:
|
||||
|
@ -588,7 +588,7 @@ d_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value,
|
|||
break;
|
||||
}
|
||||
|
||||
error ("bad argument for -fversion %qs", arg);
|
||||
error ("bad argument for %<-fversion%>: %qs", arg);
|
||||
break;
|
||||
|
||||
case OPT_H:
|
||||
|
@ -1011,7 +1011,7 @@ d_parse_file (void)
|
|||
/* In this mode, the first file name is supposed to be a duplicate
|
||||
of one of the input files. */
|
||||
if (d_option.fonly && strcmp (d_option.fonly, main_input_filename) != 0)
|
||||
error ("-fonly= argument is different from first input file name");
|
||||
error ("%<-fonly=%> argument is different from first input file name");
|
||||
|
||||
for (size_t i = 0; i < num_in_fnames; i++)
|
||||
{
|
||||
|
|
|
@ -463,7 +463,7 @@ public:
|
|||
fd2->toPrettyChars ());
|
||||
inform (make_location_t (d->loc),
|
||||
"use %<alias %s = %s.%s;%> to introduce base class "
|
||||
"overload set.", fd->toChars (),
|
||||
"overload set", fd->toChars (),
|
||||
fd->parent->toChars (), fd->toChars ());
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1522,7 +1522,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
error ("don't know how to delete %qs", e->e1->toChars ());
|
||||
error ("don%'t know how to delete %qs", e->e1->toChars ());
|
||||
this->result_ = error_mark_node;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -367,9 +367,11 @@ public:
|
|||
}
|
||||
|
||||
if (ent->in_try_scope)
|
||||
error_at (make_location_t (from->loc), "cannot goto into try block");
|
||||
error_at (make_location_t (from->loc),
|
||||
"cannot %<goto%> into %<try%> block");
|
||||
else if (ent->in_catch_scope)
|
||||
error_at (make_location_t (from->loc), "cannot goto into catch block");
|
||||
error_at (make_location_t (from->loc),
|
||||
"cannot %<goto%> into %<catch%> block");
|
||||
}
|
||||
|
||||
/* Check that a previously seen jump to a newly defined label is valid.
|
||||
|
@ -391,21 +393,21 @@ public:
|
|||
{
|
||||
location = make_location_t (fwdref->statement->loc);
|
||||
if (b->kind == level_try)
|
||||
error_at (location, "cannot goto into try block");
|
||||
error_at (location, "cannot %<goto%> into %<try%> block");
|
||||
else
|
||||
error_at (location, "cannot goto into catch block");
|
||||
error_at (location, "cannot %<goto%> into %<catch%> block");
|
||||
}
|
||||
else if (s->isCaseStatement ())
|
||||
{
|
||||
location = make_location_t (s->loc);
|
||||
error_at (location, "case cannot be in different "
|
||||
"try block level from switch");
|
||||
"%<try%> block level from %<switch%>");
|
||||
}
|
||||
else if (s->isDefaultStatement ())
|
||||
{
|
||||
location = make_location_t (s->loc);
|
||||
error_at (location, "default cannot be in different "
|
||||
"try block level from switch");
|
||||
"%<try%> block level from %<switch%>");
|
||||
}
|
||||
else
|
||||
gcc_unreachable ();
|
||||
|
@ -1125,8 +1127,8 @@ public:
|
|||
static int warned = 0;
|
||||
if (!warned)
|
||||
{
|
||||
error_at (make_location_t (s->loc), "exception handling disabled, "
|
||||
"use -fexceptions to enable");
|
||||
error_at (make_location_t (s->loc), "exception handling disabled; "
|
||||
"use %<-fexceptions%> to enable");
|
||||
warned = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1350,7 +1350,7 @@ build_typeinfo (const Loc &loc, Type *type)
|
|||
if (!warned)
|
||||
{
|
||||
error_at (make_location_t (loc),
|
||||
"%<object.TypeInfo%> cannot be used with -fno-rtti");
|
||||
"%<object.TypeInfo%> cannot be used with %<-fno-rtti%>");
|
||||
warned = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1115,7 +1115,7 @@ dwarf2out_begin_prologue (unsigned int line ATTRIBUTE_UNUSED,
|
|||
function anymore. */
|
||||
if (personality && current_unit_personality != personality)
|
||||
sorry ("multiple EH personalities are supported only with assemblers "
|
||||
"supporting .cfi_personality directive");
|
||||
"supporting %<.cfi_personality%> directive");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
14
gcc/except.c
14
gcc/except.c
|
@ -3412,7 +3412,7 @@ verify_eh_tree (struct function *fun)
|
|||
count_r++;
|
||||
else
|
||||
{
|
||||
error ("region_array is corrupted for region %i", r->index);
|
||||
error ("%<region_array%> is corrupted for region %i", r->index);
|
||||
err = true;
|
||||
}
|
||||
}
|
||||
|
@ -3425,7 +3425,7 @@ verify_eh_tree (struct function *fun)
|
|||
count_lp++;
|
||||
else
|
||||
{
|
||||
error ("lp_array is corrupted for lp %i", lp->index);
|
||||
error ("%<lp_array%> is corrupted for lp %i", lp->index);
|
||||
err = true;
|
||||
}
|
||||
}
|
||||
|
@ -3437,7 +3437,7 @@ verify_eh_tree (struct function *fun)
|
|||
{
|
||||
if ((*fun->eh->region_array)[r->index] != r)
|
||||
{
|
||||
error ("region_array is corrupted for region %i", r->index);
|
||||
error ("%<region_array%> is corrupted for region %i", r->index);
|
||||
err = true;
|
||||
}
|
||||
if (r->outer != outer)
|
||||
|
@ -3456,7 +3456,7 @@ verify_eh_tree (struct function *fun)
|
|||
{
|
||||
if ((*fun->eh->lp_array)[lp->index] != lp)
|
||||
{
|
||||
error ("lp_array is corrupted for lp %i", lp->index);
|
||||
error ("%<lp_array%> is corrupted for lp %i", lp->index);
|
||||
err = true;
|
||||
}
|
||||
if (lp->region != r)
|
||||
|
@ -3493,19 +3493,19 @@ verify_eh_tree (struct function *fun)
|
|||
}
|
||||
if (count_r != nvisited_r)
|
||||
{
|
||||
error ("region_array does not match region_tree");
|
||||
error ("%<region_array%> does not match %<region_tree%>");
|
||||
err = true;
|
||||
}
|
||||
if (count_lp != nvisited_lp)
|
||||
{
|
||||
error ("lp_array does not match region_tree");
|
||||
error ("%<lp_array%> does not match %<region_tree%>");
|
||||
err = true;
|
||||
}
|
||||
|
||||
if (err)
|
||||
{
|
||||
dump_eh_tree (stderr, fun);
|
||||
internal_error ("verify_eh_tree failed");
|
||||
internal_error ("%qs failed", __func__);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* gfortranspec.c (append_arg): Spell out the word "argument."
|
||||
|
||||
2019-05-16 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/90329
|
||||
|
|
|
@ -143,7 +143,7 @@ append_arg (const struct cl_decoded_option *arg)
|
|||
}
|
||||
|
||||
if (g77_newargc == newargsize)
|
||||
fatal_error (input_location, "overflowed output arg list for %qs",
|
||||
fatal_error (input_location, "overflowed output argument list for %qs",
|
||||
arg->orig_option_with_args_text);
|
||||
|
||||
g77_new_decoded_options[g77_newargc++] = *arg;
|
||||
|
|
15
gcc/gcc.c
15
gcc/gcc.c
|
@ -3198,7 +3198,7 @@ execute (void)
|
|||
? PEX_RECORD_TIMES : 0),
|
||||
progname, temp_filename);
|
||||
if (pex == NULL)
|
||||
fatal_error (input_location, "pex_init failed: %m");
|
||||
fatal_error (input_location, "%<pex_init%> failed: %m");
|
||||
|
||||
for (i = 0; i < n_commands; i++)
|
||||
{
|
||||
|
@ -6138,7 +6138,8 @@ eval_spec_function (const char *func, const char *args,
|
|||
|
||||
alloc_args ();
|
||||
if (do_spec_2 (args, soft_matched_part) < 0)
|
||||
fatal_error (input_location, "error in args to spec function %qs", func);
|
||||
fatal_error (input_location, "error in arguments to spec function %qs",
|
||||
func);
|
||||
|
||||
/* argbuf_index is an index for the next argument to be inserted, and
|
||||
so contains the count of the args already inserted. */
|
||||
|
@ -6923,7 +6924,7 @@ run_attempt (const char **new_argv, const char *out_temp,
|
|||
|
||||
pex = pex_init (PEX_USE_PIPES, new_argv[0], NULL);
|
||||
if (!pex)
|
||||
fatal_error (input_location, "pex_init failed: %m");
|
||||
fatal_error (input_location, "%<pex_init%> failed: %m");
|
||||
|
||||
errmsg = pex_run (pex, pex_flags, new_argv[0],
|
||||
CONST_CAST2 (char *const *, const char **, &new_argv[1]),
|
||||
|
@ -7614,7 +7615,8 @@ driver::set_up_specs () const
|
|||
&& do_spec_2 (sysroot_suffix_spec, NULL) == 0)
|
||||
{
|
||||
if (argbuf.length () > 1)
|
||||
error ("spec failure: more than one arg to SYSROOT_SUFFIX_SPEC");
|
||||
error ("spec failure: more than one argument to "
|
||||
"%<SYSROOT_SUFFIX_SPEC%>");
|
||||
else if (argbuf.length () == 1)
|
||||
target_sysroot_suffix = xstrdup (argbuf.last ());
|
||||
}
|
||||
|
@ -7638,7 +7640,8 @@ driver::set_up_specs () const
|
|||
&& do_spec_2 (sysroot_hdrs_suffix_spec, NULL) == 0)
|
||||
{
|
||||
if (argbuf.length () > 1)
|
||||
error ("spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC");
|
||||
error ("spec failure: more than one argument "
|
||||
"to %<SYSROOT_HEADERS_SUFFIX_SPEC%>");
|
||||
else if (argbuf.length () == 1)
|
||||
target_sysroot_hdrs_suffix = xstrdup (argbuf.last ());
|
||||
}
|
||||
|
@ -9797,7 +9800,7 @@ compare_debug_auxbase_opt_spec_function (int arg,
|
|||
len = strlen (argv[0]);
|
||||
if (len < 3 || strcmp (argv[0] + len - 3, ".gk") != 0)
|
||||
fatal_error (input_location, "argument to %%:compare-debug-auxbase-opt "
|
||||
"does not end in .gk");
|
||||
"does not end in %<.gk%>");
|
||||
|
||||
if (debug_auxbase_opt)
|
||||
return debug_auxbase_opt;
|
||||
|
|
|
@ -70,7 +70,7 @@ unlink_gcda_file (const char *name,
|
|||
ret = remove (name);
|
||||
|
||||
if (ret)
|
||||
fatal_error (input_location, "error in removing %s\n", name);
|
||||
fatal_error (input_location, "error in removing %s", name);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -220,7 +220,7 @@ do_merge (int argc, char **argv)
|
|||
case 'w':
|
||||
sscanf (optarg, "%d,%d", &w1, &w2);
|
||||
if (w1 < 0 || w2 < 0)
|
||||
fatal_error (input_location, "weights need to be non-negative\n");
|
||||
fatal_error (input_location, "weights need to be non-negative");
|
||||
break;
|
||||
default:
|
||||
merge_usage ();
|
||||
|
@ -355,7 +355,7 @@ do_rewrite (int argc, char **argv)
|
|||
}
|
||||
|
||||
if (scale < 0.0)
|
||||
fatal_error (input_location, "scale needs to be non-negative\n");
|
||||
fatal_error (input_location, "scale needs to be non-negative");
|
||||
|
||||
if (normalize_val != 0)
|
||||
{
|
||||
|
|
|
@ -4004,7 +4004,8 @@ gcse_or_cprop_is_too_expensive (const char *pass)
|
|||
if (memory_request > MAX_GCSE_MEMORY)
|
||||
{
|
||||
warning (OPT_Wdisabled_optimization,
|
||||
"%s: %d basic blocks and %d registers; increase --param max-gcse-memory above %d",
|
||||
"%s: %d basic blocks and %d registers; "
|
||||
"increase %<--param max-gcse-memory%> above %d",
|
||||
pass, n_basic_blocks_for_fn (cfun), max_reg_num (),
|
||||
memory_request);
|
||||
|
||||
|
|
|
@ -382,7 +382,7 @@ write_pch_globals (const struct ggc_root_tab * const *tab,
|
|||
{
|
||||
if (fwrite (&ptr, sizeof (void *), 1, state->f)
|
||||
!= 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -390,7 +390,7 @@ write_pch_globals (const struct ggc_root_tab * const *tab,
|
|||
saving_htab->find_with_hash (ptr, POINTER_HASH (ptr));
|
||||
if (fwrite (&new_ptr->new_addr, sizeof (void *), 1, state->f)
|
||||
!= 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ gt_pch_save (FILE *f)
|
|||
for (rt = gt_pch_scalar_rtab; *rt; rt++)
|
||||
for (rti = *rt; rti->base != NULL; rti++)
|
||||
if (fwrite (rti->base, rti->stride, 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
|
||||
/* Write out all the global pointers, after translation. */
|
||||
write_pch_globals (gt_ggc_rtab, &state);
|
||||
|
@ -470,17 +470,17 @@ gt_pch_save (FILE *f)
|
|||
long o;
|
||||
o = ftell (state.f) + sizeof (mmi);
|
||||
if (o == -1)
|
||||
fatal_error (input_location, "can%'t get position in PCH file: %m");
|
||||
fatal_error (input_location, "cannot get position in PCH file: %m");
|
||||
mmi.offset = mmap_offset_alignment - o % mmap_offset_alignment;
|
||||
if (mmi.offset == mmap_offset_alignment)
|
||||
mmi.offset = 0;
|
||||
mmi.offset += o;
|
||||
}
|
||||
if (fwrite (&mmi, sizeof (mmi), 1, state.f) != 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
if (mmi.offset != 0
|
||||
&& fseek (state.f, mmi.offset, SEEK_SET) != 0)
|
||||
fatal_error (input_location, "can%'t write padding to PCH file: %m");
|
||||
fatal_error (input_location, "cannot write padding to PCH file: %m");
|
||||
|
||||
ggc_pch_prepare_write (state.d, state.f);
|
||||
|
||||
|
@ -602,7 +602,7 @@ gt_pch_restore (FILE *f)
|
|||
for (rt = gt_pch_scalar_rtab; *rt; rt++)
|
||||
for (rti = *rt; rti->base != NULL; rti++)
|
||||
if (fread (rti->base, rti->stride, 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
|
||||
/* Read in all the global pointers, in 6 easy loops. */
|
||||
for (rt = gt_ggc_rtab; *rt; rt++)
|
||||
|
@ -610,10 +610,10 @@ gt_pch_restore (FILE *f)
|
|||
for (i = 0; i < rti->nelt; i++)
|
||||
if (fread ((char *)rti->base + rti->stride * i,
|
||||
sizeof (void *), 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
|
||||
if (fread (&mmi, sizeof (mmi), 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
|
||||
result = host_hooks.gt_pch_use_address (mmi.preferred_base, mmi.size,
|
||||
fileno (f), mmi.offset);
|
||||
|
@ -623,10 +623,10 @@ gt_pch_restore (FILE *f)
|
|||
{
|
||||
if (fseek (f, mmi.offset, SEEK_SET) != 0
|
||||
|| fread (mmi.preferred_base, mmi.size, 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
}
|
||||
else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
|
||||
ggc_pch_read (f, mmi.preferred_base);
|
||||
|
||||
|
|
|
@ -2455,7 +2455,7 @@ ggc_pch_write_object (struct ggc_pch_data *d,
|
|||
}
|
||||
|
||||
if (fwrite (x, size, 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
|
||||
/* If SIZE is not the same as OBJECT_SIZE(order), then we need to pad the
|
||||
object out to OBJECT_SIZE(order). This happens for strings. */
|
||||
|
@ -2471,13 +2471,13 @@ ggc_pch_write_object (struct ggc_pch_data *d,
|
|||
if (padding <= sizeof (emptyBytes))
|
||||
{
|
||||
if (fwrite (emptyBytes, 1, padding, f) != padding)
|
||||
fatal_error (input_location, "can%'t write PCH file");
|
||||
fatal_error (input_location, "cannot write PCH file");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Larger than our buffer? Just default to fseek. */
|
||||
if (fseek (f, padding, SEEK_CUR) != 0)
|
||||
fatal_error (input_location, "can%'t write PCH file");
|
||||
fatal_error (input_location, "cannot write PCH file");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2486,14 +2486,14 @@ ggc_pch_write_object (struct ggc_pch_data *d,
|
|||
&& fseek (f, ROUND_UP_VALUE (d->d.totals[order] * OBJECT_SIZE (order),
|
||||
G.pagesize),
|
||||
SEEK_CUR) != 0)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
}
|
||||
|
||||
void
|
||||
ggc_pch_finish (struct ggc_pch_data *d, FILE *f)
|
||||
{
|
||||
if (fwrite (&d->d, sizeof (d->d), 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t write PCH file: %m");
|
||||
fatal_error (input_location, "cannot write PCH file: %m");
|
||||
free (d);
|
||||
}
|
||||
|
||||
|
@ -2585,7 +2585,7 @@ ggc_pch_read (FILE *f, void *addr)
|
|||
/* Allocate the appropriate page-table entries for the pages read from
|
||||
the PCH file. */
|
||||
if (fread (&d, sizeof (d), 1, f) != 1)
|
||||
fatal_error (input_location, "can%'t read PCH file: %m");
|
||||
fatal_error (input_location, "cannot read PCH file: %m");
|
||||
|
||||
for (i = 0; i < NUM_ORDERS; i++)
|
||||
{
|
||||
|
|
|
@ -6177,7 +6177,7 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
|
|||
fb_lvalue | fb_mayfail);
|
||||
if (tret == GS_ERROR)
|
||||
{
|
||||
error ("invalid lvalue in asm output %d", i);
|
||||
error ("invalid lvalue in %<asm%> output %d", i);
|
||||
ret = tret;
|
||||
}
|
||||
|
||||
|
@ -9835,7 +9835,7 @@ gimplify_adjust_omp_clauses (gimple_seq *pre_p, gimple_seq body, tree *list_p,
|
|||
{
|
||||
warning_at (OMP_CLAUSE_LOCATION (c), 0,
|
||||
"incompatible data clause with reduction "
|
||||
"on %qE; promoting to present_or_copy",
|
||||
"on %qE; promoting to %<present_or_copy%>",
|
||||
DECL_NAME (t));
|
||||
OMP_CLAUSE_SET_MAP_KIND (c, GOMP_MAP_TOFROM);
|
||||
}
|
||||
|
|
|
@ -2264,7 +2264,7 @@ gen_hsa_addr_insns (tree val, hsa_op_reg *dest, hsa_bb *hbb)
|
|||
{
|
||||
HSA_SORRY_ATV (EXPR_LOCATION (val), "support for HSA does "
|
||||
"not implement taking addresses of complex "
|
||||
"CONST_DECLs such as %E", val);
|
||||
"%<CONST_DECL%> such as %E", val);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2449,7 +2449,7 @@ gen_hsa_insns_for_load (hsa_op_reg *dest, tree rhs, tree type, hsa_bb *hbb)
|
|||
{
|
||||
HSA_SORRY_ATV (EXPR_LOCATION (rhs),
|
||||
"support for HSA does not implement conversion "
|
||||
"of %E to the requested non-pointer type.", rhs);
|
||||
"of %E to the requested non-pointer type", rhs);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3012,7 +3012,7 @@ gen_hsa_cmp_insn_from_gimple (enum tree_code code, tree lhs, tree rhs,
|
|||
default:
|
||||
HSA_SORRY_ATV (EXPR_LOCATION (lhs),
|
||||
"support for HSA does not implement comparison tree "
|
||||
"code %s\n", get_tree_code_name (code));
|
||||
"code %s", get_tree_code_name (code));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3162,8 +3162,8 @@ gen_hsa_insns_for_operation_assignment (gimple *assign, hsa_bb *hbb)
|
|||
case FLOOR_DIV_EXPR:
|
||||
case ROUND_DIV_EXPR:
|
||||
HSA_SORRY_AT (gimple_location (assign),
|
||||
"support for HSA does not implement CEIL_DIV_EXPR, "
|
||||
"FLOOR_DIV_EXPR or ROUND_DIV_EXPR");
|
||||
"support for HSA does not implement %<CEIL_DIV_EXPR%>, "
|
||||
"%<FLOOR_DIV_EXPR%> or %<ROUND_DIV_EXPR%>");
|
||||
return;
|
||||
case TRUNC_MOD_EXPR:
|
||||
opcode = BRIG_OPCODE_REM;
|
||||
|
@ -3172,8 +3172,8 @@ gen_hsa_insns_for_operation_assignment (gimple *assign, hsa_bb *hbb)
|
|||
case FLOOR_MOD_EXPR:
|
||||
case ROUND_MOD_EXPR:
|
||||
HSA_SORRY_AT (gimple_location (assign),
|
||||
"support for HSA does not implement CEIL_MOD_EXPR, "
|
||||
"FLOOR_MOD_EXPR or ROUND_MOD_EXPR");
|
||||
"support for HSA does not implement %<CEIL_MOD_EXPR%>, "
|
||||
"%<FLOOR_MOD_EXPR%> or %<ROUND_MOD_EXPR%>");
|
||||
return;
|
||||
case NEGATE_EXPR:
|
||||
opcode = BRIG_OPCODE_NEG;
|
||||
|
@ -4188,8 +4188,8 @@ gen_get_level (gimple *stmt, hsa_bb *hbb)
|
|||
if (shadow_reg_ptr == NULL)
|
||||
{
|
||||
HSA_SORRY_AT (gimple_location (stmt),
|
||||
"support for HSA does not implement omp_get_level called "
|
||||
"from a function not being inlined within a kernel");
|
||||
"support for HSA does not implement %<omp_get_level%> "
|
||||
"called from a function not being inlined within a kernel");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4230,7 +4230,8 @@ gen_hsa_alloca (gcall *call, hsa_bb *hbb)
|
|||
if (lhs == NULL_TREE)
|
||||
return;
|
||||
|
||||
built_in_function fn = DECL_FUNCTION_CODE (gimple_call_fndecl (call));
|
||||
tree fndecl = gimple_call_fndecl (call);
|
||||
built_in_function fn = DECL_FUNCTION_CODE (fndecl);
|
||||
|
||||
gcc_checking_assert (ALLOCA_FUNCTION_CODE_P (fn));
|
||||
|
||||
|
@ -4243,8 +4244,8 @@ gen_hsa_alloca (gcall *call, hsa_bb *hbb)
|
|||
{
|
||||
HSA_SORRY_ATV (gimple_location (call),
|
||||
"support for HSA does not implement "
|
||||
"__builtin_alloca_with_align with a non-constant "
|
||||
"alignment: %E", alignment_tree);
|
||||
"%qD with a non-constant alignment %E",
|
||||
fndecl, alignment_tree);
|
||||
}
|
||||
|
||||
bit_alignment = tree_to_uhwi (alignment_tree);
|
||||
|
@ -4548,7 +4549,7 @@ omp_simple_builtin::generate (gimple *stmt, hsa_bb *hbb)
|
|||
HSA_SORRY_AT (gimple_location (stmt), m_warning_message);
|
||||
else
|
||||
HSA_SORRY_ATV (gimple_location (stmt),
|
||||
"Support for HSA does not implement calls to %s\n",
|
||||
"support for HSA does not implement calls to %qs",
|
||||
m_name);
|
||||
}
|
||||
else if (m_warning_message != NULL)
|
||||
|
@ -5049,7 +5050,7 @@ gen_hsa_atomic_for_builtin (bool ret_orig, enum BrigAtomicOperation acode,
|
|||
{
|
||||
HSA_SORRY_ATV (gimple_location (stmt),
|
||||
"support for HSA does not implement memory model for "
|
||||
"ATOMIC_ST: %s", mmname);
|
||||
"%<ATOMIC_ST%>: %s", mmname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -5314,8 +5315,8 @@ gen_hsa_insns_for_call (gimple *stmt, hsa_bb *hbb)
|
|||
gen_hsa_insns_for_direct_call (stmt, hbb);
|
||||
else if (!gen_hsa_insns_for_known_library_call (stmt, hbb))
|
||||
HSA_SORRY_AT (gimple_location (stmt),
|
||||
"HSA supports only calls of functions marked with pragma "
|
||||
"omp declare target");
|
||||
"HSA supports only calls of functions marked with "
|
||||
"%<#pragma omp declare target%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -5625,7 +5626,7 @@ gen_hsa_insns_for_call (gimple *stmt, hsa_bb *hbb)
|
|||
case BUILT_IN_GOMP_PARALLEL:
|
||||
HSA_SORRY_AT (gimple_location (stmt),
|
||||
"support for HSA does not implement non-gridified "
|
||||
"OpenMP parallel constructs.");
|
||||
"OpenMP parallel constructs");
|
||||
break;
|
||||
|
||||
case BUILT_IN_OMP_GET_THREAD_NUM:
|
||||
|
|
|
@ -1215,7 +1215,8 @@ dump_location_info (FILE *stream)
|
|||
if (x == y)
|
||||
{
|
||||
if (x < MAP_START_LOCATION (map))
|
||||
inform (x, "token %u has x-location == y-location == %u", i, x);
|
||||
inform (x, "token %u has %<x-location == y-location == %u%>",
|
||||
i, x);
|
||||
else
|
||||
fprintf (stream,
|
||||
"x-location == y-location == %u encodes token # %u\n",
|
||||
|
@ -1223,8 +1224,8 @@ dump_location_info (FILE *stream)
|
|||
}
|
||||
else
|
||||
{
|
||||
inform (x, "token %u has x-location == %u", i, x);
|
||||
inform (x, "token %u has y-location == %u", i, y);
|
||||
inform (x, "token %u has %<x-location == %u%>", i, x);
|
||||
inform (x, "token %u has %<y-location == %u%>", i, y);
|
||||
}
|
||||
}
|
||||
fprintf (stream, "\n");
|
||||
|
|
|
@ -947,7 +947,7 @@ compare_virtual_tables (varpool_node *prevailing, varpool_node *vtable)
|
|||
if (warning_at (DECL_SOURCE_LOCATION
|
||||
(TYPE_NAME (DECL_CONTEXT (vtable->decl))), OPT_Wodr,
|
||||
"virtual table of type %qD violates "
|
||||
"one definition rule ",
|
||||
"one definition rule",
|
||||
DECL_CONTEXT (vtable->decl)))
|
||||
{
|
||||
if (TREE_CODE (ref1->referred->decl) == FUNCTION_DECL)
|
||||
|
|
|
@ -2326,7 +2326,7 @@ ira_setup_eliminable_regset (void)
|
|||
SET_HARD_REG_BIT (ira_no_alloc_regs, eliminables[i].from);
|
||||
}
|
||||
else if (cannot_elim)
|
||||
error ("%s cannot be used in asm here",
|
||||
error ("%s cannot be used in %<asm%> here",
|
||||
reg_names[eliminables[i].from]);
|
||||
else
|
||||
df_set_regs_ever_live (eliminables[i].from, true);
|
||||
|
@ -2340,7 +2340,7 @@ ira_setup_eliminable_regset (void)
|
|||
SET_HARD_REG_BIT (ira_no_alloc_regs, HARD_FRAME_POINTER_REGNUM);
|
||||
}
|
||||
else if (frame_pointer_needed)
|
||||
error ("%s cannot be used in asm here",
|
||||
error ("%s cannot be used in %<asm%> here",
|
||||
reg_names[HARD_FRAME_POINTER_REGNUM]);
|
||||
else
|
||||
df_set_regs_ever_live (HARD_FRAME_POINTER_REGNUM, true);
|
||||
|
|
|
@ -1692,7 +1692,7 @@ lra_assign (bool &fails_p)
|
|||
&& (lra_assignment_iter_after_spill
|
||||
> LRA_MAX_ASSIGNMENT_ITERATION_NUMBER))
|
||||
internal_error
|
||||
("Maximum number of LRA assignment passes is achieved (%d)\n",
|
||||
("maximum number of LRA assignment passes is achieved (%d)",
|
||||
LRA_MAX_ASSIGNMENT_ITERATION_NUMBER);
|
||||
return no_spills_p;
|
||||
}
|
||||
|
|
|
@ -4898,7 +4898,7 @@ lra_constraints (bool first_p)
|
|||
}
|
||||
if (new_insns_num > MAX_RELOAD_INSNS_NUMBER)
|
||||
internal_error
|
||||
("Max. number of generated reload insns per insn is achieved (%d)\n",
|
||||
("maximum number of generated reload insns per insn achieved (%d)",
|
||||
MAX_RELOAD_INSNS_NUMBER);
|
||||
new_insns_num++;
|
||||
if (DEBUG_INSN_P (curr_insn))
|
||||
|
|
|
@ -1700,7 +1700,7 @@ lto_input_mode_table (struct lto_file_decl_data *file_data)
|
|||
}
|
||||
/* FALLTHRU */
|
||||
default:
|
||||
fatal_error (UNKNOWN_LOCATION, "unsupported mode %s\n", mname);
|
||||
fatal_error (UNKNOWN_LOCATION, "unsupported mode %qs", mname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -155,7 +155,8 @@ get_options_from_collect_gcc_options (const char *collect_gcc,
|
|||
do
|
||||
{
|
||||
if (argv_storage[j] == '\0')
|
||||
fatal_error (input_location, "malformed COLLECT_GCC_OPTIONS");
|
||||
fatal_error (input_location,
|
||||
"malformed %<COLLECT_GCC_OPTIONS%>");
|
||||
else if (strncmp (&argv_storage[j], "'\\''", 4) == 0)
|
||||
{
|
||||
argv_storage[k++] = '\'';
|
||||
|
@ -310,7 +311,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
|
|||
append_option (decoded_options, decoded_options_count, foption);
|
||||
else if (strcmp ((*decoded_options)[j].arg, foption->arg))
|
||||
fatal_error (input_location,
|
||||
"Option %s with different values",
|
||||
"option %s with different values",
|
||||
foption->orig_option_with_args_text);
|
||||
break;
|
||||
|
||||
|
@ -394,7 +395,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
|
|||
append_option (decoded_options, decoded_options_count, foption);
|
||||
else if (foption->value != (*decoded_options)[j].value)
|
||||
fatal_error (input_location,
|
||||
"Option %s not used consistently in all LTO input"
|
||||
"option %s not used consistently in all LTO input"
|
||||
" files", foption->orig_option_with_args_text);
|
||||
break;
|
||||
|
||||
|
@ -822,7 +823,7 @@ compile_offload_image (const char *target, const char *compiler_path,
|
|||
|
||||
if (!compiler)
|
||||
fatal_error (input_location,
|
||||
"could not find %s in %s (consider using %<-B%>)\n",
|
||||
"could not find %s in %s (consider using %<-B%>)",
|
||||
suffix + 1, compiler_path);
|
||||
|
||||
/* Generate temporary output file name. */
|
||||
|
@ -903,7 +904,7 @@ compile_images_for_offload_targets (unsigned in_argc, char *in_argv[],
|
|||
linker_opts, linker_opt_count);
|
||||
if (!offload_names[next_name_entry])
|
||||
fatal_error (input_location,
|
||||
"problem with building target image for %s\n", names[i]);
|
||||
"problem with building target image for %s", names[i]);
|
||||
next_name_entry++;
|
||||
}
|
||||
|
||||
|
@ -960,7 +961,7 @@ find_crtoffloadtable (void)
|
|||
}
|
||||
if (i == n_paths)
|
||||
fatal_error (input_location,
|
||||
"installation error, can%'t find crtoffloadtable.o");
|
||||
"installation error, cannot find %<crtoffloadtable.o%>");
|
||||
|
||||
free_array_of_ptrs ((void **) paths, n_paths);
|
||||
}
|
||||
|
@ -1072,7 +1073,7 @@ debug_objcopy (const char *infile, bool rename)
|
|||
&off, &len, &errmsg, &err) != 1)
|
||||
{
|
||||
if (errmsg)
|
||||
fatal_error (0, "%s: %s\n", errmsg, xstrerror (err));
|
||||
fatal_error (0, "%s: %s", errmsg, xstrerror (err));
|
||||
|
||||
simple_object_release_read (inobj);
|
||||
close (infd);
|
||||
|
@ -1092,7 +1093,7 @@ debug_objcopy (const char *infile, bool rename)
|
|||
if (errmsg)
|
||||
{
|
||||
unlink_if_ordinary (outfile);
|
||||
fatal_error (0, "%s: %s\n", errmsg, xstrerror (err));
|
||||
fatal_error (0, "%s: %s", errmsg, xstrerror (err));
|
||||
}
|
||||
|
||||
simple_object_release_read (inobj);
|
||||
|
@ -1144,11 +1145,11 @@ run_gcc (unsigned argc, char *argv[])
|
|||
collect_gcc = getenv ("COLLECT_GCC");
|
||||
if (!collect_gcc)
|
||||
fatal_error (input_location,
|
||||
"environment variable COLLECT_GCC must be set");
|
||||
"environment variable %<COLLECT_GCC%> must be set");
|
||||
collect_gcc_options = getenv ("COLLECT_GCC_OPTIONS");
|
||||
if (!collect_gcc_options)
|
||||
fatal_error (input_location,
|
||||
"environment variable COLLECT_GCC_OPTIONS must be set");
|
||||
"environment variable %<COLLECT_GCC_OPTIONS%> must be set");
|
||||
get_options_from_collect_gcc_options (collect_gcc, collect_gcc_options,
|
||||
CL_LANG_ALL,
|
||||
&decoded_options,
|
||||
|
@ -1548,7 +1549,7 @@ cont1:
|
|||
int priority;
|
||||
|
||||
if (!stream)
|
||||
fatal_error (input_location, "fopen: %s: %m", ltrans_output_file);
|
||||
fatal_error (input_location, "%<fopen%>: %s: %m", ltrans_output_file);
|
||||
|
||||
/* Parse the list of LTRANS inputs from the WPA stage. */
|
||||
obstack_init (&env_obstack);
|
||||
|
@ -1565,7 +1566,7 @@ cont1:
|
|||
{
|
||||
if (!feof (stream))
|
||||
fatal_error (input_location,
|
||||
"Corrupted ltrans output file %s",
|
||||
"corrupted ltrans output file %s",
|
||||
ltrans_output_file);
|
||||
break;
|
||||
}
|
||||
|
@ -1754,7 +1755,7 @@ main (int argc, char *argv[])
|
|||
diagnostic_initialize (global_dc, 0);
|
||||
|
||||
if (atexit (lto_wrapper_cleanup) != 0)
|
||||
fatal_error (input_location, "atexit failed");
|
||||
fatal_error (input_location, "%<atexit%> failed");
|
||||
|
||||
if (signal (SIGINT, SIG_IGN) != SIG_IGN)
|
||||
signal (SIGINT, fatal_signal);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* lto-dump.c (lto_main): Same.
|
||||
* lto.c (stream_out): Same.
|
||||
|
||||
2019-05-10 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* Make-lang.in: Use program_transform_name for lto-dump.
|
||||
|
|
|
@ -320,7 +320,8 @@ lto_main (void)
|
|||
node->get_untransformed_body ();
|
||||
if (!GATHER_STATISTICS)
|
||||
warning_at (input_location, 0,
|
||||
"Not configured with --enable-gather-detailed-mem-stats.");
|
||||
"Not configured with "
|
||||
"%<--enable-gather-detailed-mem-stats%>.");
|
||||
else
|
||||
dump_gimple_statistics ();
|
||||
}
|
||||
|
@ -329,7 +330,8 @@ lto_main (void)
|
|||
/* Dump tree statistics. */
|
||||
if (!GATHER_STATISTICS)
|
||||
warning_at (input_location, 0,
|
||||
"Not configured with --enable-gather-detailed-mem-stats.");
|
||||
"Not configured with "
|
||||
"%<--enable-gather-detailed-mem-stats%>.");
|
||||
else
|
||||
{
|
||||
printf ("Tree Statistics\n");
|
||||
|
|
|
@ -159,7 +159,7 @@ stream_out (char *temp_filename, lto_symtab_encoder_t encoder, int part)
|
|||
{
|
||||
lto_file *file = lto_obj_file_open (temp_filename, true);
|
||||
if (!file)
|
||||
fatal_error (input_location, "lto_obj_file_open() failed");
|
||||
fatal_error (input_location, "%<lto_obj_file_open()%> failed");
|
||||
lto_set_current_out_file (file);
|
||||
|
||||
gcc_assert (!dump_file);
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR pch/90326
|
||||
|
|
|
@ -458,7 +458,7 @@ objc_write_global_declarations (void)
|
|||
char * const dumpname = concat (dump_base_name, ".decl", NULL);
|
||||
gen_declaration_file = fopen (dumpname, "w");
|
||||
if (gen_declaration_file == 0)
|
||||
fatal_error (input_location, "can%'t open %s: %m", dumpname);
|
||||
fatal_error (input_location, "cannot open %s: %m", dumpname);
|
||||
free (dumpname);
|
||||
}
|
||||
|
||||
|
@ -4208,13 +4208,13 @@ objc_begin_catch_clause (tree decl)
|
|||
}
|
||||
else if (!objc_type_valid_for_messaging (type, false))
|
||||
{
|
||||
error ("@catch parameter is not a known Objective-C class type");
|
||||
error ("%<@catch%> parameter is not a known Objective-C class type");
|
||||
type = error_mark_node;
|
||||
}
|
||||
else if (TYPE_HAS_OBJC_INFO (TREE_TYPE (type))
|
||||
&& TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (type)))
|
||||
{
|
||||
error ("@catch parameter cannot be protocol-qualified");
|
||||
error ("%<@catch%> parameter cannot be protocol-qualified");
|
||||
type = error_mark_node;
|
||||
}
|
||||
else if (POINTER_TYPE_P (type) && objc_is_object_id (TREE_TYPE (type)))
|
||||
|
@ -4336,7 +4336,8 @@ objc_build_throw_stmt (location_t loc, tree throw_expr)
|
|||
if (cur_try_context == NULL
|
||||
|| cur_try_context->current_catch == NULL)
|
||||
{
|
||||
error_at (loc, "%<@throw%> (rethrow) used outside of a @catch block");
|
||||
error_at (loc,
|
||||
"%<@throw%> (rethrow) used outside of a %<@catch%> block");
|
||||
return error_mark_node;
|
||||
}
|
||||
|
||||
|
@ -5411,7 +5412,8 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params,
|
|||
prototype. Emit a warning, then keep going (this
|
||||
will use any method with a matching name, as if the
|
||||
receiver was of type 'Class'). */
|
||||
warning (0, "@interface of class %qE not found", class_tree);
|
||||
warning (0, "%<@interface%> of class %qE not found",
|
||||
class_tree);
|
||||
}
|
||||
}
|
||||
/* Handle `self' and `super'. */
|
||||
|
@ -5545,7 +5547,7 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params,
|
|||
warning, either include an @interface for the
|
||||
class, or cast the receiver to 'id'. Note that
|
||||
rtype is an IDENTIFIER_NODE at this point. */
|
||||
warning (0, "@interface of class %qE not found", rtype);
|
||||
warning (0, "%<@interface%> of class %qE not found", rtype);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5628,11 +5630,9 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params,
|
|||
if (!warn_missing_methods)
|
||||
{
|
||||
warning_at (input_location,
|
||||
0, "(Messages without a matching method signature");
|
||||
warning_at (input_location,
|
||||
0, "will be assumed to return %<id%> and accept");
|
||||
warning_at (input_location,
|
||||
0, "%<...%> as arguments.)");
|
||||
0, "(messages without a matching method signature "
|
||||
"will be assumed to return %<id%> and accept "
|
||||
"%<...%> as arguments)");
|
||||
warn_missing_methods = true;
|
||||
}
|
||||
}
|
||||
|
@ -8848,7 +8848,7 @@ get_super_receiver (void)
|
|||
}
|
||||
else
|
||||
{
|
||||
error ("[super ...] must appear in a method context");
|
||||
error ("%<[super ...]%> must appear in a method context");
|
||||
return error_mark_node;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -150,7 +150,8 @@ objc_next_runtime_abi_01_init (objc_runtime_hooks *rthooks)
|
|||
{
|
||||
warning_at (UNKNOWN_LOCATION, OPT_Wall,
|
||||
"%<-fobjc-sjlj-exceptions%> is the only supported exceptions "
|
||||
"system for %<-fnext-runtime%> with %<-fobjc-abi-version%> < 2");
|
||||
"system for %<-fnext-runtime%> with %<-fobjc-abi-version%> "
|
||||
"argument less than 2");
|
||||
}
|
||||
|
||||
rthooks->initialize = next_runtime_01_initialize;
|
||||
|
|
|
@ -241,8 +241,10 @@ objc_next_runtime_abi_02_init (objc_runtime_hooks *rthooks)
|
|||
|
||||
if (flag_objc_exceptions && flag_objc_sjlj_exceptions)
|
||||
{
|
||||
inform (UNKNOWN_LOCATION, "%<-fobjc-sjlj-exceptions%> is ignored for "
|
||||
"%<-fnext-runtime%> when %<-fobjc-abi-version%> >= 2");
|
||||
inform (UNKNOWN_LOCATION,
|
||||
"%<-fobjc-sjlj-exceptions%> is ignored for "
|
||||
"%<-fnext-runtime%> when %<-fobjc-abi-version%> "
|
||||
"greater than 1");
|
||||
flag_objc_sjlj_exceptions = 0;
|
||||
}
|
||||
|
||||
|
|
21
gcc/opts.c
21
gcc/opts.c
|
@ -1671,7 +1671,8 @@ print_specific_help (unsigned int include_flags,
|
|||
description = _("The following options take joined arguments");
|
||||
else
|
||||
{
|
||||
internal_error ("unrecognized include_flags 0x%x passed to print_specific_help",
|
||||
internal_error ("unrecognized %<include_flags 0x%x%> passed "
|
||||
"to %<print_specific_help%>",
|
||||
include_flags);
|
||||
return;
|
||||
}
|
||||
|
@ -1982,7 +1983,7 @@ parse_no_sanitize_attribute (char *value)
|
|||
|
||||
if (sanitizer_opts[i].name == NULL)
|
||||
warning (OPT_Wattributes,
|
||||
"%<%s%> attribute directive ignored", q);
|
||||
"%qs attribute directive ignored", q);
|
||||
|
||||
q = strtok (NULL, ",");
|
||||
}
|
||||
|
@ -2165,7 +2166,7 @@ print_help (struct gcc_options *opts, unsigned int lang_mask)
|
|||
*pflags |= lang_flag;
|
||||
else
|
||||
warning (0,
|
||||
"--help argument %q.*s is ambiguous, "
|
||||
"%<--help%> argument %q.*s is ambiguous, "
|
||||
"please be more specific",
|
||||
len, a);
|
||||
}
|
||||
|
@ -2174,7 +2175,7 @@ print_help (struct gcc_options *opts, unsigned int lang_mask)
|
|||
*pflags |= lang_flag;
|
||||
else
|
||||
warning (0,
|
||||
"unrecognized argument to --help= option: %q.*s",
|
||||
"unrecognized argument to %<--help=%> option: %q.*s",
|
||||
len, a);
|
||||
|
||||
if (comma == NULL)
|
||||
|
@ -2831,8 +2832,8 @@ handle_param (struct gcc_options *opts, struct gcc_options *opts_set,
|
|||
arg = xstrdup (carg);
|
||||
equal = strchr (arg, '=');
|
||||
if (!equal)
|
||||
error_at (loc, "%s: --param arguments should be of the form NAME=VALUE",
|
||||
arg);
|
||||
error_at (loc, "%s: %qs arguments should be of the form NAME=VALUE",
|
||||
arg, "--param");
|
||||
else
|
||||
{
|
||||
*equal = '\0';
|
||||
|
@ -2842,10 +2843,10 @@ handle_param (struct gcc_options *opts, struct gcc_options *opts_set,
|
|||
{
|
||||
const char *suggestion = find_param_fuzzy (arg);
|
||||
if (suggestion)
|
||||
error_at (loc, "invalid --param name %qs; did you mean %qs?",
|
||||
arg, suggestion);
|
||||
error_at (loc, "invalid %qs name %qs; did you mean %qs?",
|
||||
"--param", arg, suggestion);
|
||||
else
|
||||
error_at (loc, "invalid --param name %qs", arg);
|
||||
error_at (loc, "invalid %qs name %qs", "--param", arg);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2853,7 +2854,7 @@ handle_param (struct gcc_options *opts, struct gcc_options *opts_set,
|
|||
value = integral_argument (equal + 1);
|
||||
|
||||
if (value == -1)
|
||||
error_at (loc, "invalid --param value %qs", equal + 1);
|
||||
error_at (loc, "invalid %qs value %qs", "--param", equal + 1);
|
||||
else
|
||||
set_param_value (arg, value,
|
||||
opts->x_param_values, opts_set->x_param_values);
|
||||
|
|
|
@ -87,8 +87,8 @@ opt_pass::clone ()
|
|||
void
|
||||
opt_pass::set_pass_param (unsigned int, bool)
|
||||
{
|
||||
internal_error ("pass %s needs a set_pass_param implementation to handle the"
|
||||
" extra argument in NEXT_PASS", name);
|
||||
internal_error ("pass %s needs a %<set_pass_param%> implementation "
|
||||
"to handle the extra argument in %<NEXT_PASS%>", name);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
13
gcc/plugin.c
13
gcc/plugin.c
|
@ -231,7 +231,7 @@ add_new_plugin (const char* plugin_name)
|
|||
{
|
||||
plugin = (struct plugin_name_args *) *slot;
|
||||
if (strcmp (plugin->full_name, plugin_name))
|
||||
error ("plugin %s was specified with different paths:\n%s\n%s",
|
||||
error ("plugin %qs was specified with different paths: %qs and %qs",
|
||||
plugin->base_name, plugin->full_name, plugin_name);
|
||||
return;
|
||||
}
|
||||
|
@ -290,7 +290,8 @@ parse_plugin_arg_opt (const char *arg)
|
|||
|
||||
if (!key_start)
|
||||
{
|
||||
error ("malformed option %<-fplugin-arg-%s%> (missing -<key>[=<value>])",
|
||||
error ("malformed option %<-fplugin-arg-%s%>: "
|
||||
"missing %<-<key>[=<value>]%>",
|
||||
arg);
|
||||
return;
|
||||
}
|
||||
|
@ -700,7 +701,7 @@ try_init_one_plugin (struct plugin_name_args *plugin)
|
|||
dl_handle = dlopen (plugin->full_name, RTLD_NOW | RTLD_GLOBAL);
|
||||
if (!dl_handle)
|
||||
{
|
||||
error ("cannot load plugin %s\n%s", plugin->full_name, dlerror ());
|
||||
error ("cannot load plugin %s: %s", plugin->full_name, dlerror ());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -710,7 +711,7 @@ try_init_one_plugin (struct plugin_name_args *plugin)
|
|||
/* Check the plugin license. */
|
||||
if (dlsym (dl_handle, str_license) == NULL)
|
||||
fatal_error (input_location,
|
||||
"plugin %s is not licensed under a GPL-compatible license\n"
|
||||
"plugin %s is not licensed under a GPL-compatible license"
|
||||
"%s", plugin->full_name, dlerror ());
|
||||
|
||||
PTR_UNION_AS_VOID_PTR (plugin_init_union) =
|
||||
|
@ -720,7 +721,7 @@ try_init_one_plugin (struct plugin_name_args *plugin)
|
|||
if ((err = dlerror ()) != NULL)
|
||||
{
|
||||
dlclose(dl_handle);
|
||||
error ("cannot find %s in plugin %s\n%s", str_plugin_init_func_name,
|
||||
error ("cannot find %s in plugin %s: %s", str_plugin_init_func_name,
|
||||
plugin->full_name, err);
|
||||
return false;
|
||||
}
|
||||
|
@ -729,7 +730,7 @@ try_init_one_plugin (struct plugin_name_args *plugin)
|
|||
if ((*plugin_init) (plugin, &gcc_version))
|
||||
{
|
||||
dlclose(dl_handle);
|
||||
error ("fail to initialize plugin %s", plugin->full_name);
|
||||
error ("failed to initialize plugin %s", plugin->full_name);
|
||||
return false;
|
||||
}
|
||||
/* leak dl_handle on purpose to ensure the plugin is loaded for the
|
||||
|
|
|
@ -707,7 +707,7 @@ parse_edge_flag_token (const char *tok)
|
|||
} while (0);
|
||||
#include "cfg-flags.def"
|
||||
#undef DEF_EDGE_FLAG
|
||||
error ("unrecognized edge flag: '%s'", tok);
|
||||
error ("unrecognized edge flag: %qs", tok);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -978,7 +978,7 @@ function_reader::parse_enum_value (int num_values, const char *const *strings)
|
|||
if (strcmp (name.string, strings[i]) == 0)
|
||||
return i;
|
||||
}
|
||||
error ("unrecognized enum value: '%s'", name.string);
|
||||
error ("unrecognized enum value: %qs", name.string);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -545,7 +545,8 @@ check_asm_stack_operands (rtx_insn *insn)
|
|||
for (j = 0; j < n_clobbers; j++)
|
||||
if (REGNO (recog_data.operand[i]) == REGNO (clobber_reg[j]))
|
||||
{
|
||||
error_for_asm (insn, "output constraint %d cannot be specified together with \"%s\" clobber",
|
||||
error_for_asm (insn, "output constraint %d cannot be "
|
||||
"specified together with %qs clobber",
|
||||
i, reg_names [REGNO (clobber_reg[j])]);
|
||||
malformed_asm = 1;
|
||||
break;
|
||||
|
@ -568,7 +569,7 @@ check_asm_stack_operands (rtx_insn *insn)
|
|||
|
||||
if (i != LAST_STACK_REG + 1)
|
||||
{
|
||||
error_for_asm (insn, "output regs must be grouped at top of stack");
|
||||
error_for_asm (insn, "output registers must be grouped at top of stack");
|
||||
malformed_asm = 1;
|
||||
}
|
||||
|
||||
|
@ -608,7 +609,8 @@ check_asm_stack_operands (rtx_insn *insn)
|
|||
if (i != LAST_STACK_REG + 1)
|
||||
{
|
||||
error_for_asm (insn,
|
||||
"implicitly popped regs must be grouped at top of stack");
|
||||
"implicitly popped registers must be grouped "
|
||||
"at top of stack");
|
||||
malformed_asm = 1;
|
||||
}
|
||||
|
||||
|
@ -625,7 +627,8 @@ check_asm_stack_operands (rtx_insn *insn)
|
|||
if (i != LAST_STACK_REG + 1)
|
||||
{
|
||||
error_for_asm (insn,
|
||||
"explicitly used regs must be grouped at top of stack");
|
||||
"explicitly used registers must be grouped "
|
||||
"at top of stack");
|
||||
malformed_asm = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -1216,8 +1216,8 @@ validate_value_data (struct value_data *vd)
|
|||
if (vd->e[i].mode == VOIDmode)
|
||||
{
|
||||
if (vd->e[i].next_regno != INVALID_REGNUM)
|
||||
internal_error ("validate_value_data: [%u] Bad next_regno for empty chain (%u)",
|
||||
i, vd->e[i].next_regno);
|
||||
internal_error ("%qs: [%u] bad %<next_regno%> for empty chain (%u)",
|
||||
__func__, i, vd->e[i].next_regno);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1228,11 +1228,11 @@ validate_value_data (struct value_data *vd)
|
|||
j = vd->e[j].next_regno)
|
||||
{
|
||||
if (TEST_HARD_REG_BIT (set, j))
|
||||
internal_error ("validate_value_data: Loop in regno chain (%u)",
|
||||
j);
|
||||
internal_error ("%qs: loop in %<next_regno%> chain (%u)",
|
||||
__func__, j);
|
||||
if (vd->e[j].oldest_regno != i)
|
||||
internal_error ("validate_value_data: [%u] Bad oldest_regno (%u)",
|
||||
j, vd->e[j].oldest_regno);
|
||||
internal_error ("%qs: [%u] bad %<oldest_regno%> (%u)",
|
||||
__func__, j, vd->e[j].oldest_regno);
|
||||
|
||||
SET_HARD_REG_BIT (set, j);
|
||||
}
|
||||
|
@ -1243,8 +1243,9 @@ validate_value_data (struct value_data *vd)
|
|||
&& (vd->e[i].mode != VOIDmode
|
||||
|| vd->e[i].oldest_regno != i
|
||||
|| vd->e[i].next_regno != INVALID_REGNUM))
|
||||
internal_error ("validate_value_data: [%u] Non-empty reg in chain (%s %u %i)",
|
||||
i, GET_MODE_NAME (vd->e[i].mode), vd->e[i].oldest_regno,
|
||||
internal_error ("%qs: [%u] non-empty register in chain (%s %u %i)",
|
||||
__func__, i,
|
||||
GET_MODE_NAME (vd->e[i].mode), vd->e[i].oldest_regno,
|
||||
vd->e[i].next_regno);
|
||||
}
|
||||
|
||||
|
|
|
@ -717,11 +717,11 @@ fix_register (const char *name, int fixed, int call_used)
|
|||
switch (call_used)
|
||||
{
|
||||
case 0:
|
||||
error ("can%'t use %qs as a call-saved register", name);
|
||||
error ("cannot use %qs as a call-saved register", name);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
error ("can%'t use %qs as a call-used register", name);
|
||||
error ("cannot use %qs as a call-used register", name);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -733,7 +733,7 @@ fix_register (const char *name, int fixed, int call_used)
|
|||
switch (call_used)
|
||||
{
|
||||
case 1:
|
||||
error ("can%'t use %qs as a fixed register", name);
|
||||
error ("cannot use %qs as a fixed register", name);
|
||||
break;
|
||||
|
||||
case 0:
|
||||
|
|
|
@ -2062,7 +2062,7 @@ static void
|
|||
spill_failure (rtx_insn *insn, enum reg_class rclass)
|
||||
{
|
||||
if (asm_noperands (PATTERN (insn)) >= 0)
|
||||
error_for_asm (insn, "can%'t find a register in class %qs while "
|
||||
error_for_asm (insn, "cannot find a register in class %qs while "
|
||||
"reloading %<asm%>",
|
||||
reg_class_names[rclass]);
|
||||
else
|
||||
|
|
|
@ -521,7 +521,7 @@ check_unique_operand_names (tree outputs, tree inputs, tree labels)
|
|||
return true;
|
||||
|
||||
failure:
|
||||
error ("duplicate asm operand name %qs", TREE_STRING_POINTER (i_name));
|
||||
error ("duplicate %<asm%> operand name %qs", TREE_STRING_POINTER (i_name));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1600,7 +1600,7 @@ default_target_option_pragma_parse (tree ARG_UNUSED (args),
|
|||
do not have the "target" pragma. */
|
||||
if (args)
|
||||
warning (OPT_Wpragmas,
|
||||
"#pragma GCC target is not supported for this machine");
|
||||
"%<#pragma GCC target%> is not supported for this machine");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,123 @@
|
|||
2019-05-16 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
||||
|
||||
* g++.dg/eh/o32-fp.C: New.
|
||||
|
|
|
@ -15,18 +15,18 @@ fn (bool b, bool b2, T b3, int n, v4si v)
|
|||
{
|
||||
int r = 0;
|
||||
|
||||
r += ~b; /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += n + ~b; /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(n == 1); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(n || 1); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~b == 1; /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(++n, n == 1); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(++n, n > 1); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(++n, n && 1); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += (++n, ~b); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~b3; /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~foo (); /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~(bool) !1; /* { dg-warning "on an expression of type bool|on a boolean expression" } */
|
||||
r += ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += n + ~b; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(n || 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~b == 1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(++n, n == 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(++n, n > 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(++n, n && 1); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += (++n, ~b); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~b3; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~foo (); /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
r += ~(bool) !1; /* { dg-warning "on an expression of type 'bool'|on a boolean expression" } */
|
||||
|
||||
v = ~v;
|
||||
r += ~(int) b;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue