Commit Graph

163836 Commits

Author SHA1 Message Date
Max Filippov
2a17b23970 gcc: xtensa: fix NAND code in xtensa_expand_atomic
NAND is ~(a1 & a2), but xtensa_expand_atomic does ~a1 & a2.
That fixes libatomic tests atomic-op-{1,2}.

gcc/
2018-09-04  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
	XOR operations in NAND case.

From-SVN: r264087
2018-09-04 17:43:20 +00:00
Rainer Orth
0bdb34b4c9 Don't xfail gcc.target/i386/addr-sel-1.c (PR target/86744)
PR target/86744
	* gcc.target/i386/addr-sel-1.c: Don't xfail "b\\+1" scan.

From-SVN: r264086
2018-09-04 15:00:41 +00:00
Aldy Hernandez
150655ee3f wide-int-range.cc (wide_int_range_convert): New.
* wide-int-range.cc (wide_int_range_convert): New.
	* wide-int-range.h (wide_int_range_convert): New.
	* tree-vrp.c (extract_range_from_unary_expr): Abstract wide int
	code into wide_int_range_convert.
	(extract_range_into_wide_ints): Do not munge anti range constants
	into the entire domain.  Just return the range back.

From-SVN: r264085
2018-09-04 14:52:41 +00:00
Martin Liska
8fcfe0474a genmatch: put reporting on a cold path
2018-09-04  Martin Liska  <mliska@suse.cz>

	* genmatch.c (output_line_directive): Add new argument
	fnargs.
	(dt_simplify::gen_1): Encapsulate dump within __builtin_expect.

From-SVN: r264084
2018-09-04 13:59:38 +00:00
Jonathan Wakely
b88ad32d4e Add whitespace before warning option added in previous commmit
* doc/invoke.texi (Option Summary): Add whitespace.

From-SVN: r264083
2018-09-04 14:34:47 +01:00
Jonathan Wakely
c91c2006ae Add -Waligned-new to Option Summary
* doc/invoke.texi (Option Summary): Add -Waligned-new.

From-SVN: r264080
2018-09-04 14:25:42 +01:00
Richard Biener
5bf734facc re PR tree-optimization/87211 (gcc ICE at O2: in set_ssa_val_to, at tree-ssa-sccvn.c:3628)
2018-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87211
	* tree-ssa-sccvn.c (visit_phi): When value-numbering to a
	backedge value we're supposed to treat as VARYING also number
	the PHI to VARYING in case it got a different value-number already.

	* gcc.dg/torture/pr87211.c: New testcase.

From-SVN: r264079
2018-09-04 12:04:42 +00:00
Aldy Hernandez
e20d979b7a tree-vrp.c (vrp_can_optimize_bit_op): Remove.
* tree-vrp.c (vrp_can_optimize_bit_op): Remove.
	(extract_range_from_binary_expr_1): Do not call
	vrp_can_optimize_bit_op.
	* wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make
	static.
	(wide_int_range_get_mask_and_bounds): New.
	(wide_int_range_optimize_bit_op): New.
	(wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op.
	(wide_int_range_bit_and): Same.
	* wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove.
	(wide_int_range_optimize_bit_op): New.
	(wide_int_range_get_mask_and_bounds): New.

From-SVN: r264078
2018-09-04 11:58:14 +00:00
Richard Biener
c2c51a3e35 re PR tree-optimization/87176 (wrong code at -Os and above on x86-64-linux-gnu)
2018-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87176
	* tree-ssa-sccvn.c (visit_phi): Remove redundant allsame
	variable.  When value-numbering a virtual PHI node make sure
	to not value-number to the backedge value.

	* gcc.dg/torture/pr87176.c: New testcase.
	* gcc.dg/torture/ssa-fre-1.c: Likewise.

From-SVN: r264077
2018-09-04 10:55:46 +00:00
Jonathan Wakely
727c8c82e1 Update C Extensions docs for support in latest C++
* doc/extend.texi (Long Long, Hex Floats): Document support for
	long long and hex floats in more recent versions of ISO C++.

From-SVN: r264076
2018-09-04 11:27:14 +01:00
Xuepeng Guo
3ff89a4eff * MAINTAINERS: Update my email address.
From-SVN: r264075
2018-09-04 03:57:03 +00:00
GCC Administrator
62364e0fcb Daily bump.
From-SVN: r264074
2018-09-04 00:16:57 +00:00
Jerry DeLisle
53dede15de simplify.c (gfc_simplify_modulo): Re-arrange code to test whether 'P' is zero and issue an error if it is.
2018-09-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* simplify.c (gfc_simplify_modulo): Re-arrange code to test whether
	'P' is zero and issue an error if it is.
	* gfortran.dg/modulo_check: New test.

From-SVN: r264070
2018-09-03 18:38:20 +00:00
Richard Biener
a5e8b06074 re PR tree-optimization/87177 (wrong code at -O2 and -O3 on x86-64-linux-gnu)
2018-09-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87177
	* tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep
	cleanup.

	* gcc.dg/torture/pr87177.c: New testcase.
	* gcc.dg/torture/pr87177-2.c: Likewise.

From-SVN: r264069
2018-09-03 17:41:05 +00:00
Alexander Monakov
64979e04af bb-reorder: convert to gcc_stablesort
* bb-reorder.c (edge_order): Convert to C-qsort-style
	tri-state comparator.
	(reorder_basic_blocks_simple): Change std::stable_sort to gcc_stablesort.

From-SVN: r264068
2018-09-03 19:55:05 +03:00
Alexander Monakov
d2391983fc tree-loop-distribution: convert to gcc_stablesort
* 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
2018-09-03 19:53:04 +03:00
Alexander Monakov
a6405b11a6 introduce gcc_stablesort
* 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
2018-09-03 19:51:24 +03:00
Alexander Monakov
71acd8b9d9 qsort_chk: call from gcc_qsort instead of wrapping it
* 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
2018-09-03 19:46:46 +03:00
Segher Boessenkool
158985b1a5 rs6000: lxsdux / stxsdux do not exist
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
2018-09-03 17:51:37 +02:00
Jonathan Wakely
d4baef5be8 PR libstdc++/78179 run long double tests separately
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
2018-09-03 15:54:28 +01:00
Richard Biener
339e6723c9 re PR tree-optimization/87200 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:3629)
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
2018-09-03 14:29:00 +00:00
Jonathan Wakely
7efe0dd0b4 Fix vector::_Temporary_value::_M_ptr
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
2018-09-03 15:25:29 +01:00
Jonathan Wakely
83a840a91f PR libstdc++/87194 fix range insertion into maps and sets
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
2018-09-03 15:25:25 +01:00
Jonathan Wakely
bc62e155e4 PR libstdc++/78595 implement insertion into maps in terms of emplace
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
2018-09-03 15:25:12 +01:00
Martin Liska
a6b75a69da Fix thinko (PR tree-optimization/87201).
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
2018-09-03 13:35:35 +00:00
Richard Biener
70fc129d86 re PR tree-optimization/87197 (ICE in is_gimple_reg_type at gimple-expr.h:75 since r264021)
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
2018-09-03 13:28:25 +00:00
Rasmus Villemoes
c7a8f93d7b fixincludes: vxworks: remove unnecessary parentheses in ioctl wrapper macro
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
2018-09-03 13:26:45 +00:00
Martin Liska
c98c243078 Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193).
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
2018-09-03 08:16:27 +00:00
Paolo Carlini
d1dfeff079 re PR c++/84980 ([concepts] ICE with missing typename in concept)
/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
2018-09-03 07:57:33 +00:00
Martin Liska
add4cbca8c Make __builtin_expect effective in switch statements (PR middle-end/PR59521).
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
2018-09-03 07:51:56 +00:00
GCC Administrator
106fd43fee Daily bump.
From-SVN: r264049
2018-09-03 00:16:50 +00:00
Jerry DeLisle
636b78f0a3 io.h: Change declaration of vlist type to gfc_full_array_i4 to eliminate warning for...
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
2018-09-02 15:55:51 +00:00
Bernd Edlinger
b5764229c1 c-common.c (braced_list_to_string): Remove eval parameter.
* 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
2018-09-02 09:18:30 -06:00
François Dumont
b101633fa6 2018-09-02 François Dumont <fdumont@gcc.gnu.org>
* 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
2018-09-02 10:20:57 +00:00
Gerald Pfeifer
2b35b70414 * doc/standards.texi (Standards): Update Objective-C reference.
From-SVN: r264038
2018-09-02 00:31:10 +00:00
GCC Administrator
5db00d2319 Daily bump.
From-SVN: r264037
2018-09-02 00:16:23 +00:00
Gerald Pfeifer
7894fa6142 * doc/install.texi (Prerequisites): Update link for MPC.
From-SVN: r264033
2018-09-01 21:47:58 +00:00
Gerald Pfeifer
fab8c69db7 generic.texi (OpenMP): Adjust link to openmp.org.
* doc/generic.texi (OpenMP): Adjust link to openmp.org.
	* doc/invoke.texi (C Dialect Options): Ditto.

From-SVN: r264032
2018-09-01 21:29:16 +00:00
Gerald Pfeifer
d1f43ba348 profile_mode.xml: Update three ieeexplore.ieee.org references.
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
	references.

From-SVN: r264031
2018-09-01 21:27:14 +00:00
Michael Matz
395552b520 re PR tree-optimization/87074 (Unroll and jam bug: O3 result differ from O2)
Fix PR87074

	PR tree-optimization/87074
	* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
	PHIs for outer-loop uses.

testsuite/
	* gcc.dg/pr87074.c: New test.

From-SVN: r264029
2018-09-01 17:22:05 +00:00
Gerald Pfeifer
c8a4f039fc * doc/install.texi (Prerequisites): Adjust link mpfr.org.
From-SVN: r264028
2018-09-01 12:38:04 +00:00
GCC Administrator
70be9b713b Daily bump.
From-SVN: r264026
2018-09-01 00:16:40 +00:00
Sandra Loosemore
6cec3c81a7 10.cc: Add dg-require-fileio.
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
2018-08-31 15:09:47 -04:00
Richard Biener
d5481391bc 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
2018-08-31 16:50:13 +00:00
David Malcolm
01540df292 tree-vrp: add "const" qualifier to various value_range pointers
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
2018-08-31 16:45:47 +00:00
Vlad Lazar
66da5b5310 [AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64.
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
2018-08-31 15:00:54 +00:00
Nathan Sidwell
7a4e1f7d63 [PR c++/87155] Anonymous namespace and
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
2018-08-31 12:38:00 +00:00
Martin Jambor
5036f628c7 [PATCH] Fix thinko in estimate_local_effects in IPA-CP
2018-08-31  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.

From-SVN: r264015
2018-08-31 14:14:37 +02:00
Martin Liska
6c72e55df0 IPA ICF: make type cache a static field sem_item.
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
2018-08-31 11:37:09 +00:00
Nathan Sidwell
5020c88e53 [C++ PATCH] Remove K&R declaration hack.
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
2018-08-31 11:19:33 +00:00