]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years agoPR libstdc++/78179 run long double tests separately
redi [Mon, 3 Sep 2018 14:54:28 +0000 (14:54 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264063 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-03 Richard Biener <rguenther@suse.de>
rguenth [Mon, 3 Sep 2018 14:29:00 +0000 (14:29 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264062 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix vector::_Temporary_value::_M_ptr
redi [Mon, 3 Sep 2018 14:25:29 +0000 (14:25 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264061 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR libstdc++/87194 fix range insertion into maps and sets
redi [Mon, 3 Sep 2018 14:25:25 +0000 (14:25 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264060 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR libstdc++/78595 implement insertion into maps in terms of emplace
redi [Mon, 3 Sep 2018 14:25:12 +0000 (14:25 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264059 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix thinko (PR tree-optimization/87201).
marxin [Mon, 3 Sep 2018 13:35:35 +0000 (13:35 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264058 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-03 Richard Biener <rguenther@suse.de>
rguenth [Mon, 3 Sep 2018 13:28:25 +0000 (13:28 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264057 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agofixincludes: vxworks: remove unnecessary parentheses in ioctl wrapper macro
villemoes [Mon, 3 Sep 2018 13:26:45 +0000 (13:26 +0000)] 
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))

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264056 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoCome up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193).
marxin [Mon, 3 Sep 2018 08:16:27 +0000 (08:16 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264052 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago/cp
paolo [Mon, 3 Sep 2018 07:57:33 +0000 (07:57 +0000)] 
/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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264051 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoMake __builtin_expect effective in switch statements (PR middle-end/PR59521).
marxin [Mon, 3 Sep 2018 07:51:56 +0000 (07:51 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264050 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Mon, 3 Sep 2018 00:16:50 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264049 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sun, 2 Sep 2018 15:55:51 +0000 (15:55 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264043 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * c-common.c (braced_list_to_string): Remove eval parameter.
law [Sun, 2 Sep 2018 15:18:30 +0000 (15:18 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264042 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-02 François Dumont <fdumont@gcc.gnu.org>
fdumont [Sun, 2 Sep 2018 10:20:57 +0000 (10:20 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264039 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/standards.texi (Standards): Update Objective-C reference.
gerald [Sun, 2 Sep 2018 00:31:10 +0000 (00:31 +0000)] 
* doc/standards.texi (Standards): Update Objective-C reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264038 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Sun, 2 Sep 2018 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264037 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/install.texi (Prerequisites): Update link for MPC.
gerald [Sat, 1 Sep 2018 21:47:58 +0000 (21:47 +0000)] 
* doc/install.texi (Prerequisites): Update link for MPC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264033 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/generic.texi (OpenMP): Adjust link to openmp.org.
gerald [Sat, 1 Sep 2018 21:29:16 +0000 (21:29 +0000)] 
* doc/generic.texi (OpenMP): Adjust link to openmp.org.
* doc/invoke.texi (C Dialect Options): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264032 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
gerald [Sat, 1 Sep 2018 21:27:14 +0000 (21:27 +0000)] 
* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
references.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264031 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix PR87074
matz [Sat, 1 Sep 2018 17:22:05 +0000 (17:22 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264029 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/install.texi (Prerequisites): Adjust link mpfr.org.
gerald [Sat, 1 Sep 2018 12:38:04 +0000 (12:38 +0000)] 
* doc/install.texi (Prerequisites): Adjust link mpfr.org.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264028 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Sat, 1 Sep 2018 00:16:40 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264026 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-31 Sandra Loosemore <sandra@codesourcery.com>
sandra [Fri, 31 Aug 2018 19:09:47 +0000 (19:09 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264022 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-31 Richard Biener <rguenther@suse.de>
rguenth [Fri, 31 Aug 2018 16:50:13 +0000 (16:50 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264021 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agotree-vrp: add "const" qualifier to various value_range pointers
dmalcolm [Fri, 31 Aug 2018 16:45:47 +0000 (16:45 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264020 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[AArch64] Implement new intrinsics vabsd_s64 and vnegd_s64.
vladlazar [Fri, 31 Aug 2018 15:00:54 +0000 (15:00 +0000)] 
[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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264019 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[PR c++/87155] Anonymous namespace and
nathan [Fri, 31 Aug 2018 12:38:00 +0000 (12:38 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264016 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[PATCH] Fix thinko in estimate_local_effects in IPA-CP
jamborm [Fri, 31 Aug 2018 12:14:37 +0000 (12:14 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264015 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoIPA ICF: make type cache a static field sem_item.
marxin [Fri, 31 Aug 2018 11:37:09 +0000 (11:37 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264014 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[C++ PATCH] Remove K&R declaration hack.
nathan [Fri, 31 Aug 2018 11:19:33 +0000 (11:19 +0000)] 
[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)'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264013 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[ipa-inline][obvious] Fix typos in comment
ktkachov [Fri, 31 Aug 2018 10:36:54 +0000 (10:36 +0000)] 
[ipa-inline][obvious] Fix typos in comment

* ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264012 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agors6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)
segher [Fri, 31 Aug 2018 08:52:13 +0000 (08:52 +0000)] 
rs6000: Make lround<mode>di2 depend on TARGET_FPRND (PR86684)

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264011 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR middle-end/87138
jakub [Fri, 31 Aug 2018 07:49:12 +0000 (07:49 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264009 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-31 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 31 Aug 2018 06:51:31 +0000 (06:51 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264008 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix PR testsuite/86519 reference.
ro [Fri, 31 Aug 2018 06:43:07 +0000 (06:43 +0000)] 
Fix PR testsuite/86519 reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264007 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Fri, 31 Aug 2018 00:16:48 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264006 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
sandra [Thu, 30 Aug 2018 21:27:44 +0000 (21:27 +0000)] 
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* g++.dg/cpp0x/noexcept30.C: Make dependence on
-fdelete-null-pointer-checks explicit.
* g++.dg/cpp1y/constexpr-82218.C: Likewise.
* g++.dg/expr/pmf-3.C: Likewise.
* g++.dg/ext/attr-returns-nonnull.C: Likewise.
* g++.dg/tree-ssa/lifetime-dse1.C: Likewise.
* g++.dg/tree-ssa/pr61034.C: Likewise.
* gcc.dg/addr_equal-1.c: Likewise.
* gcc.dg/ipa/pr85734.c: Likewise.
* gcc.dg/ipa/propmalloc-1.c: Likewise.
* gcc.dg/ipa/propmalloc-2.c: Likewise.
* gcc.dg/ipa/propmalloc-3.c: Likewise.
* gcc.dg/tree-ssa/pr78154.c: Likewise.
* gcc.dg/tree-ssa/pr83648.c: Likewise.

libstdc++-v3/
* testsuite/experimental/propagate_const/observers/1.cc: Make
dependence on -fdelete-null-pointer-checks explicit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264001 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR testsuite/87158 - FAIL gcc.c-torture/execute/memchr-1.c on big endian targets
msebor [Thu, 30 Aug 2018 21:25:10 +0000 (21:25 +0000)] 
PR testsuite/87158 - FAIL gcc.c-torture/execute/memchr-1.c on big endian targets

gcc/testsuite/ChangeLog:
* gcc.c-torture/execute/memchr-1.c: Correct big-endian expectations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264000 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-30 Sandra Loosemore <sandra@codesourcery.com>
sandra [Thu, 30 Aug 2018 21:02:37 +0000 (21:02 +0000)] 
2018-08-30  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* target.def (custom_function_descriptors): Improve documentation.
* doc/tm.texi.in (Trampolines): Expand discussion of function
descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the
beginning of the section.
* doc/tm.texi: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263999 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agogcc:
jemarch [Thu, 30 Aug 2018 20:28:31 +0000 (20:28 +0000)] 
gcc:

2018-08-30  Jose E. Marchesi  <jose.marchesi@oracle.com>

* cfg.h (class auto_edge_flag): Spell out the template-id of the
base class in the initializer list.  This is a workaround for
building with older GCC.
(class auto_bb_flag): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263997 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-30 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Thu, 30 Aug 2018 18:17:00 +0000 (18:17 +0000)] 
2018-08-30  Aaron Sawdey  <acsawdey@linux.ibm.com>

* config/rs6000/altivec.md (altivec_eq<mode>): Remove star.
(altivec_vcmpequ<VI_char>_p): Remove star.
* config/rs6000/rs6000-string.c (do_load_for_compare): Support
vector load modes.
(expand_strncmp_vec_sequence): New function.
(emit_final_str_compare_vec): New function.
(expand_strn_compare): Add support for vector strncmp.
* config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change
length specification to bytes.
* config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star.
(vcmpnezb_p): New pattern.
* doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation
for option -mstring-compare-inline-limit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263991 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agox86: Move AESNI generation to Skylake and Goldmont
hjl [Thu, 30 Aug 2018 15:59:41 +0000 (15:59 +0000)] 
x86: Move AESNI generation to Skylake and Goldmont

The instruction set first appeared with Westmere, but not all processors
in that and the next few generations have the instructions. According to
Wikipedia[1], the first generation in which all SKUs have AES
instructions are Skylake and Goldmont. I can't find any Skylake,
Kabylake, Kabylake-R or Cannon Lake currently listed at
https://ark.intel.com that says "Intel® AES New Instructions" "No".

[1] https://en.wikipedia.org/wiki/AES_instruction_set

2018-08-30  Thiago Macieira  <thiago.macieira@intel.com>

* config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES.
(PTA_SKYLAKE): Add PTA_AES.
(PTA_GOLDMONT): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263989 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR lto/86517
hubicka [Thu, 30 Aug 2018 15:50:39 +0000 (15:50 +0000)] 
PR lto/86517
* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263988 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[libcpp] fix some line map comments
nathan [Thu, 30 Aug 2018 15:16:21 +0000 (15:16 +0000)] 
[libcpp] fix some line map comments

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01978.html
* include/line-map.h (enum lc_reason): Comment each member
separately.
(struct line_maps): Fix reallocator comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263987 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAvoid undefined shifts in ceil2 operations
redi [Thu, 30 Aug 2018 15:07:35 +0000 (15:07 +0000)] 
Avoid undefined shifts in ceil2 operations

For values where the result cannot be represented the shift width would
be equal to the width of the type, which is undefined. Perform two
well-defined shifts instead of one possible undefined shift.

* include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64
targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts
of the number of bits in the type.
* include/std/bit (__ceil2): Avoid undefined shifts.
* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with
the most signifiant bit set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263986 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
hubicka [Thu, 30 Aug 2018 15:05:38 +0000 (15:05 +0000)] 
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
TYPE_STUB_DECL.
(hash_tree): Do not visit TYPE_STUB_DECL.
* tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not
stream TYPE_STUB_DECL.
* tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise.
* ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL
after free_lang_data.
(type_in_anonymous_namespace_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263985 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoMove strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.
qinzhao [Thu, 30 Aug 2018 14:46:53 +0000 (14:46 +0000)] 
Move strcmpopt_6.c from gcc.dg to gcc.target/aarch64 and gcc.target/i386.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263983 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agogimplefe: expose MULT_HIGHPART_EXPR
amonakov [Thu, 30 Aug 2018 13:47:59 +0000 (13:47 +0000)] 
gimplefe: expose MULT_HIGHPART_EXPR

* gimple-parser.c (c_parser_gimple_binary_expression): Accept infix
"__MULT_HIGHPART" for MULT_HIGHPART_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263982 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
hubicka [Thu, 30 Aug 2018 12:58:42 +0000 (12:58 +0000)] 
* sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
comment that it has to be even number.
(class sreal): Change m_sig type to int32_t.
* sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use
int64_t for temporary calculations.
(sreal_verify_basics): Drop one bit from minimum and maximum.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263981 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-30 Richard Biener <rguenther@suse.de>
rguenth [Thu, 30 Aug 2018 12:37:10 +0000 (12:37 +0000)] 
2018-08-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87147
* tree-ssa-sccvn.c (SSA_VISITED): New function.
(visit_phi): When the degenerate result is from the backedge and
we didn't visit its definition yet drop to VARYING.
(do_rpo_vn): Properly mark blocks with incoming backedges as executable.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263980 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk
hubicka [Thu, 30 Aug 2018 12:36:24 +0000 (12:36 +0000)] 
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk
DECL_VINDEX.
(hash_tree): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263979 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO
hubicka [Thu, 30 Aug 2018 12:32:45 +0000 (12:32 +0000)] 
* tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO
and TYPE_NEXT_REF_TO.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263978 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix undefined references seen with mingw-w64
redi [Thu, 30 Aug 2018 12:28:53 +0000 (12:28 +0000)] 
Fix undefined references seen with mingw-w64

* config/abi/pre/gnu.ver: Add missing exports for mingw.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263977 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix __gnu_cxx::_Pointer_adapter for long long arithmetic
redi [Thu, 30 Aug 2018 12:24:06 +0000 (12:24 +0000)] 
Fix __gnu_cxx::_Pointer_adapter for long long arithmetic

* include/ext/pointer.h (_Pointer_adapter): Define operators for
pointer arithmetic using long long offsets.
* testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using
long long values.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263976 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoLimit movmem copies to TImode on AArch64
tnfchris [Thu, 30 Aug 2018 10:40:07 +0000 (10:40 +0000)] 
Limit movmem copies to TImode on AArch64

On AArch64 we have integer modes larger than TImode, and while we can generate
moves for these they're not as efficient.

So instead make sure we limit the maximum we can copy to TImode.  This means
copying a 16 byte struct will issue 1 TImode copy, which will be done using a
single STP as we expect but an CImode sized copy won't issue CImode operations.

I am also moving the residual code inside the if since smallest_mode_for_int may
trap if the mode doesn't exist.  And the only time we know the mode to exist for
sure is when the condition of the if is true.  This also saves repeated calls to
the iterator.

gcc/
2018-08-30  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max.

gcc/testsuite/
2018-08-30  Tamar Christina  <tamar.christina@arm.com>

  * gcc.target/aarch64/large_struct_copy_2.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263974 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoEnable underflow check in canonicalize_comparison. (PR86995)
vladlazar [Thu, 30 Aug 2018 09:30:49 +0000 (09:30 +0000)] 
Enable underflow check in canonicalize_comparison. (PR86995)

gcc/
2018-08-30  Vlad Lazar  <vlad.lazar@arm.com>

PR middle-end/86995
* expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add
if to_add is negative.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263973 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Thu, 30 Aug 2018 00:17:02 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263972 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agogcc:
law [Wed, 29 Aug 2018 22:16:09 +0000 (22:16 +0000)] 
gcc:
2018-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>

PR middle-end/87053
* builtins.c (c_strlen): Improve range checks.

testsuite:
2018-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>

PR middle-end/87053
* gcc.c-torture/execute/pr87053.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263968 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87095
jakub [Wed, 29 Aug 2018 21:43:18 +0000 (21:43 +0000)] 
PR c++/87095
* decl.c (begin_destructor_body): If current_class_type has
virtual bases and the primary base is nearly empty virtual base,
voidify clearing of vptr and make it conditional on in-charge
argument.

* g++.dg/ubsan/vptr-13.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263967 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago/cp
paolo [Wed, 29 Aug 2018 20:29:55 +0000 (20:29 +0000)] 
/cp
2018-08-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85265
* parser.c (cp_parser_introduction_list): If cp_parser_identifier
returns error_mark_node early exit the loop.
(cp_parser_template_introduction): Improve error-recovery, remove
error call about empty introduction-list.

/testsuite
2018-08-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85265
* g++.dg/concepts/pr85265.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263966 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR tree-optimization/86714
law [Wed, 29 Aug 2018 17:17:08 +0000 (17:17 +0000)] 
PR tree-optimization/86714
PR tree-optimization/86711
* builtins.c (c_strlen): Add arguments to call to string_constant.
* expr.c (string_constant): Add argument.  Detect missing nul
terminator and outermost declaration it's missing in.
* expr.h (string_constant): Add argument.
* fold-const.c (read_from_constant_string): Add arguments to call to
string_constant.
(c_getstr): Likewise.
* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
to string_constant.
* tree-ssa-strlen.c (get_stridx): Likewise.

PR tree-optimization/86714
PR tree-optimization/86711
* gcc.c-torture/execute/memchr-1.c: New test.
* gcc.c-torture/execute/pr86714.c: New test.
* gcc.c-torture/execute/widechar-3.c: New test.
* gcc.dg/strlenopt-58.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263963 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
hubicka [Wed, 29 Aug 2018 17:07:35 +0000 (17:07 +0000)] 
* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
Do not stream DECL_VINDEX.
* tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise.
* tree.c (free_lang_data_in_decl): Clear DECL_VINDEX.
(decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263962 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Richard Biener <rguenther@suse.de>
rguenth [Wed, 29 Aug 2018 15:02:06 +0000 (15:02 +0000)] 
2018-08-29  Richard Biener  <rguenther@suse.de>

* tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited
virtual operands that are not default defs to honor region
boundaries.
(rpo_vn_valueize): Remove ineffective code here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263960 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Richard Biener <rguenther@suse.de>
rguenth [Wed, 29 Aug 2018 14:13:20 +0000 (14:13 +0000)] 
2018-08-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87132
* tree-ssa-alias.c (get_continuation_for_phi): Do not translate
when skipping defs reachable over backedges.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263959 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Richard Biener <rguenther@suse.de>
rguenth [Wed, 29 Aug 2018 14:12:25 +0000 (14:12 +0000)] 
2018-08-29  Richard Biener  <rguenther@suse.de>

* tree-core.h: Document use of deprecated_flag in SSA_NAME.
* tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define.
* tree-into-ssa.c (pass_build_ssa::execute): Initialize
function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec.
* tree-ssa-sccvn.c (const_parms, init_const_parms): Remove.
(vn_reference_lookup_3): Remove use of const_parms.
(free_rpo_vn): Do not free const_parms.
(do_rpo_vn): Do not call init_const_parms.
* tree-ssa-alias.c (refs_may_alias_p_1): Honor
SSA_NAME_POINTS_TO_READONLY_MEMORY.
(call_may_clobber_ref_p_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263958 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoC++: underline param in print_conversion_rejection (more PR c++/85110)
dmalcolm [Wed, 29 Aug 2018 13:52:22 +0000 (13:52 +0000)] 
C++: underline param in print_conversion_rejection (more PR c++/85110)

Consider this bogus code (from g++.dg/diagnostic/param-type-mismatch-2.C):

struct s4 { static int member_1 (int one, const char **two, float three); };

int test_4 (int first, const char *second, float third)
{
  return s4::member_1 (first, second, third);
}

Before this patch, g++ emits:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |                                            ^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                        ^~~~~~~~
demo.cc:1:24: note:   no known conversion for argument 2 from 'const char*' to 'const char**'

With this patch, it highlights the pertinent parameter in the
"no known conversion" note:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |                                            ^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                        ^~~~~~~~
demo.cc:1:56: note:   no known conversion for argument 2 from 'const char*' to 'const char**'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                                           ~~~~~~~~~~~~~^~~

gcc/cp/ChangeLog:
PR c++/85110
* call.c (print_conversion_rejection): Add "fn" param and use it
for "no known conversion" messages to underline the pertinent
param.
(print_z_candidate): Supply "fn" to the new param above.

gcc/testsuite/ChangeLog:
PR c++/85110
* g++.dg/diagnostic/param-type-mismatch-2.C: Update expected
output to reflect underlining of pertinent parameter in decl
for "no known conversion" messages.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263957 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agodoc: document -ftree-scev-cprop
amonakov [Wed, 29 Aug 2018 12:39:12 +0000 (12:39 +0000)] 
doc: document -ftree-scev-cprop

PR other/86726
* invoke.texi (Optimization Options): List -ftree-scev-cprop.
(-O): Ditto.
(-ftree-scev-cprop): Document.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263955 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87122
jakub [Wed, 29 Aug 2018 12:27:55 +0000 (12:27 +0000)] 
PR c++/87122
* pt.c (tsubst_expr) <case RANGE_FOR_STMT>: If
processing_template_decl and decl is structured binding decl, call
cp_finish_decomp.

* g++.dg/cpp1z/decomp47.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263953 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp
hubicka [Wed, 29 Aug 2018 12:21:28 +0000 (12:21 +0000)] 
* sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp
parameters.
(sreal constructor): Update.
* sreal.c (sreal:operator+, sreal:operator-, sreal:operator*,
sreal:operator/): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263952 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix thinko in lto.c (PR bootstrap/87130).
marxin [Wed, 29 Aug 2018 10:48:50 +0000 (10:48 +0000)] 
Fix thinko in lto.c (PR bootstrap/87130).

2018-08-29  Martin Liska  <mliska@suse.cz>

PR bootstrap/87130
* lto.c (read_cgraph_and_symbols): Fix thinko, revert
to behavior before r263887.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263950 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Vlad Lazar <vlad.lazar@arm.com>
vladlazar [Wed, 29 Aug 2018 10:24:46 +0000 (10:24 +0000)] 
2018-08-29  Vlad Lazar  <vlad.lazar@arm.com>

* MAINTAINERS (write after approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263949 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR libstdc++/31413 fix test failure on Debian systems
redi [Wed, 29 Aug 2018 10:05:55 +0000 (10:05 +0000)] 
PR libstdc++/31413 fix test failure on Debian systems

Debian uses a different D_FMT string for the zh_TW.UTF-8 locale, which
caused this test to fail. Try to detect the Debian format and adjust
the input being tested.

PR libstdc++/31413
* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
string for alternative format.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263948 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoStrenghten assumption about gswitch statements.
marxin [Wed, 29 Aug 2018 08:35:09 +0000 (08:35 +0000)] 
Strenghten assumption about gswitch statements.

2018-08-29  Martin Liska  <mliska@suse.cz>

* tree-switch-conversion.c (switch_conversion::expand):
Strenghten assumption about gswitch statements.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263947 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[AARCH64] Use stdint integers in vect_su_add_sub.c
ktkachov [Wed, 29 Aug 2018 08:22:19 +0000 (08:22 +0000)] 
[AARCH64] Use stdint integers in vect_su_add_sub.c

2018-08-29  Matthew Malcomson  <matthew.malcomson@arm.com>

* gcc.target/aarch64/simd/vect_su_add_sub.c: Use 32 and 64-bit types
where appropriate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263946 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Richard Biener <rguenther@suse.de>
rguenth [Wed, 29 Aug 2018 06:49:06 +0000 (06:49 +0000)] 
2018-08-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87117
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only
re-value-number released SSA VDEFs.

* gfortran.dg/pr87117.f90: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263945 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-29 Richard Biener <rguenther@suse.de>
rguenth [Wed, 29 Aug 2018 06:47:14 +0000 (06:47 +0000)] 
2018-08-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87126
* tree-ssa-sccvn.c (vn_reference_insert): Remove assert.

* gcc.dg/tree-ssa/pr87126.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263944 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoRewrite pic.md to improve medany and pic code size.
wilson [Wed, 29 Aug 2018 02:20:44 +0000 (02:20 +0000)] 
Rewrite pic.md to improve medany and pic code size.

gcc/
* config/riscv/pic.md: Rewrite.
* config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for
invalid address.
* config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete.
(SOFTF, default_load, softload, softstore): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263943 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoremove utf-8 from comment
jason [Wed, 29 Aug 2018 01:14:21 +0000 (01:14 +0000)] 
remove utf-8 from comment

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263942 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago compiler, runtime: remove hmap field from maptypes
ian [Wed, 29 Aug 2018 00:20:25 +0000 (00:20 +0000)] 
compiler, runtime: remove hmap field from maptypes

    This is the gofrontend version of https://golang.org/cl/91796.

    This is part of that CL, just the compiler change and required runtime
    changes, in preparation for updating libgo to 1.11.

    Relevant part of original CL description:

        The hmap field in the maptype is only used by the runtime to check the sizes of
        the hmap structure created by the compiler and runtime agree.

        Comments are already present about the hmap structure definitions in the
        compiler and runtime needing to be in sync.

    Reviewed-on: https://go-review.googlesource.com/130976

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263941 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Wed, 29 Aug 2018 00:16:35 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263940 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * fold-const.c (fold_binary_loc): Remove recently added assert.
law [Tue, 28 Aug 2018 23:09:57 +0000 (23:09 +0000)] 
* fold-const.c (fold_binary_loc): Remove recently added assert.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263936 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED
amylaar [Tue, 28 Aug 2018 21:54:44 +0000 (21:54 +0000)] 
    * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED
        to OP parmeter of generated function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263934 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR tree-optimization/87009
law [Tue, 28 Aug 2018 20:23:05 +0000 (20:23 +0000)] 
PR tree-optimization/87009
* match.pd: Add boolean optimizations.

PR tree-optimization/87009
* gcc.dg/pr87009.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263931 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agogcc/testsuite/ChangeLog:
msebor [Tue, 28 Aug 2018 19:58:02 +0000 (19:58 +0000)] 
gcc/testsuite/ChangeLog:

PR middle-end/86631
* g++.dg/Walloca1.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263930 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR middle-end/86631 - missing -Walloc-size-larger-than on ILP32 hosts
msebor [Tue, 28 Aug 2018 19:09:38 +0000 (19:09 +0000)] 
PR middle-end/86631 - missing -Walloc-size-larger-than on ILP32 hosts

gcc/ChangeLog:

PR middle-end/86631
* calls.c (alloc_max_size): Treat HOST_WIDE_INT special.
* gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function.
(pass_walloca::gate): Use it.
(alloca_call_type): Same.
(pass_walloca::execute): Same.
* stor-layout.c (layout_decl): Treat HOST_WIDE_INT special.

gcc/testsuite/ChangeLog:

PR middle-end/86631
* g++.dg/Walloca1.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263928 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR libstdc++/87116 fix path::lexically_normal() handling of dot-dot
redi [Tue, 28 Aug 2018 15:33:53 +0000 (15:33 +0000)] 
PR libstdc++/87116 fix path::lexically_normal() handling of dot-dot

Previously the logic that turned "a/b/c/../.." into "a/" failed to
preserve an empty path at the end of the iteration sequence, as required
by the trailing slash. That meant the result didn't meet the class
invariants, and that "a/b/c/d/../../.." would remove four components
instead of the three that "../../.." should remove.

PR libstdc++/87116
* src/filesystem/std-path.cc (path::lexically_normal): When handling
a dot-dot filename, preserve an empty final component in the iteration
sequence.
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for
root-directory.
* testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests
for more than two adjacent dot-dot filenames.
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with
preferred-separator in expected normalized strings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263922 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago/cp
paolo [Tue, 28 Aug 2018 15:01:15 +0000 (15:01 +0000)] 
/cp
2018-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/86546
* decl.c (finish_case_label): If the type is erroneous early
return error_mark_node.

/testsuite
2018-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/86546
* g++.dg/other/switch4.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263921 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix version check for ATTRIBUTE_GCC_DUMP_PRINTF
dmalcolm [Tue, 28 Aug 2018 14:08:45 +0000 (14:08 +0000)] 
Fix version check for ATTRIBUTE_GCC_DUMP_PRINTF

gcc/ChangeLog:
* dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on
GCC_VERSION for usage of "__gcc_dump_printf__" format from
>= 3005 to >= 9000.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263920 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-28 Richard Biener <rguenther@suse.de>
rguenth [Tue, 28 Aug 2018 13:36:49 +0000 (13:36 +0000)] 
2018-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87124
* tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against
constants before looking up avail.

* g++.dg/torture/pr87124.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263918 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2017-08-28 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 28 Aug 2018 11:35:52 +0000 (11:35 +0000)] 
2017-08-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80477
* trans-expr.c (gfc_conv_procedure_call): Allocatable class
scalar results being passed to a derived type formal argument
are finalized if possible. Otherwise, rely on existing code for
deallocation. Make the deallocation of allocatable result
components conditional on finalization not taking place. Make
the freeing of data components after finalization conditional
on the data being NULL.
(gfc_trans_arrayfunc_assign): Change the gcc_assert to a
condition to return NULL_TREE.
(gfc_trans_assignment_1): If the assignment is class to class
and the rhs expression must be finalized but the assignment
is not marked as a polymorphic assignment, use the vptr copy
function instead of gfc_trans_scalar_assign.

PR fortran/86481
* trans-expr.c (gfc_conv_expr_reference): Do not add the post
block to the pre block if the expression is to be finalized.
* trans-stmt.c (gfc_trans_allocate): If the expr3 must be
finalized, load the post block into a finalization block and
add it right at the end of the allocation block.

2017-08-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80477
* gfortran.dg/class_result_7.f90: New test.
* gfortran.dg/class_result_8.f90: New test.
* gfortran.dg/class_result_9.f90: New test.

PR fortran/86481
* gfortran.dg/allocate_with_source_25.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263916 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR middle-end/87099
jakub [Tue, 28 Aug 2018 11:13:04 +0000 (11:13 +0000)] 
PR middle-end/87099
* calls.c (maybe_warn_nonstring_arg): Punt early if
warn_stringop_overflow is zero.  Don't call get_range_strlen
on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST.
Swap comparison operands to have constants on rhs.  Only use
lenrng[1] if non-NULL and INTEGER_CST.  Don't uselessly
increment lenrng[0].

* gcc.dg/pr87099.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263915 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix unguarded use of tree_to_shwi in tree-ssa-sccvn.c
rsandifo [Tue, 28 Aug 2018 10:42:42 +0000 (10:42 +0000)] 
Fix unguarded use of tree_to_shwi in tree-ssa-sccvn.c

Fixes many testsuite failures for SVE.

2018-08-28  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded
use of tree_to_shwi.  Remove duplicated test for the size being
a whole number of bytes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263914 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAdd target selectors to slp-37.c (PR87078)
rsandifo [Tue, 28 Aug 2018 10:42:30 +0000 (10:42 +0000)] 
Add target selectors to slp-37.c (PR87078)

This test was failing for Power 7 due to the lack of hw support
for unaligned accesses.

2018-08-28  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
PR testsuite/87078
* gcc.dg/vect/slp-37.c: Restrict scan tests to vect_hw_misalign.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263913 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-28 Richard Biener <rguenther@suse.de>
rguenth [Tue, 28 Aug 2018 10:15:54 +0000 (10:15 +0000)] 
2018-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87117
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup):
Handle removed stmt without LHS (GIMPLE_NOP).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263912 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-28 Richard Biener <rguenther@suse.de>
rguenth [Tue, 28 Aug 2018 10:14:45 +0000 (10:14 +0000)] 
2018-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87117
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude
void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P.

* gcc.dg/pr87117-1.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263911 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-28 Richard Biener <rguenther@suse.de>
rguenth [Tue, 28 Aug 2018 10:13:18 +0000 (10:13 +0000)] 
2018-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87117
* tree-ssa-pre.c (compute_avail): Do not make expressions
with predicated values available.
(get_expr_value_id): Assert we do not run into predicated value
expressions.

* gcc.dg/pr87117-2.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263910 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-08-28 Richard Biener <rguenther@suse.de>
rguenth [Tue, 28 Aug 2018 09:33:16 +0000 (09:33 +0000)] 
2018-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87117
* tree-ssa-operands.c (add_stmt_operand): STRING_CST may
get virtual operands.
(get_expr_operands): Handle STRING_CST like other decls.

* gcc.dg/lvalue-5.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263908 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoUpdate documentation of fndecl_built_in_p.
marxin [Tue, 28 Aug 2018 07:23:12 +0000 (07:23 +0000)] 
Update documentation of fndecl_built_in_p.

2018-08-28  Martin Liska  <mliska@suse.cz>

* tree.h: Update documentation of fndecl_built_in_p
functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263907 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR tree-optimization/87110
law [Tue, 28 Aug 2018 04:02:11 +0000 (04:02 +0000)] 
PR tree-optimization/87110
* tree-ssa-dse.c (compute_trims): Handle non-constant
TYPE_SIZE_UNIT.

PR tree-optimization/87110
* gcc.c-torture/compile/pr87110.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263906 138bc75d-0d04-0410-961f-82ee72b054a4