- 27 Aug, 2018 15 commits
-
-
This patch tweaks how we print line-insertion fix-it hints, so that the line before the insertion point is also printed, to give the user more context on the proposed change. For example, it changes: ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message +++ |+#include <vector> 74 | #endif .... 87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; | ^~~ to: ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message 73 | # include <debug/vector> +++ |+#include <vector> 74 | #endif .... 87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; | ^~~ gcc/ChangeLog: PR 87091 * diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the line above for line-insertion fix-it hints. (selftest::test_fixit_insert_containing_newline): Update the expected results, and add a test with line-numbering enabled. gcc/testsuite/ChangeLog: PR 87091 * g++.dg/pr85523.C: Extend expected output to show line before line-insertion fix-it hint. * gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c (test_fixit_insert_newline): Add previous line to expected output. * gcc.dg/plugin/diagnostic-test-show-locus-bw.c: Likewise. * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Likewise. From-SVN: r263884
David Malcolm committed -
2018-08-27 Martin Liska <mliska@suse.cz> PR sanitizer/86962 * sanopt.c (sanitize_rewrite_addressable_params): Ignore params with DECL_HAS_VALUE_EXPR_P. 2018-08-27 Martin Liska <mliska@suse.cz> PR sanitizer/86962 * gcc.dg/asan/pr86962.c: New test. From-SVN: r263882
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> * config/i386/i386.c (ix86_expand_set_or_movmem): Dump selected expansion strategy. 2018-08-27 Martin Liska <mliska@suse.cz> * gcc.dg/tree-prof/val-prof-10.c: New test. From-SVN: r263881
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> * builtins.h (is_builtin_fn): Remove and fndecl_built_in_p. * builtins.c (is_builtin_fn): Likewise. * attribs.c (diag_attr_exclusions): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. (builtin_mathfn_code): Likewise. (fold_builtin_expect): Likewise. (fold_call_expr): Likewise. (fold_builtin_call_array): Likewise. (fold_call_stmt): Likewise. (set_builtin_user_assembler_name): Likewise. (is_simple_builtin): Likewise. * calls.c (gimple_alloca_call_p): Likewise. (maybe_warn_nonstring_arg): Likewise. * cfgexpand.c (expand_call_stmt): Likewise. * cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise. (cgraph_edge::verify_corresponds_to_fndecl): Likewise. (cgraph_node::verify_node): Likewise. * cgraphclones.c (build_function_decl_skip_args): Likewise. (cgraph_node::create_clone): Likewise. * config/arm/arm.c (arm_insert_attributes): Likewise. * config/i386/i386.c (ix86_gimple_fold_builtin): Likewise. * dse.c (scan_insn): Likewise. * expr.c (expand_expr_real_1): Likewise. * fold-const.c (operand_equal_p): Likewise. (fold_binary_loc): Likewise. * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. * gimple-low.c (lower_stmt): Likewise. * gimple-pretty-print.c (dump_gimple_call): Likewise. * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Likewise. * gimple.c (gimple_build_call_from_tree): Likewise. (gimple_call_builtin_p): Likewise. (gimple_call_combined_fn): Likewise. * gimplify.c (gimplify_call_expr): Likewise. (gimple_boolify): Likewise. (gimplify_modify_expr): Likewise. (gimplify_addr_expr): Likewise. * hsa-gen.c (gen_hsa_insns_for_call): Likewise. * ipa-cp.c (determine_versionability): Likewise. * ipa-fnsummary.c (compute_fn_summary): Likewise. * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. * ipa-split.c (visit_bb): Likewise. (split_function): Likewise. * ipa-visibility.c (cgraph_externally_visible_p): Likewise. * lto-cgraph.c (input_node): Likewise. * lto-streamer-out.c (write_symbol): Likewise. * omp-low.c (setjmp_or_longjmp_p): Likewise. (lower_omp_1): Likewise. * predict.c (strip_predict_hints): Likewise. * print-tree.c (print_node): Likewise. * symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise. * trans-mem.c (is_tm_irrevocable): Likewise. (is_tm_load): Likewise. (is_tm_simple_load): Likewise. (is_tm_store): Likewise. (is_tm_simple_store): Likewise. (is_tm_abort): Likewise. (tm_region_init_1): Likewise. * tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise. * tree-cfg.c (verify_gimple_call): Likewise. (move_stmt_r): Likewise. (stmt_can_terminate_bb_p): Likewise. * tree-eh.c (lower_eh_constructs_2): Likewise. * tree-if-conv.c (if_convertible_stmt_p): Likewise. * tree-inline.c (remap_gimple_stmt): Likewise. (copy_bb): Likewise. (estimate_num_insns): Likewise. (fold_marked_statements): Likewise. * tree-sra.c (scan_function): Likewise. * tree-ssa-ccp.c (surely_varying_stmt_p): Likewise. (optimize_stack_restore): Likewise. (pass_fold_builtins::execute): Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. (mark_all_reaching_defs_necessary_1): Likewise. * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise. * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. (pass_forwprop::execute): Likewise. * tree-ssa-loop-im.c (stmt_cost): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. * tree-ssa-strlen.c (get_string_length): Likewise. * tree-ssa-structalias.c (handle_lhs_call): Likewise. (find_func_aliases_for_call): Likewise. * tree-ssa-ter.c (find_replaceable_in_bb): Likewise. * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise. * tree-tailcall.c (find_tail_calls): Likewise. * tree.c (need_assembler_name_p): Likewise. (free_lang_data_in_decl): Likewise. (get_call_combined_fn): Likewise. * ubsan.c (is_ubsan_builtin_p): Likewise. * varasm.c (incorporeal_function_p): Likewise. * tree.h (DECL_BUILT_IN): Remove and replace with fndecl_built_in_p. (DECL_BUILT_IN_P): Transfort to fndecl_built_in_p. (fndecl_built_in_p): New. 2018-08-27 Martin Liska <mliska@suse.cz> * gcc-interface/decl.c (update_profile): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. * gcc-interface/gigi.h (call_is_atomic_load): Likewise. * gcc-interface/utils.c (gnat_pushdecl): Likewise. 2018-08-27 Martin Liska <mliska@suse.cz> * c-common.c (check_function_restrict): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. (check_builtin_function_arguments): Likewise. (reject_gcc_builtin): Likewise. * c-warn.c (sizeof_pointer_memaccess_warning): Likewise. 2018-08-27 Martin Liska <mliska@suse.cz> * c-decl.c (locate_old_decl): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. (diagnose_mismatched_decls): Likewise. (merge_decls): Likewise. (warn_if_shadowing): Likewise. (pushdecl): Likewise. (implicitly_declare): Likewise. * c-parser.c (c_parser_postfix_expression_after_primary): Likewise. * c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise. * c-typeck.c (build_function_call_vec): Likewise. (convert_arguments): Likewise. 2018-08-27 Martin Liska <mliska@suse.cz> * call.c (build_call_a): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. (build_cxx_call): Likewise. * constexpr.c (constexpr_fn_retval): Likewise. (cxx_eval_builtin_function_call): Likewise. (cxx_eval_call_expression): Likewise. (potential_constant_expression_1): Likewise. * cp-gimplify.c (cp_gimplify_expr): Likewise. (cp_fold): Likewise. * decl.c (decls_match): Likewise. (validate_constexpr_redeclaration): Likewise. (duplicate_decls): Likewise. (make_rtl_for_nonlocal_decl): Likewise. * name-lookup.c (consider_binding_level): Likewise. (cp_emit_debug_info_for_using): Likewise. * semantics.c (finish_call_expr): Likewise. * tree.c (builtin_valid_in_constant_expr_p): Likewise. 2018-08-27 Martin Liska <mliska@suse.cz> * go-gcc.cc (Gcc_backend::call_expression): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. 2018-08-27 Martin Liska <mliska@suse.cz> * lto-lang.c (handle_const_attribute): Use new function fndecl_built_in_p and remove check for FUNCTION_DECL if possible. * lto-symtab.c (lto_symtab_merge_p): Likewise. (lto_symtab_merge_decls_1): Likewise. (lto_symtab_merge_symbols): Likewise. * lto.c (lto_maybe_register_decl): Likewise. (read_cgraph_and_symbols): Likewise. From-SVN: r263880
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> PR tree-optimization/86847 * tree-switch-conversion.c (switch_decision_tree::dump_case_nodes): Dump also subtree probability. (switch_decision_tree::do_jump_if_equal): New function. (switch_decision_tree::emit_case_nodes): Handle special situations in balanced tree that can be emitted much simpler. Fix calculation of probabilities that happen in tree expansion. * tree-switch-conversion.h (struct cluster): Add is_single_value_p. (struct simple_cluster): Likewise. (struct case_tree_node): Add new function has_child. (do_jump_if_equal): New. 2018-08-27 Martin Liska <mliska@suse.cz> PR tree-optimization/86847 * gcc.dg/tree-ssa/switch-3.c: New test. * gcc.dg/tree-ssa/vrp105.c: Remove. From-SVN: r263879
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): Add new argument to bit_test_cluster constructor. (bit_test_cluster::emit): Set bits really number of values handlel by a test. (bit_test_cluster::hoist_edge_and_branch_if_true): Add probability argument. * tree-switch-conversion.h (struct bit_test_cluster): Add m_handles_entire_switch. 2018-08-27 Martin Liska <mliska@suse.cz> * gcc.dg/tree-ssa/switch-2.c: New test. From-SVN: r263878
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> PR tree-optimization/86702 * tree-switch-conversion.c (jump_table_cluster::emit): Make probabilities even for values in jump table according to number of cases handled. (switch_decision_tree::compute_cases_per_edge): Pass argument to reset_out_edges_aux function. (switch_decision_tree::analyze_switch_statement): Likewise. * tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux): Make it static. From-SVN: r263877
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> * cfgexpand.c (expand_asm_stmt): Use label_to_block and pass cfun argument explicitly. * gimple-pretty-print.c (dump_gimple_switch): Likewise. * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new function gimple_switch_default_bb. (convert_switch_statements): (expand_builtins): * ipa-fnsummary.c (set_switch_stmt_execution_predicate): * stmt.c (label_to_block_fn): Use label_to_block and pass cfun argument explicitly and use gimple_switch_label_bb. (expand_case): Likewise. * tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass cfun argument explicitly. Likewise. (make_edges_bb): Likewise. (make_cond_expr_edges): Likewise. (get_cases_for_edge): Likewise. (make_gimple_switch_edges): Likewise. (label_to_block_fn): Likewise. (label_to_block): Likewise. (make_goto_expr_edges): Likewise. (make_gimple_asm_edges): Likewise. (main_block_label): Likewise. (group_case_labels_stmt): Likewise. (find_taken_edge_computed_goto): Likewise. (find_taken_edge_switch_expr): Likewise. (gimple_verify_flow_info): Likewise. (gimple_redirect_edge_and_branch): Likewise. (gimple_switch_label_bb): New function. (gimple_switch_default_bb): Likewise. (gimple_switch_edge): Likewise. (gimple_switch_default_edge): Likewise. * tree-cfg.h (label_to_block_fn): Remove and replace ... (label_to_block): ... with this. (gimple_switch_label_bb): New. (gimple_switch_default_bb): Likewise. (gimple_switch_edge): Likewise. (gimple_switch_default_edge): Likewise. * tree-cfgcleanup.c (convert_single_case_switch): Use new gimple functions and pass new argument to label_to_block. (cleanup_control_flow_bb): * tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass cfun argument explicitly. (make_eh_edges): Likewise. (redirect_eh_dispatch_edge): Likewise. (lower_resx): Likewise. (lower_eh_dispatch): Likewise. (maybe_remove_unreachable_handlers): Likewise. (unsplit_eh): Likewise. (cleanup_empty_eh): Likewise. (verify_eh_edges): Likewise. (verify_eh_dispatch_edge): Likewise. * tree-ssa-dom.c (record_edge_info): Likewise. * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise. * tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise. (thread_through_normal_block): Likewise. * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): * tree-switch-conversion.c (switch_conversion::collect): Use new gimple functions. (switch_conversion::check_final_bb): Likewise. (switch_conversion::gather_default_values): Pass new argument to label_to_block. (switch_conversion::build_constructors): Likewise. (switch_decision_tree::compute_cases_per_edge): Use new gimple_switch_edge function. (switch_decision_tree::analyze_switch_statement): Pass new argument to label_to_block. (switch_decision_tree::try_switch_expansion): Use gimple_switch_default_edge. * tree-vrp.c (find_switch_asserts): Pass new argument to label_to_block. * vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise. (vr_values::simplify_switch_using_ranges): Likewise. From-SVN: r263876
Martin Liska committed -
2018-08-27 Richard Biener <rguenther@suse.de> * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare. * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function. * tree-ssa-sccvn.h (struct vn_pval): New structure. (struct vn_nary_op_s): Add unwind_to member. Add predicated_values flag and put result into a union together with a linked list of vn_pval. (struct vn_ssa_aux): Add name member to make maintaining a map of SSA name to vn_ssa_aux possible. Remove no longer needed info, dfsnum, low, visited, on_sccstack, use_processed and range_info_anti_range_p members. (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove. (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): New functions. (vn_valueize): New global. (vn_context_bb): Likewise. (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE, VN_INFO_PTR_INFO): Remove. * tree-ssa-sccvn.c: ... (rewrite) (pass_fre::execute): For -O2+ initialize loops and run RPO VN in optimistic mode (iterating). For -O1 and -Og run RPO VN in non-optimistic mode. * params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove. (PARAM_RPO_VN_MAX_LOOP_DEPTH): Add. * doc/invoke.texi (sccvn-max-scc-size): Remove. (rpo-vn-max-loop-depth): Document. * tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking when valuezing the VUSE signals we walked out of the region. * tree-ssa-pre.c (phi_translate_1): Ignore predicated values. (phi_translate): Set VN context block to use for availability lookup. (compute_avail): Likewise. (pre_valueize): New function. (pass_pre::execute): Adjust to the RPO VN API. * tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h. (propagate_constants_for_unrolling): Remove. (tree_unroll_loops_completely): Perform value-numbering on the unrolled bodies loop parent. * g++.dg/torture/20180705-1.C: New testcase. * gcc.dg/tree-ssa/ssa-fre-67.c: Likewise. * gcc.dg/tree-ssa/ssa-ccp-14.c: Scan FRE dump. * gcc.dg/tree-ssa/ssa-fre-46.c: Use -O2. * gcc.dg/tree-ssa/vrp92.c: Disable FRE. * gcc.dg/pr83666.c: Drop --param=sccvn-max-scc-size option. * gcc.dg/pr85195.c: Likewise. * gcc.dg/pr85467.c: Likewise. * gcc.dg/torture/pr81790.c: Likewise. * gfortran.dg/reassoc_4.f: Change max-completely-peeled-insns param to current default. From-SVN: r263875
Richard Biener committed -
2018-08-27 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (compute_antic): Re-use inverted postorder for partial antic compute. From-SVN: r263874
Richard Biener committed -
PR rtl-optimization/87065 * combine.c (simplify_if_then_else): Formatting fix. (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P check. (known_cond): Don't return const_true_rtx for vector modes. Use CONST0_RTX instead of const0_rtx. Formatting fixes. * gcc.target/i386/pr87065.c: New test. From-SVN: r263872
Jakub Jelinek committed -
2018-08-27 Martin Liska <mliska@suse.cz> PR gcov-profile/87069 * gcov.c (process_file): Record files already processed and warn about a file being processed multiple times. From-SVN: r263871
Martin Liska committed -
2018-08-27 Martin Liska <mliska@suse.cz> PR driver/83193 * config/aarch64/aarch64.c (aarch64_override_options_internal): Set default values for x_aarch64_*_string strings. * config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}== prefix. For -mabi do not print '=ABI' in help and use <option_value> format for -msve-vector-bits and -moverride options. From-SVN: r263870
Martin Liska committed -
* config/mips/frame-header-opt.c: Include "backend.h" rather than "cfg.h" From-SVN: r263869
Jeff Law committed -
From-SVN: r263867
GCC Administrator committed
-
- 26 Aug, 2018 3 commits
-
-
* c.opt (Wredundant-move): New option. * typeck.c (treat_lvalue_as_rvalue_p): New function. (maybe_warn_pessimizing_move): Call convert_from_reference. Warn about redundant moves. * doc/invoke.texi: Document -Wredundant-move. * g++.dg/cpp0x/Wredundant-move1.C: New test. * g++.dg/cpp0x/Wredundant-move2.C: New test. * g++.dg/cpp0x/Wredundant-move3.C: New test. * g++.dg/cpp0x/Wredundant-move4.C: New test. From-SVN: r263863
Marek Polacek committed -
PR c++/87080 * typeck.c (maybe_warn_pessimizing_move): Do nothing in a template. * g++.dg/cpp0x/Wpessimizing-move5.C: New test. From-SVN: r263862
Marek Polacek committed -
From-SVN: r263860
GCC Administrator committed
-
- 25 Aug, 2018 6 commits
-
-
2018-08-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/86704 * m4/matmul_internal.m4: Correct calculation of needed buffer size for arrays of shape (1,n). * generated/matmul_c10.c: Regenerated * generated/matmul_c16.c: Regenerated * generated/matmul_c4.c: Regenerated * generated/matmul_c8.c: Regenerated * generated/matmul_i1.c: Regenerated * generated/matmul_i16.c: Regenerated * generated/matmul_i2.c: Regenerated * generated/matmul_i4.c: Regenerated * generated/matmul_i8.c: Regenerated * generated/matmul_r10.c: Regenerated * generated/matmul_r16.c: Regenerated * generated/matmul_r4.c: Regenerated * generated/matmul_r8.c: Regenerated * generated/matmulavx128_c10.c: Regenerated * generated/matmulavx128_c16.c: Regenerated * generated/matmulavx128_c4.c: Regenerated * generated/matmulavx128_c8.c: Regenerated * generated/matmulavx128_i1.c: Regenerated * generated/matmulavx128_i16.c: Regenerated * generated/matmulavx128_i2.c: Regenerated * generated/matmulavx128_i4.c: Regenerated * generated/matmulavx128_i8.c: Regenerated * generated/matmulavx128_r10.c: Regenerated * generated/matmulavx128_r16.c: Regenerated * generated/matmulavx128_r4.c: Regenerated * generated/matmulavx128_r8.c: Regenerated 2018-08-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/86704 * gfortran.dg/matmul_19.f90: New test. From-SVN: r263856
Thomas Koenig committed -
PR tree-optimization/87059 * builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand to the same type as the other. * fold-const.c (fold_binary_loc): Assert expectation. From-SVN: r263855
Martin Sebor committed -
fix PR 86545 2018-08-25 Janus Weil <janus@gcc.gnu.org> PR fortran/86545 * resolve.c (resolve_transfer): Correctly determine typespec for generic function calls, in order to throw a proper error. 2018-08-25 Janus Weil <janus@gcc.gnu.org> PR fortran/86545 * gfortran.dg/generic_35.f90: New test case. From-SVN: r263854
Janus Weil committed -
* config/darwin.c (machopic_legitimize_pic_address): Clean up extraneous parentheses, dead code section and formatting. From-SVN: r263851
Iain Sandoe committed -
PR libstdc++/70694 * configure.host (OPT_LDFLAGS): Don't append -fvisibility-inlines-hidden for newer Darwin. From-SVN: r263850
Iain Sandoe committed -
From-SVN: r263849
GCC Administrator committed
-
- 24 Aug, 2018 16 commits
-
-
With profiledbootstrap and --with-build-config=bootstrap-lto, linemap_add may create a macro map when we run out of line map space. This patch changes start_location to UNKNOWN_LOCATION (0) in this case. Tested with profiledbootstrap and --with-build-config=bootstrap-lto on Linux/x86-64. PR bootstrap/86872 * line-map.c (pure_location_p): Return true if linemap_lookup returns NULL. (linemap_add): Set start_location to 0 if we run out of line map space. From-SVN: r263845
H.J. Lu committed -
This patch tweaks how line numbers are printed for a diagnostic containing multiple line spans. With this patch, rather than printing span headers: ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:74:1: ++ |+#include <vector> 74 | #endif ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: 87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; | ^~~ we now print: ../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message +++ |+#include <vector> 74 | #endif .... 87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>; | ^~~ and for sufficiently close lines, rather than print a gap: + |+#include <stdio.h> 1 | test (int ch) .. 3 | putchar (ch); | ^~~~~~~ we print the line itself: + |+#include <stdio.h> 1 | test (int ch) 2 | { 3 | putchar (ch); | ^~~~~~~ gcc/ChangeLog: PR 87091 * diagnostic-show-locus.c (layout::layout): Ensure the margin is wide enough for jumps in the line-numbering to be visible. (layout::print_gap_in_line_numbering): New member function. (layout::calculate_line_spans): When using line numbering, merge line spans that are only 1 line apart. (diagnostic_show_locus): When printing line numbers, show gaps in line numbering directly, rather than printing headers. (selftest::test_diagnostic_show_locus_fixit_lines): Add test of line-numbering with multiple line spans. (selftest::test_fixit_insert_containing_newline_2): Add test of line-numbering, in which the spans are close enough to be merged. gcc/testsuite/ChangeLog: PR 87091 * gcc.dg/missing-header-fixit-3.c: Update for changes to how line spans are printed with -fdiagnostics-show-line-numbers. From-SVN: r263843
David Malcolm committed -
* gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range to range_includes_zero_p. Do not special case VR_ANTI_RANGE. * tree-vrp.c (range_is_nonnull): Remove. (range_includes_zero_p): Accept value_range instead of min/max. (extract_range_from_binary_expr_1): Do not early bail on POINTER_PLUS_EXPR. Use range_includes_zero_p instead of range_is_nonnull. (extract_range_from_unary_expr): Use range_includes_zero_p instead of range_is_nonnull. (vrp_meet_1): Pass value_range to range_includes_zero_p. Do not special case VR_ANTI_RANGE. (vrp_finalize): Same. * tree-vrp.h (range_includes_zero_p): Pass value_range as argument instead of min/max. (range_is_nonnull): Remove. * vr-values.c (vrp_stmt_computes_nonzero): Use range_includes_zero_p instead of range_is_nonnull. (extract_range_basic): Pass value_range to range_includes_zero_p instead of range_is_nonnull. From-SVN: r263842
Aldy Hernandez committed -
2018-08-24 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/86822 * libsupc++/new (operator new(size_t, nothrow_t), operator new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t), operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute. From-SVN: r263841
Marc Glisse committed -
This is a port of https://golang.org/cl/109596 to the gofrontend, in preparation for updating libgo to 1.11. Original CL description: getcallersp is intrinsified, and so the dummy arg is no longer needed. Remove it, as well as a few dummy args that are solely to feed getcallersp. Reviewed-on: https://go-review.googlesource.com/131116 From-SVN: r263840
Ian Lance Taylor committed -
Prior to this change, including a <debug/xxx> header when _GLIBCXX_DEBUG is also defined would fail to compile in C++17 or later. The <debug/xxx> header would include the standard <xxx> header which defined std::pmr::xxx as an alias for std::xxx. But in Debug Mode std::xxx refers to std::__debug::xxx which has not been defined yet (because it is in <debug/xxx> after the inclusion of <xxx>). This adds declarations of the debug containers before including the non-Debug Mode <xxx> header, so that the std::pmr::xxx aliases work. * include/debug/deque (std::__debug::deque): Declare. * include/debug/forward_list (std::__debug::forward_list): Declare. * include/debug/list (std::__debug::list): Declare. * include/debug/map (std::__debug::map): Declare. * include/debug/set (std::__debug::set): Declare. * include/debug/unordered_map (std::__debug::unordered_map): Declare. * include/debug/unordered_set (std::__debug::unordered_set): Declare. * include/debug/vector (std::__debug::vector): Declare. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adjust dg-error lineno. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New test. From-SVN: r263839
Jonathan Wakely committed -
2018-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/86837 * frontend-passes.c (var_in_expr_callback): New function. (var_in_expr): New function. (traverse_io_block): Use var_in_expr instead of gfc_check_dependency for checking if the variable depends on the previous interators. 2018-08-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/86837 * gfortran.dg/implied_do_io_6.f90: New test. From-SVN: r263838
Thomas Koenig committed -
PR middle-end/87092 * gcc.dg/pr87092.c: New test. From-SVN: r263837
H.J. Lu committed -
PR c++/67012 PR c++/86942 * decl.c (grokdeclarator): Disallow functions with trailing return type with decltype(auto) as its type. Also check the function if it's inner declarator doesn't exist * g++.dg/cpp0x/auto52.C: New test. * g++.dg/cpp1y/auto-fn52.C: New test. * g++.dg/cpp1y/auto-fn53.C: New test. * g++.dg/cpp1y/auto-fn54.C: New test. From-SVN: r263836
Marek Polacek committed -
* emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes. * emit-rtl.h (rtl_data): Remove return_bnd. * explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P. * function.c (diddle_return_value): Do not handle crtl->return_bnd. * genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS. (POINTER_BOUNDS_MODE): Remove definition. (make_pointer_bounds_mode): Remove. (get_mode_class): Do not handle MODE_POINTER_BOUNDS. * machmode.h (POINTER_BOUNDS_MODE_P): Remove definition. (scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS. * mode-classes.def: Do not define MODE_POINTER_BOUNDS. * stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS. * tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE. * varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS. * config/i386/i386-modes.def (BND32, BND64): Remove. * config/i386/i386.c (dbx_register_map): Remove bound registers. (dbx64_register_map): Ditto. (svr4_dbx_register_map): Ditto. (indirect_thunk_bnd_needed): Remove. (indirect_thunks_bnd_used): Ditto. (indirect_return_bnd_needed): Ditto. (indirect_return_via_cx_bnd): Ditto. (enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd. (indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd. (output_indirect_thunk): Ditto. Remove need_prefix argument. (output_indirect_thunk_function): Remove handling of indirect_return_bnd_needed, indirect_return_via_cx_bnd, indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables. (ix86_save_reg): Remove handling of crtl->return_bnd. (ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P. (ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR and UNSPEC_BNDLX_ADDR. (ix86_output_indirect_branch_via_reg): Remove handling of indirect_thunk_prefix_bnd. (ix86_output_indirect_branch_via_push): Ditto. (ix86_output_function_return): Ditto. (ix86_output_indirect_function_return): Ditto. (avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX. * config/i386/i386.h (FIXED_REGISTERS): Remove bound registers. (CALL_USED_REGISTERS): Ditto. (REG_ALLOC_ORDER): Update for removal of bound registers. (HI_REGISTER_NAMES): Ditto. * config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX) (UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU) (UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove. (BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove (FIRST_PSEUDO_REG): Update. (BND): Remove mode iterator. * config/i386/predicates.md (bnd_mem_operator): Remove. From-SVN: r263835
Uros Bizjak committed -
Variable-length SVE now supports enough permutes to define vect_perm. The change to vect_perm_supported is currently a no-op because the function is only called with a count of 3. 2018-08-24 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * lib/target-supports.exp (vect_perm_supported): Only return false for variable-length vectors if the permute size is not a power of 2. (check_effective_target_vect_perm) (check_effective_target_vect_perm_byte) (check_effective_target_vect_perm_short): Remove check for variable-length vectors. * gcc.dg/vect/slp-23.c: Add an XFAIL for variable-length SVE. * gcc.dg/vect/slp-perm-10.c: Likewise. * gcc.dg/vect/slp-perm-9.c: Add an XFAIL for variable-length vectors. From-SVN: r263834
Richard Sandiford committed -
The "new" VEC_PERM_EXPR handling makes it easy to support bswap for variable-length vectors. 2018-08-24 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length vectors. gcc/testsuite/ * gcc.target/aarch64/sve/bswap_1.c: New test. * gcc.target/aarch64/sve/bswap_2.c: Likewise. * gcc.target/aarch64/sve/bswap_3.c: Likewise. From-SVN: r263833
Richard Sandiford committed -
The SLP code currently punts for all variable-length permutes. This patch makes it handle the easy case of N->N permutes in which the number of vector lanes is a multiple of N. Every permute then uses the same mask, and that mask repeats (with a stride) every N elements. The patch uses the same path for constant-length vectors, since it should be slightly cheaper in terms of compile time. 2018-08-24 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-slp.c (vect_transform_slp_perm_load): Separate out the case in which the permute needs only a single element and repeats for every vector of the result. Extend that case to handle variable-length vectors. * tree-vect-stmts.c (vectorizable_load): Update accordingly. gcc/testsuite/ * gcc.target/aarch64/sve/slp_perm_1.c: New test. * gcc.target/aarch64/sve/slp_perm_2.c: Likewise. * gcc.target/aarch64/sve/slp_perm_3.c: Likewise. * gcc.target/aarch64/sve/slp_perm_4.c: Likewise. * gcc.target/aarch64/sve/slp_perm_5.c: Likewise. * gcc.target/aarch64/sve/slp_perm_6.c: Likewise. * gcc.target/aarch64/sve/slp_perm_7.c: Likewise. From-SVN: r263832
Richard Sandiford committed -
Since -gsplit-dwarf -g3 will output filename as indirect string, call set_indirect_string on DW_MACINFO_start_file for -gsplit-dwarf -g3. gcc/ PR debug/79342 * dwarf2out.c (save_macinfo_strings): Call set_indirect_string on DW_MACINFO_start_file for -gsplit-dwarf -g3. gcc/testsuite/ PR debug/79342 * gcc.dg/pr79342.: New test. From-SVN: r263831
H.J. Lu committed -
2018-08-24 Richard Biener <rguenther@suse.de> * cfg.h (struct control_flow_graph): Add edge_flags_allocated and bb_flags_allocated members. (auto_flag): New RAII class for allocating flags. (auto_edge_flag): New RAII class for allocating edge flags. (auto_bb_flag): New RAII class for allocating bb flags. * cfgloop.c (verify_loop_structure): Allocate temporary edge flag dynamically. * cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap in favor of temporarily allocated BB flag. * hsa-brig.c: Re-order includes. * hsa-dump.c: Likewise. * hsa-regalloc.c: Likewise. * print-rtl.c: Likewise. * profile-count.c: Likewise. From-SVN: r263830
Richard Biener committed -
There currently is nothing that prevents replacing the TOC_REGISTER in a TOCREL unspec with something else, like a pseudo, or a memory ref. This of course does not work. Fix that. Tested on powerpc64-linux {-m32,-m64}; committing. Segher 2018-08-24 Segher Boessenkool <segher@kernel.crashing.org> PR target/86989 * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is the TOC register. --- gcc/config/rs6000/rs6000.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a967912..ed33912 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -7932,7 +7932,9 @@ toc_relative_expr_p (const_rtx op, bool strict, const_rtx *tocrel_base_ret, *tocrel_offset_ret = tocrel_offset; return (GET_CODE (tocrel_base) == UNSPEC - && XINT (tocrel_base, 1) == UNSPEC_TOCREL); + && XINT (tocrel_base, 1) == UNSPEC_TOCREL + && REG_P (XVECEXP (tocrel_base, 0, 1)) + && REGNO (XVECEXP (tocrel_base, 0, 1)) == TOC_REGISTER); } /* Return true if X is a constant pool address, and also for cmodel=medium -- 1.8.3.1 From-SVN: r263829
Segher Boessenkool committed
-