1. 28 Nov, 2017 17 commits
    • re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on… · 4aa458f2
      re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable)
      
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80776
      	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
      	Declare.
      	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
      	New function.
      	(evrp_range_analyzer::record_ranges_from_incoming_edges):
      	If the incoming edge is an effective fallthru because the other
      	edge only reaches a __builtin_unreachable () then record ranges
      	derived from the controlling condition in SSA info.
      	(evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
      	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
      
      	* gcc.dg/pr80776-1.c: New testcase.
      	* gcc.dg/pr80776-2.c: Likewise.
      
      From-SVN: r255201
      Richard Biener committed
    • Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null on mingw build hosts. · 73ff3db2
      2017-11-28  Olivier Hainque  <hainque@adacore.com>
      
      	* Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
      	on mingw build hosts.
      
      From-SVN: r255200
      Olivier Hainque committed
    • Add std::to_address for C++2a (P0653R2) · 61cd19e6
      2017-11-28  Glen Joseph Fernandes  <glenjofe@gmail.com>
      
      	* include/bits/ptr_traits.h (to_address): Implement to_address.
      	* testsuite/20_util/to_address/1.cc: New test.
      
      From-SVN: r255199
      Glen Joseph Fernandes committed
    • re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · 5a198ba9
      	PR debug/81307
      	* dbxout.c (dbx_block_with_cold_children): Fix function comment.
      
      From-SVN: r255198
      Jakub Jelinek committed
    • re PR tree-optimization/83141 (SRA and memcpy folding interact badly generating wrong-code) · d7257171
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/83141
      	* gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
      	copies generated from memcpy use a character array as reference
      	type.
      
      From-SVN: r255197
      Richard Biener committed
    • re PR c/83117 (FAIL: gcc.target/x86_64/abi/ms-sysv/ms-sysv.c (test for excess errors)) · fa69d74b
      	PR c/83117
      	* gcc.target/x86_64/abi/ms-sysv/gen.cc (make_do_tests_decl): Drop
      	const from do_test_{u,v}*.
      
      From-SVN: r255196
      Jakub Jelinek committed
    • Remove Cilk Plus support. · 5e9d6aa4
      	* Makefile.def (target_modules): Remove libcilkrts.
      	* Makefile.in: Ditto.
      	* configure: Ditto.
      	* configure.ac: Ditto.
      
      contrib/
      	* contrib/gcc_update: Ditto.
      
      gcc/
      	* Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, 
      	c-family/c-cilkplus.o, c-family/array-notation-common.o,
      	cilk-common.o, cilk.h, cilk-common.c): Remove.
      	* builtin-types.def
      	(BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
      	* builtins.c (is_builtin_name): Remove cilkplus condition.
      	(BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
      	* builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
      	cilk-builtins.def, cilkplus.def): Remove.
      	* cif-code.def (CILK_SPAWN): Remove.
      	* cilk-builtins.def: Delete.
      	* cilk-common.c: Ditto.
      	* cilk.h: Ditto.
      	* cilkplus.def: Ditto.
      	* config/darwin.h (fcilkplus): Delete.
      	* cppbuiltin.c: Ditto.
      	* doc/extend.texi: Remove cilkplus doc.
      	* doc/generic.texi: Ditto.
      	* doc/invoke.texi: Ditto.
      	* doc/passes.texi: Ditto.
      	* gcc.c (fcilkplus): Remove.
      	* gengtype.c (cilk.h): Remove.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support.
      	* gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove.
      	* gimplify.c (gimplify_return_expr, maybe_fold_stmt,
      	gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr,
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
      	gimplify_omp_for, gimplify_expr): Remove cilkplus conditions.
      	* ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
      	inline_read_section): Ditto.
      	* ipa-inline-analysis.c (cilk.h): Remove.
      	* ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
      	* lto-wrapper.c (merge_and_complain, append_compiler_options,
      	append_linker_options): Remove condition for fcilkplus.
      	* lto/lto-lang.c (cilk.h): Remove.
      	(lto_init): Remove condition for fcilkplus.
      	* omp-expand.c (expand_cilk_for_call): Delete.
      	(expand_omp_taskreg, expand_omp_for_static_chunk,
      	expand_omp_for): Remove cilkplus
      	conditions.
      	(expand_cilk_for): Delete.
      	* omp-general.c (omp_extract_for_data): Remove cilkplus support.
      	* omp-low.c (scan_sharing_clauses, create_omp_child_function,
      	execute_lower_omp, diagnose_sb_0): Ditto.
      	* omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
      	* tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree-nested.c: Ditto.
      	* tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
      	(dump_generic_node): Ditto.
      	* tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree.def (cilk_simd, cilk_for, cilk_spawn_stmt,
      	cilk_sync_stmt): Delete.
      	* tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
      
      gcc/c-family/
      	* array-notation-common.c: Delete.
      	* c-cilkplus.c: Ditto.
      	* c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
      	* c-common.def (ARRAY_NOTATION_REF): Remove.
      	* c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
      	build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
      	c_validate_cilk_plus_loop, cilkplus_an_parts,
      	cilk_ignorable_spawn_rhs_op,
      	cilk_recognize_spawn): Remove.
      	* c-gimplify.c (CILK_SPAWN_STMT): Remove.
      	* c-omp.c: Remove CILK_SIMD check.
      	* c-pragma.c: Ditto.
      	* c-pragma.h: Remove CILK related pragmas.
      	* c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
      	ARRAY_NOTATION_REF condition.
      	(c_pretty_printer::expression): Ditto.
      	* c.opt (fcilkplus): Remove.
      	* cilk.c: Delete.
      
      gcc/c/
      	* Make-lang.in (c/c-array-notation.o): Remove.
      	* c-array-notation.c: Delete.
      	* c-decl.c: Remove cilkplus condition.
      	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
      	c_parser_cilk_verify_simd, c_parser_array_notation,
      	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
      	c_parser_cilk_simd_fn_vector_attrs,
      	c_finish_cilk_simd_fn_tokens): Delete.
      	(c_parser_declaration_or_fndef): Remove cilkplus condition.
      	(c_parser_direct_declarator_inner): Ditto.
      	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
      	(c_parser_attributes, c_parser_compound_statement,
      	c_parser_statement_after_labels, c_parser_if_statement,
      	c_parser_switch_statement, c_parser_while_statement,
      	c_parser_do_statement, c_parser_for_statement,
      	c_parser_unary_expression, c_parser_postfix_expression,
      	c_parser_postfix_expression_after_primary,
      	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
      	c_parser_omp_for_loop,
      	c_finish_omp_declare_simd): Remove cilkplus support.
      	* c-typeck.c (build_array_ref, build_function_call_vec,
      	convert_arguments, lvalue_p, build_compound_expr, c_finish_return,
      	c_finish_if_stmt, c_finish_loop,
      	build_binary_op): Remove cilkplus support.
      	
      gcc/cp/
      	* Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete.
      	* call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus.
      	* constexpr.c (potential_constant_expression_1): Ditto.
      	* cp-array-notation.c: Delete.
      	* cp-cilkplus.c: Ditto.
      	* cp-cilkplus.h: Ditto.
      	* cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove
      	cilkplus condition.
      	* cp-objcp-common.c (ARRAY_NOTATION_REF): Delete.
      	* cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete.
      	* decl.c (grokfndecl, finish_function): Remove cilkplus condition.
      	* error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition.
      	* lambda.c (cp-cilkplus.h): Remove.
      	* parser.c (cp_parser_cilk_simd, cp_parser_cilk_for,
      	cp_parser_cilk_simd_vectorlength): Delete.
      	(cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body,
      	cp_parser_postfix_expression, cp_parser_postfix_open_square_expression,
      	cp_parser_statement, cp_parser_jump_statement,
      	cp_parser_direct_declarator,
      	cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list,
      	cp_parser_omp_clause_name, cp_parser_omp_clause_aligned,
      	cp_parser_omp_clause_linear, cp_parser_omp_all_clauses,
      	cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr,
      	cp_parser_omp_for_loop_init, cp_parser_omp_for_loop,
      	cp_parser_omp_declare_simd): Remove cilkplus support.
      	(CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info,
      	cp_parser_cilk_grainsize): Remove.
      	(cp_parser_pragma, c_parse_file): Remove cilkplus support.
      	(cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear,
      	cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses,
      	cp_parser_cilk_simd, cp_parser_cilk_for): Remove.
      	* parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove.
      	* pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove
      	cilkplus support.
      	* semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body,
      	finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr,
      	finish_omp_clauses, finish_omp_clauses,
      	finish_omp_for): Remove cilkplus support.
      	* tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon.
      	* typeck.c (cp_build_array_ref, cp_build_compound_expr,
      	check_return_expr): Remove cilkplus support.
      
      gcc/testsuite/
      	* c-c++-common/attr-simd-3.c: Delete.
      	* c-c++-common/cilk-plus/AN/an-if.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test1.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test2.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test_ND.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete.
      	* c-c++-common/cilk-plus/AN/comma_exp.c: Delete.
      	* c-c++-common/cilk-plus/AN/conditional.c: Delete.
      	* c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete.
      	* c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr.c: Delete.
      	* c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather_scatter.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/misc.c: Delete.
      	* c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors2.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors3.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors4.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57490.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57577.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr58942.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61191.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61962.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61963.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr62008.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr63884.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/side-effects-1.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete.
      	* c-c++-common/cilk-plus/AN/tst_lngth.c: Delete.
      	* c-c++-common/cilk-plus/AN/vla.c: Delete.
      	* c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-fors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete.
      	* c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c
      	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr59631.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60469.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60586.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr63307.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-4.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-7.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Delete.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Delete.
      	* c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Delete.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Delete.
      	* c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/body.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses1.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses2.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses3.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses4.c: Delete.
      	* c-c++-common/cilk-plus/PS/for1.c: Delete.
      	* c-c++-common/cilk-plus/PS/for2.c: Delete.
      	* c-c++-common/cilk-plus/PS/for3.c: Delete.
      	* c-c++-common/cilk-plus/PS/pr69363.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/run-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/safelen.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error2.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error3.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test2.c: Delete.
      	* c-c++-common/cilk-plus/SE/vlength_errors.c: Delete.
      	* g++.dg/cilk-plus/AN/array_function.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/braced_list.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/postincr_test.c: Delete.
      	* g++.dg/cilk-plus/AN/preincr_test.c: Delete.
      	* g++.dg/cilk-plus/CK/catch_exc.c: Delete.
      	* g++.dg/cilk-plus/CK/cf3.c: Delete.
      	* g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/const_spawn.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/for1.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/pr60586.c: Delete.
      	* g++.dg/cilk-plus/CK/pr66326.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68001.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68997.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69024.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69048.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69267.c: Delete.
      	* g++.dg/cilk-plus/CK/pr80038.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_test.c: Delete.
      	* g++.dg/cilk-plus/cilk-plus.exp
      	* g++.dg/cilk-plus/ef_test.C: Delete.
      	* g++.dg/cilk-plus/for.C: Delete.
      	* g++.dg/cilk-plus/for2.C: Delete.
      	* g++.dg/cilk-plus/for3.C: Delete.
      	* g++.dg/cilk-plus/for4.C: Delete.
      	* g++.dg/cilk-plus/pr60967.C: Delete.
      	* g++.dg/cilk-plus/pr69028.C: Delete.
      	* g++.dg/cilk-plus/pr70565.C: Delete.
      	* g++.dg/pr57662.C: Delete.
      	* gcc.dg/cilk-plus/cilk-plus.exp
      	* gcc.dg/cilk-plus/for1.c: Delete.
      	* gcc.dg/cilk-plus/for2.c: Delete.
      	* gcc.dg/cilk-plus/jump-openmp.c: Delete.
      	* gcc.dg/cilk-plus/jump.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-1.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-2.c: Delete.
      	* gcc.dg/cilk-plus/pr78306.c: Delete.
      	* gcc.dg/cilk-plus/pr79116.c: Delete.
      	* gcc.dg/graphite/id-28.c: Delete.
      	* lib/cilk-plus-dg.exp: Delete.
      	* lib/target-supports.exp (cilkplus_runtime): Delete.
      
      Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com>
      
      From-SVN: r255195
      Julia Koval committed
    • [Patch AArch64] Fixup floating point division with -march=armv8-a+nosimd · 1be49a38
      The canonical examples is :
      
          double
          foo (double x, double y)
            {
              return x / y;
            }
      
          with -march=armv8-a+nosimd
      
      generates a function that calls __divdf3. Ofcourse on AArch64 we don't
      have any software floating point and this causes issues.
      
      There is also a problem in +nosimd that has existed since the dawn of
      time in the port with respect to long doubles (128 bit floating
      point), here the ABI and the compiler expect the presence of the SIMD
      unit as these parameters are passed in the vector registers. Thus
      while +nosimd tries to prevent the use of SIMD instructions in the
      compile we don't get this right as we end up using ldr qN / str qN
      instructions and even there I think things go wrong in a simple
      example that I tried.
      
      Is that sufficient to consider marking +nosimd as deprecated in GCC-8
      and remove this in a future release ?
      
      That is not a subject for this patch but something separate but I
      would like to put this into trunk and the release
      branches. Bootstrapped and regression tested on my aarch64 desktop.
      
      Ok ?
      
      From-SVN: r255194
      Ramana Radhakrishnan committed
    • re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp… · 3c88da0d
      re PR rtl-optimization/81020 (wrong code with -O -fno-tree-bit-ccp -fno-tree-coalesce-vars -fno-tree-vrp)
      
      	PR rtl-optimization/81020
      	* gcc.dg/pr81020.c: New test.
      
      From-SVN: r255193
      Jakub Jelinek committed
    • tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. · 9e851845
      	* tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
      	Adjust comment.
      	* tree.h (SWITCH_LABELS): Remove.
      	* gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
      	assert SWITCH_BODY is non-NULL.
      	* tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
      	handling.
      	* tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
      c/
      	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
      	of build3.
      cp/
      	* cp-gimplify.c (genericize_switch_stmt): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      ada/
      	* gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
      	using build2 instead of build3.
      jit/
      	* jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
      	of build3.  Formatting fixes.  Adjust funciton comment.
      fortran/
      	* trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
      	using fold_build2_loc instead of fold_build3_loc.
      	* trans-io.c (io_result): Likewise.
      	* trans-stmt.c (gfc_trans_integer_select, gfc_trans_character_select):
      	Likewise.
      go/
      	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      brig/
      	* brigfrontend/brig-branch-inst-handler.cc
      	(brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2
      	instead of build3.
      
      From-SVN: r255192
      Jakub Jelinek committed
    • re PR tree-optimization/80788 (ICE in set_value_range, at tree-vrp.c:252) · 11c1e63c
      	PR tree-optimization/80788
      	* match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
      	has TREE_OVERFLOW set, call drop_tree_overflow.
      
      	* gcc.dg/pr80788.c: New test.
      
      From-SVN: r255191
      Jakub Jelinek committed
    • re PR target/83158 (gcc.target/i386/pr78057.c fail) · 6a7a7f92
      2017-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83158
      	* tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more
      	cases.
      
      From-SVN: r255190
      Richard Biener committed
    • * MAINTAINERS (write after approval): Add myself. · d2eaaa89
      From-SVN: r255189
      Julia Koval committed
    • rs6000: Improve comparison rtx_cost (PR81288) · b8adcbd9
      The current rs6000 rtx_cost for comparisons against 0 is very high if
      TARGET_ISEL && !TARGET_MFCRF, much higher than for reg-reg comparisons,
      much higher than a load of 0 and such a reg-reg-comparison.  This leads
      to infinite recursion in CSE (see PR81288).
      
      This patch removes the too-high cost, also simplifying this code.
      
      
      	PR 81288/target
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
      	TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
      
      From-SVN: r255188
      Segher Boessenkool committed
    • rs6000: Improve scc isel · fd8bf76c
      If we have a negative condition we can use a literal 0 in the isel,
      instead of having to load it into a register.  If the condition is from
      a comparison with an immediate we can change e.g. LT to LE and adjust
      the immediate, saving a li instruction.
      
      
      	* config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
      	LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
      
      From-SVN: r255186
      Segher Boessenkool committed
    • Daily bump. · 2ac1a8d8
      From-SVN: r255185
      GCC Administrator committed
    • PR c++/83058 - ICE on C++ code with negative array index: in warn_placement_new_too_small · 9ca1eaac
      gcc/cp/ChangeLog:
      
      	PR c++/83058
      	* init.c (warn_placement_new_too_small): Use offset_int instead of
      	HOST_WIDE_INT.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/83058
      	* g++.dg/warn/Wplacement-new-size-5.C: New test.
      
      From-SVN: r255182
      Martin Sebor committed
  2. 27 Nov, 2017 19 commits
    • re PR c++/81888 (Structured bindings stopped working) · de3d4fd0
      	PR c++/81888
      	* parser.c (cp_parser_decomposition_declaration): Reject just
      	BRACE_ENCLOSED_INITIALIZER_P initializers with nelts != 1 rather
      	than all such CONSTRUCTORs, and only if is_direct_init is true.
      
      	* g++.dg/cpp1z/decomp30.C: Add a test for structured binding with
      	= {} and = { a, a } initializers.
      	* g++.dg/cpp1z/decomp31.C: New test.
      
      From-SVN: r255180
      Jakub Jelinek committed
    • pt.c (primary_template_specialization_p): Rename from · 528c7559
      	* pt.c (primary_template_specialization_p): Rename from
      
      	primary_template_instantiation_p.  Don't check
      	DECL_TEMPLATE_INSTANTIATION.
      	* call.c, cp-tree.h, decl2.c: Adjust.
      
      From-SVN: r255179
      Jason Merrill committed
    • [gcc] · 32c95bca
      2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR middle_end/82333
      	* varasm.c (compare_constant): Take the mode of the constants into
      	account when comparing floating point constants.
      
      [gcc/testsuite]
      2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR middle_end/82333
      	* gcc.target/powerpc/pr82333.c: New test.
      
      From-SVN: r255177
      Michael Meissner committed
    • Add missing noexcept in string_view::find_first_of declaration · 0f42ffd7
      2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
      
      	* include/std/string_view (basic_string_view::find_first_of): Add
      	missing noexcept.
      
      From-SVN: r255176
      Stephan Bergmann committed
    • hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit… · 4c71819d
      hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper.
      
      	* hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
      	from explicit instantiation of debug_helper.
      	* vec.h (DEFINE_DEBUG_VEC): Ditto.
      
      From-SVN: r255175
      Gerald Pfeifer committed
    • Fix std::unordered_map deduction guide · 68e601d8
      2017-11-27  Stephan Bergmann  <sbergman@redhat.com>
      
      	* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
      	* include/debug/unordered_map (unordered_map): Likewise.
      
      From-SVN: r255174
      Stephan Bergmann committed
    • gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit. · 42f74245
      2017-11-27  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
      	refactor a bit.
      
      From-SVN: r255172
      Richard Biener committed
    • tree.c (wide_int_to_tree): Free discarded INTEGER_CST. · 53d2b7cb
      2017-11-27  Richard Biener  <rguenther@suse.de>
      
      	* tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
      	(type_hash_canon): Also clear int_cst_hash_table entry for
      	TYPE_MIN/MAX_VALUE.
      	(build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
      
      From-SVN: r255171
      Richard Biener committed
    • extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). · d7dccfa3
      2017-11-27  Tamar Christina  <tamar.christina@arm.com>
      
      	* doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      	* doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      	* doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
      
      From-SVN: r255169
      Tamar Christina committed
    • re PR c++/81675 (attribute(noreturn) of destructor in :? not honored) · cb358080
      	PR c++/81675
      	* cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately
      	for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is
      	INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall
      	through into normal folding, otherwise just rebuild x if any op
      	changed.
      
      	* g++.dg/warn/pr81675.C: New test.
      
      From-SVN: r255167
      Jakub Jelinek committed
    • Fix UB in hash-map.h · 04f91503
      bootstrap-ubsan shows:
        gcc/hash-map.h:277:19: runtime error: member access within null pointer of type 'struct hash_map'
      
      Fix the issue by returning early.
      
      From-SVN: r255166
      Markus Trippelsdorf committed
    • cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. · ff27462e
      	* cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
      	* loop-unroll.c (decide_unroll_constant_iterations): Implement it.
      	(decide_unroll_runtime_iterations): Likewise.
      	(decide_unroll_stupid): Likewise.
      
      From-SVN: r255165
      Eric Botcazou committed
    • Fix code generation for buildtin_longjmp with CET. · 39335d14
      According to the description of  inssp instruction from Intel CET it
      adusts the shadow stack pointer (ssp) only by value in the range of
      [0..255]. As a number of adjustment could be greater than 255 there
      should be a loop generated to adjust ssp.
      
      gcc/
      	* config/i386/i386.md: Add a loop with incssp.
      	* testsuite/gcc.target/i386/cet-sjlj-1.c: Fix test.
      	* testsuite/gcc.target/i386/cet-sjlj-4.c: Likewise.
      
      From-SVN: r255164
      Igor Tsimbalist committed
    • [PR 81248] Fix ipa-sra size check · be025a2d
      2017-11-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/81248
      	* tree-sra.c (splice_param_accesses): Remove size check.
      	(decide_one_param_reduction): Fix size check.
      	* gimple-pretty-print.c (dump_profile): Silence warning.
      	* params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
      
      	testsuite/
      	* g++.dg/ipa/pr81248.C: New test.
      	* gcc.dg/tree-ssa/ssa-pre-31.c: Disable IPA-SRA.
      	* gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c: Likewise.
      
      From-SVN: r255163
      Martin Jambor committed
    • null-8.C (bar): New function. · 8cb71598
      	* g++.dg/ubsan/null-8.C (bar): New function.
      	(foo): Use bar instead of __builtin_printf.
      
      From-SVN: r255162
      Jakub Jelinek committed
    • re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · b8cb3096
      	PR debug/81307
      	* dbxout.c (lastlineno): New variable.
      	(dbx_debug_hooks): Use dbxout_switch_text_section as
      	switch_text_section debug hook.
      	(dbxout_function_end): Switch to current_function_section
      	rather than function_section.  If crtl->has_bb_partition,
      	output just one N_FUN, depending on in_cold_section_p.
      	(dbxout_source_line): Remember last lineno in lastlineno.
      	(dbxout_switch_text_section): New function.
      	(dbxout_function_decl): Adjust dbxout_block caller.
      	(dbx_block_with_cold_children): New function.
      	(dbxout_block): Return true if any LBRAC/RBRAC have been
      	emitted.  Use dbx_block_with_cold_children at depth == 0
      	in second partition.  Add PARENT_BLOCKNUM argument, pass
      	it optionally adjusted to children.  Output LBRAC/RBRAC
      	around recursive call only if the block is in the current
      	partition, if not and anything was output, emit empty
      	range LBRAC/RBRAC.
      	* final.c (final_scan_insn): Compute cold_function_name
      	before calling switch_text_section debug hook.  Call
      	that hook even if dwarf2out_do_frame if not emitting
      	dwarf debug info.
      
      	* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
      	workaround.
      
      From-SVN: r255161
      Jakub Jelinek committed
    • re PR target/83100 (powerpc: internal compiler error: in get_variable_section,… · 9adeb64a
      re PR target/83100 (powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections)
      
      	PR target/83100
      	* varasm.c (bss_initializer_p): Return true for DECL_COMMON
      	TREE_READONLY decls.
      
      	* gcc.dg/pr83100-1.c: New test.
      	* gcc.dg/pr83100-2.c: New test.
      	* gcc.dg/pr83100-3.c: New test.
      	* gcc.dg/pr83100-4.c: New test.
      
      From-SVN: r255160
      Jakub Jelinek committed
    • Fix PR82488 - signed integer overflow in expr.c · 99282f81
      bootstrap-ubsan shows:
       gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int'
      
      Fix by handling the saw_unknown case earlier.
      
      	PR rtl-optimization/82488
      	* expr.c (fixup_args_size_notes): Avoid signed integer overflow.
      
      diff --git a/gcc/expr.c b/gcc/expr.c
      index ee07de5aaa44..e9d8555c9452 100644
      --- a/gcc/expr.c
      +++ b/gcc/expr.c
      @@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size)
             if (STACK_GROWS_DOWNWARD)
       	this_delta = -(unsigned HOST_WIDE_INT) this_delta;
      
      -      args_size -= this_delta;
      +      if (saw_unknown)
      +	args_size = INT_MIN;
      +      else
      +	args_size -= this_delta;
           }
      
      -  return saw_unknown ? INT_MIN : args_size;
      +  return args_size;
       }
      
       #ifdef PUSH_ROUNDING
      --
      Markus
      
      From-SVN: r255159
      Markus Trippelsdorf committed
    • Daily bump. · 62e8530c
      From-SVN: r255158
      GCC Administrator committed
  3. 26 Nov, 2017 3 commits
    • i386.c (processor_target_table): Add skylake_cost for skylake-avx512. · c234d831
      	* config/i386/i386.c (processor_target_table): Add skylake_cost for
      	skylake-avx512.
      	* config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
      	skylake_cost): New.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu):
      	Detect skylake-avx512.
      
      	* config.gcc: Add -march=cannonlake.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
      	* config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
      	(PTA_CANNONLAKE): New.
      	(processor_target_table): Add cannonlake.
      	(ix86_option_override_internal): Ditto.
      	(fold_builtin_cpu): Ditto.
      	(get_builtin_code_for_version): Handle cannonlake.
      	(M_INTEL_COREI7_CANNONLAKE): New.
      	* config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
      	* doc/invoke.texi: Add -march=cannonlake.
      
      gcc/testsuite/
      
      	* gcc.target/i386/funcspec-56.inc: Handle new march.
      	* g++.dg/ext/mv16.C: Ditto.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake.
      	* config/i386/cpuinfo.h (processor_subtypes): Add
      	INTEL_COREI7_CANNONLAKE.
      
      From-SVN: r255155
      Uros Bizjak committed
    • Plugin support on Windows/MinGW · 8c7dbea9
      config/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* gcc-plugin.m4: Add support for MinGW.
      
      gcc/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* plugin.c (add_new_plugin): Use platform-specific library extensions.
      	(try_init_one_plugin): Alternative implementation for MinGW.
      	* Makefile.in (plugin_implib): New.
      	(gengtype-lex.c): Fix broken AIX workaround.
      	* configure: Regenerate.
      	* doc/plugins.texi: Document support for MinGW.
      
      gcc/c/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c.install-plugin): Install backend import library.
      
      gcc/cp/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c++.install-plugin): Install backend import library.
      
      libcc1/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* configure: Regenerate.
      
      From-SVN: r255154
      Boris Kolpackov committed
    • Daily bump. · 44dfb822
      From-SVN: r255153
      GCC Administrator committed
  4. 25 Nov, 2017 1 commit