1. 03 Sep, 2018 16 commits
    • tree-loop-distribution: convert to gcc_stablesort · d2391983
      	* tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style
      	tri-state comparator.
      	(fuse_memset_builtins): Change std::stable_sort to gcc_stablesort.
      
      From-SVN: r264067
      Alexander Monakov committed
    • introduce gcc_stablesort · a6405b11
      	* sort.cc (struct sort_ctx): New field 'nlim'.  Use it...
      	(mergesort): ... here as maximum count for using netsort.
      	(gcc_qsort): Set nlim to 3 if stable sort is requested.
      	(gcc_stablesort): New.
      	* system.h (gcc_stablesort): Declare.
      
      From-SVN: r264066
      Alexander Monakov committed
    • qsort_chk: call from gcc_qsort instead of wrapping it · 71acd8b9
      	* sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk.
      	* system.h (qsort): Always redirect to gcc_qsort.  Update comment.
      	* vec.c (qsort_chk): Do not call gcc_qsort.  Update comment.
      
      From-SVN: r264065
      Alexander Monakov committed
    • rs6000: lxsdux / stxsdux do not exist · 158985b1
      Our md files refer to {l,st}xsd%U<n>x, but no {l,st}xsdux insns exist.
      This patch removes the update forms.  All these use  constraint "Z"
      which does not allow update form, so there is no practical difference.
      
      
      	* config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the
      	lxsdx and stxsdx alternatives.
      	(*mov<mode>_hardfloat64): Ditto.
      	* config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto.
      
      From-SVN: r264064
      Segher Boessenkool committed
    • PR libstdc++/78179 run long double tests separately · d4baef5b
      Split the long double testing into a separate file, so that we can XFAIL
      targets where the long double precision doesn't meet the expected
      tolerances. The float and double tests are still expefted to PASS for
      all targets.
      
      	PR libstdc++/78179
      	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test
      	that runs the long double part of hypot.cc.
      	* testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double
      	tests unless TEST_HYPOT_LONG_DOUBLE is defined.
      
      From-SVN: r264063
      Jonathan Wakely committed
    • re PR tree-optimization/87200 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:3629) · 339e6723
      2018-09-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87200
      	* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a
      	simplify result.
      
      	* gcc.dg/torture/pr87200.c: New testcase.
      
      From-SVN: r264062
      Richard Biener committed
    • Fix vector::_Temporary_value::_M_ptr · 7efe0dd0
      The pointer argument to allocator_traits::construct and
      allocator_traits::destroy should be a raw pointer, not the allocator's
      pointer type. _Temporary_value::_M_ptr was returning the wrong type.
      
      	* include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr):
      	Return raw pointer not allocator's pointer type.
      	(vector::_Temporary_value::_M_val): Use _M_ptr.
      
      From-SVN: r264061
      Jonathan Wakely committed
    • PR libstdc++/87194 fix range insertion into maps and sets · 83a840a9
      Since C++11 range insertion and construction of maps and sets from a
      pair of iterators only requires that the iterator's value_type is
      convertible to the container's value_type (previously it had to be the
      same).
      
      This fixes the implementation to meet that relaxed requirement, by
      defining a pair of overloads that either insert or emplace, depending on
      the iterator's value_type. Instead of adding yet another overload of
      _M_insert_unique and _M_insert_equal, the overloads taking iterators are
      renamed to _M_insert_range_unique and _M_insert_range_equal.
      
      	PR libstdc++/87194
      	* include/bits/stl_map.h
      	(map::map(initializer_list<value_type>, const Compare&, const Alloc&))
      	(map::map(initializer_list<value_type>, const Alloc&))
      	(map::map(InputIterator, InputIterator, const Alloc&))
      	(map::map(InputIterator, InputIterator))
      	(map::map(InputIterator, InputIterator, const Compare&, const Alloc&))
      	(map::insert(InputIterator, InputIterator)):
      	Call _M_insert_range_unique instead of _M_insert_unique.
      	* include/bits/stl_multimap.h
      	(multimap::multimap(initializer_list<value_type>, const C&, const A&))
      	(multimap::multimap(initializer_list<value_type>, const A&))
      	(multimap::multimap(InputIterator, InputIterator, const A&))
      	(multimap::multimap(InputIterator, InputIterator))
      	(multimap::multimap(InputIterator, InputIterator, const C&, const A&))
      	(multimap::insert(InputIterator, InputIterator)): Call
      	_M_insert_range_equal instead of _M_insert_equal.
      	* include/bits/stl_multiset.h
      	(multiset::multiset(InputIterator, InputIterator))
      	(multiset::multiset(InputIterator, InputIterator, const C&, const A&))
      	(multiset::multiset(initializer_list<value_type>, const C&, const A&))
      	(multiset::multiset(initializer_list<value_type>, const A&))
      	(multiset::multiset(InputIterator, InputIterator, const A&))
      	(multiset::insert(InputIterator, InputIterator)): Call
      	_M_insert_range_equal instead of _M_insert_equal.
      	* include/bits/stl_set.h
      	(set::set(InputIterator, InputIterator))
      	(set::set(InputIterator, InputIterator, const Compare&, const Alloc&))
      	(set::set(initializer_list<value_type>, const Compare&, const Alloc&))
      	(set::set(initializer_list<value_type>, const Alloc&))
      	(set::set(InputIterator, InputIterator, const Alloc&))
      	(set::insert(InputIterator, InputIterator)):
      	Call _M_insert_range_unique instead of _M_insert_unique.
      	* include/bits/stl_tree.h
      	[__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias
      	template for SFINAE constraints.
      	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of
      	constrained overloads that either insert or emplace, depending on
      	iterator's value_type.
      	[__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise.
      	[__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique)
      	(_Rb_tree::_M_insert_range_equal): New functions replacing range
      	versions of _M_insert_unique and _M_insert_equal.
      	(_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator))
      	(_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove.
      	* testsuite/23_containers/map/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test.
      	* testsuite/23_containers/set/modifiers/insert/87194.cc: New test.
      
      From-SVN: r264060
      Jonathan Wakely committed
    • PR libstdc++/78595 implement insertion into maps in terms of emplace · bc62e155
      C++14 simplified the specification of the generic insert function
      templates to be equivalent to calling emplace (or emplace_hint).
      Defining them in terms of emplace takes care of the problems described
      in PR 78595, ensuring a single conversion to value_type is done at the
      right time.
      
      	PR libstdc++/78595
      	* include/bits/stl_map.h (map::insert(_Pair&&))
      	(map::insert(const_iterator, _Pair&&)): Do emplace instead of insert.
      	* include/bits/stl_multimap.h (multimap::insert(_Pair&&))
      	(multimap::insert(const_iterator, _Pair&&)): Likewise.
      	* include/bits/unordered_map.h (unordered_map::insert(_Pair&&))
      	(unordered_map::insert(const_iterator, _Pair&&))
      	(unordered_multimap::insert(_Pair&&))
      	(unordered_multimap::insert(const_iterator, _Pair&&)): Likewise.
      	* testsuite/23_containers/map/modifiers/insert/78595.cc: New test.
      	* testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test.
      	* testsuite/23_containers/unordered_map/modifiers/78595.cc: New test.
      	* testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New
      	test.
      
      From-SVN: r264059
      Jonathan Wakely committed
    • Fix thinko (PR tree-optimization/87201). · a6b75a69
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/87201
      	* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
      	Fix parenthesis in an expression.
      
      From-SVN: r264058
      Martin Liska committed
    • re PR tree-optimization/87197 (ICE in is_gimple_reg_type at gimple-expr.h:75 since r264021) · 70fc129d
      2018-09-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87197
      	* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def
      	visited.  CSE the VN_INFO hashtable lookup.
      
      	* gcc.dg/torture/pr87197.c: New testcase.
      
      	PR tree-optimization/87169
      	* tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not
      	iterating make sure there's no extra backedges from irreducible
      	regions feeding the header.  Mark the destination block
      	executable.
      
      	* gcc.dg/torture/pr87169.c: New testcase.
      
      From-SVN: r264057
      Richard Biener committed
    • fixincludes: vxworks: remove unnecessary parentheses in ioctl wrapper macro · c7a8f93d
      The rationale for the fixinclude ioctl macro wrapper is, as far as I can
      tell (https://gcc.gnu.org/ml/gcc-patches/2012-09/msg01619.html)
      
        Fix 2: Add hack for ioctl() on VxWorks.
      
        ioctl() is supposed to be variadic, but VxWorks only has a three
        argument version with the third argument of type int.  This messes up
        when the third argument is not implicitly convertible to int.  This
        adds a macro which wraps around ioctl() and explicitly casts the third
        argument to an int.  This way, the most common use case of ioctl (with
        a const char * for the third argument) will compile in C++, where
        pointers must be explicitly casted to int.
      
      However, we have existing C++ code that calls the ioctl function via
      
        ::ioctl(foo, bar, baz)
      
      and obviously this breaks when it gets expanded to
      
        ::(ioctl)(foo, bar, (int)(baz))
      
      Since the GNU C preprocessor already prevents recursive expansion of
      function-like macros, the parentheses around ioctl are unnecessary.
      
      Incidentally, there is also a macro sioIoctl() in the vxworks sioLib.h
      header that expands to
      
        ((pSioChan)->pDrvFuncs->ioctl (pSioChan, cmd, arg))
      
      which also breaks when that gets further expanded to
      
        ((pSioChan)->pDrvFuncs->(ioctl) (pSioChan, cmd, (int)(arg)))
      
      This patch partly fixes that issue as well, but the third argument to
      the pDrvFuncs->ioctl method should be void*, so the cast to (int) is
      slightly annoying. Internally, we've simply patched the sioIoctl macro:
      
        (((pSioChan)->pDrvFuncs->ioctl) (pSioChan, cmd, arg))
      
      From-SVN: r264056
      Rasmus Villemoes committed
    • Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193). · c98c2430
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
              PR driver/83193
      	* common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES.
      	* common/common-targhooks.c (default_get_valid_option_values):
              New function.
      	* common/common-targhooks.h (default_get_valid_option_values):
              Likewise.
      	* common/config/i386/i386-common.c: Move processor_target_table
              from i386.c.
      	(ix86_get_valid_option_values): New function.
      	(TARGET_GET_VALID_OPTION_VALUES): New macro.
      	* config/i386/i386.c (struct ptt): Move to i386-common.c.
      	(PTA_*): Move all defined masks into i386-common.c.
      	(ix86_function_specific_restore): Use new processor_cost_table.
      	* config/i386/i386.h (struct ptt): Moved from i386.c.
      	(struct pta): Likewise.
      	* doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES.
      	* doc/tm.texi.in: Likewise.
      	* opt-suggestions.c (option_proposer::suggest_option):
              Pass prefix to build_option_suggestions.
      	(option_proposer::get_completions): Likewise.
      	(option_proposer::build_option_suggestions): Use the new target
              hook.
      	* opts.c (struct option_help_tuple): New struct.
      	(print_filtered_help): Use the new target hook.
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
              PR driver/83193
      	* gcc.dg/completion-4.c: New test.
      
      From-SVN: r264052
      Martin Liska committed
    • re PR c++/84980 ([concepts] ICE with missing typename in concept) · d1dfeff0
      /cp
      2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84980
      	* constraint.cc (finish_shorthand_constraint): Early return if the
      	constraint is erroneous.
      
      /testsuite
      2018-09-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84980
      	* g++.dg/concepts/pr84980.C: New.
      
      From-SVN: r264051
      Paolo Carlini committed
    • Make __builtin_expect effective in switch statements (PR middle-end/PR59521). · add4cbca
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
        PR middle-end/59521
      	* predict.c (set_even_probabilities): Add likely_edges
              argument and handle cases where we have precisely one
              likely edge.
      	(combine_predictions_for_bb): Catch also likely_edges.
      	(tree_predict_by_opcode): Handle gswitch statements.
      	* tree-cfg.h (find_case_label_for_value): New declaration.
      	(find_taken_edge_switch_expr): Likewise.
      	* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
              Find pivot in decision tree based on probabily, not by number of
              nodes.
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
        PR middle-end/59521
      	* c-c++-common/pr59521-1.c: New test.
      	* c-c++-common/pr59521-2.c: New test.
      	* gcc.dg/tree-prof/pr59521-3.c: New test.
      
      From-SVN: r264050
      Martin Liska committed
    • Daily bump. · 106fd43f
      From-SVN: r264049
      GCC Administrator committed
  2. 02 Sep, 2018 5 commits
    • io.h: Change declaration of vlist type to gfc_full_array_i4 to eliminate warning for... · 636b78f0
      2018-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	* io/io.h: Change declaration of vlist type to
      	gfc_full_array_i4 to eliminate warning for mismatched type.
      	* io/format.c ((parse_format_list): Use gfc_full_array_i4.
      	* io/io.h: Use gfc_full_array_i4.
      
      From-SVN: r264043
      Jerry DeLisle committed
    • c-common.c (braced_list_to_string): Remove eval parameter. · b5764229
      	* c-common.c (braced_list_to_string): Remove eval parameter.
      	Add some more checks.  Always create zero-terminated STRING_CST.
      	* c-common.h (braced_list_to_string): Adjust prototype.
      
      	* c-decl.c (finish_decl): Call braced_list_to_string here ...
      	* c-parser.c (c_parser_declaration_or_fndef): ... instead of here.
      
      	* decl.c (eval_check_narrowing): Remove.
      	(check_initializer): Move call to braced_list_to_string from here ...
      	* typeck2.c (store_init_value): ... to here.
      	(digest_init_r): Remove handing of signed/unsigned char strings.
      
      	* c-c++-common/array-init.c: New test.
      	* g++.dg/init/string2.C: Remove xfail.
      
      From-SVN: r264042
      Bernd Edlinger committed
    • 2018-09-02 François Dumont <fdumont@gcc.gnu.org> · b101633f
      	* include/debug/safe_iterator.h
      	(_Safe_iterator<_It, _Seq, _Cat>::_Self): New.
      	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self):
      	New.
      	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
      	::_OtherSelf): New.
      	(_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS)
      	(_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS)
      	(_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros.
      	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
      	::operator+(difference_type)): Use latters, inline as friend.
      	(_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>
      	::operator-(difference_type)): Likewise.
      	(operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)):
      	Likewise.
      	(operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
      	Likewise.
      	(operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
      	(operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
      	Likewise.
      	(operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
      	(operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)):
      	Likewise.
      	(operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise.
      	(operator+(difference_type, const _Safe_iterator<>&)): Likewise.
      	(operator-(const _Safe_iterator<>&, difference_type)): Likewise.
      	* include/debug/safe_iterator.tcc
      	(_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by
      	copy.
      	* include/debug/safe_local_iterator.h
      	(_Safe_local_iterator<_It, _Seq>::_Self): New.
      	(_Safe_local_iterator<_It, _Seq>::_OtherSelf): New.
      	(_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro.
      	(operator==(const _Safe_local_iterator<>&,
      	const _Safe_local_iterator<>&)): Use latter, inline as friend.
      	(operator!=(const _Safe_local_iterator<>&,
      	const _Safe_local_iterator<>&)): Likewise.
      	* testsuite/util/testsuite_containers.h: Include utility.
      	(struct forward_members_unordered<_Tp, bool>): Remove 2nd template
      	parameter.
      	(forward_members_unordered<>::forward_members_unordered(value_type&)):
      	Add using namespace std::rel_ops.
      	Add iterator_concept_checks on local_iterator and const_local_iterator.
      	Add asserts on comparison between const_local_iterator and
      	local_iterator.
      	(struct forward_members_unordered<_Tp, false>): Remove partial
      	specialization.
      	* testsuite/23_containers/forward_list/types/1.cc: New.
      	* testsuite/23_containers/list/types/1.cc: New.
      
      From-SVN: r264039
      François Dumont committed
    • Daily bump. · 5db00d23
      From-SVN: r264037
      GCC Administrator committed
  3. 01 Sep, 2018 6 commits
  4. 31 Aug, 2018 13 commits
    • 10.cc: Add dg-require-fileio. · 6cec3c81
      2018-08-31  Sandra Loosemore  <sandra@codesourcery.com>
      
      	libstdc++-v3/
      
      	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc:
      	Add dg-require-fileio.
      	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
      	Likewise.
      	* testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
      	Likewise.
      	* testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc:
      	Likewise.
      	* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
      	* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
      	* testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise.
      	* testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
      	Likewise.
      	* testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
      	Likewise.
      	* testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
      	* testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise.
      	* testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise.
      	* testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
      	* testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise.
      	* testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise.
      	* testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise.
      	* testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise.
      	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
      	Likewise.
      	* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
      	* testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
      	* testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
      	* testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
      	* testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
      	* testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
      	* testsuite/experimental/string_view/inserters/wchar_t/2.cc:
      	Likewise.
      	* testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise.
      
      From-SVN: r264022
      Sandra Loosemore committed
    • re PR tree-optimization/87168 (ICE on valid code at -Os and above on… · d5481391
      re PR tree-optimization/87168 (ICE on valid code at -Os and above on x86_64-linux-gnu: verify_ssa failed)
      
      2018-08-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87168
      	* tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter.
      	(rpo_elim::eliminate_avail): When OP was not visited it must
      	be available.
      
      	* gcc.dg/torture/pr87168.c: New testcase.
      
      From-SVN: r264021
      Richard Biener committed
    • tree-vrp: add "const" qualifier to various value_range pointers · 01540df2
      gcc/ChangeLog:
      	* tree-vrp.c (copy_value_range): Convert param "from" from
      	"value_range *" to "const value_range *".
      	(range_is_null): Likewise for param "vr".
      	(range_int_cst_p): Likewise.
      	(range_int_cst_singleton_p): Likewise.
      	(symbolic_range_p): Likewise.
      	(value_ranges_intersect_p): Likewise for both params.
      	(value_range_nonnegative_p): Likewise for param "vr".
      	(value_range_constant_singleton): Likewise.
      	(vrp_set_zero_nonzero_bits): Likewise for param "ar".
      	(extract_range_into_wide_ints): Likewise for param "vr".
      	(extract_range_from_multiplicative_op): Likewise for params "vr0"
      	and "vr1".
      	(vrp_can_optimize_bit_op): Likewise.
      	(extract_range_from_binary_expr_1): Likewise for params "vr0_" and
      	"vr1_".
      	(extract_range_from_unary_expr): Likewise.
      	(debug_value_range): Likewise for param "vr".
      	(value_range::dump): Add "const" qualifier.
      	(vrp_prop::check_array_ref): Convert local "vr" from
      	"value_range *" to "const value_range *".
      	(vrp_prop::check_mem_ref): Likewise.
      	(vrp_prop::visit_stmt): Likewise for local "old_vr".
      	(vrp_intersect_ranges_1): Likewise for param "vr_1".
      	(vrp_intersect_ranges): Likewise.
      	(simplify_stmt_for_jump_threading): Likewise for local "vr".
      	(vrp_prop::vrp_finalize): Likewise.
      	* tree-vrp.h (value_range::dump): Add "const" qualifier.
      	(vrp_intersect_ranges): Add "const" qualifier to params as above.
      	(extract_range_from_unary_expr): Likewise.
      	(value_range_constant_singleton): Likewise.
      	(symbolic_range_p): Likewise.
      	(copy_value_range): Likewise.
      	(extract_range_from_binary_expr_1): Likewise.
      	(range_int_cst_p): Likewise.
      	(vrp_set_zero_nonzero_bits): Likewise.
      	(range_int_cst_singleton_p): Likewise.
      
      From-SVN: r264020
      David Malcolm committed
    • [AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64. · 66da5b53
      gcc/
      2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>
      
      	* config/aarch64/arm_neon.h (vabsd_s64): New.
      	(vnegd_s64): Likewise.
      
      gcc/testsuite/
      2018-08-31  Vlad Lazar  <vlad.lazar@arm.com>
      
      	* gcc.target/aarch64/scalar_intrinsics.c (test_vnegd_s64): New.
      	* gcc.target/aarch64/vneg_s.c (RUN_TEST_SCALAR): New.
      	(test_vnegd_s64): Likewise.
      	* gcc.target/aarch64/vnegd_64.c: New.
      	* gcc.target/aarch64/vabsd_64.c: New.
      	* gcc.tartget/aarch64/vabs_intrinsic_3.c: New
      
      From-SVN: r264019
      Vlad Lazar committed
    • [PR c++/87155] Anonymous namespace and · 7a4e1f7d
      https://gcc.gnu.org/ml/gcc-patches/2018-08/msg02031.html
      	PR c++/87155
      	PR c++/84707
      	cp/
      	* name-lookup.c (name_lookup::search_namespace): Don't look at
      	inlines when searching for NULL names.
      	testsuite/
      	* g++.dg/cpp0x/pr87155.C: New.
      	* g++.dg/cpp0x/inline-ns10.C: Adjust.
      
      From-SVN: r264016
      Nathan Sidwell committed
    • [PATCH] Fix thinko in estimate_local_effects in IPA-CP · 5036f628
      2018-08-31  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.
      
      From-SVN: r264015
      Martin Jambor committed
    • IPA ICF: make type cache a static field sem_item. · 6c72e55d
      2018-08-31  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf.c (sem_item::add_type): Use
      	sem_item::m_type_hash_cache.
      	* ipa-icf.h: Move the cache from sem_item_optimizer
      	to sem_item.
      
      From-SVN: r264014
      Martin Liska committed
    • [C++ PATCH] Remove K&R declaration hack. · 5020c88e
      https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01885.html
      	gcc/
      	* doc/extend.texi (Backwards Compatibility): Remove implicit
      	extern C leeway of () being (...).
      	gcc/cp/
      	* decl.c (decls_match): Remove SYSTEM_IMPLICIT_EXTERN_C matching
      	of return types and parms.
      	* parser.c (cp_parser_parameter_declaration_clause): Likewise,
      	'()' always means '(void)'.
      
      From-SVN: r264013
      Nathan Sidwell committed
    • [ipa-inline][obvious] Fix typos in comment · 553bb257
      	* ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.
      
      From-SVN: r264012
      Kyrylo Tkachov committed
    • rs6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684) · ec265125
      TARGET_FPRND should be on for everything ISA 2.04 and later, and
      TARGET_VSX implies ISA 2.06 or later; but it is possible to disable
      TARGET_FPRND (separately via -mno-fprnd, but also implicitly)
      currently, and then things fall down.  This patch makes things not
      fall down.
      
      
      	PR target/86684
      	PR target/87149
      	* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.
      
      From-SVN: r264011
      Segher Boessenkool committed
    • re PR middle-end/87138 (wrong code with TI multiplication with -O -march=k8… · 8e7dfe71
      re PR middle-end/87138 (wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw)
      
      	PR middle-end/87138
      	* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
      	gen_int_mode.  Formatting fixes.
      
      	* gcc.target/i386/avx512bw-pr87138.c: New test.
      
      From-SVN: r264009
      Jakub Jelinek committed
    • re PR fortran/86328 (Runtime segfault reading an allocatable class(*) object in… · 4e227341
      re PR fortran/86328 (Runtime segfault reading an allocatable class(*) object in allocate statements)
      
      2018-08-31  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/86328
      	PR fortran/86760
      	* trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
      	info->descriptor but pass it directly to gfc_build_array_ref.
      	(gfc_conv_array_ref): Likewise for se->expr.
      	* trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
      	obtain the span field directly from it.
      
      2018-08-31  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/86328
      	PR fortran/86760
      	* gfortran.dg/pr86328.f90 : New test.
      	in comment 12 of the PR.
      	* gfortran.dg/pr86760.f90 : New test.
      
      From-SVN: r264008
      Paul Thomas committed
    • Fix PR testsuite/86519 reference. · ee3ec8ac
      From-SVN: r264007
      Rainer Orth committed