gcc.git
7 years agonetbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared objects.
Maya Rashish [Thu, 29 Jun 2017 23:23:06 +0000 (23:23 +0000)]
netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared objects.

2017-06-29  Maya Rashish  <coypu@sdf.org>

* config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
objects.

From-SVN: r249822

7 years agoarm-builtins.c: Include profile-count.h
Jan Hubicka [Thu, 29 Jun 2017 22:38:30 +0000 (00:38 +0200)]
arm-builtins.c: Include profile-count.h

* arm/arm-builtins.c: Include profile-count.h
* except.c (sjlj_emit_function_enter): Use
profile_probability::unlikely.

From-SVN: r249821

7 years agoclass.c (add_method): Change pair of errors to error + inform.
Paolo Carlini [Thu, 29 Jun 2017 22:32:33 +0000 (22:32 +0000)]
class.c (add_method): Change pair of errors to error + inform.

/cp
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

* class.c (add_method): Change pair of errors to error + inform.
(handle_using_decl): Likewise.

/testsuite
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/inh-ctor3.C: Adjust for dg-message vs dg-error.
* g++.dg/diagnostic/variadic1.C: Likewise.
* g++.dg/gomp/udr-3.C: Likewise.
* g++.dg/overload/error1.C: Likewise.
* g++.dg/overload/error2.C: Likewise.
* g++.dg/template/duplicate1.C: Likewise.
* g++.old-deja/g++.benjamin/warn02.C: Likewise.
* g++.old-deja/g++.brendan/arm2.C: Likewise.
* g++.old-deja/g++.other/redecl2.C: Likewise.
* g++.old-deja/g++.other/redecl4.C: Likewise.
* g++.old-deja/g++.pt/memtemp78.C: Likewise.

From-SVN: r249820

7 years ago* constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.
Jason Merrill [Thu, 29 Jun 2017 21:44:11 +0000 (17:44 -0400)]
* constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.

From-SVN: r249818

7 years agoPR c++/81180 - ICE with C++17 deduction of member class template.
Jason Merrill [Thu, 29 Jun 2017 21:13:43 +0000 (17:13 -0400)]
PR c++/81180 - ICE with C++17 deduction of member class template.

* pt.c (build_deduction_guide): Correct member template handling.

From-SVN: r249816

7 years agors6000.c (toc_relative_expr_p): Make tocrel_base and tocrel_offset be pointer args...
Aaron Sawdey [Thu, 29 Jun 2017 20:10:05 +0000 (20:10 +0000)]
rs6000.c (toc_relative_expr_p): Make tocrel_base and tocrel_offset be pointer args rather than implicitly using...

2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

        * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
        and tocrel_offset be pointer args rather than implicitly using
        static versions.
        (legitimate_constant_pool_address_p, rs6000_emit_move,
        const_load_sequence_p, adjust_vperm): Add local tocrel_base and
        tocrel_offset and use in toc_relative_expr_p call.
        (print_operand, print_operand_address): Use static tocrel_base_oac
        and tocrel_offset_oac.
        (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
        tocrel_offset_oac.

From-SVN: r249815

7 years agoPR c++/81188 - matching decltype of member function call.
Jason Merrill [Thu, 29 Jun 2017 19:44:12 +0000 (15:44 -0400)]
PR c++/81188 - matching decltype of member function call.

* tree.c (cp_tree_equal): Remove COMPONENT_REF special case.

From-SVN: r249813

7 years agobuiltins.md (ffssi2_internal): Correct constraint.
Maya Rashish [Thu, 29 Jun 2017 19:43:15 +0000 (19:43 +0000)]
builtins.md (ffssi2_internal): Correct constraint.

2017-06-29  Maya Rashish  <coypu@sdf.org>

* config/vax/builtins.md (ffssi2_internal): Correct constraint.

From-SVN: r249812

7 years agoexpr.c (expand_expr): When testing for unaligned objects...
Eric Botcazou [Thu, 29 Jun 2017 19:21:25 +0000 (19:21 +0000)]
expr.c (expand_expr): When testing for unaligned objects...

* expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
objects, take into account only the alignment of 'op0' and 'mode1' if
'op0' is a MEM.

From-SVN: r249811

7 years agore PR fortran/77765 (ICE in gfc_match_oacc_routine, at fortran/openmp.c:1781)
Cesar Philippidis [Thu, 29 Jun 2017 19:03:43 +0000 (12:03 -0700)]
re PR fortran/77765 (ICE in gfc_match_oacc_routine, at fortran/openmp.c:1781)

PR fortran/77765

gcc/fortran/
* openmp.c (gfc_match_oacc_routine): Check if proc_name exist before
comparing the routine name against it.

gcc/testsuite/
* gfortran.dg/goacc/pr77765.f90: New test.

From-SVN: r249809

7 years agoccmp_2.c: New test.
Steve Ellcey [Thu, 29 Jun 2017 18:23:40 +0000 (18:23 +0000)]
ccmp_2.c: New test.

2017-06-29  Steve Ellcey  <sellcey@cavium.com>

* gcc.target/aarch64/ccmp_2.c: New test.

From-SVN: r249806

7 years agoccmp.c (ccmp_tree_comparison_p): New function.
Steve Ellcey [Thu, 29 Jun 2017 18:20:14 +0000 (18:20 +0000)]
ccmp.c (ccmp_tree_comparison_p): New function.

2017-06-29  Steve Ellcey  <sellcey@cavium.com>

* ccmp.c (ccmp_tree_comparison_p): New function.
(ccmp_candidate_p): Update to use above function.
(get_compare_parts): New function.
(expand_ccmp_next): Update to use new functions.
(expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
new functions.
(expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
take mode as argument.
* ccmp.h (expand_ccmp_expr): Add mode as argument.
* expr.c (expand_expr_real_1): Pass mode as argument.

From-SVN: r249805

7 years agore PR c++/81247 (ICE on invalid C++ code with malformed namespace declaration: in...
Nathan Sidwell [Thu, 29 Jun 2017 18:20:13 +0000 (18:20 +0000)]
re PR c++/81247 (ICE on invalid C++ code with malformed namespace declaration: in do_push_nested_namespace, at cp/name-lookup.c:6002)

PR c++/81247
* parser.c (cp_parser_namespace_definition): Immediately close the
namespace if there's no open-brace.
* name-lookup.c (do_pushdecl): Reset OLD when pushing into new
namespace.

From-SVN: r249804

7 years agobid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
Sylvestre Ledru [Thu, 29 Jun 2017 17:35:03 +0000 (17:35 +0000)]
bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.

* bid/bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
(_dpd_to_bid32): Simplify identical code on multiple branches.
Fix whitespace.
(_bid_to_dpd64, _dpd_to_bid64): Likewise.
(_bid_to_dpd128, _dpd_to_bid128): Likewise.

From-SVN: r249803

7 years agocombine: Print insns with the cost dump
Segher Boessenkool [Thu, 29 Jun 2017 17:28:47 +0000 (19:28 +0200)]
combine: Print insns with the cost dump

In the combine dump file, at the start there is a list of the RTL cost
of every insn.  The only thing listed about the insns is the UID though.
To make it more useful, this patch prints the insn itself as well (in
slim format).

* combine.c (combine_instructions): Print insns to dump_file, together
with their costs.

From-SVN: r249802

7 years agoasan.c (asan_emit_stack_protection): Update.
Jan Hubicka [Thu, 29 Jun 2017 16:40:53 +0000 (18:40 +0200)]
asan.c (asan_emit_stack_protection): Update.

* asan.c (asan_emit_stack_protection): Update.
(create_cond_insert_point): Update.
* auto-profile.c (afdo_propagate_circuit): Update.
* basic-block.h (struct edge_def): Turn probability to
profile_probability.
(EDGE_FREQUENCY): Update.
* bb-reorder.c (find_traces_1_round): Update.
(better_edge_p): Update.
(sanitize_hot_paths): Update.
* cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
(make_single_succ_edge): Update.
(check_bb_profile): Update.
(dump_edge_info): Update.
(update_bb_profile_for_threading): Update.
* cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
probabilitycount to 0.
* cfgbuild.c (compute_outgoing_frequencies): Update.
* cfgcleanup.c (try_forward_edges): Update.
(outgoing_edges_match): Update.
(try_crossjump_to_edge): Update.
* cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
(expand_gimple_tailcall): Update.
(construct_init_block): Use make_single_succ_edge.
(construct_exit_block): Use make_single_succ_edge.
* cfghooks.c (verify_flow_info): Update.
(redirect_edge_succ_nodup): Update.
(split_edge): Update.
(account_profile_record): Update.
* cfgloopanal.c (single_likely_exit): Update.
* cfgloopmanip.c (scale_loop_profile): Update.
(set_zero_probability): Remove.
(duplicate_loop_to_header_edge): Update.
* cfgloopmanip.h (loop_version): Update prototype.
* cfgrtl.c (try_redirect_by_replacing_jump): Update.
(force_nonfallthru_and_redirect): Update.
(update_br_prob_note): Update.
(rtl_verify_edges): Update.
(purge_dead_edges): Update.
(rtl_lv_add_condition_to_bb): Update.
* cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
* cgraphunit.c (init_lowered_empty_function): Update.
(cgraph_node::expand_thunk): Update.
* cilk-common.c: Include profile-count.h
* dojump.c (inv): Remove.
(jumpifnot): Update.
(jumpifnot_1): Update.
(do_jump_1): Update.
(do_jump): Update.
(do_jump_by_parts_greater_rtx): Update.
(do_compare_rtx_and_jump): Update.
* dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
do_jump_1. do_compare_rtx_and_jump): Update prototype.
* dwarf2cfi.c: Include profile-count.h
* except.c (dw2_build_landing_pads): Use make_single_succ_edge.
(sjlj_emit_dispatch_table): Likewise.
* explow.c: Include profile-count.h
* expmed.c (emit_store_flag_force): Update.
(do_cmp_and_jump): Update.
* expr.c (compare_by_pieces_d::generate): Update.
(compare_by_pieces_d::finish_mode): Update.
(emit_block_move_via_loop): Update.
(store_expr_with_bounds): Update.
(store_constructor): Update.
(expand_expr_real_2): Update.
(expand_expr_real_1): Update.
* expr.h (try_casesi, try_tablejump): Update prototypes.
* gimple-pretty-print.c (dump_probability): Update.
(dump_profile): New.
(dump_gimple_label): Update.
(dump_gimple_bb_header): Update.
* graph.c (draw_cfg_node_succ_edges): Update.
* hsa-gen.c (convert_switch_statements): Update.
* ifcvt.c (cheap_bb_rtx_cost_p): Update.
(find_if_case_1): Update.
(find_if_case_2): Update.
* internal-fn.c (expand_arith_overflow_result_store): Update.
(expand_addsub_overflow): Update.
(expand_neg_overflow): Update.
(expand_mul_overflow): Update.
(expand_vector_ubsan_overflow): Update.
* ipa-cp.c (good_cloning_opportunity_p): Update.
* ipa-split.c (split_function): Use make_single_succ_edge.
* ipa-utils.c (ipa_merge_profiles): Update.
* loop-doloop.c (add_test): Update.
(doloop_modify): Update.
* loop-unroll.c (compare_and_jump_seq): Update.
(unroll_loop_runtime_iterations): Update.
* lra-constraints.c (lra_inheritance): Update.
* lto-streamer-in.c (input_cfg): Update.
* lto-streamer-out.c (output_cfg): Update.
* mcf.c (adjust_cfg_counts): Update.
* modulo-sched.c (sms_schedule): Update.
* omp-expand.c (expand_omp_for_init_counts): Update.
(extract_omp_for_update_vars): Update.
(expand_omp_ordered_sink): Update.
(expand_omp_for_ordered_loops): Update.
(expand_omp_for_generic): Update.
(expand_omp_for_static_nochunk): Update.
(expand_omp_for_static_chunk): Update.
(expand_cilk_for): Update.
(expand_omp_simd): Update.
(expand_omp_taskloop_for_outer): Update.
(expand_omp_taskloop_for_inner): Update.
* omp-simd-clone.c (simd_clone_adjust): Update.
* optabs.c (expand_doubleword_shift): Update.
(expand_abs): Update.
(emit_cmp_and_jump_insn_1): Update.
(expand_compare_and_swap_loop): Update.
* optabs.h (emit_cmp_and_jump_insns): Update prototype.
* predict.c (predictable_edge_p): Update.
(edge_probability_reliable_p): Update.
(set_even_probabilities): Update.
(combine_predictions_for_insn): Update.
(combine_predictions_for_bb): Update.
(propagate_freq): Update.
(estimate_bb_frequencies): Update.
(force_edge_cold): Update.
* profile-count.c (profile_count::dump): Add missing space into dump.
(profile_count::debug): Add newline.
(profile_count::differs_from_p): Explicitly convert to unsigned.
(profile_count::stream_in): Update.
(profile_probability::dump): New member function.
(profile_probability::debug): New member function.
(profile_probability::differs_from_p): New member function.
(profile_probability::differs_lot_from_p): New member function.
(profile_probability::stream_in): New member function.
(profile_probability::stream_out): New member function.
* profile-count.h (profile_count_quality): Rename to ...
(profile_quality): ... this one.
(profile_probability): New.
(profile_count): Update.
* profile.c (compute_branch_probabilities): Update.
* recog.c (peep2_attempt): Update.
* sched-ebb.c (schedule_ebbs): Update.
* sched-rgn.c (find_single_block_region): Update.
(compute_dom_prob_ps): Update.
(schedule_region): Update.
* sel-sched-ir.c (compute_succs_info): Update.
* stmt.c (struct case_node): Update.
(do_jump_if_equal): Update.
(get_outgoing_edge_probs): Update.
(conditional_probability): Update.
(emit_case_dispatch_table): Update.
(expand_case): Update.
(expand_sjlj_dispatch_table): Update.
(emit_case_nodes): Update.
* targhooks.c: Update.
* tracer.c (better_p): Update.
(find_best_successor): Update.
* trans-mem.c (expand_transaction): Update.
* tree-call-cdce.c: Update.
* tree-cfg.c (gimple_split_edge): Upate.
(move_sese_region_to_fn): Upate.
* tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
* tree-eh.c (lower_resx): Upate.
(cleanup_empty_eh_move_lp): Upate.
* tree-if-conv.c (version_loop_for_if_conversion): Update.
* tree-inline.c (copy_edges_for_bb): Update.
(copy_cfg_body): Update.
* tree-parloops.c (gen_parallel_loop): Update.
* tree-profile.c (gimple_gen_ic_func_profiler): Update.
(gimple_gen_time_profiler): Update.
* tree-ssa-dce.c (remove_dead_stmt): Update.
* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
(unloop_loops): Update.
(try_peel_loop): Update.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
* tree-ssa-loop-split.c (connect_loops): Update.
(split_loop): Update.
* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
(hoist_guard): Update.
* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
(value_replacement): Update.
* tree-ssa-reassoc.c (branch_fixup): Update.
* tree-ssa-tail-merge.c (replace_block_by): Update.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
(create_edge_and_update_destination_phis): Update.
(compute_path_counts): Update.
(recompute_probabilities): Update.
(update_joiner_offpath_counts): Update.
(freqs_to_counts_path): Update.
(duplicate_thread_path): Update.
* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
(struct switch_conv_info): Update.
(gen_inbound_check): Update.
* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
(vect_do_peeling): Update.
(vect_loop_versioning): Update.
* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
(optimize_mask_stores): Update.
* ubsan.c (ubsan_expand_null_ifn): Update.
* value-prof.c (gimple_divmod_fixed_value): Update.
(gimple_divmod_fixed_value_transform): Update.
(gimple_mod_pow2): Update.
(gimple_mod_pow2_value_transform): Update.
(gimple_mod_subtract): Update.
(gimple_mod_subtract_transform): Update.
(gimple_ic): Update.
(gimple_stringop_fixed_value): Update.
(gimple_stringops_transform): Update.
* value-prof.h: Update.

From-SVN: r249800

7 years agoMakefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
Ian Lance Taylor [Thu, 29 Jun 2017 16:01:38 +0000 (16:01 +0000)]
Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.

* Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
(mostlyclean-local): Remove check-runtime-dir, cgo-test-dir,
carchive-test-dir.
(ECHO_ENV): Define.
(check-go-tool): Depend on cgo.  Write command to testlog.
(check-runtime): New target.
(check-cgo-test): New target.
(check-carchive-test): New target.
(check): Depend on check-runtime, check-cgo-test,
check-carchive-test.  Add @ to prettify output.
(.PHONY): Add check-runtime, check-cgo-test, check-carchive-test.
* Makefile.in: Rebuild.

From-SVN: r249799

7 years agors6000-c.c: Add support for built-in functions vector signed int vec_signed (vector...
Carl Love [Thu, 29 Jun 2017 15:39:57 +0000 (15:39 +0000)]
rs6000-c.c: Add support for built-in functions vector signed int vec_signed (vector float)...

gcc/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c.c: Add support for built-in functions
vector signed int vec_signed (vector float);
vector signed long long vec_signed (vector double);
vector signed int vec_signed2 (vector double, vector double);
vector signed int vec_signede (vector double);
vector signed int vec_signedo (vector double);
* config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
instruction generator.
* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
UNSPEC_VSX_VSIGNED2): Add UNSPECS.
(vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
Add define_insn.
(vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
vunsignede_v2df): Add define_expands.
* config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
VEC_UNSIGNEDO): Add definitions.
* config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
UNSPEC_VSX_VSIGNED2): Add UNSPECs.
(vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
(vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
* config/rs6000/altivec.h (vec_signed, vec_signed2,
vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
vec_unsignede, vec_unsignedo): Add builtin defines.
* config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
declaration.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.

gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-runnable.c (test_int_result,
test_unsigned_int_result, test_ll_int_result,
test_ll_unsigned_int_result): Add result checking functions, add
debug support.
(main): Add builtin function tests.

From-SVN: r249798

7 years agoPR c++/81164 - ICE with invalid inherited constructor.
Jason Merrill [Thu, 29 Jun 2017 15:30:11 +0000 (11:30 -0400)]
PR c++/81164 - ICE with invalid inherited constructor.

* search.c (binfo_direct_p): New.
* name-lookup.c (do_class_using_decl): Use it.

From-SVN: r249797

7 years agomisc/cgo/testcarchive: fix test to work for gccgo
Ian Lance Taylor [Thu, 29 Jun 2017 15:17:20 +0000 (15:17 +0000)]
misc/cgo/testcarchive: fix test to work for gccgo

    This test is not yet run, but it will be soon.

    Reviewed-on: https://go-review.googlesource.com/47038

From-SVN: r249795

7 years agocmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo
Ian Lance Taylor [Thu, 29 Jun 2017 15:14:05 +0000 (15:14 +0000)]
cmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo

    The tests are misc/cgo tests that are not currently run but will be
    run soon.

    Reviewed-on: https://go-review.googlesource.com/47037

From-SVN: r249794

7 years agobuiltins-3-vec_reve-runnable.c (dg-options, dg-skip-if): Add -mvsx -mcpu=power7.
Carl Love [Thu, 29 Jun 2017 15:11:25 +0000 (15:11 +0000)]
builtins-3-vec_reve-runnable.c (dg-options, dg-skip-if): Add -mvsx -mcpu=power7.

gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-vec_reve-runnable.c (dg-options,
dg-skip-if): Add -mvsx -mcpu=power7.

From-SVN: r249792

7 years agocp-tree.h (THIS_NAME, [...]): Delete.
Nathan Sidwell [Thu, 29 Jun 2017 14:49:46 +0000 (14:49 +0000)]
cp-tree.h (THIS_NAME, [...]): Delete.

* cp-tree.h (THIS_NAME, IN_CHARGE_NAME, VTBL_PTR_TYPE,
VTABLE_DELTA_NAME, VTABLE_PFN_NAME): Delete.
* decl.c (initialize_predefined_identifiers): Name cdtor special
names consistently.  Use literals for above deleted defines.
(cxx_init_decl_processing): Use literal for vtbl_ptr_type name,

From-SVN: r249791

7 years agolex.c (maybe_add_lang_type_raw): Exit early, rather than use a flag.
Nathan Sidwell [Thu, 29 Jun 2017 14:45:44 +0000 (14:45 +0000)]
lex.c (maybe_add_lang_type_raw): Exit early, rather than use a flag.

* lex.c (maybe_add_lang_type_raw): Exit early, rather than use a
flag.

From-SVN: r249790

7 years agocall.c (check_dtor_name): Use constructor_name for enums too.
Nathan Sidwell [Thu, 29 Jun 2017 14:38:09 +0000 (14:38 +0000)]
call.c (check_dtor_name): Use constructor_name for enums too.

* call.c (check_dtor_name): Use constructor_name for enums too.
(build_new_method_call_1): Use constructor_name for cdtors and
show ~ for dtor.
* class.c (build_self_reference): Use TYPE_NAME to get name of
self reference.
* name-lookup (constructor_name): Use DECL_NAME directly.
(constructor_name_p): Reimplement.
(push_class_level_binding_1): Use TYPE_NAME directly.

From-SVN: r249789

7 years agoclass.c (finish_struct): Use OVL_P.
Nathan Sidwell [Thu, 29 Jun 2017 14:28:24 +0000 (14:28 +0000)]
class.c (finish_struct): Use OVL_P.

* class.c (finish_struct): Use OVL_P.
(get_vfield_name): Measure constructor_name length.
* cp-tree.h (SET_CLASS_TYPE_P): Add RECORD_OR_UNION_CHECK.
(NON_UNION_CLASS_TYPE_P): Check RECORD_TYPE up front.
* cxx-pretty-print.c (is_destructor_name): Delete.
(pp_cxx_unqualified_id): Remove bogus destructor name checking.
* decl.c (grokfndecl): Move cheap checks first when looking for
implicit extern cness.

From-SVN: r249788

7 years agoparser.c (cp_parser_direct_declarator): Reorder if to avoid indentation.
Nathan Sidwell [Thu, 29 Jun 2017 14:16:58 +0000 (14:16 +0000)]
parser.c (cp_parser_direct_declarator): Reorder if to avoid indentation.

* parser.c (cp_parser_direct_declarator): Reorder if to avoid
indentation. Remove unnecessary assignment of constructor name.

From-SVN: r249787

7 years agoWhitespace cleanups.
Nathan Sidwell [Thu, 29 Jun 2017 14:13:11 +0000 (14:13 +0000)]
Whitespace cleanups.

* call.c (name_as_c_string): Move CONST_CAST to return.
(build_new_method_call_1): Remove unneeded bracing.
* class.c (include_empty_classes): Unbreak line.
* constraint.cc (tsubst_check_constraint): Add space.
* cp-tree.h (lang_decl_ns): Add comment.
(PTRMEM_CST_MEMBER): Break line.
* decl.c (grokfndecl): Add blank lines. Unbreak some others.
(grokdeclarator): Remove lines, move declaration to first use.
* decl2.c (decl_needed_p): Fix indentation.
(c_parse_final_cleanups): Remove blank line.
* method.c (implicitly_declare_fn): Move declaration to first use.
* search.c (current_scope): Add blank lines.

From-SVN: r249786

7 years agotree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_...
Richard Biener [Thu, 29 Jun 2017 14:04:02 +0000 (14:04 +0000)]
tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_VINFO_REDUCTIONS.

2017-06-29  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
reduction chains to LOOP_VINFO_REDUCTIONS.
* tree-vect-slp.c (vect_analyze_slp): Continue looking for
SLP reductions after processing reduction chains.

* gcc.dg/vect/slp-reduc-8.c: New testcase.

From-SVN: r249785

7 years agobuiltins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name.
Nathan Sidwell [Thu, 29 Jun 2017 14:00:44 +0000 (14:00 +0000)]
builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name.

gcc/
* builtins.c (fold_builtin_FUNCTION): Use
lang_hooks.decl_printable_name.

gcc/cp/
* g++.dg/cpp1y/builtin_FUNCTION.C: New.

From-SVN: r249784

7 years agore PR middle-end/81194 (ICE during RTL pass: expand)
Peter Bergner [Thu, 29 Jun 2017 12:58:32 +0000 (07:58 -0500)]
re PR middle-end/81194 (ICE during RTL pass: expand)

gcc/
PR middle-end/81194
* cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
with only one label.
* stmt.c (expand_case): Assert NCASES is greater than one.

gcc/testsuite/
PR middle-end/81194
* g++.dg/pr81194.C: New test.

From-SVN: r249783

7 years agoAdd a testcase for PR ipa/80565
H.J. Lu [Thu, 29 Jun 2017 12:53:47 +0000 (12:53 +0000)]
Add a testcase for PR ipa/80565

The testcase in

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80565

is passing now.  Check in the testcase and resolve it as fixed.

PR ipa/80565
* gcc.dg/torture/pr80565.c: New file.

From-SVN: r249782

7 years agotree-cfg.c (group_case_labels_stmt): Return whether we changed anything.
Richard Biener [Thu, 29 Jun 2017 11:25:29 +0000 (11:25 +0000)]
tree-cfg.c (group_case_labels_stmt): Return whether we changed anything.

2017-06-29  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (group_case_labels_stmt): Return whether we changed
anything.
(group_case_labels): Likewise.
(find_taken_edge): Push sanity checking on val to workers...
(find_taken_edge_cond_expr): ... here
(find_taken_edge_switch_expr): ... and here, handle cases
with just a default label.
* tree-cfg.h (group_case_labels_stmt): Adjust prototype.
(group_case_labels): Likewise.
* tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
group_case_labels does anything cleanup the CFG again.

From-SVN: r249780

7 years agore PR tree-optimization/81196 (Number of iterations found for p!=q but not for p<q)
Bin Cheng [Thu, 29 Jun 2017 10:41:28 +0000 (10:41 +0000)]
re PR tree-optimization/81196 (Number of iterations found for p!=q but not for p<q)

PR tree-optimization/81196
* tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
exit condition comparing two IVs.

gcc/testsuite
* gcc.dg/vect/pr81196.c: New.

From-SVN: r249778

7 years ago[arm] Fix bootstrap - missing initializer in tail entry of autogenerated code
Richard Earnshaw [Thu, 29 Jun 2017 10:24:04 +0000 (10:24 +0000)]
[arm] Fix bootstrap - missing initializer in tail entry of autogenerated code

My patch yesterday accidentally missed a hunk that added the
update to the tail entry of the autogenerated data structure
produced by parsecpu.awk.  This causes native bootstraps to
fail.

This patch adds back the missing hunk.

2017-06-29  Richard Earnshaw  <rearnsha@arm.com>

* config/arm/parsecpu.awk (gen_comm_data): Add initializer for
profile to the dummy entry at the end of the list of architectures.
* config/arm/arm-cpu-cdata.h: Regenerated.

From-SVN: r249777

7 years ago2017-06-29 Michael Collison <michael.collison@arm.com>
Michael Collison [Thu, 29 Jun 2017 09:24:45 +0000 (09:24 +0000)]
2017-06-29  Michael Collison  <michael.collison@arm.com>

Fix date on prevfious ChangeLog entry.

From-SVN: r249775

7 years agore PR target/70119 (AArch64 should take advantage of implicit truncation of variable...
Kyrylo Tkachov [Thu, 29 Jun 2017 09:21:57 +0000 (09:21 +0000)]
re PR target/70119 (AArch64 should take advantage of implicit truncation of variable shift amount without defining SHIFT_COUNT_TRUNCATED)

2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

PR target/70119
* config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
New pattern.
(*aarch64_reg_<mode>3_neg_mask2): New pattern.
(*aarch64_reg_<mode>3_minus_mask): New pattern.
(*aarch64_<optab>_reg_di3_mask2): New pattern.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
of shift when the shift amount is masked with constant equal to
the size of the mode.
* config/aarch64/predicates.md (subreg_lowpart_operator): New
predicate.

2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

PR target/70119
* gcc.target/aarch64/var_shift_mask_1.c: New test.

Co-Authored-By: Michael Collison <michael.collison@arm.com>
From-SVN: r249774

7 years agoFix -mbranch-cost range.
Martin Liska [Thu, 29 Jun 2017 09:01:27 +0000 (11:01 +0200)]
Fix -mbranch-cost range.

2017-06-29  Martin Liska  <mliska@suse.cz>

* config/i386/i386.opt: Change range from [1,5] to [0,5].

From-SVN: r249773

7 years agore PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu...
Yury Gribov [Thu, 29 Jun 2017 08:50:21 +0000 (08:50 +0000)]
re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu (in edge_badness, at ipa-inline.c:1028))

2017-06-29  Yury Gribov  <tetra2005@gmail.com>

PR bootstrap/80565
        * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
code.
        * ipa-inline.h
(edge_growth_cache_entry::edge_growth_cache_entry): New
function.
        (reset_edge_growth_cache): Update to use constructor.

From-SVN: r249771

7 years agoDaily bump.
GCC Administrator [Thu, 29 Jun 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249769

7 years ago[AArch64] Do not increase data alignment at -Os and with -fconserve-stack.
Ramana Radhakrishnan [Wed, 28 Jun 2017 22:09:50 +0000 (22:09 +0000)]
[AArch64] Do not increase data alignment at -Os and with -fconserve-stack.

We unnecessarily align data to 8 byte alignments even when -Os is
specified. This brings the logic in the AArch64 backend more in line
with the ARM backend and helps gain some image size in a few
places. Caught by an internal report on the size of rodata sections
being high with aarch64 gcc.

* config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
  (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
  (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.

Bootstrapped and regression tested on aarch64-none-linux-gnu with no
regressions.

From-SVN: r249764

7 years agoPR c++/72764 - ICE with invalid template typename.
Jason Merrill [Wed, 28 Jun 2017 21:06:35 +0000 (17:06 -0400)]
PR c++/72764 - ICE with invalid template typename.

* decl.c (build_typename_type): No longer static.
* tree.c (strip_typedefs): Use it instead of make_typename_type.

From-SVN: r249760

7 years ago* config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
Sebastian Peryt [Wed, 28 Jun 2017 20:59:51 +0000 (22:59 +0200)]
* config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
(_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.

testsuite/ChangeLog:

* gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32):
Test new intrinsic.
* gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64):
Ditto.
* gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64):
Ditto.
* gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN.
* gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto.
* gcc.target/i386/avx512f-vpermq-var-2.c: Ditto.

From-SVN: r249759

7 years agoPR c++/69300 - ICE with self-referential noexcept
Jason Merrill [Wed, 28 Jun 2017 20:02:12 +0000 (16:02 -0400)]
PR c++/69300 - ICE with self-referential noexcept

* pt.c (maybe_instantiate_noexcept): Check for recursion.

From-SVN: r249757

7 years agoPR c++/61022 - error with variadic template template parm
Jason Merrill [Wed, 28 Jun 2017 19:59:44 +0000 (15:59 -0400)]
PR c++/61022 - error with variadic template template parm

* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.

From-SVN: r249756

7 years agoPR c++/72801 - ICE with variadic partial specialization
Jason Merrill [Wed, 28 Jun 2017 19:59:37 +0000 (15:59 -0400)]
PR c++/72801 - ICE with variadic partial specialization

* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.

From-SVN: r249755

7 years agoPR c++/55639 - partial specialization with ::template
Jason Merrill [Wed, 28 Jun 2017 19:41:49 +0000 (15:41 -0400)]
PR c++/55639 - partial specialization with ::template

* parser.c (cp_parser_class_head): Handle ::template.

From-SVN: r249754

7 years agoPR c++/45976 - error with ::template in declarator.
Jason Merrill [Wed, 28 Jun 2017 19:41:43 +0000 (15:41 -0400)]
PR c++/45976 - error with ::template in declarator.

* pt.c (resolve_typename_type): Fix TEMPLATE_ID_EXPR handling.

From-SVN: r249753

7 years agoPR c++/54769 - wrong lookup of dependent template-name.
Jason Merrill [Wed, 28 Jun 2017 19:41:36 +0000 (15:41 -0400)]
PR c++/54769 - wrong lookup of dependent template-name.

* parser.c (cp_parser_template_name): Handle dependent object type.
(cp_parser_nested_name_specifier_opt): Make template_keyword_p a
parameter.
(cp_parser_id_expression): Pass it.
(cp_parser_diagnose_invalid_type_name): Handle TEMPLATE_ID_EXPR.

From-SVN: r249752

7 years agoMake the TEMPLATE_ID_EXPR location a range.
Jason Merrill [Wed, 28 Jun 2017 19:41:24 +0000 (15:41 -0400)]
Make the TEMPLATE_ID_EXPR location a range.

* parser.c (cp_parser_template_id): Use the range location on the
TEMPLATE_ID_EXPR.

From-SVN: r249751

7 years agoPR c++/81204 - parse error with dependent template-name
Jason Merrill [Wed, 28 Jun 2017 19:41:18 +0000 (15:41 -0400)]
PR c++/81204 - parse error with dependent template-name

* parser.c (cp_parser_lookup_name): Disqualify function templates
after lookup.

From-SVN: r249750

7 years agomultiarch support for non-glibc linux systems
Szabolcs Nagy [Wed, 28 Jun 2017 16:02:42 +0000 (16:02 +0000)]
multiarch support for non-glibc linux systems

Current multiarch directory name is always *-linux-gnu* on linux,
this patch configures different names for uclibc and musl targets.

2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* config.gcc (*-linux-musl*): Add t-musl tmake_file.
(*-linux-uclibc*): Add t-uclibc tmake_file.
* config/t-musl: New.
* config/t-uclibc: New.

From-SVN: r249745

7 years ago[ARM] Consistently check for neon in vect effective targets
Thomas Preud'homme [Wed, 28 Jun 2017 15:09:08 +0000 (15:09 +0000)]
[ARM] Consistently check for neon in vect effective targets

Conditions checked for ARM targets in vector-related effective targets
are inconsistent:

* sometimes arm*-*-* is checked
* sometimes Neon is checked
* sometimes arm_neon_ok and sometimes arm_neon is used for neon check
* sometimes check_effective_target_* is used, sometimes
* is-effective-target

This patch consolidate all of these check into using is-effective-target
arm_neon and when little endian was checked, the check is kept.

2017-06-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_vect_int): Replace
    current ARM check by ARM NEON's availability check.
    (check_effective_target_vect_intfloat_cvt): Likewise.
    (check_effective_target_vect_uintfloat_cvt): Likewise.
    (check_effective_target_vect_floatint_cvt): Likewise.
    (check_effective_target_vect_floatuint_cvt): Likewise.
    (check_effective_target_vect_shift): Likewise.
    (check_effective_target_whole_vector_shift): Likewise.
    (check_effective_target_vect_bswap): Likewise.
    (check_effective_target_vect_shift_char): Likewise.
    (check_effective_target_vect_long): Likewise.
    (check_effective_target_vect_float): Likewise.
    (check_effective_target_vect_perm): Likewise.
    (check_effective_target_vect_perm_byte): Likewise.
    (check_effective_target_vect_perm_short): Likewise.
    (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
    (check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
    (check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
    (check_effective_target_vect_widen_mult_hi_to_si): Likewise.
    (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
    (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
    (check_effective_target_vect_widen_shift): Likewise.
    (check_effective_target_vect_extract_even_odd): Likewise.
    (check_effective_target_vect_interleave): Likewise.
    (check_effective_target_vect_multiple_sizes): Likewise.
    (check_effective_target_vect64): Likewise.
    (check_effective_target_vect_max_reduc): Likewise.

From-SVN: r249744

7 years ago[arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7
Richard Earnshaw [Wed, 28 Jun 2017 15:02:38 +0000 (15:02 +0000)]
[arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7

ACLE explicitly states that when targetting the common subset of
ARMv7-A, ARMv7-R and ARMv7-M, the __ARM_ARCH_PROFILE macro should not
be set.  We currently set it to 'M' which is clearly erroneous.

The logic for creating this is very convoluted and also somewhat
fragile, so I've taken the opportunity to use the new CPU and
architecture definition infrastructure to record the profile for each
architecture explicitly rather than try to reconstruct it from other
data.  I think this results in a much more robust solution.

2017-06-28  Richard Earnshaw  <rearnsha@arm.com>

* config/arm/parsecpu.awk (profile): Parse new keyword in an arch
context.
(gen_comm_data): Emit architectural setting of arch_prof.
* config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
profile.
(armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
(armv8-m.base, armv8-m.main): Likewise.
* arm-protos.h (arm_build_target): Add profile field.
(arch_option): Likewise.
* config/arm/arm.c (arm_configure_build_target): Copy the profile to
the active target.
* config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
arm_active_target.profile.

From-SVN: r249743

7 years agore PR tree-optimization/81227 (ICE in get_single_symbol, at tree-vrp.c:799)
Richard Biener [Wed, 28 Jun 2017 14:24:00 +0000 (14:24 +0000)]
re PR tree-optimization/81227 (ICE in get_single_symbol, at tree-vrp.c:799)

2017-06-28  Richard Biener  <rguenther@suse.de>

PR middle-end/81227
* fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
TYPE_OVERFLOW_WRAPS.
* match.pd (negate_expr_p): Likewise.
* tree-ssa-reassoc.c (optimize_range_tests_diff): Use
fold_build2, not fold_binary.

* gcc.dg/pr81227.c: New testcase.

From-SVN: r249742

7 years agoThis patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c triggered...
Wilco Dijkstra [Wed, 28 Jun 2017 14:21:04 +0000 (14:21 +0000)]
This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c triggered...

This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c
triggered by https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01367.html.

In ILP32 all memory accesses must have Pmode as the base address, but
aarch64_expand_mov_immediate wasn't emitting a conversion in one case.
Besides fixing this add an assert that flags any MEM operands that are
not Pmode.

    gcc/
* config/aarch64/aarch64 (aarch64_expand_mov_immediate):
Convert memory address to Pmode.
(aarch64_print_operand): Assert MEM operands are always Pmode.

From-SVN: r249741

7 years agoImprove Cortex-A53 shift bypass
Wilco Dijkstra [Wed, 28 Jun 2017 14:13:02 +0000 (14:13 +0000)]
Improve Cortex-A53 shift bypass

The aarch_forward_to_shift_is_not_shifted_reg bypass always returns true
on AArch64 shifted instructions.  This causes the bypass to activate in
too many cases, resulting in slower execution on Cortex-A53 like reported
in PR79665.

This patch uses the arm_no_early_alu_shift_dep condition instead which
improves the example in PR79665 by ~7%.  Given it is no longer used,
remove aarch_forward_to_shift_is_not_shifted_reg.  Also remove an
unnecessary REG_P check.

    gcc/
PR target/79665
* config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
Remove redundant if.
(aarch_forward_to_shift_is_not_shifted_reg): Remove.
* config/arm/aarch-common-protos.h
(aarch_forward_to_shift_is_not_shifted_re): Remove.
* config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.

From-SVN: r249740

7 years agore PR ipa/81238 (Target clone support does not make default clone static.)
Michael Meissner [Wed, 28 Jun 2017 13:07:12 +0000 (13:07 +0000)]
re PR ipa/81238 (Target clone support does not make default clone static.)

[gcc]
2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR ipa/81238
* multiple_target.c (create_dispatcher_calls): Set the default
clone to be static, not public.

[gcc/testsuite]
2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/81193
* lib/target-supports.exp
(check_ppc_cpu_supports_hw_available): New test to make sure
__builtin_cpu_supports works on power7 and newer.

From-SVN: r249737

7 years agotree-vect-loop.c (vectorizable_reduction): Move special cond reduction IV var creatio...
Richard Biener [Wed, 28 Jun 2017 13:02:01 +0000 (13:02 +0000)]
tree-vect-loop.c (vectorizable_reduction): Move special cond reduction IV var creation ...

2017-06-28  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vectorizable_reduction): Move special
cond reduction IV var creation ...
(vect_create_epilog_for_reduction): ... here.  Remove induction_index
parameter.  Use STMT_VINFO_VECTYPE.
* tree-vect-slp.c (vect_get_constant_vectors): Properly reset
constant_p.

From-SVN: r249736

7 years agoDo not allow to inline ifunc resolvers (PR ipa/81128).
Martin Liska [Wed, 28 Jun 2017 12:47:24 +0000 (14:47 +0200)]
Do not allow to inline ifunc resolvers (PR ipa/81128).

2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* ipa-visibility.c (non_local_p): Handle visibility.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
to a function declaration.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* gcc.target/i386/pr81128.c: New test.

From-SVN: r249735

7 years agoIntroduce IntegerRange for options (PR driver/79659).
Martin Liska [Wed, 28 Jun 2017 12:45:59 +0000 (14:45 +0200)]
Introduce IntegerRange for options (PR driver/79659).

2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* common.opt: Add IntegerRange to various options.
* opt-functions.awk (integer_range_info): New function.
* optc-gen.awk: Add integer_range_info to cl_options struct.
* opts-common.c (decode_cmdline_option): Handle
CL_ERR_INT_RANGE_ARG.
(cmdline_handle_error): Likewise.
* opts.c (print_filtered_help): Show valid interval in
when --help is provided.
* opts.h (struct cl_option): Add range_min and range_max fields.
* config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* c.opt: Add IntegerRange to various options.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* g++.dg/opt/pr79659.C: New test.

From-SVN: r249734

7 years agocopy-sign-1.c, mult-abs-2.c: Restrict to c99_runtime.
Christophe Lyon [Wed, 28 Jun 2017 12:18:31 +0000 (12:18 +0000)]
copy-sign-1.c, mult-abs-2.c: Restrict to c99_runtime.

2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.dg/tree-ssa/copy-sign-1.c: Add c99_runtime effective target
and options.
* gcc.dg/tree-ssa/mult-abs-2.c: Likewise.

From-SVN: r249733

7 years agoSimplify 3*x == 3*y for wrapping types
Marc Glisse [Wed, 28 Jun 2017 09:22:30 +0000 (11:22 +0200)]
Simplify 3*x == 3*y for wrapping types

2017-06-28  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
(x * C EQ/NE y * C): New transformation.

gcc/testsuite/
* gcc.dg/tree-ssa/addadd.c: Remove test duplicated in addadd-2.c.
* gcc.dg/tree-ssa/mulcmp-1.c: New file.

From-SVN: r249732

7 years agoUse ucontext_t not struct ucontext in linux-unwind.h files.
Joseph Myers [Wed, 28 Jun 2017 09:21:16 +0000 (10:21 +0100)]
Use ucontext_t not struct ucontext in linux-unwind.h files.

Current glibc no longer gives the ucontext_t type the tag struct
ucontext, to conform with POSIX namespace rules.  This requires
various linux-unwind.h files in libgcc, that were previously using
struct ucontext, to be fixed to use ucontext_t instead.  This is
similar to the removal of the struct siginfo tag from siginfo_t some
years ago.

This patch changes those files to use ucontext_t instead.  As the
standard name that should be unconditionally safe, so this is not
restricted to architectures supported by glibc, or conditioned on the
glibc version.

Tested compilation together with current glibc with glibc's
build-many-glibcs.py.

* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state),
config/alpha/linux-unwind.h (alpha_fallback_frame_state),
config/bfin/linux-unwind.h (bfin_fallback_frame_state),
config/i386/linux-unwind.h (x86_64_fallback_frame_state,
x86_fallback_frame_state), config/m68k/linux-unwind.h (struct
uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext),
config/pa/linux-unwind.h (pa32_fallback_frame_state),
config/riscv/linux-unwind.h (riscv_fallback_frame_state),
config/sh/linux-unwind.h (sh_fallback_frame_state),
config/tilepro/linux-unwind.h (tile_fallback_frame_state),
config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use
ucontext_t instead of struct ucontext.

From-SVN: r249731

7 years agogenmultilib (combination_space): Accept '+' in option names.
Christophe Lyon [Wed, 28 Jun 2017 09:15:59 +0000 (09:15 +0000)]
genmultilib (combination_space): Accept '+' in option names.

2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* genmultilib (combination_space): Accept '+' in option names.

From-SVN: r249730

7 years agocmov7.c (sgn): Renamed to ...
Jakub Jelinek [Wed, 28 Jun 2017 08:05:20 +0000 (10:05 +0200)]
cmov7.c (sgn): Renamed to ...

* gcc.target/i386/cmov7.c (sgn): Renamed to ...
(foo): ... this.  Change constants such that it isn't matched
as __builtin_copysign, yet tests the combiner the same.

From-SVN: r249729

7 years agoBail out HARD_REGISTER vars in asan (PR sanitizer/81224).
Martin Liska [Wed, 28 Jun 2017 07:59:23 +0000 (09:59 +0200)]
Bail out HARD_REGISTER vars in asan (PR sanitizer/81224).

2017-06-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81224
* asan.c (instrument_derefs): Bail out inner references
that are hard register variables.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81224
* gcc.dg/asan/pr81224.c: New test.

From-SVN: r249728

7 years agore PR target/81175 (EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges...
Jakub Jelinek [Wed, 28 Jun 2017 07:55:20 +0000 (09:55 +0200)]
re PR target/81175 (EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192)

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

From-SVN: r249727

7 years agore PR bootstrap/81217 (Makefile:22754: warning: overriding recipe for target 'profile...
Martin Liska [Wed, 28 Jun 2017 07:54:14 +0000 (09:54 +0200)]
re PR bootstrap/81217 (Makefile:22754: warning: overriding recipe for target 'profiledbootstrap')

Fix PR bootstrap/81217

2017-06-28  Martin Liska  <mliska@suse.cz>

PR bootstrap/81217
* Makefile.def: Remove superfluous bootstrap_target from
bootstrap_stage.
* Makefile.in: Re-generate the file.

From-SVN: r249726

7 years agoDoxygen: add default location for filters and output folder.
Martin Liska [Wed, 28 Jun 2017 07:52:46 +0000 (09:52 +0200)]
Doxygen: add default location for filters and output folder.

2017-06-28  Martin Liska  <mliska@suse.cz>

* gcc.doxy: Add default location for filters and output folder.
* filter_gcc_for_doxygen_new: Rename to filter_gcc_for_doxygen.
* filter_params.pl: Remove.

From-SVN: r249725

7 years agoval-profiler-threads-1.c (main): Fix 2nd argument passed to pthread_join.
Eric Botcazou [Wed, 28 Jun 2017 07:51:35 +0000 (07:51 +0000)]
val-profiler-threads-1.c (main): Fix 2nd argument passed to pthread_join.

2017-06-28  Eric Botcazou  <ebotcazou@adacore.com>

* gcc.dg/tree-prof/val-profiler-threads-1.c (main): Fix 2nd argument
passed to pthread_join.

From-SVN: r249723

7 years agotree-vectorizer.h (vect_get_vec_defs): Remove.
Richard Biener [Wed, 28 Jun 2017 07:47:35 +0000 (07:47 +0000)]
tree-vectorizer.h (vect_get_vec_defs): Remove.

2017-06-28  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (vect_get_vec_defs): Remove.
(vect_get_slp_defs): Adjust.
* tree-vect-loop.c (get_initial_defs_for_reduction): Split
out from ...
* tree-vect-slp.c (vect_get_constant_vectors): ... here and
simplify.
* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
get_initial_defs_for_reduction instead of vect_get_vec_defs.
(vectorizable_reduction): Adjust.
* tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
handling.
(vect_get_slp_defs): Likewise.
* tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
(vectorizable_bswap): Adjust.
(vectorizable_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vectorizable_condition): Likewise.
(vectorizable_comparison): Likewise.

From-SVN: r249722

7 years agore PR target/68535 (arm.c: 5 * set but not used)
Michael Collison [Wed, 28 Jun 2017 07:07:49 +0000 (07:07 +0000)]
re PR target/68535 (arm.c: 5 * set but not used)

2017-06-28  Michael Collison  <michael.collison@arm.com>

PR target/68535
* config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
set of base_reg
(arm_gen_movmemqi): Removed unused variable 'i'.
Convert 'for' loop into 'while' loop.
(arm_expand_prologue): Remove last unnecessary set of insn.
(thumb_pop): Remove unused variable 'pushed_words'.
(thumb_exit): Remove last unnecessary set of regs_to_pop.

From-SVN: r249721

7 years agoS/390: New option -mpic-data-is-text-relative
Andreas Krebbel [Wed, 28 Jun 2017 07:03:35 +0000 (07:03 +0000)]
S/390: New option -mpic-data-is-text-relative

For hotpatching it might be required to introduce new .text parts
while keep using the existing .data/.bss sections.  To make this work
the backend needs to be prevented from using relative addressing
between code and data.
This only works when already building PIC
since the addressing will then be handling via GOT.

gcc/testsuite/ChangeLog:

2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/nodatarel-1.c: New test.

gcc/ChangeLog:

2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/predicates.md: Use s390_rel_address_ok_p.
* config/s390/s390-protos.h: Add prototype of
s390_rel_address_ok_p.
* config/s390/s390.c (s390_got_symbol): New function.
(s390_rel_address_ok_p): New function.
(legitimize_pic_address): Use s390_rel_address_ok_p.
(s390_load_got): Use s390_got_symbol.
(s390_option_override): Issue error if
-mno-pic-data-is-text-relative is used without -fpic/-fPIC.
* config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
New macro.
* config/s390/s390.opt: New option mpic-data-is-text-relative.

From-SVN: r249720

7 years agore PR fortran/80164 (ICE in gfc_format_decoder at gcc/fortran/error.c:933)
Jerry DeLisle [Wed, 28 Jun 2017 02:17:40 +0000 (02:17 +0000)]
re PR fortran/80164 (ICE in gfc_format_decoder at gcc/fortran/error.c:933)

2017-06-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/80164
* trans-stmt.c (gfc_trans_call): If no code expr, use code->loc
as warning/error locus.

* gfortran.dg/array_temporaries_4.f90: New test.

From-SVN: r249718

7 years agoDaily bump.
GCC Administrator [Wed, 28 Jun 2017 00:16:30 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249717

7 years agoruntime: adapt memory management to AIX mmap
Ian Lance Taylor [Tue, 27 Jun 2017 22:36:48 +0000 (22:36 +0000)]
runtime: adapt memory management to AIX mmap

    On AIX:
    * mmap does not allow to map an already mapped range,
    * mmap range start at 0x30000000 for 32 bits processes,
    * mmap range start at 0x70000000_00000000 for 64 bits processes

    This is adapted from change 37845.

    Issue golang/go#19200

    Reviewed-on: https://go-review.googlesource.com/46772

From-SVN: r249713

7 years agosyscall: ptrace fixes for s390
Ian Lance Taylor [Tue, 27 Jun 2017 21:51:50 +0000 (21:51 +0000)]
syscall: ptrace fixes for s390

    Fixes required now that we #include <linux/ptrace.h> in sysinfo.c.

    Patch by Andreas Krebbel.

    Reviewed-on: https://go-review.googlesource.com/46839

From-SVN: r249712

7 years agopt.c (tsubst_decl <FUNCTION_DECL>): Move var decls to initialization point.
Nathan Sidwell [Tue, 27 Jun 2017 19:39:05 +0000 (19:39 +0000)]
pt.c (tsubst_decl <FUNCTION_DECL>): Move var decls to initialization point.

* pt.c (tsubst_decl <FUNCTION_DECL>): Move var decls to
initialization point.  Don't unnecessarily check for ctor name.

From-SVN: r249709

7 years agore PR libstdc++/80187 (C++ variant should be trivially copy constructible if possible)
Tim Shen [Tue, 27 Jun 2017 18:19:03 +0000 (18:19 +0000)]
re PR libstdc++/80187 (C++ variant should be trivially copy constructible if possible)

PR libstdc++/80187
* include/std/variant (variant::variant, variant::~variant,
variant::operator=): Implement triviality forwarding for four
special member functions.
* testsuite/20_util/variant/compile.cc: Tests.

From-SVN: r249706

7 years agomatch.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
Andrew Pinski [Tue, 27 Jun 2017 17:57:23 +0000 (17:57 +0000)]
match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.

2017-06-27  Andrew Pinski  <apinski@cavium.com>

        * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
        (X * copysign (1.0, X)): New pattern.
        (X * copysign (1.0, -X)): New pattern.
        (copysign (-1.0, CST)): New pattern.

2017-06-27  Andrew Pinski  <apinski@cavium.com>

        * gcc.dg/tree-ssa/copy-sign-1.c: New testcase.
        * gcc.dg/tree-ssa/copy-sign-2.c: New testcase.
        * gcc.dg/tree-ssa/mult-abs-2.c: New testcase.

From-SVN: r249704

7 years agoFix genmultilib reuse rule checks for large sets of option combinations.
Joseph Myers [Tue, 27 Jun 2017 17:33:28 +0000 (18:33 +0100)]
Fix genmultilib reuse rule checks for large sets of option combinations.

genmultilib computes combination_space, a list of all combinations of
options in MULTILIB_OPTIONS that might have multilibs built for them
(some of which may end up not having multilibs built for them, and
some of those may end up being mapped to other multilibs with
MULTILIB_REUSE).  It is then used to validate the right hand part of
MULTILIB_REUSE rules, checking with expr that combination_space
matches a basic regular expression derived from that right hand part.

There are two problems with this approach to validation:

* It requires that right hand part to have options in the same order
  as in MULTILIB_OPTIONS, in contradiction to the documentation of
  MULTILIB_REUSE saying that order does not matter there.

* combination_space can be so large that the expr call fails with an
  E2BIG error.  I have a local ARM configuration with 40 multilibs but
  3840 combinations of options from MULTILIB_OPTIONS (so 3839 listed
  in combination_space, since it doesn't list the default multilib)
  and 996 MULTILIB_REUSE rules.  This generates a combination_space
  string longer than the Linux kernel's MAX_ARG_STRLEN (PAGE_SIZE *
  32, the limit on the length of a single argv string), so that expr
  cannot be run.

This patch changes the validation approach to generate a much shorter
extended regular expression for any sequence of multilib options in
any order, and uses that for the validation instead.

Tested with a build for arm-none-eabi --with-multilib-list=aprofile
(as a configuration that uses MULTILIB_REUSE).

* genmultilib (combination_space): Remove variable.
Validate reuse rules against regular expression for any sequence
of multilib options in any order.

From-SVN: r249703

7 years agoaarch64-simd.md (aarch64_combine<mode>): Directly call aarch64_split_simd_combine.
Michael Collison [Tue, 27 Jun 2017 17:29:06 +0000 (17:29 +0000)]
aarch64-simd.md (aarch64_combine<mode>): Directly call aarch64_split_simd_combine.

2017-06-19  Michael Collison  <michael.collison@arm.com>

* config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
call aarch64_split_simd_combine.
* (aarch64_combine_internal<mode>): Delete pattern.
* config/aarch64/aarch64.c (aarch64_split_simd_combine):
Allow register and subreg operands.

From-SVN: r249702

7 years agocp-tree.h (CLASSTYPE_DESTRUCTORS): Rename to ...
Nathan Sidwell [Tue, 27 Jun 2017 17:27:49 +0000 (17:27 +0000)]
cp-tree.h (CLASSTYPE_DESTRUCTORS): Rename to ...

* cp-tree.h (CLASSTYPE_DESTRUCTORS): Rename to ...
(CLASSTYPE_DESTRUCTOR): ... this.
* class.c (accessible_nvdtor_p)
maybe_warn_about_overly_private_class,
add_implicitly_declared_members,
clone_constructors_and_destructors, type_has_virtual_destructor):
Adjust for CLASSTYPE_DESTRUCTOR.
(deduce_noexcept_on_destructors): Absorb into ...
(check_bases_and_members): ... here.
* except.c (dtor_nothrow): Adjust for CLASSTYPE_DESTRUCTOR.
* init.c (build_delete): Likewise.
* parser.c (cp_parser_lookup_name): Likewise.
* pt.c (check_explicit_specialization): Likewise.
* rtti.c (emit_support_tinfos): Likewise.
* search.c (lookup_fnfields_idx_nolazy): Likewise.
(--This line, and those below, will be ignored--

M    cp/cp-tree.h
M    cp/search.c
M    cp/init.c
M    cp/class.c
M    cp/rtti.c
M    cp/except.c
M    cp/ChangeLog
M    cp/pt.c
M    cp/parser.c

From-SVN: r249701

7 years agoPR libstdc++/81221 only run new test for check-parallel
Jonathan Wakely [Tue, 27 Jun 2017 16:19:16 +0000 (17:19 +0100)]
PR libstdc++/81221 only run new test for check-parallel

PR libstdc++/81221
* testsuite/25_algorithms/sample/81221.cc: Disable except for
check-parallel.

From-SVN: r249697

7 years ago* longlong.h: Remove ns32k support.
Maya Rashish [Tue, 27 Jun 2017 16:10:15 +0000 (16:10 +0000)]
* longlong.h: Remove ns32k support.

From-SVN: r249696

7 years agoShow value of GOMP_OPENACC_DIM in libgomp nvptx plugin
Tom de Vries [Tue, 27 Jun 2017 15:51:48 +0000 (15:51 +0000)]
Show value of GOMP_OPENACC_DIM in libgomp nvptx plugin

2017-06-27  Tom de Vries  <tom@codesourcery.com>

* plugin/plugin-nvptx.c (notify_var): New function.
(nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.

From-SVN: r249695

7 years agoUse secure_getenv for GOMP_DEBUG
Tom de Vries [Tue, 27 Jun 2017 15:51:37 +0000 (15:51 +0000)]
Use secure_getenv for GOMP_DEBUG

2017-06-27  Tom de Vries  <tom@codesourcery.com>

* env.c (parse_unsigned_long_1): Factor out of ...
(parse_unsigned_long): ... here.
(parse_int_1): Factor out of ...
(parse_int): ... here.
(parse_int_secure): New function.
(initialize_env): Use parse_int_secure for GOMP_DEBUG.
* secure_getenv.h: Factor out of ...
* plugin/plugin-hsa.c: ... here.
* testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.

From-SVN: r249694

7 years agoKill IDENTIFIER_TEMPLATE.
Nathan Sidwell [Tue, 27 Jun 2017 15:26:38 +0000 (15:26 +0000)]
Kill IDENTIFIER_TEMPLATE.

* cp-tree.h (lang_identifier): Remove class_template_info field.
(IDENTIFIER_TEMPLATE): Delete.
* name-lookup.c (constructor_name_full): Subsume into ...
(constructor_name): ... here.  Don't check IDENTIFIER_TEMPLATE.
(constructor_name_p): Likewise.
* mangle.c (write_source_name): Likewise.
* ptree.c (cxx_print_identifier): Likewise.

From-SVN: r249693

7 years agoPR libstdc++/81221 fix namespace qualification for parallel mode
Jonathan Wakely [Tue, 27 Jun 2017 14:44:50 +0000 (15:44 +0100)]
PR libstdc++/81221 fix namespace qualification for parallel mode

PR libstdc++/81221
* include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not
std.
* testsuite/25_algorithms/sample/81221.cc: New.

From-SVN: r249692

7 years agovxworks.h (ASM_SPEC): Remove definition.
Jerome Lambourg [Tue, 27 Jun 2017 13:55:42 +0000 (13:55 +0000)]
vxworks.h (ASM_SPEC): Remove definition.

2017-06-27  Jerome Lambourg  <lambourg@adacore.com>

* config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
specific need, just fallback on defaults.
(ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.

From-SVN: r249691

7 years agovxworks.h (DBX_REGISTER_NUMBER): Pick distinct map for 64bits.
Jerome Lambourg [Tue, 27 Jun 2017 13:47:26 +0000 (13:47 +0000)]
vxworks.h (DBX_REGISTER_NUMBER): Pick distinct map for 64bits.

2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

* config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
map for 64bits.
(TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
targets. Pick a default if no particular attempt applied.
(STACK_CHECK_PROTECT): Double for 64bit targets, which have
larger contexts.

Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r249690

7 years agoconfig.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
Jerome Lambourg [Tue, 27 Jun 2017 13:15:35 +0000 (13:15 +0000)]
config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.

2017-06-27  Jerome Lambourg  <lambourg@adacore.com>

gcc/
* config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
(x86_64-wrs-vxworks7): Likewise.

libgcc/
* config.host (i*86-wrs)vxworks7): Handle new acceptable triplet.
(x86_64-wrs-vxworks7): Likewise.

From-SVN: r249689

7 years agot-vxworks7: New file.
Olivier Hainque [Tue, 27 Jun 2017 12:20:05 +0000 (12:20 +0000)]
t-vxworks7: New file.

2017-06-27  Olivier Hainque  <hainque@adacore.com>

* config/t-vxworks7: New file.
* config.host (*-*-vxworks7): Use it.

From-SVN: r249688

7 years agore PR sanitizer/81223 (ICE in instrument_null at gcc/ubsan.c:1230)
Marek Polacek [Tue, 27 Jun 2017 11:38:31 +0000 (11:38 +0000)]
re PR sanitizer/81223 (ICE in instrument_null at gcc/ubsan.c:1230)

PR sanitizer/81223
* ubsan.c (instrument_null): Check get_base_address's result for null.

* gcc.dg/ubsan/pr81223.c: New test.

From-SVN: r249687

7 years agoSimple reassoc transforms in match.pd
Marc Glisse [Tue, 27 Jun 2017 09:42:38 +0000 (11:42 +0200)]
Simple reassoc transforms in match.pd

2017-06-27  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/assoc-1.c: New file.

From-SVN: r249686

7 years agofenv.h builtins
Marc Glisse [Tue, 27 Jun 2017 09:38:28 +0000 (11:38 +0200)]
fenv.h builtins

2017-06-27  Marc Glisse  <marc.glisse@inria.fr>

* builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
(BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
New function types.
* builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
BUILT_IN_FEUPDATEENV): New builtins.
* tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
* tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
macros.
(builtin_structptr_types): Adjust size.
* tree.c (builtin_structptr_types): Add four entries.

From-SVN: r249685

7 years agovxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
Jerome Lambourg [Tue, 27 Jun 2017 09:15:55 +0000 (09:15 +0000)]
vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...

2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

* config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
(TLS_SYM): New local macro, forcing reference to __tls__ on
link command lines for VxWorks 7 RTPs, triggering initialization
of tlsLib.
(VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
OS features TLS support, true for RTPs on VxWorks 7.
* config/vxworks.c (vxworks_override_options): Setup emutls
accordingly.

Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r249684

7 years agopredict.c (test_prediction_value_range): Use -1U instead of -1 to avoid narrowing...
Jakub Jelinek [Tue, 27 Jun 2017 09:13:53 +0000 (11:13 +0200)]
predict.c (test_prediction_value_range): Use -1U instead of -1 to avoid narrowing conversion warning.

* predict.c (test_prediction_value_range): Use -1U instead of -1
to avoid narrowing conversion warning.
* dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
to avoid narrowing conversion warning.
* opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
-1.
* optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.

From-SVN: r249683

7 years agore PR c++/62046 (A catch in a class, without any try, compiles fine)
Paolo Carlini [Tue, 27 Jun 2017 09:00:52 +0000 (09:00 +0000)]
re PR c++/62046 (A catch in a class, without any try, compiles fine)

2017-06-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/62046
* g++.dg/parse/catch2.C: New.

From-SVN: r249682