1. 15 Jun, 2018 5 commits
  2. 14 Jun, 2018 19 commits
    • re PR c++/86063 (g++ ICE at tree check: expected tree_list, have… · cf4763bd
      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
      Marek Polacek committed
    • LWG 3075 basic_string needs deduction guides from basic_string_view · 53e926c8
      	* 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
      Jonathan Wakely committed
    • LWG 3074 make scalar types non-deduced in valarray non-member functions · db5ab3aa
      	* 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
      Jonathan Wakely committed
    • re PR target/86048 (.seh_savexmm offset is negative error when compiling libpng) · bf759537
      	PR target/86048
      	* gcc.target/i386/pr86048.c: Require sse2 effective target.  Add
      	-msse2 to dg-options.
      
      From-SVN: r261608
      Jakub Jelinek committed
    • re PR middle-end/86122 (ICE in useless_type_conversion_p, at gimple-expr.c:87) · 48fcd201
      	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
      Jakub Jelinek committed
    • P0624R2 - Default constructible and assignable stateless lambdas · bc04d1ff
      	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
      Jakub Jelinek committed
    • Partially revert move of std::tuple_element_t to <tuple> · 2d26d4ce
      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
      Jonathan Wakely committed
    • decl.c (duplicate_decls): Use DECL_SOURCE_LOCATION in OPT_Wshadow warning_at. · d4d44753
      /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
      Paolo Carlini committed
    • P0935R0 Eradicating unnecessarily explicit default constructors · e9ecac30
      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
      Jonathan Wakely committed
    • Define __cpp_lib_tuple_element_t in <tuple> not <utility> · 74755c6a
      	* 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
      Jonathan Wakely committed
    • re PR target/85945 (ICE in resolve_subreg_use, at lower-subreg.c:751) · 75b5bc01
      	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
      Jakub Jelinek committed
    • P0935R0 Eradicating unnecessarily explicit default constructors · 977ac63e
      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
      Jonathan Wakely committed
    • Fix errors in libstdc++-v3/ChangeLog entries. · 8513bec3
      From-SVN: r261589
      Jonathan Wakely committed
    • re PR target/86139 (ICE in in store_constructor, at expr.c:6849 on arm-linux-gnueabihf) · bb4291d9
      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
      Richard Biener committed
    • re PR ipa/86124 (ICE in create_variable_info_for, at tree-ssa-structalias.c:6123) · a16fa075
      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
      Richard Biener committed
    • PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize · 4c1d999a
      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
      Daniel Trebbien committed
    • RTEMS: Prefer int for int32_t · c7a42ade
      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
      Sebastian Huber committed
    • Daily bump. · 6c07e439
      From-SVN: r261580
      GCC Administrator committed
    • PR c++/86099 - ICE with trivial copy and non-trivial default ctor. · 4fdda3ce
      	* constexpr.c (instantiate_cx_fn_r): Don't synthesize trivial
      	constructors.
      
      From-SVN: r261576
      Jason Merrill committed
  3. 13 Jun, 2018 16 commits
    • c-opts.c (c_common_post_options): Warn about useless -Wabi. · 5cef3733
      	* 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
      Jason Merrill committed
    • MIPS: Add support for P6600. · 30c0ee9c
      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
      Matthew Fortune committed
    • compiler: avoid introducing redundant write barriers · 1df5fce4
          
          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
      Ian Lance Taylor committed
    • PR tree-optimization/86114 - ICE in gimple_fold_builtin_strlen with an invalid call to strnlen · a7bf6c08
      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
      Martin Sebor committed
    • 2018-06-13 François Dumont <fdumont@gcc.gnu.org> · eb04ee1d
      	* 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
      François Dumont committed
    • re PR sanitizer/86090 ([ASAN] ASAN does not properly configure libbacktrace.) · 3b07c0e5
      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
      Denis Khalikov committed
    • PR c++/86094 - wrong code with defaulted move ctor. · 34a7a230
      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
      Jason Merrill committed
    • re PR fortran/86110 (ICE in gfc_resolve_character_array_constructor, at fortran/array.c:2044) · 010b9a3e
      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
      Steven G. Kargl committed
    • compiler: include global variable preinit blocks in ast dumps · de001ec7
          
          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
      Ian Lance Taylor committed
    • PR libstdc++/86127 avoid unnecessary allocator conversions · 1cc56f07
      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
      Jonathan Wakely committed
    • tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): Properly set… · 7b76867b
      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
      Richard Biener committed
    • rl78.c (move_elim_pass): Use TDF_NONE rather than integer 0 for argument to print_rtl_with_bb. · 92877928
              * 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
      Jeff Law committed
    • re PR fortran/85703 ([openacc] ICE in resolve_fntype, at fortran/resolve.c:16313) · 0be606d3
      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
      Cesar Philippidis committed
    • re PR fortran/85702 ([openacc] ICE in gfc_format_decoder, at fortran/error.c:943) · adc41ebe
      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
      Cesar Philippidis committed
    • libgo: update to Go 1.10.3 release · c9492649
          
          Reviewed-on: https://go-review.googlesource.com/118495
      
      From-SVN: r261549
      Ian Lance Taylor committed
    • emit-rtl.c: more typesafety · 4dea3bff
      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
      David Malcolm committed