156695 Commits

Author SHA1 Message Date
Paolo Carlini
1d14f58c1f re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to variable inside a generic lambda inside a template member function inside a template class)
2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82230
	* g++.dg/cpp1y/lambda-generic-ice8.C: New.

From-SVN: r253631
2017-10-11 09:04:29 +00:00
Paolo Carlini
99f1498eed re PR c++/81299 (Spurious "set but not used" warning with constexpr variable)
2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81299
	* g++.dg/cpp1y/lambda-generic-ice7.C: New.

From-SVN: r253630
2017-10-11 08:50:15 +00:00
Richard Biener
5355943cc1 tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and types we do not want to analyze.
2017-10-11  Richard Biener  <rguenther@suse.de>

	* tree-scalar-evolution.c (get_scalar_evolution): Handle
	default-defs and types we do not want to analyze.
	(interpret_loop_phi): Replace unreachable code with an assert.
	(compute_scalar_evolution_in_loop): Remove and inline ...
	(analyze_scalar_evolution_1): ... here, replacing condition with
	what makes the intent clearer.  Remove handling of cases
	get_scalar_evolution now handles.

From-SVN: r253629
2017-10-11 07:21:05 +00:00
James E Wilson
e9593da8cc Allow 2 insns from sched group to issue in same cycle, if no stalls needed.
gcc/
	PR rtl-optimization/81434
	* haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
	comment for main loop.  In sched_group_found if, also add checks for
	pass and min_cost_group.

From-SVN: r253628
2017-10-10 20:23:41 -07:00
GCC Administrator
9ef8d30e92 Daily bump.
From-SVN: r253627
2017-10-11 00:16:14 +00:00
Segher Boessenkool
ca158af378 rs6000: insn_cost
This adds an implementation of the insn_cost hook to rs6000.

This implementations is very minimal (so far).  It is mostly based on
how many machine instructions are generated by an RTL insn, and it also
looks at the instruction type.  Floating point insns are costed as if
all machine instructions it generates are floating point; the other
insns are treated as if all but one are integer insns (and one is the
specified type).  Load instructions are treated as costing twice as
much, and load locked and sync insns as three times as much (just like
the original costs), and integer div and mul are handled as well.

Each define_insn (etc.) can set a "cost" attribute to override this
general cost.  With optimization for size, the cost is set equal to the
value of the "length" attribute.

With this, the majority of cost differences between old and new are
where the old was wrong.  Also, benchmarks show a slight win (if
anything).  Some refinements are obviously needed.


	* config/rs6000/rs6000.c (TARGET_INSN_COST): New.
	(rs6000_insn_cost): New function.
	* config/rs6000/rs6000.md (cost): New attribute.

From-SVN: r253624
2017-10-11 02:11:23 +02:00
Nathan Sidwell
7cd6ea64f8 [C++ PATCH] hash-table for extern-c fns.
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00614.html
	* name-lookup.c (extern_c_fns): Rename to ...
	(extern_c_decls): ... here.
	(check_extern_c_conflict, extern_c_linkage_bindings): Update.
	(do_pushdecl): Check extern-c fns and vars.

	* g++.dg/lookup/extern-c-redecl6.C: New.
	* g++.dg/lookup/extern-c-hidden.C: Adjust diagnostics.
	* g++.dg/lookup/extern-c-redecl.C: Likewise.
	* g++.old-deja/g++.other/using9.C: Likewise.

From-SVN: r253622
2017-10-10 20:50:26 +00:00
Paolo Carlini
507ea98d58 re PR c++/78006 (Segmentation fault with 'using' and generic lambda trailing return types)
2017-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/78006
	* g++.dg/cpp1y/auto-fn40.C: New.

From-SVN: r253621
2017-10-10 20:46:26 +00:00
Nathan Sidwell
d6b605f6ae [C++ PATCH] Kill unneeded hash specialization
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00621.html
	* cp-tree.h (default_hash_traits <lang_identifier *>): Delete
	specialization.

From-SVN: r253620
2017-10-10 20:42:45 +00:00
Paolo Carlini
92395f1c24 re PR c++/81032 (ICE with lambda and broken constexpr)
2017-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81032
	* g++.dg/cpp1y/lambda-generic-ice6.C: New.

From-SVN: r253619
2017-10-10 20:16:40 +00:00
Jakub Jelinek
16d926d2ab re PR rtl-optimization/68205 (ICE compiling gcc.c-torture/execute/20040709-2.c with -fno-common on arm-none-eabi)
PR rtl-optimization/68205
	* gcc.c-torture/execute/20040709-3.c: New test.

From-SVN: r253618
2017-10-10 22:12:08 +02:00
Jakub Jelinek
b2ca2504f0 re PR c++/67625 (some constexpr expressions rejected as enumerator value)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/67625
	* g++.dg/cpp0x/pr67625.C: New test.

From-SVN: r253617
2017-10-10 22:11:47 +02:00
Jakub Jelinek
c9a0dec5ee re PR middle-end/70887 (internal compiler error in trunc_int_for_mode, at explow.c:78)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/70887
	* g++.dg/cpp0x/pr70887.C: New test.

From-SVN: r253616
2017-10-10 22:11:21 +02:00
Jakub Jelinek
aaf58ab173 re PR c++/70338 (ICE combining debug symbols, range-for in lambda in function template accessing captured variable-size array)
PR c++/70338
	* g++.dg/cpp0x/pr70338.C: New test.

From-SVN: r253615
2017-10-10 22:10:56 +02:00
Jakub Jelinek
10885d138e re PR c++/77786 (ICE in tsubst_copy, at cp/pt.c:13040)
PR c++/77786
	* g++.dg/cpp1y/pr77786.C: New test.

From-SVN: r253614
2017-10-10 22:10:25 +02:00
Jakub Jelinek
da31baba47 re PR c++/71875 (template specialization compile error)
PR c++/71875
	* g++.dg/cpp1y/pr71875.C: New test.

From-SVN: r253613
2017-10-10 22:10:00 +02:00
Jakub Jelinek
24f8d3916c re PR c++/77578 (ICE in cp_parser_omp_for_loop (cp/parser.c:29404))
PR c++/77578
	* g++.dg/gomp/pr77578.C: New test.

From-SVN: r253612
2017-10-10 22:09:29 +02:00
Jakub Jelinek
4407c3097f re PR middle-end/70100 (ICE: in execute, at cfgexpand.c:6066)
PR middle-end/70100
	* g++.dg/opt/pr70100.C: New test.

From-SVN: r253611
2017-10-10 22:09:01 +02:00
Jakub Jelinek
7094f0d341 re PR c++/68252 (left operand of shift expression, while we shift > 0 integer)
2017-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/68252
	* g++.dg/other/pr68252.C: New test.

From-SVN: r253610
2017-10-10 22:08:36 +02:00
Jakub Jelinek
71a84d92e1 re PR target/79565 (ICE in copy_to_mode_reg, at explow.c:612)
PR target/79565
	PR target/82483
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
	OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
	__builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
	(ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
	to OPTION_MASK_ISA_AVX512VL - builtins that have both
	OPTION_MASK_ISA_MMX and some other bit set require both
	mmx and the ISAs without the mmx bit.
	* config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
	__builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
	__builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
	__builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
	__builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
	__builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
	__builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
	__builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
	__builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
	__builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
	__builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
	__builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
	__builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
	__builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
	Add OPTION_MASK_ISA_MMX.

	* gcc.target/i386/pr82483-1.c: New test.
	* gcc.target/i386/pr82483-2.c: New test.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r253609
2017-10-10 22:06:33 +02:00
Nathan Sidwell
eead34af3a [C++ PATCH] Hash mangling alias
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00618.html
	* decl2.c (struct mangled_decl_hash): New hash traits.
	(mangled_decls): Make hash_table<mangled_decl_hash>.
	(generate_mangling_alias, record_mangling): Adjust.

From-SVN: r253608
2017-10-10 19:59:12 +00:00
Will Schmidt
24d8f6b62a fold-vec-mult-int128-p8.c: Update options
2017-10-10  Will Schmidt <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-mult-int128-p8.c: Update options
	* gcc.target/powerpc/fold-vec-mult-int128-p9.c: Update expected
	instruction list.

From-SVN: r253606
2017-10-10 19:06:13 +00:00
Nathan Sidwell
35b82d26e5 [PATCH] preprocessor stringizing raw strings
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00611.html
	libcpp/
	PR preprocessor/82506
	* macro.c (cpp_quote_string): Escape raw LFs.

	gcc/testsuite/
	PR preprocessor/82506
	* g++.dg/cpp/string-3.C: New.

From-SVN: r253605
2017-10-10 18:56:31 +00:00
Andreas Tobler
eb484969f6 config.gcc (armv7*-*-freebsd*): New target.
2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>

    * config.gcc (armv7*-*-freebsd*): New target.
    (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.

From-SVN: r253602
2017-10-10 20:33:48 +02:00
Jason Merrill
84dd815ff8 More delayed lambda capture fixes.
* call.c (add_function_candidate): Use build_address.
	(build_op_call_1): Call mark_lvalue_use early.
	(build_over_call): Handle error from build_this.
	* constexpr.c (cxx_bind_parameters_in_call): Use build_address.
	(cxx_eval_increment_expression): Don't use rvalue().
	* cvt.c (convert_to_void): Use mark_discarded_use.
	* expr.c (mark_use): Handle PARM_DECL, NON_DEPENDENT_EXPR.  Fix
	reference handling.  Don't copy the expression.
	(mark_discarded_use): New.
	* lambda.c (insert_capture_proxy): Add some sanity checking.
	(maybe_add_lambda_conv_op): Set cp_unevaluated_operand.
	* pt.c (register_local_specialization): Add sanity check.
	* semantics.c (process_outer_var_ref): Fix check for existing proxy.
	* typeck.c (cp_build_addr_expr_1): Handle error from
	mark_lvalue_use.
	(cp_build_modify_expr): Call mark_lvalue_use_nonread, handle error
	from rvalue.

	Handle generic lambda capture in dependent expressions.
	* lambda.c (need_generic_capture, dependent_capture_r)
	(do_dependent_capture): New.
	* pt.c (processing_nonlambda_template): Use need_generic_capture.
	* semantics.c (maybe_cleanup_point_expr)
	(maybe_cleanup_point_expr_void, finish_goto_stmt)
	(maybe_convert_cond): Call do_dependent_capture.
	* typeck.c (build_static_cast): Remove dependent capture handling.

From-SVN: r253601
2017-10-10 14:04:02 -04:00
Jason Merrill
e1bea3412a Various small C++ fixes.
* typeck.c (condition_conversion): Assert !processing_template_decl.
	* semantics.c (finish_omp_clauses): Don't
	fold_build_cleanup_point_expr if processing_template_decl.
	(outer_var_p): A temporary can't be from an outer scope.
	* pt.c (type_dependent_expression_p): Fix dependency checking of
	functions without DECL_TEMPLATE_INFO.
	(instantiate_decl): Use lss_copy.
	* constexpr.c (is_valid_constexpr_fn): Fix lambdas before C++17.

From-SVN: r253600
2017-10-10 14:03:56 -04:00
Jason Merrill
4d612bfde8 Check non-dependent conversion in return from template fn.
* typeck.c (check_return_expr): Check non-dependent conversion in
	templates.
	* constraint.cc (check_function_concept): Don't complain about an
	empty concept if seen_error.

From-SVN: r253599
2017-10-10 14:03:22 -04:00
Jan Hubicka
3652a4d243 x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, [...]): Move to right spot in the file.
* x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, X86_TUNE_ADJUST_UNROLL,
	X86_TUNE_ONE_IF_CONV_INSN): Move to right spot in the file.

From-SVN: r253598
2017-10-10 17:47:35 +00:00
Will Schmidt
f1e2a00403 fold-vec-cmp-char.c: New.
[testsuite]

2017-10-10  Will Schmidt <will_schmidt@vnet.ibm.com>
	* gcc.target/powerpc/fold-vec-cmp-char.c: New.
	* gcc.target/powerpc/fold-vec-cmp-double.c: New.
	* gcc.target/powerpc/fold-vec-cmp-float.c: New.
	* gcc.target/powerpc/fold-vec-cmp-int.c: New.
	* gcc.target/powerpc/fold-vec-cmp-longlong.c: New.
	* gcc.target/powerpc/fold-vec-cmp-short.c: New.

From-SVN: r253597
2017-10-10 17:41:02 +00:00
Richard Sandiford
8e6cdc90d4 Require wi::to_wide for trees
The wide_int routines allow things like:

   wi::add (t, 1)

to add 1 to an INTEGER_CST T in its native precision.  But we also have:

   wi::to_offset (t)      // Treat T as an offset_int
   wi::to_widest (t)      // Treat T as a widest_int

Recently we also gained:

   wi::to_wide (t, prec)  // Treat T as a wide_int in preccision PREC

This patch therefore requires:

   wi::to_wide (t)

when operating on INTEGER_CSTs in their native precision.  This is
just as efficient, and makes it clearer that a deliberate choice is
being made to treat the tree as a wide_int in its native precision.
This also removes the inconsistency that

a) INTEGER_CSTs in their native precision can be used without an accessor
   but must use wi:: functions instead of C++ operators

b) the other forms need an explicit accessor but the result can be used
   with C++ operators.

It also helps with SVE, where there's the additional possibility
that the tree could be a runtime value.

2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* wide-int.h (wide_int_ref_storage): Make host_dependent_precision
	a template parameter.
	(WIDE_INT_REF_FOR): Update accordingly.
	* tree.h (wi::int_traits <const_tree>): Delete.
	(wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
	(wi::to_widest, wi::to_offset): Use them.  Expand commentary.
	(wi::tree_to_wide_ref): New typedef.
	(wi::to_wide): New function.
	* calls.c (get_size_range): Use wi::to_wide when operating on
	trees as wide_ints.
	* cgraph.c (cgraph_node::create_thunk): Likewise.
	* config/i386/i386.c (ix86_data_alignment): Likewise.
	(ix86_local_alignment): Likewise.
	* dbxout.c (stabstr_O): Likewise.
	* dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
	* expr.c (const_vector_from_tree): Likewise.
	* fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
	* fold-const.c (may_negate_without_overflow_p, negate_expr_p)
	(fold_negate_expr_1, int_const_binop_1, const_binop)
	(fold_convert_const_int_from_real, optimize_bit_field_compare)
	(all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
	(fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
	(pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
	(fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
	(fold_not_const, round_up_loc): Likewise.
	* gimple-fold.c (gimple_fold_indirect_ref): Likewise.
	* gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
	(alloca_call_type): Likewise.
	* gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
	* godump.c (go_output_typedef): Likewise.
	* graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
	* internal-fn.c (get_min_precision): Likewise.
	* ipa-cp.c (ipcp_store_vr_results): Likewise.
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
	(ipa_modify_call_arguments): Likewise.
	* match.pd: Likewise.
	* omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* stmt.c (expand_case): Likewise.
	* stor-layout.c (layout_type): Likewise.
	* tree-affine.c (tree_to_aff_combination): Likewise.
	* tree-cfg.c (group_case_labels_stmt): Likewise.
	* tree-data-ref.c (dr_analyze_indices): Likewise.
	(prune_runtime_alias_test_list): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
	* tree-predcom.c (is_inv_store_elimination_chain): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
	(simple_iv_with_niters): Likewise.
	* tree-ssa-address.c (addr_for_mem_ref): Likewise.
	* tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
	* tree-ssa-loop-niter.c (split_to_var_and_offset)
	(refine_value_range_using_guard, number_of_iterations_ne_max)
	(number_of_iterations_lt_to_ne, number_of_iterations_lt)
	(get_cst_init_from_scev, record_nonwrapping_iv)
	(scev_var_range_cant_overflow): Likewise.
	* tree-ssa-phiopt.c (minmax_replacement): Likewise.
	* tree-ssa-pre.c (compute_avail): Likewise.
	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
	(vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
	* tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
	* tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
	* tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
	(dump_case_nodes, try_switch_expansion): Likewise.
	* tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
	(vect_do_peeling): Likewise.
	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
	(zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
	(extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
	(overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
	(is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
	(vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
	(range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
	(evrp_dom_walker::before_dom_children): Likewise.
	* tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
	(integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
	(tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
	(tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
	(get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
	(get_range_pos_neg): Likewise.
	* ubsan.c (ubsan_expand_ptr_ifn): Likewise.
	* config/darwin.c (darwin_mergeable_constant_section): Likewise.
	* config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
	* config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
	* config/avr/avr.c (avr_fold_builtin): Likewise.
	* config/bfin/bfin.c (bfin_local_alignment): Likewise.
	* config/msp430/msp430.c (msp430_attr): Likewise.
	* config/nds32/nds32.c (nds32_insert_attributes): Likewise.
	* config/powerpcspe/powerpcspe-c.c
	(altivec_resolve_overloaded_builtin): Likewise.
	* config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
	(rs6000_expand_ternop_builtin): Likewise.
	* config/rs6000/rs6000-c.c
	(altivec_resolve_overloaded_builtin): Likewise.
	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
	(rs6000_expand_ternop_builtin): Likewise.
	* config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.

gcc/ada/
	* gcc-interface/decl.c (annotate_value): Use wi::to_wide when
	operating on trees as wide_ints.

gcc/c/
	* c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when
	operating on trees as wide_ints.
	* c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise.
	(c_tree_equal): Likewise.

gcc/c-family/
	* c-ada-spec.c (dump_generic_ada_node): Use wi::to_wide when
	operating on trees as wide_ints.
	* c-common.c (pointer_int_sum): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-warn.c (match_case_to_enum_1): Likewise.
	(c_do_switch_warnings): Likewise.
	(maybe_warn_shift_overflow): Likewise.

gcc/cp/
	* cvt.c (ignore_overflows): Use wi::to_wide when
	operating on trees as wide_ints.
	* decl.c (check_array_designated_initializer): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* semantics.c (cp_finish_omp_clause_depend_sink): Likewise.

gcc/fortran/
	* target-memory.c (gfc_interpret_logical): Use wi::to_wide when
	operating on trees as wide_ints.
	* trans-const.c (gfc_conv_tree_to_mpz): Likewise.
	* trans-expr.c (gfc_conv_cst_int_power): Likewise.
	* trans-intrinsic.c (trans_this_image): Likewise.
	(gfc_conv_intrinsic_bound): Likewise.
	(conv_intrinsic_cobound): Likewise.

gcc/lto/
	* lto.c (compare_tree_sccs_1): Use wi::to_wide when
	operating on trees as wide_ints.

gcc/objc/
	* objc-act.c (objc_decl_method_attributes): Use wi::to_wide when
	operating on trees as wide_ints.

From-SVN: r253595
2017-10-10 16:55:34 +00:00
Thomas Koenig
3934b625ee re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist))
2017-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/82233
	* intrinsics/execute_command_line.c (execute_command_line):
	No call to runtime_error if cmdstat is present.

2017-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/82233
	* gfortran.dg/execute_command_line_3.f90: New test.

From-SVN: r253593
2017-10-10 16:49:32 +00:00
Will Schmidt
53befce7f2 |-------* gcc.target/powerpc/fold-vec-splat-16.c: New |-------* gcc.target/powerpc/fold-vec-splat-32.c: New.
2017-10-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

[testsuite]
|-------* gcc.target/powerpc/fold-vec-splat-16.c: New
|-------* gcc.target/powerpc/fold-vec-splat-32.c: New.
|-------* gcc.target/powerpc/fold-vec-splat-8.c: New.

From-SVN: r253591
2017-10-10 16:32:54 +00:00
Will Schmidt
0ec8f0c6d6 fold-vec-splats-char.c: New.
[testsuite]

2017-10-10  Will Schmidt <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-splats-char.c: New.
	* gcc.target/powerpc/fold-vec-splats-floatdouble.c: New.
	* gcc.target/powerpc/fold-vec-splats-int.c: New.
	* gcc.target/powerpc/fold-vec-splats-longlong.c: New.
	* gcc.target/powerpc/fold-vec-splats-short.c: New.

From-SVN: r253590
2017-10-10 16:26:03 +00:00
Jakub Jelinek
802b38c91f re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89)
PR c/82437
	* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_wide
	instead of wide_int::from.

	* c-c++-common/Wtautological-compare-7.c: New test.

From-SVN: r253589
2017-10-10 18:17:47 +02:00
Nathan Sidwell
a6a5091a56 [C++ PATCH] set_global_binding tweak
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00592.html
	* name-lookup.c (set_global_binding): Don't deal with STAT_HACK.

From-SVN: r253587
2017-10-10 14:48:34 +00:00
Bin Cheng
2fe1a1b888 tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes when copying loop nest with only one inner loop.
* tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
	when copying loop nest with only one inner loop.

	gcc/testsuite
	* gcc.dg/tree-ssa/ldist-34.c: New test.

From-SVN: r253586
2017-10-10 13:58:30 +00:00
Richard Biener
fb1fe1f3cc tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting blocks if SCEV is active.
2017-10-10  Richard Biener  <rguenther@suse.de>

	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
	blocks if SCEV is active.
	* tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
	dead code.
	(analyze_scalar_evolution): Handle cached evolutions the obvious way.
	(scev_initialize): Assert we are not yet initialized.

From-SVN: r253585
2017-10-10 13:26:15 +00:00
Ed Schonberg
0c6ddd1dde class_wide4.adb: Fix a typo.
gcc/testsuite/

	* gnat.dg/class_wide4.adb: Fix a typo.

Also add ChangeLog entries missing from previous commits.

From-SVN: r253584
2017-10-10 13:23:33 +00:00
Jakub Jelinek
c64c738636 update_version_svn: Ignore the GCC 5 branch.
* update_version_svn: Ignore the GCC 5 branch.
	* crontab: Remove entry for the GCC 5 branch.

From-SVN: r253583
2017-10-10 15:10:28 +02:00
Jonathan Wakely
0e7300bb80 Update comment referring to status of LWG issue 111
* include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
	Update comment about NAD issue.

From-SVN: r253582
2017-10-10 12:26:10 +01:00
Jonathan Wakely
5d2b807526 PR libstdc++/82417 do not include C99 <complex.h> in strict modes
As an extension the C++ version of <complex.h> includes the C version,
but that defines macros with non-reserved names that should not be
defined in ISO C++. Only include the C header for non-strict modes, or
for pre-C++11 (because C++98 doesn't mention <complex.h> at all).

	PR libstdc++/59087
	PR libstdc++/82417
	* include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
	not include C library's <complex.h>.
	* testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
	* testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
	* testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
	* testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.

From-SVN: r253581
2017-10-10 12:25:45 +01:00
Bin Cheng
efe040bf21 tree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's exit stmt by making it always exit the loop...
* tree-loop-distribution.c (generate_loops_for_partition): Remove
	inner loop's exit stmt by making it always exit the loop, otherwise
	we would generate an infinite empty loop.

	gcc/testsuite
	* gcc.dg/tree-ssa/ldist-27.c: New test.

From-SVN: r253580
2017-10-10 09:02:13 +00:00
Bin Cheng
166b87998a tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip renaming variables in new preheader if it's deleted.
* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
	renaming variables in new preheader if it's deleted.

From-SVN: r253579
2017-10-10 08:59:23 +00:00
Bin Cheng
9239436cae tree-loop-distribution.c (struct partition): Remove unused field loops of the structure.
* tree-loop-distribution.c (struct partition): Remove unused field
	loops of the structure.
	(partition_alloc, partition_free): Ditto.
	(build_rdg_partition_for_vertex): Ditto.

From-SVN: r253578
2017-10-10 08:57:21 +00:00
Jeff Law
599bffa2f5 targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return type to match prototype and documentation.
* targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
	return type to match prototype and documentation.

From-SVN: r253575
2017-10-10 00:42:08 -06:00
GCC Administrator
7d25736fb6 Daily bump.
From-SVN: r253574
2017-10-10 00:16:23 +00:00
Segher Boessenkool
d966425468 rs6000: Move processor_costs to header
This moves the processor_costs structure declaration to the rs6000.h
header file, so that things in other files can use it (not just things
in rs6000.c).


	* config/rs6000/rs6000.c (processor_costs): Move to ...
	* config/rs6000/rs6000.h: ... here.
	(rs6000_cost): Declare.

From-SVN: r253570
2017-10-10 01:05:37 +02:00
Eric Botcazou
2ab71f3d87 except.c (setjmp_fn): New global variable.
* except.c (setjmp_fn): New global variable.
	(init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
	(sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP if
	DONT_USE_BUILTIN_SETJMP is defined.

From-SVN: r253569
2017-10-09 22:32:01 +00:00
Pierre-Marie de Rodat
3fc40cd783 [multiple changes]
2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement
	as a scoping construct when it is byproduct of exception handling.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of
	semantic field Target of node N_Call_Marker.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Allocator): Reject properly an allocator that
	attempts to copy a limited value, when the allocator is the expression
	in an expression function.

2017-10-09  Joel Brobecker  <brobecker@adacore.com>

	* doc/share/conf.py: Tell the style checker that this is a Python
	fragment, and therefore that pyflakes should not be run to validate
	this file.

2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Is_Boolean_Type): Add pragma Inline.
	(Is_Entity_Name): Likewise.
	(Is_String_Type): Likewise.
	* sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here
	and remove useless comparisons on the base types.
	(Covers): Use simple tests for Standard_Void_Type.  Move up cheap tests
	on T2.  Always test Is_Private_Type before Full_View_Covers.

2017-10-09  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb: Minor refactoring.

From-SVN: r253568
2017-10-09 20:47:26 +00:00
Pierre-Marie de Rodat
367601d123 [multiple changes]
2017-10-09  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Replace_Components): Browse the list of discriminants,
	not components.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements
	are verified only in the static model.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification,
	Check_Reverse_Iteration): Check that the domain of iteration supports
	reverse iteration when it is a formal container.  This requires the
	presence of a Previous primitive in the Iterable aspect.
	* sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of
	primitives Last and Previous to support reverse iteration over formal
	containers.
	(Validate_Iterable_Aspect): Add check for reverse iteration operations.
	* exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion
	for reverse iteration using primitives Last and Previous in generated
	loop.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Subprogram_Name): If this is a child unit, use the name
	of the Defining_Program_Unit_Name, which is an identifier, in order to
	construct the string for the fully qualified name.

From-SVN: r253567
2017-10-09 20:36:41 +00:00