summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-05-26 10:25:46 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-05-26 10:25:46 +0000
commit3353904da48afe3d15e036d016b11f16f039428f (patch)
tree6c1b921be5418213d4dcbcd995a7bba9ae9caf12 /debian
parente239917120a85184a30d47e04205b699766f3446 (diff)
downloadgcc-49-3353904da48afe3d15e036d016b11f16f039428f.tar.gz
* Update to SVN 20140526 (r210930) from the gcc-4_9-branch.
git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.9@7410 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/svn-updates.diff580
2 files changed, 544 insertions, 40 deletions
diff --git a/debian/changelog b/debian/changelog
index 6bd0f07..6be374e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
gcc-4.9 (4.9.0-5) UNRELEASED; urgency=medium
- * Update to SVN 20140523 (r210844) from the gcc-4_9-branch.
+ * Update to SVN 20140526 (r210930) from the gcc-4_9-branch.
* Limit systemtap-sdt-dev build dependency to enumerated linux architectures.
Build-conflict with systemtap-sdt-dev on ppc64el.
* Build libitm on AArch64, patch taken from the trunk.
@@ -11,7 +11,7 @@ gcc-4.9 (4.9.0-5) UNRELEASED; urgency=medium
* Fix PR other/61257, check for working sys/sdt.h.
* Drop the libstdc++-arm-wno-abi patch, not needed anymore in 4.9.
- -- Matthias Klose <doko@debian.org> Fri, 23 May 2014 08:52:56 +0200
+ -- Matthias Klose <doko@debian.org> Mon, 26 May 2014 12:23:19 +0200
gcc-4.9 (4.9.0-4) unstable; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index e7494e0..ed7584e 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 4.9 branch upto 20140523 (r210844).
+# DP: updates from the 4.9 branch upto 20140526 (r210930).
last_updated()
{
cat > ${dir}LAST_UPDATED <<EOF
-Fri May 23 08:44:51 CEST 2014
-Fri May 23 06:44:51 UTC 2014 (revision 210844)
+Mon May 26 12:19:36 CEST 2014
+Mon May 26 10:19:36 UTC 2014 (revision 210930)
EOF
}
@@ -1101,6 +1101,344 @@ Index: libstdc++-v3/include/experimental/optional
template<typename _Tp>
constexpr bool
+Index: libstdc++-v3/include/bits/hashtable.h
+===================================================================
+--- a/src/libstdc++-v3/include/bits/hashtable.h (.../tags/gcc_4_9_0_release)
++++ b/src/libstdc++-v3/include/bits/hashtable.h (.../branches/gcc-4_9-branch)
+@@ -316,14 +316,49 @@
+ size_type _M_element_count;
+ _RehashPolicy _M_rehash_policy;
+
++ // A single bucket used when only need for 1 bucket. Especially
++ // interesting in move semantic to leave hashtable with only 1 buckets
++ // which is not allocated so that we can have those operations noexcept
++ // qualified.
++ // Note that we can't leave hashtable with 0 bucket without adding
++ // numerous checks in the code to avoid 0 modulus.
++ __bucket_type _M_single_bucket;
++
++ bool
++ _M_uses_single_bucket(__bucket_type* __bkts) const
++ { return __builtin_expect(_M_buckets == &_M_single_bucket, false); }
++
++ bool
++ _M_uses_single_bucket() const
++ { return _M_uses_single_bucket(_M_buckets); }
++
+ __hashtable_alloc&
+ _M_base_alloc() { return *this; }
+
+- using __hashtable_alloc::_M_deallocate_buckets;
++ __bucket_type*
++ _M_allocate_buckets(size_type __n)
++ {
++ if (__builtin_expect(__n == 1, false))
++ {
++ _M_single_bucket = nullptr;
++ return &_M_single_bucket;
++ }
+
++ return __hashtable_alloc::_M_allocate_buckets(__n);
++ }
++
+ void
++ _M_deallocate_buckets(__bucket_type* __bkts, size_type __n)
++ {
++ if (_M_uses_single_bucket(__bkts))
++ return;
++
++ __hashtable_alloc::_M_deallocate_buckets(__bkts, __n);
++ }
++
++ void
+ _M_deallocate_buckets()
+- { this->_M_deallocate_buckets(_M_buckets, _M_bucket_count); }
++ { _M_deallocate_buckets(_M_buckets, _M_bucket_count); }
+
+ // Gets bucket begin, deals with the fact that non-empty buckets contain
+ // their before begin node.
+@@ -703,11 +738,7 @@
+
+ size_type
+ erase(const key_type& __k)
+- {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return 0;
+- return _M_erase(__unique_keys(), __k);
+- }
++ { return _M_erase(__unique_keys(), __k); }
+
+ iterator
+ erase(const_iterator, const_iterator);
+@@ -768,7 +799,7 @@
+ _M_rehash_policy()
+ {
+ _M_bucket_count = _M_rehash_policy._M_next_bkt(__bucket_hint);
+- _M_buckets = this->_M_allocate_buckets(_M_bucket_count);
++ _M_buckets = _M_allocate_buckets(_M_bucket_count);
+ }
+
+ template<typename _Key, typename _Value,
+@@ -796,7 +827,7 @@
+ std::max(_M_rehash_policy._M_bkt_for_elements(__nb_elems),
+ __bucket_hint));
+
+- _M_buckets = this->_M_allocate_buckets(_M_bucket_count);
++ _M_buckets = _M_allocate_buckets(_M_bucket_count);
+ __try
+ {
+ for (; __f != __l; ++__f)
+@@ -833,9 +864,9 @@
+ {
+ // Replacement allocator cannot free existing storage.
+ this->_M_deallocate_nodes(_M_begin());
+- if (__builtin_expect(_M_bucket_count != 0, true))
+- _M_deallocate_buckets();
+- _M_reset();
++ _M_before_begin._M_nxt = nullptr;
++ _M_deallocate_buckets();
++ _M_buckets = nullptr;
+ std::__alloc_on_copy(__this_alloc, __that_alloc);
+ __hashtable_base::operator=(__ht);
+ _M_bucket_count = __ht._M_bucket_count;
+@@ -867,7 +898,7 @@
+ if (_M_bucket_count != __ht._M_bucket_count)
+ {
+ __former_buckets = _M_buckets;
+- _M_buckets = this->_M_allocate_buckets(__ht._M_bucket_count);
++ _M_buckets = _M_allocate_buckets(__ht._M_bucket_count);
+ _M_bucket_count = __ht._M_bucket_count;
+ }
+ else
+@@ -885,8 +916,7 @@
+ [&__roan](const __node_type* __n)
+ { return __roan(__n->_M_v()); });
+ if (__former_buckets)
+- this->_M_deallocate_buckets(__former_buckets,
+- __former_bucket_count);
++ _M_deallocate_buckets(__former_buckets, __former_bucket_count);
+ }
+ __catch(...)
+ {
+@@ -917,7 +947,7 @@
+ {
+ __bucket_type* __buckets = nullptr;
+ if (!_M_buckets)
+- _M_buckets = __buckets = this->_M_allocate_buckets(_M_bucket_count);
++ _M_buckets = __buckets = _M_allocate_buckets(_M_bucket_count);
+
+ __try
+ {
+@@ -964,8 +994,9 @@
+ _M_reset() noexcept
+ {
+ _M_rehash_policy._M_reset();
+- _M_bucket_count = 0;
+- _M_buckets = nullptr;
++ _M_bucket_count = 1;
++ _M_single_bucket = nullptr;
++ _M_buckets = &_M_single_bucket;
+ _M_before_begin._M_nxt = nullptr;
+ _M_element_count = 0;
+ }
+@@ -980,12 +1011,16 @@
+ _M_move_assign(_Hashtable&& __ht, std::true_type)
+ {
+ this->_M_deallocate_nodes(_M_begin());
+- if (__builtin_expect(_M_bucket_count != 0, true))
+- _M_deallocate_buckets();
+-
++ _M_deallocate_buckets();
+ __hashtable_base::operator=(std::move(__ht));
+ _M_rehash_policy = __ht._M_rehash_policy;
+- _M_buckets = __ht._M_buckets;
++ if (!__ht._M_uses_single_bucket())
++ _M_buckets = __ht._M_buckets;
++ else
++ {
++ _M_buckets = &_M_single_bucket;
++ _M_single_bucket = __ht._M_single_bucket;
++ }
+ _M_bucket_count = __ht._M_bucket_count;
+ _M_before_begin._M_nxt = __ht._M_before_begin._M_nxt;
+ _M_element_count = __ht._M_element_count;
+@@ -1019,7 +1054,7 @@
+ if (_M_bucket_count != __ht._M_bucket_count)
+ {
+ __former_buckets = _M_buckets;
+- _M_buckets = this->_M_allocate_buckets(__ht._M_bucket_count);
++ _M_buckets = _M_allocate_buckets(__ht._M_bucket_count);
+ _M_bucket_count = __ht._M_bucket_count;
+ }
+ else
+@@ -1093,10 +1128,18 @@
+ _M_element_count(__ht._M_element_count),
+ _M_rehash_policy(__ht._M_rehash_policy)
+ {
++ // Update, if necessary, buckets if __ht is using its single bucket.
++ if (__ht._M_uses_single_bucket())
++ {
++ _M_buckets = &_M_single_bucket;
++ _M_single_bucket = __ht._M_single_bucket;
++ }
++
+ // Update, if necessary, bucket pointing to before begin that hasn't
+ // moved.
+ if (_M_begin())
+ _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin;
++
+ __ht._M_reset();
+ }
+
+@@ -1139,7 +1182,14 @@
+ {
+ if (__ht._M_node_allocator() == this->_M_node_allocator())
+ {
+- _M_buckets = __ht._M_buckets;
++ if (__ht._M_uses_single_bucket())
++ {
++ _M_buckets = &_M_single_bucket;
++ _M_single_bucket = __ht._M_single_bucket;
++ }
++ else
++ _M_buckets = __ht._M_buckets;
++
+ _M_before_begin._M_nxt = __ht._M_before_begin._M_nxt;
+ // Update, if necessary, bucket pointing to before begin that hasn't
+ // moved.
+@@ -1189,15 +1239,34 @@
+
+ std::__alloc_on_swap(this->_M_node_allocator(), __x._M_node_allocator());
+ std::swap(_M_rehash_policy, __x._M_rehash_policy);
+- std::swap(_M_buckets, __x._M_buckets);
++
++ // Deal properly with potentially moved instances.
++ if (this->_M_uses_single_bucket())
++ {
++ if (!__x._M_uses_single_bucket())
++ {
++ _M_buckets = __x._M_buckets;
++ __x._M_buckets = &__x._M_single_bucket;
++ }
++ }
++ else if (__x._M_uses_single_bucket())
++ {
++ __x._M_buckets = _M_buckets;
++ _M_buckets = &_M_single_bucket;
++ }
++ else
++ std::swap(_M_buckets, __x._M_buckets);
++
+ std::swap(_M_bucket_count, __x._M_bucket_count);
+ std::swap(_M_before_begin._M_nxt, __x._M_before_begin._M_nxt);
+ std::swap(_M_element_count, __x._M_element_count);
++ std::swap(_M_single_bucket, __x._M_single_bucket);
+
+ // Fix buckets containing the _M_before_begin pointers that can't be
+ // swapped.
+ if (_M_begin())
+ _M_buckets[_M_bucket_index(_M_begin())] = &_M_before_begin;
++
+ if (__x._M_begin())
+ __x._M_buckets[__x._M_bucket_index(__x._M_begin())]
+ = &__x._M_before_begin;
+@@ -1230,9 +1299,6 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ find(const key_type& __k)
+ {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return end();
+-
+ __hash_code __code = this->_M_hash_code(__k);
+ std::size_t __n = _M_bucket_index(__k, __code);
+ __node_type* __p = _M_find_node(__n, __k, __code);
+@@ -1250,9 +1316,6 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ find(const key_type& __k) const
+ {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return end();
+-
+ __hash_code __code = this->_M_hash_code(__k);
+ std::size_t __n = _M_bucket_index(__k, __code);
+ __node_type* __p = _M_find_node(__n, __k, __code);
+@@ -1270,9 +1333,6 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ count(const key_type& __k) const
+ {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return 0;
+-
+ __hash_code __code = this->_M_hash_code(__k);
+ std::size_t __n = _M_bucket_index(__k, __code);
+ __node_type* __p = _M_bucket_begin(__n);
+@@ -1287,7 +1347,7 @@
+ else if (__result)
+ // All equivalent values are next to each other, if we
+ // found a non-equivalent value after an equivalent one it
+- // means that we won't find any more equivalent values.
++ // means that we won't find any new equivalent value.
+ break;
+ if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
+ break;
+@@ -1311,9 +1371,6 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ equal_range(const key_type& __k)
+ {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return std::make_pair(end(), end());
+-
+ __hash_code __code = this->_M_hash_code(__k);
+ std::size_t __n = _M_bucket_index(__k, __code);
+ __node_type* __p = _M_find_node(__n, __k, __code);
+@@ -1347,9 +1404,6 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ equal_range(const key_type& __k) const
+ {
+- if (__builtin_expect(_M_bucket_count == 0, false))
+- return std::make_pair(end(), end());
+-
+ __hash_code __code = this->_M_hash_code(__k);
+ std::size_t __n = _M_bucket_index(__k, __code);
+ __node_type* __p = _M_find_node(__n, __k, __code);
+@@ -1944,7 +1998,7 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ _M_rehash_aux(size_type __n, std::true_type)
+ {
+- __bucket_type* __new_buckets = this->_M_allocate_buckets(__n);
++ __bucket_type* __new_buckets = _M_allocate_buckets(__n);
+ __node_type* __p = _M_begin();
+ _M_before_begin._M_nxt = nullptr;
+ std::size_t __bbegin_bkt = 0;
+@@ -1969,8 +2023,7 @@
+ __p = __next;
+ }
+
+- if (__builtin_expect(_M_bucket_count != 0, true))
+- _M_deallocate_buckets();
++ _M_deallocate_buckets();
+ _M_bucket_count = __n;
+ _M_buckets = __new_buckets;
+ }
+@@ -1986,7 +2039,7 @@
+ _H1, _H2, _Hash, _RehashPolicy, _Traits>::
+ _M_rehash_aux(size_type __n, std::false_type)
+ {
+- __bucket_type* __new_buckets = this->_M_allocate_buckets(__n);
++ __bucket_type* __new_buckets = _M_allocate_buckets(__n);
+
+ __node_type* __p = _M_begin();
+ _M_before_begin._M_nxt = nullptr;
+@@ -2060,8 +2113,7 @@
+ __new_buckets[__next_bkt] = __prev_p;
+ }
+
+- if (__builtin_expect(_M_bucket_count != 0, true))
+- _M_deallocate_buckets();
++ _M_deallocate_buckets();
+ _M_bucket_count = __n;
+ _M_buckets = __new_buckets;
+ }
Index: libstdc++-v3/include/bits/stl_vector.h
===================================================================
--- a/src/libstdc++-v3/include/bits/stl_vector.h (.../tags/gcc_4_9_0_release)
@@ -1241,7 +1579,15 @@ Index: libstdc++-v3/ChangeLog
===================================================================
--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_4_9_0_release)
+++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-4_9-branch)
-@@ -1,3 +1,96 @@
+@@ -1,3 +1,104 @@
++2014-05-23 François Dumont <fdumont@gcc.gnu.org>
++
++ PR libstdc++/61143
++ * include/bits/hashtable.h: Fix move semantic to leave hashtable in a
++ usable state.
++ * testsuite/23_containers/unordered_set/61143.cc: New.
++ * testsuite/23_containers/unordered_set/modifiers/swap.cc: New.
++
+2014-05-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/60966
@@ -1720,6 +2066,119 @@ Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructo
#include <vector>
#include <utility>
+Index: libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc (.../tags/gcc_4_9_0_release)
++++ b/src/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc (.../branches/gcc-4_9-branch)
+@@ -0,0 +1,65 @@
++// Copyright (C) 2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3. If not see
++// <http://www.gnu.org/licenses/>.
++
++// { dg-options "-std=gnu++11" }
++
++#include <unordered_set>
++#include <testsuite_hooks.h>
++
++void test01()
++{
++ bool test __attribute__((unused)) = true;
++ std::unordered_set<int> us1 { 0, 1 };
++ {
++ std::unordered_set<int> us2(std::move(us1));
++
++ us1.swap(us2);
++
++ VERIFY( us1.find(0) != us1.end() );
++
++ us1.insert(2);
++
++ VERIFY( us1.size() == 3 );
++
++ us2.swap(us1);
++
++ VERIFY( us2.size() == 3 );
++ VERIFY( us2.find(2) != us2.end() );
++
++ us1 = { 3, 4, 5 };
++
++ VERIFY( us1.size() == 3 );
++ VERIFY( us1.bucket_count() >= 3 );
++
++ std::unordered_set<int> us3(std::move(us1));
++ us3 = std::move(us2);
++
++ us1.swap(us2);
++
++ VERIFY( us1.empty() );
++ VERIFY( us2.empty() );
++ }
++
++ us1 = { 0, 1 };
++ VERIFY( us1.size() == 2 );
++}
++
++int main()
++{
++ test01();
++ return 0;
++}
+Index: libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc (.../tags/gcc_4_9_0_release)
++++ b/src/libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc (.../branches/gcc-4_9-branch)
+@@ -0,0 +1,38 @@
++// { dg-options "-std=gnu++11" }
++
++// Copyright (C) 2014 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3. If not see
++// <http://www.gnu.org/licenses/>.
++
++// libstdc++/61143
++
++#include <unordered_set>
++
++void test01()
++{
++ std::unordered_set<int> us1, us2;
++ us1.insert(1);
++
++ us2 = std::move(us1);
++
++ us1.insert(1);
++}
++
++int main()
++{
++ test01();
++ return 0;
++}
Index: libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
===================================================================
--- a/src/libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc (.../tags/gcc_4_9_0_release)
@@ -2319,7 +2778,13 @@ Index: gcc/c/ChangeLog
===================================================================
--- a/src/gcc/c/ChangeLog (.../tags/gcc_4_9_0_release)
+++ b/src/gcc/c/ChangeLog (.../branches/gcc-4_9-branch)
-@@ -1,3 +1,15 @@
+@@ -1,3 +1,21 @@
++2014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
++
++ PR c/61191
++ * c-array-notation.c (fix_builtin_array_notation_fn): Check invalid
++ function parameters.
++
+2014-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ * c-parser.c (c_parser_omp_atomic): Allow seq_cst before
@@ -2399,6 +2864,19 @@ Index: gcc/c/c-parser.c
OMP_PARALLEL_COMBINED (stmt) = 1;
return stmt;
}
+Index: gcc/c/c-array-notation.c
+===================================================================
+--- a/src/gcc/c/c-array-notation.c (.../tags/gcc_4_9_0_release)
++++ b/src/gcc/c/c-array-notation.c (.../branches/gcc-4_9-branch)
+@@ -229,6 +229,8 @@
+ /* Fully fold any EXCESSIVE_PRECISION EXPR that can occur in the function
+ parameter. */
+ func_parm = c_fully_fold (func_parm, false, NULL);
++ if (func_parm == error_mark_node)
++ return error_mark_node;
+
+ location = EXPR_LOCATION (an_builtin_fn);
+
Index: gcc/cgraph.h
===================================================================
--- a/src/gcc/cgraph.h (.../tags/gcc_4_9_0_release)
@@ -2417,7 +2895,7 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_9-branch)
@@ -1 +1 @@
-20140422
-+20140523
++20140526
Index: gcc/tree-tailcall.c
===================================================================
--- a/src/gcc/tree-tailcall.c (.../tags/gcc_4_9_0_release)
@@ -2911,7 +3389,13 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_4_9_0_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_9-branch)
-@@ -1,3 +1,812 @@
+@@ -1,3 +1,817 @@
++2014-05-26 Michael Tautschnig <mt@debian.org>
++
++ PR target/61249
++ * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
++ __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
++
+2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/61215
@@ -2942,8 +3426,7 @@ Index: gcc/ChangeLog
+
+2014-05-22 Nick Clifton <nickc@redhat.com>
+
-+ * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted
-+ options.
++ * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
+
+2014-05-22 Jakub Jelinek <jakub@redhat.com>
+
@@ -2974,9 +3457,11 @@ Index: gcc/ChangeLog
+2014-05-20 Jan Hubicka <hubicka@ucw.cz>
+
+ PR bootstrap/60984
-+ * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED parameter.
++ * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
++ parameter.
+ * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
-+ (ipa_inline): Loop inline_to_all_callers until no more aliases are removed.
++ (ipa_inline): Loop inline_to_all_callers until no more aliases
++ are removed.
+
+2014-05-20 Jan Hubicka <hubicka@ucw.cz>
+
@@ -3014,10 +3499,8 @@ Index: gcc/ChangeLog
+
+ * ipa.c (symtab_remove_unreachable_nodes): Remove
+ symbol from comdat group if its body was eliminated.
-+ (comdat_can_be_unshared_p_1): Static symbols can always
-+ be privatized.
-+ * symtab.c (symtab_remove_from_same_comdat_group): Break out
-+ from ...
++ (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
++ * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
+ (symtab_unregister_node): ... this one.
+ (verify_symtab_base): More strict checking of comdats.
+ * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
@@ -3079,7 +3562,7 @@ Index: gcc/ChangeLog
+
+2014-05-14 Cary Coutant <ccoutant@google.com>
+
-+ PR debug/61013
++ PR debug/61013
+ * opts.c (common_handle_option): Don't special-case "-g".
+ (set_debug_level): Default to at least level 2 with "-g".
+
@@ -3724,7 +4207,7 @@ Index: gcc/ChangeLog
2014-04-22 Release Manager
* GCC 4.9.0 released.
-@@ -59,8 +873,7 @@
+@@ -59,8 +878,7 @@
2014-04-11 Tobias Burnus <burnus@net-b.de>
PR other/59055
@@ -3734,7 +4217,7 @@ Index: gcc/ChangeLog
* doc/gcc.texi (Service): Update description in the @menu
* doc/invoke.texi (Option Summary): Remove misplaced and
duplicated @menu.
-@@ -86,15 +899,14 @@
+@@ -86,15 +904,14 @@
2014-04-11 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/60663
@@ -3753,7 +4236,7 @@ Index: gcc/ChangeLog
2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
-@@ -212,9 +1024,10 @@
+@@ -212,9 +1029,10 @@
2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
@@ -3767,7 +4250,7 @@ Index: gcc/ChangeLog
* config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
* config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
-@@ -282,21 +1095,21 @@
+@@ -282,21 +1100,21 @@
2014-04-04 Martin Jambor <mjambor@suse.cz>
PR ipa/60640
@@ -3800,7 +4283,7 @@ Index: gcc/ChangeLog
moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
2014-04-04 Jeff Law <law@redhat.com>
-@@ -334,8 +1147,8 @@
+@@ -334,8 +1152,8 @@
PR tree-optimization/60505
* tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
@@ -3811,7 +4294,7 @@ Index: gcc/ChangeLog
* tree-vect-loop.c (new_loop_vec_info):
Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
* tree-vect-loop.c (vect_analyze_loop_operations):
-@@ -347,8 +1160,7 @@
+@@ -347,8 +1165,7 @@
2014-04-03 Richard Biener <rguenther@suse.de>
@@ -3821,7 +4304,7 @@ Index: gcc/ChangeLog
(streamer_tree_cache_create): Adjust.
* tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
to allow optional nodes array.
-@@ -359,8 +1171,7 @@
+@@ -359,8 +1176,7 @@
* lto-streamer-out.c (create_output_block): Avoid maintaining
the node array in the writer cache.
(DFS_write_tree): Remove assertion.
@@ -3831,7 +4314,7 @@ Index: gcc/ChangeLog
* lto-streamer-in.c (lto_data_in_create): Adjust for
streamer_tree_cache_create prototype change.
-@@ -381,24 +1192,6 @@
+@@ -381,24 +1197,6 @@
(Weffc++): Remove Scott's numbering, merge lists and reference
Wnon-virtual-dtor.
@@ -3856,7 +4339,7 @@ Index: gcc/ChangeLog
2014-04-03 Nick Clifton <nickc@redhat.com>
* config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
-@@ -414,8 +1207,8 @@
+@@ -414,8 +1212,8 @@
2014-04-02 Jan Hubicka <hubicka@ucw.cz>
PR ipa/60659
@@ -3867,7 +4350,7 @@ Index: gcc/ChangeLog
(possible_polymorphic_call_targets): For inconsistent contexts
return empty complete list.
-@@ -519,8 +1312,7 @@
+@@ -519,8 +1317,7 @@
2014-04-01 Richard Biener <rguenther@suse.de>
@@ -5899,7 +6382,13 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_9_0_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_9-branch)
-@@ -1,3 +1,341 @@
+@@ -1,3 +1,347 @@
++2014-05-26 Igor Zamyatin <igor.zamyatin@intel.com>
++
++ PR c/61191
++ * c-c++-common/cilk-plus/AN/pr61191.c: Check for correct handling of
++ the case with syntax error.
++
+2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
+
+ * gcc.target/powerpc/htm-ttest.c: New test.
@@ -6241,7 +6730,7 @@ Index: gcc/testsuite/ChangeLog
2014-04-22 Release Manager
* GCC 4.9.0 released.
-@@ -51,7 +389,7 @@
+@@ -51,7 +395,7 @@
2014-04-12 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60810
@@ -6250,7 +6739,7 @@ Index: gcc/testsuite/ChangeLog
2014-04-11 Steve Ellcey <sellcey@mips.com>
Jakub Jelinek <jakub@redhat.com>
-@@ -135,8 +473,7 @@
+@@ -135,8 +479,7 @@
2014-04-08 Jason Merrill <jason@redhat.com>
@@ -6260,7 +6749,7 @@ Index: gcc/testsuite/ChangeLog
2014-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-@@ -256,10 +593,10 @@
+@@ -256,10 +599,10 @@
2014-04-04 Martin Jambor <mjambor@suse.cz>
PR ipa/60640
@@ -6275,7 +6764,7 @@ Index: gcc/testsuite/ChangeLog
2014-04-04 Jeff Law <law@redhat.com>
-@@ -371,7 +708,7 @@
+@@ -371,7 +714,7 @@
2014-04-01 Fabien ChĂȘne <fabien@gcc.gnu.org>
@@ -6284,7 +6773,7 @@ Index: gcc/testsuite/ChangeLog
* g++.dg/init/ctor4-1.C: New.
* g++.dg/cpp0x/defaulted2.C: Adjust.
-@@ -459,8 +796,8 @@
+@@ -459,8 +802,8 @@
2014-03-27 Jeff Law <law@redhat.com>
@@ -6295,7 +6784,7 @@ Index: gcc/testsuite/ChangeLog
2014-03-28 Adam Butcher <adam@jessamine.co.uk>
-@@ -493,14 +830,13 @@
+@@ -493,14 +836,13 @@
2014-03-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
@@ -6313,7 +6802,7 @@ Index: gcc/testsuite/ChangeLog
of second source operand.
* gcc.target/i386/avx512f-vshuff64x2-2.c: Ditto.
* gcc.target/i386/avx512f-vshufi32x4-2.c: Ditto.
-@@ -635,8 +971,8 @@
+@@ -635,8 +977,8 @@
2014-03-24 Marek Polacek <polacek@redhat.com>
@@ -6324,7 +6813,7 @@ Index: gcc/testsuite/ChangeLog
* c-c++-common/ubsan/overflow-1.c: Check for unwanted output.
* c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
-@@ -721,8 +1057,7 @@
+@@ -721,8 +1063,7 @@
2014-03-21 Tobias Burnus <burnus@net-b.de>
PR fortran/60599
@@ -6334,7 +6823,7 @@ Index: gcc/testsuite/ChangeLog
2014-03-20 Jakub Jelinek <jakub@redhat.com>
-@@ -1540,8 +1875,7 @@
+@@ -1540,8 +1881,7 @@
2014-02-19 Paul Pluzhnikov <ppluzhnikov@google.com>
@@ -6344,7 +6833,7 @@ Index: gcc/testsuite/ChangeLog
2014-02-19 Jakub Jelinek <jakub@redhat.com>
-@@ -1850,8 +2184,7 @@
+@@ -1850,8 +2190,7 @@
2014-02-10 Jakub Jelinek <jakub@redhat.com>
@@ -6354,7 +6843,7 @@ Index: gcc/testsuite/ChangeLog
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
-@@ -3098,8 +3431,8 @@
+@@ -3098,8 +3437,8 @@
* gfortran.dg/vect/fast-math-mgrid-resid.f: Change
-fdump-tree-optimized to -fdump-tree-pcom-details in dg-options and
cleanup-tree-dump from optimized to pcom. Remove scan-tree-dump-times
@@ -6922,6 +7411,21 @@ Index: gcc/testsuite/c-c++-common/cilk-plus/CK/invalid_sync.cc
+ _Cilk_sync return; /* { dg-error " expected ';' before 'return'" } */
+ return 0;
+}
+Index: gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c
+===================================================================
+--- a/src/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c (.../tags/gcc_4_9_0_release)
++++ b/src/gcc/testsuite/c-c++-common/cilk-plus/AN/pr61191.c (.../branches/gcc-4_9-branch)
+@@ -0,0 +1,10 @@
++/* PR c/61191 */
++/* { dg-do compile } */
++/* { dg-options "-fcilkplus" } */
++
++double f(double * A, double * B)
++{
++ return __sec_reduce_add((B[0:500])(;
++/* { dg-error "expected expression before ';' token" "" {target *-*-*} 7 } */
++/* { dg-error "called object" "" {target *-*-*} 7 } */
++} /* { dg-error "expected" } */
Index: gcc/testsuite/c-c++-common/torture/pr60971.c
===================================================================
--- a/src/gcc/testsuite/c-c++-common/torture/pr60971.c (.../tags/gcc_4_9_0_release)