1. 05 Aug, 2016 14 commits
    • [AArch64] Handle HFAs of float16 types properly · 1b62ed4f
      Fix PR Target/72819.
      
      gcc/
      
      	PR Target/72819
      	* config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
      	(aarch64_fp16_ptr_type_node): Likewise.
      	* config/aarch64/aarch64-simd-builtins.c
      	(aarch64_fp16_ptr_type_node): Define.
      	(aarch64_init_fp16_types): New, refactored out of...
      	(aarch64_init_builtins): ...here, update to call
      	aarch64_init_fp16_types.
      	* config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
      	HFmode.
      	(aapcs_vfp_sub_candidate): Likewise.
      
      gcc/testsuite/
      
      	PR Target/72819
      	* gcc.target/aarch64/aapcs64/abitest-common.h: Define half-precision
      	registers.
      	* gcc.target/aarch64/aapcs64/abitest.S (dumpregs): Add assembly for
      	saving the half-precision registers.
      	* gcc.target/aarch64/aapcs64/func-ret-1.c: Test that an __fp16
      	value is returned in h0.
      	* gcc.target/aarch64/aapcs64/test_2.c: Check that __FP16 arguments
      	are passed in FP/SIMD registers.
      	* gcc.target/aarch64/aapcs64/test_27.c: New, test that __fp16 HFA
      	passing works corrcetly.
      	* gcc.target/aarch64/aapcs64/type-def.h (hfa_f16x1_t): New.
      	(hfa_f16x2_t): Likewise.
      	(hfa_f16x3_t): Likewise.
      	* gcc.target/aarch64/aapcs64/va_arg-1.c: Check that __fp16 values
      	are promoted to double and passed in a double register.
      	* gcc.target/aarch64/aapcs64/va_arg-2.c: Check that __fp16 values
      	are promoted to double and stacked.
      	* gcc.target/aarch64/aapcs64/va_arg-4.c: Check stacking of HFA of
      	__fp16 data types.
      	* gcc.target/aarch64/aapcs64/va_arg-5.c: Likewise.
      	* gcc.target/aarch64/aapcs64/va_arg-16.c: New, check HFAs of
      	__fp16 first get passed in FP/SIMD registers, then stacked.
      
      From-SVN: r239173
      James Greenhalgh committed
    • Correct status of __cpp_lib_enable_shared_from_this · a0b1bf21
      	* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
      	* doc/html/manual/status.html: Regenerate.
      
      From-SVN: r239171
      Jonathan Wakely committed
    • Implement C++17 rounding functions for std::chrono (P0092R1) · 5f6acdfb
      	* include/std/chrono (floor, ceil, round, abs): New for C++17.
      	* testsuite/20_util/duration_cast/rounding.cc: New test.
      	* testsuite/20_util/time_point_cast/rounding.cc: New test.
      	* doc/xml/manual/status_cxx2017.xml: Update status table.
      	* doc/html/manual/status.html: Regenerate.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
      	dg-error lineno.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/duration/literals/range.cc: Likewise.
      
      From-SVN: r239170
      Jonathan Wakely committed
    • gcov tool: Implement Hawick's algorithm for cycle detection, · 24bc5921
      	    Joshua Cranmer  <Pidgeot18@gmail.com>
      
      	* gcov.c (line_t::has_block): New function.
      	(enum loop_type): New enum.
      	(handle_cycle): New function.
      	(unblock): Likewise.
      	(circuit): Likewise.
      	(get_cycles_count): Likewise.
      	(accumulate_line_counts): Use new loop detection algorithm.
      
      From-SVN: r239169
      Martin Liska committed
    • gcov: rename line_next to next_file_fn in function_info · 4457451f
      	* gcov.c (output_intermediate_file): Rename
      	function_info::line_next to next_file_fn.
      	(process_file): Likewise.
      	(read_graph_file): Likewise.
      	(accumulate_line_counts): Likewise.
      	(output_lines): Likewise.
      
      From-SVN: r239168
      Martin Liska committed
    • re PR c++/68724 (ice in unify, at cp/pt.c:19902) · 4228ca19
      	PR c++/68724
      	* pt.c (unify): TRAIT_EXPR is an expr.
      
      	PR c++/68724
      	* g++.dg/cpp0x/pr68724.C: New.
      
      From-SVN: r239167
      Nathan Sidwell committed
    • Use __invoke in std::function internals · 98e6e662
      	* include/std/functional (__callable_functor): Remove.
      	(_Function_handler::_M_invoke): Use __invoke instead of
      	__callable_functor or mem_fn.
      	(function::_Callable): Use lvalue in result_of expression.
      	(function): Remove TODO comments about allocators.
      	* testsuite/20_util/function/cons/refqual.cc: New test.
      
      From-SVN: r239166
      Jonathan Wakely committed
    • ivopt_5.c: Make robust against edge swapping. · db7c335e
      2016-08-05  Richard Biener  <rguenther@suse.de>
      
      	* gcc.dg/tree-ssa/ivopt_5.c: Make robust against edge swapping.
      
      From-SVN: r239165
      Richard Biener committed
    • tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on… · 6c1d60a2
      tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on threading to a loop header.
      
      2016-08-05  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
      	restriction on threading to a loop header.
      
      From-SVN: r239164
      Richard Biener committed
    • tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p. · ee281008
      2016-08-05  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
      	* cfghooks.c (force_nonfallthru): If we ended up splitting a latch
      	adjust loop info accordingly.
      
      From-SVN: r239163
      Richard Biener committed
    • tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call… · 343092cf
      tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call to __builtin_constant_p with...
      
      gcc/ChangeLog:
      
      2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* tree-vrp.c (extract_range_basic): Check cfun->after_inlining
      	before folding call to __builtin_constant_p with parameters to false.
      
      From-SVN: r239162
      Kugan Vivekanandarajah committed
    • [RS6000] rs6000_preferred_reload_class · 7ffedfee
      	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
      	code accidentally committed 2016-05-02 providing class when given
      	NO_REGS.
      
      From-SVN: r239161
      Alan Modra committed
    • Daily bump. · eedd464b
      From-SVN: r239160
      GCC Administrator committed
    • Teach VRP to truncate the case ranges of a switch · 48abe922
      gcc/ChangeLog:
      
      	* tree-vrp.c (simplify_switch_using_ranges): Try to truncate
      	the case label ranges that partially overlap with OP's value
      	range.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/tree-ssa/vrp107.c: New test.
      	* gcc.dg/tree-ssa/vrp108.c: New test.
      	* gcc.dg/tree-ssa/vrp109.c: New test.
      
      From-SVN: r239157
      Patrick Palka committed
  2. 04 Aug, 2016 26 commits
    • re PR target/72805 (AVX512: invalid code generation involving masks) · 383321ec
      	PR target/72805
      	* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
      	Cast builtin function result to __mmask16 instead of __mmask8.
      	(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
      	(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
      	(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
      
      From-SVN: r239152
      Uros Bizjak committed
    • selftest.h: Add ASSERT_TRUE_AT and ASSERT_FALSE_AT · d4f7837c
      gcc/ChangeLog:
      	* selftest.h (ASSERT_TRUE): Reimplement in terms of...
      	(ASSERT_TRUE_AT): New macro.
      	(ASSERT_FALSE): Reimplement in terms of...
      	(ASSERT_FALSE_AT): New macro.
      	(ASSERT_STREQ_AT): Fix typo in comment.
      
      From-SVN: r239151
      David Malcolm committed
    • pr70920-4.c: Move dg-require-effective-target before dg-options. · f6cdf42f
      2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      testsuite/
      	* gcc.dg/pr70920-4.c: Move dg-require-effective-target before
      	dg-options.
      
      From-SVN: r239150
      Prathamesh Kulkarni committed
    • pr71078-1.c: Remove double and long double test-cases. · 33a9c609
      2016-08-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      testsuite/
      	* gcc.dg/tree-ssa/pr71078-1.c: Remove double and long double
      	test-cases.
      	* gcc.dg/tree-ssa/pr71078-1-double.c: New test-case.
      	* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
      	* gcc.dg/tree-ssa/pr71078-2.c: Remove double and long double
      	test-cases.
      	* gcc.dg/tree-ssa/pr71078-2-double.c: New test-case.
      	* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
      	* gcc.dg/tree-ssa/pr71078-3.c: Add require-effective-check for
      	large_double.
      
      From-SVN: r239149
      Prathamesh Kulkarni committed
    • re PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree… · 4473482d
      re PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in add_capture, at cp/lambda.c:505)
      
      /cp
      2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/72800
      	* lambda.c (add_capture): Check lambda_capture_field_type return
      	value for error_mark_node.
      
      /testsuite
      2016-08-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/72800
      	* g++.dg/cpp1y/lambda-ice1.C: New.
      
      From-SVN: r239148
      Paolo Carlini committed
    • Fix ICE on invalid variable template instantiation (PR c++/72759) · 08156df5
      gcc/cp/ChangeLog:
      
      	PR c++/72759
      	* pt.c (tsubst_qualified_id): Return error_mark_node if
      	template_args is error_mark_node.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/72759
      	* g++.dg/cpp1y/pr72759.C: New test.
      
      From-SVN: r239147
      Patrick Palka committed
    • Designate the widest case label to be the default label · 938da3a5
      gcc/ChangeLog:
      
      	* gimple.c (preprocess_case_label_vec_for_gimple): When the case
      	labels are exhaustive, designate the label with the widest
      	range to be the default label.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/switch-10.c: New test.
      
      From-SVN: r239146
      Patrick Palka committed
    • Define std::is_callable and std::is_nothrow_callable · 42183d03
      	* doc/xml/manual/status_cxx2017.xml: Update status table.
      	* include/std/functional (__inv_unwrap): Move to <type_traits>.
      	(__invoke_impl): Remove exception specifications.
      	(__invoke, invoke): Add exception specifications using
      	__is_nothrow_callable.
      	* include/std/type_traits (__inv_unwrap): Move from <functional>.
      	(__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
      	(__is_callable, __is_nothrow_callable): New traits.
      	(is_callable, is_callable_v): New C++17 traits.
      	(is_nothrow_callable, is_nothrow_callable_v): Likewise.
      	* testsuite/20_util/is_callable/requirements/
      	explicit_instantiation.cc: New test.
      	* testsuite/20_util/is_callable/requirements/
      	explicit_instantiation_ext.cc: New test.
      	* testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
      	* testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
      	test.
      	* testsuite/20_util/is_callable/value.cc: New test.
      	* testsuite/20_util/is_callable/value_ext.cc: New test.
      	* testsuite/20_util/is_nothrow_callable/requirements/
      	explicit_instantiation.cc: New test.
      	* testsuite/20_util/is_nothrow_callable/requirements/
      	explicit_instantiation_ext.cc: New test.
      	* testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
      	New test.
      	* testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
      	New test.
      	* testsuite/20_util/is_nothrow_callable/value.cc: New test.
      	* testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
      
      From-SVN: r239145
      Jonathan Wakely committed
    • re PR c++/71696 (Libiberty Demangler segfaults (6)) · 1841e25c
      2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>
      
      	PR c++/71696
      	* cplus-dem.c: Prevent infinite recursion when there is a cycle
      	in the referencing of remembered mangled types.
      	(work_stuff): New stack to keep track of the remembered mangled
      	types that are currently being processed.
      	(push_processed_type): New method to push currently processed
      	remembered type onto the stack.
      	(pop_processed_type): New method to pop currently processed
      	remembered type from the stack.
      	(work_stuff_copy_to_from): Copy values of new variables.
      	(delete_non_B_K_work_stuff): Free stack memory.
      	(demangle_args): Push/Pop currently processed remembered type.
      	(do_type): Do not demangle a cyclic reference and push/pop
      	referenced remembered type.
      
      From-SVN: r239143
      Marcel Böhme committed
    • [Patch obvious testsuite] Remove duplicate body from pr70903.c · da84183c
      	* gcc.c-torture/execute/pr70903.c: Remove duplicate body.
      
      From-SVN: r239142
      James Greenhalgh committed
    • text/template: reduce maxExecDepth for gccgo · aa8a418b
          
          When using gccgo on systems without full support for split stacks a
          recursive template can overrun the available stack space.  Reduce the
          limit from 100000 to 10000 to make this less likely.  It's still high
          enough that real uses will work.
          
          Reviewed-on: https://go-review.googlesource.com/25467
      
      From-SVN: r239141
      Ian Lance Taylor committed
    • compiler: include "go-system.h" in escape.cc · 7a62db97
          
          Patch from Rainer Orth.
          
          Reviewed-on: https://go-review.googlesource.com/25466
      
      From-SVN: r239140
      Ian Lance Taylor committed
    • PR c++/72415 - member template with fold-expression constraint · b9dc9ef6
      	* pt.c (tsubst_pack_expansion): Pull a single pack expansion out
      	of the TREE_VEC.
      
      From-SVN: r239138
      Jason Merrill committed
    • Rename TYPE_ANONYMOUS_P to TYPE_UNNAMED_P. · 6a7b9203
      	* cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P.
      	(TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS.
      	* class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c,
      	name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust.
      
      From-SVN: r239137
      Jason Merrill committed
    • PR c++/72796 - wrong resolution of scoped method call. · 99676625
      	* typeck.c (finish_class_member_access_expr): Avoid stripping
      	SCOPE_REF to dependent base.
      
      From-SVN: r239136
      Jason Merrill committed
    • aarch64.c (thunderx_vector_cost): New variable. · c3f20327
      2016-08-04  Andrew Pinski  <apinski@cavium.com>
      
              * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
              (thunderx_tunings): Use thunderx_vector_cost instead of
              generic_vector_cost.
      
      From-SVN: r239135
      Andrew Pinski committed
    • Fix GNU coding style in gcov.c · 176bf572
      	* gcov.c (main): Fix GNU coding style.
      	(output_intermediate_file): Likewise.
      	(process_file): Likewise.
      	(generate_results): Likewise.
      	(release_structures): Likewise.
      	(create_file_names): Likewise.
      	(find_source): Likewise.
      	(read_graph_file): Likewise.
      	(find_exception_blocks): Likewise.
      	(canonicalize_name): Likewise.
      	(make_gcov_file_name): Likewise.
      	(mangle_name): Likewise.
      	(accumulate_line_counts): Likewise.
      	(output_branch_count): Likewise.
      	(read_line): Likewise.
      
      From-SVN: r239134
      Martin Liska committed
    • Rework C/C++ OpenACC routine parsing · ae9281fc
      	gcc/c/
      	* c-parser.c (struct oacc_routine_data): Add error_seen and
      	fndecl_seen members.
      	(c_finish_oacc_routine): Use these.
      	(c_parser_declaration_or_fndef): Adjust.
      	(c_parser_oacc_routine): Likewise.  Support more C language
      	constructs, and improve diagnostics.  Move pragma context
      	checking...
      	(c_parser_pragma): ... here.
      	gcc/cp/
      	* parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
      	(cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
      	(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
      	Simplify code, and improve diagnostics.
      	(cp_parser_oacc_routine): Likewise.  Move pragma context
      	checking...
      	(cp_parser_pragma): ... here.
      	gcc/testsuite/
      	* c-c++-common/goacc/routine-5.c: Update.
      
      From-SVN: r239128
      Thomas Schwinge committed
    • C/C++: Simplify handling of location information for OpenACC routine directives · 0b212d8c
      	gcc/c/
      	* c-parser.c (struct oacc_routine_data): New.
      	(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
      	Simplify code.
      	(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
      	declare target" attribute.
      	gcc/cp/
      	* parser.h (struct cp_omp_declare_simd_data): New.
      	(struct cp_parser): Use it for oacc_routine member.
      	* parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
      	(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
      	Use it.  Simplify code.
      	(cp_parser_new): Initialize all members pointing to special
      	parsing data structures.
      	(cp_parser_cilk_simd_fn_vector_attrs): Initialize
      	parser->cilk_simd_fn_info->clauses.
      	(cp_parser_omp_declare_simd): Initialize
      	parser->omp_declare_simd->clauses.
      	(cp_parser_late_parsing_omp_declare_simd): Simplify code.
      
      From-SVN: r239127
      Thomas Schwinge committed
    • C++ OpenACC routine directive testing: templated, and "auto", trailing return type syntax · bbc79c0e
      	libgomp/
      	* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
      	* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
      	* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
      	Likewise.
      	* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
      	* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
      
      From-SVN: r239126
      Thomas Schwinge committed
    • Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0 · 9ef64248
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
      	test, and don't hardcode -O0.
      
      From-SVN: r239125
      Thomas Schwinge committed
    • Update C++17 library implementation status table · 246c618e
      	* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
      	* doc/html/manual/status.html: Regenerate.
      
      From-SVN: r239124
      Jonathan Wakely committed
    • 016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de> · 8d8e740c
              PR rtl-optimization/71779
              * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
              if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
              or if it was truncated.
      
      From-SVN: r239123
      Bernd Edlinger committed
    • re PR target/70903 (wrong code with bfi @ aarch64 with -Os) · 086ad22e
      2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR rtl-optimization/70903
              * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
      
      testsuite:
      2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR rtl-optimization/70903
              * gcc.c-torture/execute/pr70903.c: New test.
      
      From-SVN: r239122
      Bernd Edlinger committed
    • Define std::enable_shared_from_this::weak_from_this · 9a8e528c
      	* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
      	effective target not dg-options. Move check for feature-test macro to:
      	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
      	New test.
      
      From-SVN: r239121
      Jonathan Wakely committed