Commit Graph

162269 Commits

Author SHA1 Message Date
Richard Biener fa68523173 re PR tree-optimization/86159 (g++ ICE at -O1 and above on valid code: incorrect type of vector CONSTRUCTOR elements)
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86159
	* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
	leave useless conversion stripping to force_gimple_operand_gsi.
	(gimplify_build2): Likewise.
	(gimplify_build1): Likewise.

	* g++.dg/pr86159.C: New testcase.

From-SVN: r261622
2018-06-15 11:08:30 +00:00
Richard Biener 5b32ec1039 re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location references block not in block tree))
2018-06-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/86076
	* tree-cfg.c (move_stmt_op): unshare invariant addresses
	before adjusting their block.

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

From-SVN: r261620
2018-06-15 07:25:13 +00:00
Sebastian Huber a8ef8061e1 RISC-V: Add custom RTEMS multilibs
Add multilib variants for -march=rv64imafd, e.g. to support the BOOMv2 core.

Add -mcmodel=medany as a variant of the 64-bit multilibs for RTEMS.  The
rationale for this change is that several existing RISC-V chips map the
RAM at 0x80000000.  In RTEMS, we do not use virtual memory, so
applications will run at this location which is outside the +-2GiB range
in a 64-bit configuration.

gcc/
	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
	multilibs for *-*-rtems*.
	* config/riscv/t-rtems: New file.

From-SVN: r261619
2018-06-15 05:19:44 +00:00
Jonathan Wakely cb4f9a8c05 LWG 3039 Unnecessary decay in thread and packaged_task
* include/std/future (__constrain_pkgdtask): Replace with ...
	(packaged_task::__not_same): New alias template, using
	__remove_cvref_t instead of decay.
	* include/std/thread (thread::__not_same): Add comment.

From-SVN: r261618
2018-06-15 01:19:07 +01:00
GCC Administrator 024e96b90b Daily bump.
From-SVN: r261617
2018-06-15 00:16:45 +00:00
Marek Polacek cf4763bd72 re PR c++/86063 (g++ ICE at tree check: expected tree_list, have expr_pack_expansion in cp_check_const_attributes, at cp/decl2.c:1391)
PR c++/86063
	* decl2.c (cp_check_const_attributes): Skip trees that are not
	TREE_LISTs.

	* g++.dg/cpp0x/gen-attrs-65.C: New test.

From-SVN: r261613
2018-06-14 21:07:14 +00:00
Jonathan Wakely 53e926c8cd LWG 3075 basic_string needs deduction guides from basic_string_view
* testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
	deduction from string views.
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
	Likewise.

From-SVN: r261612
2018-06-14 21:27:04 +01:00
Jonathan Wakely db5ab3aa92 LWG 3074 make scalar types non-deduced in valarray non-member functions
* include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
	scalar parameters to be a non-deduced context.
	* include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
	whitespace.
	* testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
	* testsuite/26_numerics/valarray/transcend.cc: New.

From-SVN: r261610
2018-06-14 20:36:54 +01:00
Jakub Jelinek bf7595376f re PR target/86048 (.seh_savexmm offset is negative error when compiling libpng)
PR target/86048
	* gcc.target/i386/pr86048.c: Require sse2 effective target.  Add
	-msse2 to dg-options.

From-SVN: r261608
2018-06-14 21:16:14 +02:00
Jakub Jelinek 48fcd201c4 re PR middle-end/86122 (ICE in useless_type_conversion_p, at gimple-expr.c:87)
PR middle-end/86122
	* match.pd ((A +- CST1) +- CST2): Punt if last resort
	unsigned_type_for returns NULL.

	* gcc.c-torture/compile/pr86122.c: New test.

From-SVN: r261606
2018-06-14 21:07:45 +02:00
Jakub Jelinek bc04d1ff62 P0624R2 - Default constructible and assignable stateless lambdas
P0624R2 - Default constructible and assignable stateless lambdas
	* method.c (synthesized_method_walk): For C++2a don't mark
	sfk_constructor or sfk_copy_assignment as deleted if lambda has
	no lambda-captures.

	* g++.dg/cpp2a/lambda1.C: New test.
	* g++.dg/cpp0x/lambda/lambda-ice2.C: Adjust expected diagnostics
	for -std=c++2a.

From-SVN: r261605
2018-06-14 21:05:13 +02:00
Jonathan Wakely 2d26d4ce69 Partially revert move of std::tuple_element_t to <tuple>
Defining std::tuple_element_t in <utility> makes it available wherever
std::tuple_element is available.

	* include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
	Move back to <utility>.
	* include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
	Restore to here.

From-SVN: r261604
2018-06-14 20:02:40 +01:00
Paolo Carlini d4d4475339 decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in OPT_Wshadow warning_at.
/cp
2018-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in
	OPT_Wshadow warning_at.
	(grokfndecl): Consistently use the location_t argument in
	literal operator diagnostic messages.
	(grokdeclarator): Use declspecs->locations[ds_storage_class]
	in error_at call.
	* decl2.c (finish_static_data_member_decl): Use DECL_SOURCE_LOCATION
	in permerror call.

/testsuite
2018-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/other/static3.C: New.
	* g++.dg/other/static4.C: Likewise.
	* g++.dg/warn/Wshadow-15.C: Likewise.
	* g++.dg/cpp0x/gnu_fext-numeric-literals.C: Test locations too.
	* g++.dg/cpp0x/std_fext-numeric-literals.C: Likewise.
	* g++.dg/cpp0x/std_fno-ext-numeric-literals.C: Likewise.
	* g++.dg/cpp0x/udlit-args-neg.C: Likewise.
	* g++.dg/cpp0x/udlit-clink-neg.C: Likewise.
	* g++.dg/cpp0x/udlit-extern-c.C: Likewise.
	* g++.dg/cpp0x/udlit-member-neg.C: Likewise.

From-SVN: r261601
2018-06-14 17:49:21 +00:00
Jonathan Wakely e9ecac306b P0935R0 Eradicating unnecessarily explicit default constructors
More pieces of P0935R0, making default constructors non-explicit.

	* include/backward/strstream (strstreambuf): Add non-explicit default
	constructor.
	* include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
	Likewise.
	* include/bits/regex.h (match_results): Likewise.
	* testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
	default constructor.
	* testsuite/22_locale/conversions/string/1.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.

From-SVN: r261597
2018-06-14 15:12:24 +01:00
Jonathan Wakely 74755c6afc Define __cpp_lib_tuple_element_t in <tuple> not <utility>
* include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
	macro from <utility> and change type to long.
	* include/std/utility (__cpp_lib_tuple_element_t): Remove.
	* testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
	macro.

From-SVN: r261596
2018-06-14 15:01:29 +01:00
Jakub Jelinek 75b5bc017b re PR target/85945 (ICE in resolve_subreg_use, at lower-subreg.c:751)
PR target/85945
	* lower-subreg.c (find_decomposable_subregs): Don't decompose float
	subregs of multi-word pseudos unless the float mode has word size.

	* gcc.c-torture/compile/pr85945.c: New test.

From-SVN: r261593
2018-06-14 15:35:06 +02:00
Jonathan Wakely 977ac63eab P0935R0 Eradicating unnecessarily explicit default constructors
The param_type constructors of each random number distribution should
mirror the constructors of the distribution itself, so make the same
changes w.r.t explicit on default constructors.

	* include/bits/random.h (uniform_real_distribution::param_type)
	(normal_distribution::param_type, lognormal_distribution::param_type)
	(gamma_distribution::param_type, chi_squared_distribution::param_type)
	(cauchy_distribution::param_type, fisher_f_distribution::param_type)
	(student_t_distribution::param_type)
	(bernoulli_distribution::param_type)
	(binomial_distribution::param_type)
	(geometric_distribution::param_type)
	(negative_binomial_distribution::param_type)
	(poisson_distribution::param_type)
	(exponential_distribution::param_type)
	(weibull_distribution::param_type)
	(extreme_value_distribution::param_type): Add non-explicit default
	constructors. Remove default argument for first parameter of explicit
	constructors.
	* include/bits/uniform_int_dist.h
	(uniform_int_distribution::param_type): Likewise.
	* include/ext/random
	(beta_distribution::param_type, rice_distribution::param_type)
	(nakagami_distribution::param_type, pareto_distribution::param_type)
	(k_distribution::param_type, arcsine_distribution::param_type)
	(hoyt_distribution::param_type, triangular_distribution::param_type)
	(von_mises_distribution::param_type)
	(hypergeometric_distribution::param_type)
	(logistic_distribution::param_type)
	(uniform_inside_sphere_distribution::param_type): Likewise.
	(uniform_on_sphere_distribution::param_type): Make default constructor
	non-explicit.
	* testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
	Test param_type for non-explicit default constructor.
	* testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/normal_mv_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
	* testsuite/ext/random/triangular_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
	Likewise.
	* testsuite/ext/random/von_mises_distribution/cons/default.cc:
	Likewise.

From-SVN: r261592
2018-06-14 14:32:53 +01:00
Jonathan Wakely 8513bec38c Fix errors in libstdc++-v3/ChangeLog entries.
From-SVN: r261589
2018-06-14 11:59:14 +01:00
Richard Biener bb4291d9de re PR target/86139 (ICE in in store_constructor, at expr.c:6849 on arm-linux-gnueabihf)
2018-06-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/86139
	* tree-vect-generic.c (build_word_mode_vector_type): Remove
	duplicate and harmful type_hash_canon.
	* tree.c (type_hash_canon): Assert we didn't find ourselves.

From-SVN: r261588
2018-06-14 10:55:31 +00:00
Richard Biener a16fa075a8 re PR ipa/86124 (ICE in create_variable_info_for, at tree-ssa-structalias.c:6123)
2018-06-14  Richard Biener  <rguenther@suse.de>

	PR ipa/86124
	* tree-ssa-struct-alias.c (create_variable_info_for): Handle
	NULL cgraph_node.

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

From-SVN: r261587
2018-06-14 10:55:00 +00:00
Daniel Trebbien 4c1d999a7e PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize
Construct new elements before moving existing ones, so that if a default
constructor throws, the existing elements are not left in a moved-from
state.

2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/83982
	* include/bits/vector.tcc (vector::_M_default_append(size_type)):
	Default-construct new elements before moving existing ones.
	* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
	New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r261585
2018-06-14 10:26:51 +01:00
Sebastian Huber c7a42ade9b RTEMS: Prefer int for int32_t
Common systems like glibc and FreeBSD define int32_t to int.  This means
a lot of third party code works well in these cases:

  #include <stdint.h>

  void f(int32_t);

  void f(int);

  void g(int32_t *);

  void h(void)
  {
    int i;
    g(&i);
  }

On RTEMS you got however in C

  test.c:5:6: error: conflicting types for 'f'
    void f(int);
        ^
  test.c:3:6: note: previous declaration of 'f' was here
    void f(int32_t);
        ^
  test.c: In function 'h':
  test.c:12:4: warning: passing argument 1 of 'g' from incompatible
  pointer type [-Wincompatible-pointer-types]
    g(&i);
      ^
  test.c:7:6: note: expected 'int32_t * {aka long int *}' but argument
  is of type 'int *' void g(int32_t *);

and C++

  test.c: In function 'void h()':
  test.c:12:4: error: invalid conversion from 'int*' to 'int32_t* {aka
  long int*}' [-fpermissive]
    g(&i);
      ^~
  test.c:7:6: note:   initializing argument 1 of 'void g(int32_t*)'
    void g(int32_t *);
      ^

This was due to a Newlib speciality which uses long for int32_t if long
is a 32-bit type.  To ease the use of third party software in RTEMS we
override this Newlib option now and use int for int32_t if int is a
32-bit type.

gcc/
	* config/rtems.h (STDINT_LONG32): Define.

From-SVN: r261582
2018-06-14 05:10:51 +00:00
GCC Administrator 6c07e43960 Daily bump.
From-SVN: r261580
2018-06-14 00:16:19 +00:00
Jason Merrill 4fdda3ceb3 PR c++/86099 - ICE with trivial copy and non-trivial default ctor.
* constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial
	constructors.

From-SVN: r261576
2018-06-13 20:02:42 -04:00
Jason Merrill 5cef373359 c-opts.c (c_common_post_options): Warn about useless -Wabi.
* c-opts.c (c_common_post_options): Warn about useless -Wabi.

	(c_common_handle_option) [OPT_Wabi_]: Remove flag_abi_compat_version
	handling.

From-SVN: r261571
2018-06-13 17:05:34 -04:00
Matthew Fortune 30c0ee9ca6 MIPS: Add support for P6600.
gcc/ChangeLog:

2018-06-13  Matthew Fortune  <matthew.fortune@mips.com>
            Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/mips-cpus.def: Define P6600.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (mips_ucbranch_type): New enum.
	(mips_rtx_cost_data): Add support for P6600.
	(mips_issue_rate): Likewise.
	(mips_multipass_dfa_lookahead): Likewise.
	(mips_avoid_hazard): Likewise.
	(mips_reorg_process_insns): Likewise.
	(mips_classify_branch_p6600): New function.
	* config/mips/mips.h (TUNE_P6600): New define.
	(MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600.
	(ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600.
	* config/mips/mips.md: Include p6600.md.
	(processor): Add p6600.
	* config/mips/p6600.md: New file.
	* doc/invoke.texi: Add p6600 to supported architectures.

Co-Authored-By: Prachi Godbole <prachi.godbole@imgtec.com>

From-SVN: r261570
2018-06-13 20:40:28 +00:00
Ian Lance Taylor 1df5fce42a compiler: avoid introducing redundant write barriers
The traversal used by the write barrier insertion phase can sometimes
    wind up visiting new statements inserted during the traversal, which
    then results in duplicate / redundant write barrier guards. Example
    program to reproduce:
    
      package small
      type S struct {
            N *S
            K int
      }
      var G *S = &S{N: nil, K: 101}
    
    This patch changes the traversal code to keep track of statements
    already added and avoid processing them again later in the traversal.
    
    Fixes golang/go#25867
    
    Reviewed-on: https://go-review.googlesource.com/118637

From-SVN: r261568
2018-06-13 20:32:10 +00:00
Martin Sebor a7bf6c0889 PR tree-optimization/86114 - ICE in gimple_fold_builtin_strlen with an invalid call to strnlen
gcc/testsuite/ChangeLog:

	PR tree-optimization/86114
	* gcc.dg/pr86114.c: New test.

gcc/ChangeLog:

	PR tree-optimization/86114
	* gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
	of integer types.
	* tree-ssa-strlen.c (maybe_set_strlen_range): Same.

From-SVN: r261567
2018-06-13 14:29:04 -06:00
François Dumont eb04ee1d0f 2018-06-13 François Dumont <fdumont@gcc.gnu.org>
* include/debug/helper_functions.h
	(__gnu_debug::_Safe_iterator<>): Add declaration.
	(__can_advance(_Ite, _Size)): New.
	(__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
	* include/debug/functions.h
	(__gnu_debug::_Safe_iterator<>): Remove declaration.
	* include/debug/stl_iterator.h
	(__can_advance(const _Safe_iterator<>&)): New definition.
	* include/debug/stl_iterator.h
	(__can_advance(const std::reverse_iterator<>&, _Size)): New.
	(__can_advance(const std::move_iterator<>&, _Size)): New.
	* include/debug/macros.h (__glibcxx_check_can_increment): New.
	* include/debug/debug.h (__glibcxx_requires_can_increment): New.
	* include/bits/stl_algobase.h (fill_n): Use latter.
	* testsuite/25_algorithms/fill_n/2.cc: New.
	* testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
	* testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.

From-SVN: r261566
2018-06-13 20:27:26 +00:00
Denis Khalikov 3b07c0e5e4 re PR sanitizer/86090 ([ASAN] ASAN does not properly configure libbacktrace.)
2018-06-13  Denis Khalikov  <d.khalikov@partner.samsung.com>

libsanitizer/

	PR sanitizer/86090
	* configure.ac: Check for lstat and readlink.
	* configure, config.h.in: Rebuild.

From-SVN: r261564
2018-06-13 22:51:42 +03:00
Jason Merrill 34a7a2308d PR c++/86094 - wrong code with defaulted move ctor.
gcc/c-family/
	* c-opts.c (c_common_post_options): Bump the current ABI version to
	13.  Set warn_abi_version and flag_abi_compat_version to the current
	version rather than 0.  Fix defaulting flag_abi_compat_version from
	warn_abi_version.
gcc/cp/
	* class.c (classtype_has_non_deleted_move_ctor): New.
	* tree.c (maybe_warn_parm_abi, type_has_nontrivial_copy_init):
	Handle v12 breakage.

From-SVN: r261562
2018-06-13 15:39:36 -04:00
Steven G. Kargl 010b9a3ec0 re PR fortran/86110 (ICE in gfc_resolve_character_array_constructor, at fortran/array.c:2044)
2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86110
	* array.c (gfc_resolve_character_array_constructor): Avoid NULL 
	pointer dereference.

2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86110
	* gfortran.dg/pr86110.f90: New test.

From-SVN: r261561
2018-06-13 19:37:50 +00:00
Ian Lance Taylor de001ec777 compiler: include global variable preinit blocks in ast dumps
Dump out the blocks corresponding to variable pre-inits when
    -fgo-dump-ast is in effect. Each preinit block is prefixed with a
    comment indicating the variable it is initializing.
    
    Reviewed-on: https://go-review.googlesource.com/118636

From-SVN: r261555
2018-06-13 17:24:45 +00:00
Jonathan Wakely 1cc56f079e PR libstdc++/86127 avoid unnecessary allocator conversions
There is no need to use an allocator of the correct value_type when
calling allocator_traits::construct and allocator_traits::destroy. The
existing node allocator can be used, instead of constructing a new
allocator object every time.

There's also no benefit to using __gnu_cxx::__alloc_traits instead of
std::allocator_traits to get the pointer and const_pointer types.
std::forward_list is only available for C++11 and later, when
std::allocator_traits is available too.

	PR libstdc++/86127
	* include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
	unused typedef.
	(_Fwd_list_base::_Node_alloc_traits): Use allocator_traits instead of
	__gnu_cxx::__alloc_traits.
	(_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
	Use node allocator to create and destroy elements.
	(forward_list::_Tp_alloc_type): Remove unused typedef.
	(forward_list::_Alloc_traits): Use allocator_traits instead of
	__gnu_cxx::__alloc_traits.

From-SVN: r261554
2018-06-13 16:14:48 +01:00
Richard Biener 7b76867b21 tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): Properly set vector type of the intermediate stmt.
2018-06-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern):
	Properly set vector type of the intermediate stmt.
	* tree-vect-stmts.c (vectorizable_operation): The destination
	var always has vectype_out type.

From-SVN: r261553
2018-06-13 15:03:50 +00:00
Jeff Law 92877928f0 rl78.c (move_elim_pass): Use TDF_NONE rather than integer 0 for argument to print_rtl_with_bb.
* config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than
        integer 0 for argument to print_rtl_with_bb.
        (rl78_reorg): Likewise.

From-SVN: r261552
2018-06-13 08:45:52 -06:00
Cesar Philippidis 0be606d3ce re PR fortran/85703 ([openacc] ICE in resolve_fntype, at fortran/resolve.c:16313)
PR fortran/85703

	gcc/fortran/
	* parse.c (decode_oacc_directive): Set gfc_matching_function
	to false.
	(decode_omp_directive): Likewise.

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

From-SVN: r261551
2018-06-13 07:31:17 -07:00
Cesar Philippidis adc41ebeab re PR fortran/85702 ([openacc] ICE in gfc_format_decoder, at fortran/error.c:943)
PR fortran/85702

	gcc/fortran/
	* openmp.c (gfc_match_oacc_wait): Use %C to report error location.

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

From-SVN: r261550
2018-06-13 07:29:04 -07:00
Ian Lance Taylor c949264918 libgo: update to Go 1.10.3 release
Reviewed-on: https://go-review.googlesource.com/118495

From-SVN: r261549
2018-06-13 13:51:23 +00:00
David Malcolm 4dea3bff79 emit-rtl.c: more typesafety
This patch converts various rtx to rtx_insn * (or rtx_code_label *).
It also convert the various "_loc" params from int to location_t

gcc/ChangeLog:
	* config/arc/arc.c (hwloop_optimize): Strengthen local "end_label"
	from rtx to rtx_insn *.
	* config/bfin/bfin.c (hwloop_optimize): Likewise for local
	"label".
	(add_sched_insns_for_speculation): Likewise for local "target",
	converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
	* config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels"
	from rtx_insn ** to rtx_code_label **.
	(reorg_emit_nops): Likewise.
	(c6x_reorg): Likewise for local "call_labels".
	* config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from
	rtx to rtx_insn *.
	* config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to
	rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to
	the loops over LABEL_REFS.
	(fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of
	braf_label.
	(barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
	(get_dest_uid): Strengthen param "label" from rtx to rtx_insn *.
	(split_branches): Strengthen local "olabel" from rtx to
	rtx_insn *, adding a safe_as_a cast.
	* emit-rtl.c (next_real_insn): Strengthen param from "rtx"
	to "rtx_insn *".
	(add_insn_after): Likewise for first two params.
	(add_insn_before): Likewise.
	(remove_insn): Likewise for param.
	(emit_pattern_before_noloc): Likewise for second and third params.
	(emit_jump_insn_before_noloc): Convert NULL_RTX to NULL.
	(emit_call_insn_before_noloc): Likewise.
	(emit_debug_insn_before_noloc): Strengthen "before" param from "rtx"
	to "rtx_insn *".
	(emit_barrier_before): Likewise.
	(emit_label_before): Strengthen "label" param from "rtx" to
	"rtx_code_label *".  Strengthen "before" param from "rtx" to
	"rtx_insn *".
	(emit_insn_after_1): Strengthen "after" param from "rtx" to
	"rtx_insn *".
	(emit_pattern_after_noloc): Likewise.
	(emit_insn_after_noloc): Likewise.
	(emit_jump_insn_after_noloc): Likewise.
	(emit_call_insn_after_noloc): Likewise.
	(emit_debug_insn_after_noloc): Likewise.
	(emit_barrier_after): Likewise.
	(emit_label_after): Likewise for both params.
	(emit_pattern_after_setloc): Likewise for "after" param.  Convert
	"loc" param from "int" to "location_t".
	(emit_insn_after_setloc): Likewise.
	(emit_jump_insn_after_setloc): Likewise.
	(emit_call_insn_after_setloc): Likewise.
	(emit_debug_insn_after_setloc): Likewise.
	(emit_pattern_before_setloc): Likewise for "before" param.  Convert
	"loc" param from "int" to "location_t".
	(emit_pattern_before): Convert NULL_RTX to NULL.
	(emit_insn_before_setloc): Convert "loc" param from "int" to
	"location_t".
	(emit_jump_insn_before_setloc): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_debug_insn_before_setloc): Strengthen "before" param from rtx to
	rtx_insn *.  Convert "loc" param from "int" to "location_t".
	* rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc,
	emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
	Convert 3rd param from "int" to "location_t".
	(emit_barrier_before, emit_barrier_after, next_real_insn):
	Strengthen param from rtx to rtx_insn *.
	(emit_label_before): Strengthen 1st param from "rtx" to
	"rtx_code_label *".  Strengthen 2nd param from "rtx" to
	"rtx_insn *".
	(emit_insn_after_noloc, emit_jump_insn_after_noloc,
	emit_call_insn_after_noloc, emit_debug_insn_after_noloc):
	Strengthen 2nd param from "rtx" to "rtx_insn *".
	(emit_insn_after_setloc, emit_jump_insn_after_setloc)
	emit_call_insn_after_setloc, emit_debug_insn_after_setloc):
	Likewise. Convert 3rd param from "int" to "location_t".
	(emit_label_after): Strengthen 1st param from "rtx" to
	"rtx_code_label *".
	(next_real_insn, remove_insn): Strengthen param from "rtx" to
	"rtx_insn *".
	(add_insn_before, add_insn_after): Strengthen 1st and 2nd params
	from "rtx" to "rtx_insn *".

From-SVN: r261547
2018-06-13 13:43:32 +00:00
Jan Hubicka b4da704c6e cgraph.c (cgraph_node::get_untransformed_body): Dump function bodies streamed in with -Q.
* cgraph.c (cgraph_node::get_untransformed_body): Dump function
	bodies streamed in with -Q.
	* dumpfile.c (dump_files): Add lto-stream-out dump file.
	* dumpfile.h (tree_dump_index): Add lto_stream_out.
	* gimple-streamer-out.c: Include gimple-pretty-print.h
	(output_bb): Dump stmts streamed.
	* lto-section-out.c: Include print-tree.h
	(lto_begin_section): Dump sections created.
	(lto_output_decl_index): Dump decl encoded.
	* lto-streamer-out.c: Include print-tree.h
	(create_output_block): Dump output block created.
	(DFS::DFS_write_tree_body): Dump DFS SCCs streamed.
	(output_function): Dump function output.
	(output_constructor): Dump constructor streamed.
	(write_global_stream): Output indexes encoded.
	(produce_asm_for_decls): Dump streams encoded.
	* lto-streamer.c (streamer_dump_file): New global var.
	* lto-streamer.h (streamer_dump_file): Declare.
	* passes.c (ipa_write_summaries): Initialize streamer dump.
	* varpool.c (varpool_node::get_constructor): Dump constructors streamed
	in.

From-SVN: r261546
2018-06-13 12:52:29 +00:00
Eric Botcazou 70e18df76e re PR target/86048 (.seh_savexmm offset is negative error when compiling libpng)
PR target/86048
	* config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
	offsets for register save directives.  Emit a second batch of save
	directives, if need be, when the function accesses prior frames.

From-SVN: r261544
2018-06-13 11:20:23 +00:00
Claudiu Zissulescu 8c191c89cf [ARC] Update fma expansions.
Accept at most a single constant for fma patterns.

gcc/
2018-03-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/fpu.md (fmasf4): Force operand to register.
	(fnmasf4): Likewise.

gcc/testsuite
2018-03-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/fma-1.c: New test.

From-SVN: r261543
2018-06-13 10:54:09 +02:00
Claudiu Zissulescu 16493b5771 [ARC] Reimplement return padding operation for ARC700.
For ARC700, adding padding if necessary to avoid a mispredict.  A
return could happen immediately after the function start.  A
call/return and return/return must be 6 bytes apart to avoid
mispredict.

The old implementation was doing this operation very late in the
compilation process, and the additional nop instructions and/or
forcing some other instruction to take their long form was not taken
into account when generating brcc instructions. Thus, wrong code could
be generated.

gcc/
2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_pad_return): Remove.
	* config/arc/arc.c (machine_function): Remove force_short_suffix
	and size_reason.
	(arc_print_operand): Adjust printing of '&'.
	(arc_verify_short): Remove conditional printing of short suffix.
	(arc_final_prescan_insn): Remove reference to size_reason.
	(pad_return): New function.
	(arc_reorg): Call pad_return.
	(arc_pad_return): Remove.
	(arc_init_machine_status): Remove reference to force_short_suffix.
	* config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
	(attr length): When attribute iscompact is true force to 2
	regardless; in the case of maybe check if we want to force the
	instruction to have 4 bytes length.
	(nopv): Change it to generate 4 byte long nop as well.
	(blockage): New pattern.
	(simple_return): Remove call to arc_pad_return.
	(p_return_i): Likewise.

gcc/testsuite/
2017-03-24  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/pr9001107555.c: New file.

From-SVN: r261542
2018-06-13 10:43:56 +02:00
Claudiu Zissulescu 60a3f65906 [ARC] Define LINK_GCC_C_SEQUENCE_SPEC.
If no specs file is provided, default to nosys library.

gcc/
2017-05-03  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

From-SVN: r261541
2018-06-13 10:43:42 +02:00
Claudiu Zissulescu 376c55a077 [ARC] SYNC instruction is valid on all ARC cores.
gcc/
2017-05-03  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/builtins.def (SYNC): SYNC instruction is valid on all
	ARC cores.

From-SVN: r261540
2018-06-13 10:43:19 +02:00
Claudiu Zissulescu adea502310 [ARC] Allow EX instruction unconditionally
gcc/
2017-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (atomic_exchangesi): EX instruction is default
	for ARC700 and ARCv2.

From-SVN: r261539
2018-06-13 10:42:57 +02:00
Chenghua Xu 7a723d822a re PR tree-optimization/86076 (ICE: verify_gimple failed (error: location references block not in block tree))
2018-06-13  Chenghua Xu <paul.hua.gm@gmail.com>

	PR target/86076
	* config/mips/loongson.md (vec_setv4hi): Gen_lowpart for
	operands[2] instead of operands[1].

From-SVN: r261538
2018-06-13 06:50:12 +00:00
François Dumont cde650fe2b debug.h (__glibcxx_requires_can_increment_range): New.
2018-06-13  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
	(__glibcxx_requires_can_decrement_range): New.

From-SVN: r261537
2018-06-13 06:10:03 +00:00
Jason Merrill 79a9afa50f PR c++/86098 - ICE with template placeholder for TTP.
* typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check
	CLASS_PLACEHOLDER_TEMPLATE.

From-SVN: r261536
2018-06-12 23:33:06 -04:00