summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-05-08 11:55:34 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-05-08 11:55:34 +0000
commit2951ec3f2c9bd51093c429401c67fd65885c4366 (patch)
tree49e13abf85309a47702a2d80246474536de30d32
parent4d74d3c07fe530baa73df907f7a4676a47341f07 (diff)
downloadgcc-48-2951ec3f2c9bd51093c429401c67fd65885c4366.tar.gz
* Update to SVN 20140508 (r210209) from the gcc-4_8-branch.
git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.8@7364 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/svn-updates.diff507
2 files changed, 477 insertions, 32 deletions
diff --git a/debian/changelog b/debian/changelog
index 1a41ead..9db3e88 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
gcc-4.8 (4.8.2-22) UNRELEASED; urgency=medium
- * Update to SVN 20140505 (r210076) from the gcc-4_8-branch.
+ * Update to SVN 20140508 (r210209) from the gcc-4_8-branch.
* Install only versioned gcc-ar gcc-nm gcc-ranlib binaries for the hppa64
cross compiler, update hppa64 alternatives. Closes: #745967.
* Fix the as and ld symlinks for the hppa64 cross compiler.
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 139ea0f..f17eeb2 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 4.8 branch upto 20140505 (r210076).
+# DP: updates from the 4.8 branch upto 20140508 (r210209).
last_updated()
{
cat > ${dir}LAST_UPDATED <<EOF
-Mon May 5 20:24:06 CEST 2014
-Mon May 5 18:24:06 UTC 2014 (revision 210076)
+Thu May 8 13:38:43 CEST 2014
+Thu May 8 11:38:43 UTC 2014 (revision 210209)
EOF
}
@@ -4059,6 +4059,36 @@ Index: libstdc++-v3/include/std/future
{ }
// _GLIBCXX_RESOLVE_LIB_DEFECTS
+Index: libstdc++-v3/include/std/functional
+===================================================================
+--- a/src/libstdc++-v3/include/std/functional (.../tags/gcc_4_8_2_release)
++++ b/src/libstdc++-v3/include/std/functional (.../branches/gcc-4_8-branch)
+@@ -2181,8 +2181,15 @@
+ using _Invoke = decltype(__callable_functor(std::declval<_Functor&>())
+ (std::declval<_ArgTypes>()...) );
+
++ // Used so the return type convertibility checks aren't done when
++ // performing overload resolution for copy construction/assignment.
++ template<typename _Tp>
++ using _NotSelf = __not_<is_same<_Tp, function>>;
++
+ template<typename _Functor>
+- using _Callable = __check_func_return_type<_Invoke<_Functor>, _Res>;
++ using _Callable
++ = __and_<_NotSelf<_Functor>,
++ __check_func_return_type<_Invoke<_Functor>, _Res>>;
+
+ template<typename _Cond, typename _Tp>
+ using _Requires = typename enable_if<_Cond::value, _Tp>::type;
+@@ -2323,7 +2330,7 @@
+ * reference_wrapper<F>, this function will not throw.
+ */
+ template<typename _Functor>
+- _Requires<_Callable<_Functor>, function&>
++ _Requires<_Callable<typename decay<_Functor>::type>, function&>
+ operator=(_Functor&& __f)
+ {
+ function(std::forward<_Functor>(__f)).swap(*this);
Index: libstdc++-v3/include/bits/atomic_base.h
===================================================================
--- a/src/libstdc++-v3/include/bits/atomic_base.h (.../tags/gcc_4_8_2_release)
@@ -4160,7 +4190,17 @@ Index: libstdc++-v3/ChangeLog
===================================================================
--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_4_8_2_release)
+++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-4_8-branch)
-@@ -1,3 +1,178 @@
+@@ -1,3 +1,188 @@
++2014-05-06 Jonathan Wakely <jwakely@redhat.com>
++
++ Backport from mainline
++ 2014-04-15 Jonathan Wakely <jwakely@redhat.com>
++
++ PR libstdc++/60594
++ * include/std/functional (function::_Callable): Exclude own type
++ from the callable checks.
++ * testsuite/20_util/function/60594.cc: New.
++
+2014-04-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/60497
@@ -4893,6 +4933,47 @@ Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
+ std::unique_ptr<void, D> y;
+ std::shared_ptr<void> x = std::move(y);
+}
+Index: libstdc++-v3/testsuite/20_util/function/60594.cc
+===================================================================
+--- a/src/libstdc++-v3/testsuite/20_util/function/60594.cc (.../tags/gcc_4_8_2_release)
++++ b/src/libstdc++-v3/testsuite/20_util/function/60594.cc (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,36 @@
++// { dg-options "-std=gnu++11" }
++// { dg-do compile }
++
++// Copyright (C) 2011-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++/60594
++
++#include <functional>
++#include <type_traits>
++struct bar;
++using F = std::function<bar()>;
++// check for copy constructible and assignable while 'bar' is incomplete
++constexpr int c = std::is_copy_constructible<F>::value;
++constexpr int a = std::is_copy_assignable<F>::value;
++struct bar { };
++bar func();
++void test()
++{
++ F g{ &func };
++ g = func;
++}
Index: libstdc++-v3/testsuite/20_util/bind/57899.cc
===================================================================
--- a/src/libstdc++-v3/testsuite/20_util/bind/57899.cc (.../tags/gcc_4_8_2_release)
@@ -8007,6 +8088,42 @@ Index: gcc/tree-ssa-loop-im.c
}
}
+@@ -1992,6 +2067,7 @@
+ gimple_stmt_iterator gsi;
+ gimple stmt;
+ struct prev_flag_edges *prev_edges = (struct prev_flag_edges *) ex->aux;
++ bool irr = ex->flags & EDGE_IRREDUCIBLE_LOOP;
+
+ /* ?? Insert store after previous store if applicable. See note
+ below. */
+@@ -2006,8 +2082,9 @@
+ old_dest = ex->dest;
+ new_bb = split_edge (ex);
+ then_bb = create_empty_bb (new_bb);
+- if (current_loops && new_bb->loop_father)
+- add_bb_to_loop (then_bb, new_bb->loop_father);
++ if (irr)
++ then_bb->flags = BB_IRREDUCIBLE_LOOP;
++ add_bb_to_loop (then_bb, new_bb->loop_father);
+
+ gsi = gsi_start_bb (new_bb);
+ stmt = gimple_build_cond (NE_EXPR, flag, boolean_false_node,
+@@ -2019,9 +2096,12 @@
+ stmt = gimple_build_assign (unshare_expr (mem), tmp_var);
+ gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING);
+
+- make_edge (new_bb, then_bb, EDGE_TRUE_VALUE);
+- make_edge (new_bb, old_dest, EDGE_FALSE_VALUE);
+- then_old_edge = make_edge (then_bb, old_dest, EDGE_FALLTHRU);
++ make_edge (new_bb, then_bb,
++ EDGE_TRUE_VALUE | (irr ? EDGE_IRREDUCIBLE_LOOP : 0));
++ make_edge (new_bb, old_dest,
++ EDGE_FALSE_VALUE | (irr ? EDGE_IRREDUCIBLE_LOOP : 0));
++ then_old_edge = make_edge (then_bb, old_dest,
++ EDGE_FALLTHRU | (irr ? EDGE_IRREDUCIBLE_LOOP : 0));
+
+ set_immediate_dominator (CDI_DOMINATORS, then_bb, new_bb);
+
Index: gcc/tree-ssa-tail-merge.c
===================================================================
--- a/src/gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_8_2_release)
@@ -8358,7 +8475,20 @@ Index: gcc/c-family/c-opts.c
===================================================================
--- a/src/gcc/c-family/c-opts.c (.../tags/gcc_4_8_2_release)
+++ b/src/gcc/c-family/c-opts.c (.../branches/gcc-4_8-branch)
-@@ -1258,17 +1258,18 @@
+@@ -840,6 +840,12 @@
+ if (flag_objc_exceptions && !flag_objc_sjlj_exceptions)
+ flag_exceptions = 1;
+
++ /* If -ffreestanding, -fno-hosted or -fno-builtin then disable
++ pattern recognition. */
++ if (!global_options_set.x_flag_tree_loop_distribute_patterns
++ && flag_no_builtin)
++ flag_tree_loop_distribute_patterns = 0;
++
+ /* -Woverlength-strings is off by default, but is enabled by -Wpedantic.
+ It is never enabled in C++, as the minimum limit is not normative
+ in that standard. */
+@@ -1258,17 +1264,18 @@
{
size_t i;
@@ -8390,7 +8520,13 @@ Index: gcc/c-family/ChangeLog
===================================================================
--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_4_8_2_release)
+++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-4_8-branch)
-@@ -1,3 +1,72 @@
+@@ -1,3 +1,78 @@
++2014-05-06 Richard Biener <rguenther@suse.de>
++
++ * c-opts.c (c_common_post_options): For -freestanding,
++ -fno-hosted and -fno-builtin disable pattern recognition
++ if not enabled explicitely.
++
+2014-04-10 Jakub Jelinek <jakub@redhat.com>
+
+ Backport from mainline
@@ -9019,7 +9155,7 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_8-branch)
@@ -1 +1 @@
-20131016
-+20140505
++20140508
Index: gcc/value-prof.c
===================================================================
--- a/src/gcc/value-prof.c (.../tags/gcc_4_8_2_release)
@@ -9685,7 +9821,25 @@ Index: gcc/fold-const.c
===================================================================
--- a/src/gcc/fold-const.c (.../tags/gcc_4_8_2_release)
+++ b/src/gcc/fold-const.c (.../branches/gcc-4_8-branch)
-@@ -2664,10 +2664,11 @@
+@@ -461,8 +461,6 @@
+
+ case TRUNC_DIV_EXPR:
+ case ROUND_DIV_EXPR:
+- case FLOOR_DIV_EXPR:
+- case CEIL_DIV_EXPR:
+ case EXACT_DIV_EXPR:
+ /* In general we can't negate A / B, because if A is INT_MIN and
+ B is 1, we may turn this into INT_MIN / -1 which is undefined
+@@ -644,8 +642,6 @@
+
+ case TRUNC_DIV_EXPR:
+ case ROUND_DIV_EXPR:
+- case FLOOR_DIV_EXPR:
+- case CEIL_DIV_EXPR:
+ case EXACT_DIV_EXPR:
+ /* In general we can't negate A / B, because if A is INT_MIN and
+ B is 1, we may turn this into INT_MIN / -1 which is undefined
+@@ -2664,10 +2660,11 @@
case COMPONENT_REF:
/* Handle operand 2 the same as for ARRAY_REF. Operand 0
may be NULL when we're called to compare MEM_EXPRs. */
@@ -9699,7 +9853,7 @@ Index: gcc/fold-const.c
case BIT_FIELD_REF:
if (!OP_SAME (0))
-@@ -4920,12 +4921,16 @@
+@@ -4920,12 +4917,16 @@
int in0_p, in1_p, in_p;
tree low0, low1, low, high0, high1, high;
bool strict_overflow_p = false;
@@ -9719,7 +9873,7 @@ Index: gcc/fold-const.c
/* If this is an OR operation, invert both sides; we will invert
again at the end. */
if (or_op)
-@@ -10927,6 +10932,13 @@
+@@ -10927,6 +10928,13 @@
fold_build2_loc (loc, MULT_EXPR, type,
build_int_cst (type, 2) , arg1));
@@ -9733,7 +9887,7 @@ Index: gcc/fold-const.c
strict_overflow_p = false;
if (TREE_CODE (arg1) == INTEGER_CST
&& 0 != (tem = extract_muldiv (op0, arg1, code, NULL_TREE,
-@@ -16587,7 +16599,7 @@
+@@ -16587,7 +16595,7 @@
unsigned HOST_WIDE_INT indexi = offset * BITS_PER_UNIT;
tree index = bitsize_int (indexi);
@@ -9961,7 +10115,45 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_4_8_2_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_8-branch)
-@@ -1,3 +1,5329 @@
+@@ -1,3 +1,5367 @@
++2014-05-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
++
++ * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
++ Do not define target_cpu_default2 to generic.
++
++2014-05-06 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2014-04-14 Richard Biener <rguenther@suse.de>
++
++ PR middle-end/55022
++ * fold-const.c (negate_expr_p): Don't negate directional rounding
++ division.
++ (fold_negate_expr): Likewise.
++
++2014-05-06 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2014-04-17 Richard Biener <rguenther@suse.de>
++
++ PR middle-end/60849
++ * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
++ boolean results for comparisons.
++
++ 2014-04-07 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/60766
++ * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an
++ unsigned type.
++ (may_eliminate_iv): Convert cand_value_at result to desired
++ type.
++
++ 2014-04-23 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/60903
++ * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply
++ IRREDUCIBLE_LOOP loop flags to newly created BBs and edges.
++
+2014-05-05 Richard Biener <rguenther@suse.de>
+
+ Backport from mainline
@@ -15291,7 +15483,7 @@ Index: gcc/ChangeLog
2013-10-16 Release Manager
* GCC 4.8.2 released.
-@@ -639,7 +5970,7 @@
+@@ -639,7 +6008,7 @@
2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Backport from mainline
@@ -31167,6 +31359,38 @@ Index: gcc/testsuite/gcc.dg/20050922-2.c
#if __INT_MAX__ == 2147483647
typedef unsigned int uint32_t;
+Index: gcc/testsuite/gcc.dg/graphite/pr55022.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/graphite/pr55022.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/testsuite/gcc.dg/graphite/pr55022.c (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,27 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -fgraphite-identity" } */
++
++extern void abort (void);
++
++void __attribute__((noinline,noclone))
++f(int *limit, int minLen, int maxLen)
++{
++ int i;
++
++ for (i = minLen; i <= maxLen; i++) {
++ limit[i] = i;
++ }
++}
++
++int main()
++{
++ int limit[256], i;
++ f (limit, 0, 255);
++ for (i = 0; i < 256; ++i)
++ {
++ if (limit[i] != i)
++ abort ();
++ __asm__ volatile ("" : : : "memory");
++ }
++ return 0;
++}
Index: gcc/testsuite/gcc.dg/graphite/pr59817-2.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/graphite/pr59817-2.c (.../tags/gcc_4_8_2_release)
@@ -31755,6 +31979,33 @@ Index: gcc/testsuite/gcc.dg/torture/pr58079.c
+ dvb_dmx_swfilter_packet(demux, buf);
+ }
+}
+Index: gcc/testsuite/gcc.dg/torture/pr60903.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr60903.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr60903.c (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++
++extern int a, b, k, q;
++
++void
++foo ()
++{
++ if (a)
++ {
++ while (q)
++ {
++ lbl:
++ if (a)
++ {
++ a = 0;
++ goto lbl;
++ }
++ }
++ b = k;
++ }
++ goto lbl;
++}
Index: gcc/testsuite/gcc.dg/torture/pr58830.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/torture/pr58830.c (.../tags/gcc_4_8_2_release)
@@ -32208,6 +32459,48 @@ Index: gcc/testsuite/gcc.dg/torture/pr53922.c
int x(int a)
{
+Index: gcc/testsuite/gcc.dg/torture/pr57864.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr57864.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr57864.c (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,37 @@
++/* { dg-do compile } */
++
++union U {
++ double val;
++ union U *ptr;
++};
++
++union U *d;
++double a;
++int b;
++int c;
++
++static void fn1(union U *p1, int p2, _Bool p3)
++{
++ union U *e;
++
++ if (p2 == 0)
++ a = ((union U*)((unsigned long)p1 & ~1))->val;
++
++ if (b) {
++ e = p1;
++ } else if (c) {
++ e = ((union U*)((unsigned long)p1 & ~1))->ptr;
++ d = e;
++ } else {
++ e = 0;
++ d = ((union U*)0)->ptr;
++ }
++
++ fn1 (e, 0, 0);
++ fn1 (0, 0, p3);
++}
++
++void fn2 (void)
++{
++ fn1 (0, 0, 0);
++}
Index: gcc/testsuite/gcc.dg/torture/pr59288.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/torture/pr59288.c (.../tags/gcc_4_8_2_release)
@@ -32222,6 +32515,26 @@ Index: gcc/testsuite/gcc.dg/torture/pr59288.c
+ for (i = 0, j = 0, k = 0; i < 512; i = (int) i + 1, j = (int) j + 1, k = (int) k + 3)
+ d[i] = j ^ (i * 3) ^ (2 * k + 2);
+}
+Index: gcc/testsuite/gcc.dg/torture/pr60766.c
+===================================================================
+--- a/src/gcc/testsuite/gcc.dg/torture/pr60766.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/testsuite/gcc.dg/torture/pr60766.c (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,15 @@
++/* { dg-do run } */
++
++int m = 9;
++
++int main()
++{
++ int n, x;
++
++ n = m;
++ for (x = 0; x <= n; x++)
++ if (n == x + (x + 1) + (x + 2))
++ return 0;
++
++ __builtin_abort();
++}
Index: gcc/testsuite/gcc.dg/torture/pr57425-1.c
===================================================================
--- a/src/gcc/testsuite/gcc.dg/torture/pr57425-1.c (.../tags/gcc_4_8_2_release)
@@ -32654,7 +32967,38 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_8_2_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_8-branch)
-@@ -1,3 +1,1796 @@
+@@ -1,3 +1,1827 @@
++2014-05-07 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/57864
++ * gcc.dg/torture/pr57864.c: New testcase.
++
++2014-05-06 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2014-04-14 Richard Biener <rguenther@suse.de>
++
++ PR middle-end/55022
++ * gcc.dg/graphite/pr55022.c: New testcase.
++
++2014-05-06 Richard Biener <rguenther@suse.de>
++
++ Backport from mainline
++ 2014-04-17 Richard Biener <rguenther@suse.de>
++
++ PR middle-end/60849
++ * g++.dg/opt/pr60849.C: New testcase.
++
++ 2014-04-07 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/60766
++ * gcc.dg/torture/pr60766.c: New testcase.
++
++ 2014-04-23 Richard Biener <rguenther@suse.de>
++
++ PR tree-optimization/60903
++ * gcc.dg/torture/pr60903.c: New testcase.
++
+2014-05-05 Richard Biener <rguenther@suse.de>
+
+ Backport from mainline
@@ -34451,7 +34795,7 @@ Index: gcc/testsuite/ChangeLog
2013-10-16 Release Manager
* GCC 4.8.2 released.
-@@ -39,9 +1832,9 @@
+@@ -39,9 +1863,9 @@
Backport from mainline
2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
@@ -34464,7 +34808,7 @@ Index: gcc/testsuite/ChangeLog
2013-10-04 Tobias Burnus <burnus@net-b.de>
-@@ -307,8 +2100,8 @@
+@@ -307,8 +2131,8 @@
Backport from mainline
2013-08-12 Perez Read <netfirewall@gmail.com>
@@ -34475,7 +34819,7 @@ Index: gcc/testsuite/ChangeLog
2013-08-11 Janus Weil <janus@gcc.gnu.org>
-@@ -494,7 +2287,7 @@
+@@ -494,7 +2318,7 @@
2013-06-19 Wei Mi <wmi@google.com>
PR rtl-optimization/57518
@@ -34484,7 +34828,7 @@ Index: gcc/testsuite/ChangeLog
2013-06-11 Tobias Burnus <burnus@net-b.de>
-@@ -623,8 +2416,8 @@
+@@ -623,8 +2447,8 @@
2013-05-09 Martin Jambor <mjambor@suse.cz>
@@ -34495,7 +34839,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-08 Marc Glisse <marc.glisse@inria.fr>
-@@ -701,7 +2494,7 @@
+@@ -701,7 +2525,7 @@
2013-04-25 Marek Polacek <polacek@redhat.com>
PR tree-optimization/57066
@@ -34504,7 +34848,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-02 Jakub Jelinek <jakub@redhat.com>
-@@ -727,8 +2520,8 @@
+@@ -727,8 +2551,8 @@
Backport from mainline
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
@@ -34515,7 +34859,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
-@@ -735,8 +2528,8 @@
+@@ -735,8 +2559,8 @@
Backport from mainline
2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
@@ -34526,7 +34870,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
-@@ -743,8 +2536,8 @@
+@@ -743,8 +2567,8 @@
Backport from mainline
2013-04-18 Jakub Jelinek <jakub@redhat.com>
@@ -34537,7 +34881,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
-@@ -751,8 +2544,8 @@
+@@ -751,8 +2575,8 @@
Backport from mainline
2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
@@ -34548,7 +34892,7 @@ Index: gcc/testsuite/ChangeLog
2013-05-02 Ian Bolton <ian.bolton@arm.com>
-@@ -1102,7 +2895,7 @@
+@@ -1102,7 +2926,7 @@
2013-03-29 Tobias Burnus <burnus@net-b.de>
PR fortran/56737
@@ -34557,7 +34901,7 @@ Index: gcc/testsuite/ChangeLog
2013-04-02 Richard Biener <rguenther@suse.de>
-@@ -1636,7 +3429,7 @@
+@@ -1636,7 +3460,7 @@
2013-02-20 Jan Hubicka <jh@suse.cz>
PR tree-optimization/56265
@@ -34566,7 +34910,7 @@ Index: gcc/testsuite/ChangeLog
2013-02-20 Richard Biener <rguenther@suse.de>
-@@ -1823,11 +3616,9 @@
+@@ -1823,11 +3647,9 @@
Avoid instrumenting duplicated memory access in the same basic block
* c-c++-common/asan/no-redundant-instrumentation-1.c: New test.
@@ -34795,6 +35139,24 @@ Index: gcc/testsuite/g++.dg/vect/pr60729.cc
+}
+
+// { dg-final { cleanup-tree-dump "vect" } }
+Index: gcc/testsuite/g++.dg/opt/pr60849.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/opt/pr60849.C (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/testsuite/g++.dg/opt/pr60849.C (.../branches/gcc-4_8-branch)
+@@ -0,0 +1,13 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++int g;
++
++extern "C" int isnan ();
++
++void foo(float a) {
++ int (*xx)(...);
++ xx = isnan;
++ if (xx(a))
++ g++;
++}
Index: gcc/testsuite/g++.dg/opt/pr59647.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/opt/pr59647.C (.../tags/gcc_4_8_2_release)
@@ -38325,6 +38687,41 @@ Index: gcc/builtins.def
DEF_C99_BUILTIN (BUILT_IN_FDIM, "fdim", BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
DEF_C99_BUILTIN (BUILT_IN_FDIMF, "fdimf", BT_FN_FLOAT_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
DEF_C99_BUILTIN (BUILT_IN_FDIML, "fdiml", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+Index: gcc/tree-ssa-loop-ivopts.c
+===================================================================
+--- a/src/gcc/tree-ssa-loop-ivopts.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/tree-ssa-loop-ivopts.c (.../branches/gcc-4_8-branch)
+@@ -4236,8 +4236,10 @@
+ tree steptype = type;
+ if (POINTER_TYPE_P (type))
+ steptype = sizetype;
++ steptype = unsigned_type_for (type);
+
+- tree_to_aff_combination (iv->step, steptype, &step);
++ tree_to_aff_combination (iv->step, TREE_TYPE (iv->step), &step);
++ aff_combination_convert (&step, steptype);
+ tree_to_aff_combination (niter, TREE_TYPE (niter), &nit);
+ aff_combination_convert (&nit, steptype);
+ aff_combination_mult (&nit, &step, &delta);
+@@ -4245,6 +4247,8 @@
+ aff_combination_add (&delta, &step);
+
+ tree_to_aff_combination (iv->base, type, val);
++ if (!POINTER_TYPE_P (type))
++ aff_combination_convert (val, steptype);
+ aff_combination_add (val, &delta);
+ }
+
+@@ -4623,7 +4627,8 @@
+
+ cand_value_at (loop, cand, use->stmt, desc->niter, &bnd);
+
+- *bound = aff_combination_to_tree (&bnd);
++ *bound = fold_convert (TREE_TYPE (cand->iv->base),
++ aff_combination_to_tree (&bnd));
+ *comp = iv_elimination_compare (data, use);
+
+ /* It is unlikely that computing the number of iterations using division
Index: gcc/mode-switching.c
===================================================================
--- a/src/gcc/mode-switching.c (.../tags/gcc_4_8_2_release)
@@ -38458,6 +38855,30 @@ Index: gcc/tree-ssa-math-opts.c
n->n = n1.n | n2.n;
if (!verify_symbolic_number_p (n, stmt))
+Index: gcc/tree-ssa-propagate.c
+===================================================================
+--- a/src/gcc/tree-ssa-propagate.c (.../tags/gcc_4_8_2_release)
++++ b/src/gcc/tree-ssa-propagate.c (.../branches/gcc-4_8-branch)
+@@ -556,8 +556,18 @@
+ /* All constants are ok. */
+ break;
+
++ case tcc_comparison:
++ /* GENERIC allows comparisons with non-boolean types, reject
++ those for GIMPLE. Let vector-typed comparisons pass - rules
++ for GENERIC and GIMPLE are the same here. */
++ if (!(INTEGRAL_TYPE_P (TREE_TYPE (expr))
++ && (TREE_CODE (TREE_TYPE (expr)) == BOOLEAN_TYPE
++ || TYPE_PRECISION (TREE_TYPE (expr)) == 1))
++ && TREE_CODE (TREE_TYPE (expr)) != VECTOR_TYPE)
++ return false;
++
++ /* Fallthru. */
+ case tcc_binary:
+- case tcc_comparison:
+ if (!is_gimple_val (TREE_OPERAND (expr, 0))
+ || !is_gimple_val (TREE_OPERAND (expr, 1)))
+ return false;
Index: gcc/sel-sched.c
===================================================================
--- a/src/gcc/sel-sched.c (.../tags/gcc_4_8_2_release)
@@ -45731,7 +46152,19 @@ Index: gcc/config.gcc
;;
esac
-@@ -3494,7 +3522,7 @@
+@@ -3122,6 +3150,11 @@
+ ${srcdir}/config/aarch64/$def | \
+ sed -e 's/^[^,]*,[ ]*//' | \
+ sed -e 's/,.*$//'`
++ # Extract the architecture flags from aarch64-arches.def
++ ext_mask=`grep "^$pattern(\"$base_val\"," \
++ ${srcdir}/config/aarch64/$def | \
++ sed -e 's/)$//' | \
++ sed -e 's/^.*,//'`
+ else
+ base_id=`grep "^$pattern(\"$base_val\"," \
+ ${srcdir}/config/aarch64/$def | \
+@@ -3494,7 +3527,7 @@
;;
powerpc*-*-* | rs6000-*-*)
@@ -45740,7 +46173,7 @@ Index: gcc/config.gcc
for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
eval "val=\$with_$which"
-@@ -3531,6 +3559,16 @@
+@@ -3531,6 +3564,16 @@
;;
esac
done
@@ -45757,7 +46190,7 @@ Index: gcc/config.gcc
;;
s390*-*-*)
-@@ -3587,7 +3625,7 @@
+@@ -3587,7 +3630,7 @@
case ${val} in
"" | sparc | sparcv9 | sparc64 \
| v7 | cypress \
@@ -45766,7 +46199,19 @@ Index: gcc/config.gcc
| sparclite | f930 | f934 | sparclite86x \
| sparclet | tsc701 \
| v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
-@@ -3745,15 +3783,6 @@
+@@ -3661,10 +3704,8 @@
+ target_cpu_default2=
+ case ${target} in
+ aarch64*-*-*)
+- if test x$target_cpu_cname = x
++ if test x"$target_cpu_cname" != x
+ then
+- target_cpu_default2=TARGET_CPU_generic
+- else
+ target_cpu_default2=$target_cpu_cname
+ fi
+ ;;
+@@ -3745,15 +3786,6 @@
cxx_target_objs="${cxx_target_objs} sh-c.o"
;;
@@ -45782,7 +46227,7 @@ Index: gcc/config.gcc
sparc*-*-*)
# Some standard aliases.
case x$with_cpu in
-@@ -3765,6 +3794,17 @@
+@@ -3765,6 +3797,17 @@
;;
esac