summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-02-22 17:05:48 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2014-02-22 17:05:48 +0000
commit4bc7962fb0bd07ae4ba542338c4390da77a5c5a1 (patch)
tree49776b4ac054e3e134a679de8d6e42d362e6be59
parentc04e4d36e99978922543de1c907aeb0952327a4a (diff)
downloadgcc-47-4bc7962fb0bd07ae4ba542338c4390da77a5c5a1.tar.gz
* Update to SVN 20140122 (r208044) from the gcc-4_7-branch.
git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.7@7191 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/svn-updates.diff360
2 files changed, 346 insertions, 18 deletions
diff --git a/debian/changelog b/debian/changelog
index a76a144..bd40b21 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
gcc-4.7 (4.7.3-11) UNRELEASED; urgency=medium
- * Update to SVN 20140112 (r207846) from the gcc-4_7-branch.
+ * Update to SVN 20140122 (r208044) from the gcc-4_7-branch.
* Update the x32 support from the branch.
- -- Matthias Klose <doko@debian.org> Sat, 22 Feb 2014 18:00:07 +0100
+ -- Matthias Klose <doko@debian.org> Sat, 22 Feb 2014 18:04:50 +0100
gcc-4.7 (4.7.3-10) unstable; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index a56d4fc..7dc7338 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -1,10 +1,10 @@
-# DP: updates from the 4.7 branch upto 20140218 (r207846).
+# DP: updates from the 4.7 branch upto 20140222 (r208044).
last_updated()
{
cat > ${dir}LAST_UPDATED <<EOF
-Tue Feb 18 15:40:25 CET 2014
-Tue Feb 18 14:40:25 UTC 2014 (revision 207846)
+Sat Feb 22 17:58:25 CET 2014
+Sat Feb 22 16:58:25 UTC 2014 (revision 208044)
EOF
}
@@ -10328,7 +10328,7 @@ Index: gcc/DATESTAMP
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_7-branch)
@@ -1 +1 @@
-20130411
-+20140218
++20140222
Index: gcc/tree-tailcall.c
===================================================================
--- a/src/gcc/tree-tailcall.c (.../tags/gcc_4_7_3_release)
@@ -10575,7 +10575,41 @@ Index: gcc/ChangeLog
===================================================================
--- a/src/gcc/ChangeLog (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_7-branch)
-@@ -1,3 +1,833 @@
+@@ -1,3 +1,867 @@
++2014-02-21 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline
++ 2014-02-21 Jakub Jelinek <jakub@redhat.com>
++
++ * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
++ mode for mask of V8SFmode permutation.
++
++ Backport from 4.8 branch
++ 2014-02-20 Jakub Jelinek <jakub@redhat.com>
++
++ PR target/57896
++ * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
++ gen_reg_rtx if d->testing_p.
++ (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1,
++ expand_vec_perm_broadcast_1): Return early if d->testing_p and
++ we will certainly return true.
++
++2014-02-20 Terry Guo <terry.guo@arm.com>
++
++ Backport from mainline
++ 2014-02-08 Terry Guo <terry.guo@arm.com>
++
++ * doc/invoke.texi: Document ARM -march=armv7e-m.
++
++2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
++
++ Backport from mainline
++ 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR target/60207
++ * config/i386/i386.c (construct_container): Remove TFmode check
++ for X86_64_INTEGER_CLASS.
++
+2014-02-18 Kai Tietz <ktietz@redhat.com>
+
+ Backport from mainline
@@ -12029,6 +12063,24 @@ Index: gcc/testsuite/gfortran.dg/unresolved_fixup_2.f90
+ use matrix
+ use bsr
+end
+Index: gcc/testsuite/gfortran.dg/init_flag_12.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/init_flag_12.f90 (.../tags/gcc_4_7_3_release)
++++ b/src/gcc/testsuite/gfortran.dg/init_flag_12.f90 (.../branches/gcc-4_7-branch)
+@@ -0,0 +1,13 @@
++! { dg-do compile }
++! { dg-options "-fno-automatic -finit-local-zero" }
++!
++! PR 55907: [4.7/4.8/4.9 Regression] ICE with -fno-automatic -finit-local-zero
++!
++! Contributed by J.R. Garcia <garcia.espinosa.jr@gmail.com>
++
++subroutine cchaine (i)
++ implicit none
++ integer :: i
++ character(len=i) :: chaine
++ write(*,*) chaine
++end subroutine
Index: gcc/testsuite/gfortran.dg/derived_external_function_1.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90 (.../tags/gcc_4_7_3_release)
@@ -12652,6 +12704,24 @@ Index: gcc/testsuite/gfortran.dg/namelist_78.f90
+ if (der%d(1)%k%j /= 1) call abort
+ if (der%d(2)%k%j /= 2) call abort
+end program namelist
+Index: gcc/testsuite/gfortran.dg/ichar_3.f90
+===================================================================
+--- a/src/gcc/testsuite/gfortran.dg/ichar_3.f90 (.../tags/gcc_4_7_3_release)
++++ b/src/gcc/testsuite/gfortran.dg/ichar_3.f90 (.../branches/gcc-4_7-branch)
+@@ -0,0 +1,13 @@
++! { dg-do compile }
++!
++! PR fortran/59599
++! The call to ichar was triggering an ICE.
++!
++! Original testcase from Fran Martinez Fadrique <fmartinez@gmv.com>
++
++character(1) cpk(2)
++integer res(2)
++cpk = 'a'
++res = ichar( cpk, kind=1 )
++print *, ichar( cpk, kind=1 )
++end
Index: gcc/testsuite/gfortran.dg/fmt_g_1.f90
===================================================================
--- a/src/gcc/testsuite/gfortran.dg/fmt_g_1.f90 (.../tags/gcc_4_7_3_release)
@@ -13377,7 +13447,20 @@ Index: gcc/testsuite/ChangeLog
===================================================================
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch)
-@@ -1,3 +1,395 @@
+@@ -1,3 +1,408 @@
++2014-02-22 Mikael Morin <mikael@gcc.gnu.org>
++
++ PR fortran/59599
++ * gfortran.dg/ichar_3.f90: New test.
++
++2014-02-20 Janus Weil <janus@gcc.gnu.org>
++
++ Backport from mainline
++ 2014-02-17 Janus Weil <janus@gcc.gnu.org>
++
++ PR fortran/55907
++ * gfortran.dg/init_flag_12.f90: New.
++
+2014-02-18 Kai Tietz <ktietz@redhat.com>
+
+ PR target/60193
@@ -13773,7 +13856,7 @@ Index: gcc/testsuite/ChangeLog
2013-04-11 Release Manager
* GCC 4.7.3 released.
-@@ -54,7 +446,7 @@
+@@ -54,7 +459,7 @@
Backport from mainline
2013-02-27 Andrey Belevantsev <abel@ispras.ru>
@@ -14006,6 +14089,22 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C
+ test<pdm>();
+ test<pmf>();
+}
+Index: gcc/testsuite/g++.dg/cpp0x/variadic149.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic149.C (.../tags/gcc_4_7_3_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic149.C (.../branches/gcc-4_7-branch)
+@@ -0,0 +1,11 @@
++// PR c++/60248
++// { dg-options "-std=c++11 -g -fabi-version=2" }
++
++template<int...> struct A {};
++
++template<> struct A<0>
++{
++ typedef enum { e } B;
++};
++
++A<0> a;
Index: gcc/testsuite/g++.dg/cpp0x/enum18.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../tags/gcc_4_7_3_release)
@@ -14017,6 +14116,32 @@ Index: gcc/testsuite/g++.dg/cpp0x/enum18.C
- ev.e::~e_u(); // { dg-error "e_u. has not been declared" }
+ ev.e::~e_u(); // { dg-error "" }
}
+Index: gcc/testsuite/g++.dg/cpp0x/noexcept22.C
+===================================================================
+--- a/src/gcc/testsuite/g++.dg/cpp0x/noexcept22.C (.../tags/gcc_4_7_3_release)
++++ b/src/gcc/testsuite/g++.dg/cpp0x/noexcept22.C (.../branches/gcc-4_7-branch)
+@@ -0,0 +1,21 @@
++// PR c++/60046
++// { dg-require-effective-target c++11 }
++
++constexpr bool foo () { return noexcept (true); }
++template <typename T>
++struct V
++{
++ void bar (V &) noexcept (foo ()) {}
++};
++template <typename T>
++struct W : public V <int>
++{
++ void bar (W &x) { V <int>::bar (x); }
++};
++
++int
++main ()
++{
++ W <int> a, b;
++ a.bar (b);
++}
Index: gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C
===================================================================
--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C (.../tags/gcc_4_7_3_release)
@@ -15142,7 +15267,27 @@ Index: gcc/cp/ChangeLog
===================================================================
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-4_7-branch)
-@@ -1,3 +1,87 @@
+@@ -1,3 +1,107 @@
++2014-02-21 Jason Merrill <jason@redhat.com>
++
++ PR c++/60248
++ * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
++
++2014-02-20 Kai Tietz <ktietz@redhat.com>
++
++ PR c++/58873
++ * parser.c (cp_parser_functional_cast): Treat NULL_TREE
++ valued type argument as error_mark_node.
++
++ PR c++/58835
++ * semantics.c (finish_fname): Handle error_mark_node.
++
++2014-02-19 Jason Merrill <jason@redhat.com>
++
++ PR c++/60046
++ * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
++ spec from template context.
++
+2014-01-31 Jason Merrill <jason@redhat.com>
+
+ PR c++/57043
@@ -15269,7 +15414,18 @@ Index: gcc/cp/pt.c
{
unsigned int i;
-@@ -19545,7 +19555,7 @@
+@@ -18083,6 +18093,10 @@
+ {
+ tree fntype, spec, noex, clone;
+
++ /* Don't instantiate a noexcept-specification from template context. */
++ if (processing_template_decl)
++ return;
++
+ if (DECL_CLONED_FUNCTION_P (fn))
+ fn = DECL_CLONED_FUNCTION (fn);
+ fntype = TREE_TYPE (fn);
+@@ -19545,7 +19559,7 @@
any_type_dependent_elements_p (const_tree list)
{
for (; list; list = TREE_CHAIN (list))
@@ -15282,7 +15438,17 @@ Index: gcc/cp/semantics.c
===================================================================
--- a/src/gcc/cp/semantics.c (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/cp/semantics.c (.../branches/gcc-4_7-branch)
-@@ -7412,15 +7412,17 @@
+@@ -2430,7 +2430,8 @@
+ tree decl;
+
+ decl = fname_decl (input_location, C_RID_CODE (id), id);
+- if (processing_template_decl && current_function_decl)
++ if (processing_template_decl && current_function_decl
++ && decl != error_mark_node)
+ decl = DECL_NAME (decl);
+ return decl;
+ }
+@@ -7412,15 +7413,17 @@
}
}
}
@@ -15303,7 +15469,7 @@ Index: gcc/cp/semantics.c
sub = build1_loc (loc, INDIRECT_REF, TREE_TYPE (subtype), sub);
type_domain = TYPE_DOMAIN (TREE_TYPE (sub));
if (type_domain && TYPE_MIN_VALUE (type_domain))
-@@ -7457,11 +7459,6 @@
+@@ -7457,11 +7460,6 @@
{
tree sub = op0;
STRIP_NOPS (sub);
@@ -15315,7 +15481,7 @@ Index: gcc/cp/semantics.c
if (TREE_CODE (sub) == ADDR_EXPR)
{
/* We couldn't fold to a constant value. Make sure it's not
-@@ -8959,13 +8956,12 @@
+@@ -8959,13 +8957,12 @@
insert_capture_proxy (tree var)
{
cp_binding_level *b;
@@ -15330,7 +15496,7 @@ Index: gcc/cp/semantics.c
{
cp_binding_level *n = b->level_chain;
if (n->kind == sk_function_parms)
-@@ -8976,8 +8972,7 @@
+@@ -8976,8 +8973,7 @@
/* And put a DECL_EXPR in the STATEMENT_LIST for the same block. */
var = build_stmt (DECL_SOURCE_LOCATION (var), DECL_EXPR, var);
@@ -15375,6 +15541,16 @@ Index: gcc/cp/parser.c
if (quals >= 0)
{
/* DR 1207: 'this' is in scope in the trailing return type. */
+@@ -21423,6 +21419,9 @@
+ tree cast;
+ bool nonconst_p;
+
++ if (!type)
++ type = error_mark_node;
++
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE))
+ {
+ maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS);
Index: gcc/cp/call.c
===================================================================
--- a/src/gcc/cp/call.c (.../tags/gcc_4_7_3_release)
@@ -15468,6 +15644,18 @@ Index: gcc/cp/cvt.c
if (winner)
{
if (complain)
+Index: gcc/cp/mangle.c
+===================================================================
+--- a/src/gcc/cp/mangle.c (.../tags/gcc_4_7_3_release)
++++ b/src/gcc/cp/mangle.c (.../branches/gcc-4_7-branch)
+@@ -3378,6 +3378,7 @@
+
+ if (G.need_abi_warning
+ /* Don't do this for a fake symbol we aren't going to emit anyway. */
++ && TREE_CODE (decl) != TYPE_DECL
+ && !DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (decl)
+ && !DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (decl))
+ {
Index: gcc/cp/cp-tree.h
===================================================================
--- a/src/gcc/cp/cp-tree.h (.../tags/gcc_4_7_3_release)
@@ -15947,7 +16135,22 @@ Index: gcc/fortran/ChangeLog
===================================================================
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-4_7-branch)
-@@ -1,3 +1,139 @@
+@@ -1,3 +1,154 @@
++2014-02-22 Mikael Morin <mikael@gcc.gnu.org>
++
++ PR fortran/59599
++ * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
++ number of arguments.
++
++2014-02-20 Janus Weil <janus@gcc.gnu.org>
++
++ Backport from mainline
++ 2014-02-17 Janus Weil <janus@gcc.gnu.org>
++
++ PR fortran/55907
++ * resolve.c (build_default_init_expr): Don't initialize character
++ variable if -fno-automatic is given.
++
+2014-02-08 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/57033
@@ -16380,6 +16583,15 @@ Index: gcc/fortran/resolve.c
&& arg->next != NULL && arg->next->expr)
{
if (arg->next->expr->expr_type != EXPR_CONSTANT)
+@@ -10166,7 +10167,7 @@
+ init_expr = NULL;
+ }
+ if (!init_expr && gfc_option.flag_init_character == GFC_INIT_CHARACTER_ON
+- && sym->ts.u.cl->length)
++ && sym->ts.u.cl->length && gfc_option.flag_max_stack_var_size != 0)
+ {
+ gfc_actual_arglist *arg;
+ init_expr = gfc_get_expr ();
Index: gcc/fortran/trans-io.c
===================================================================
--- a/src/gcc/fortran/trans-io.c (.../tags/gcc_4_7_3_release)
@@ -16646,7 +16858,19 @@ Index: gcc/fortran/trans-intrinsic.c
===================================================================
--- a/src/gcc/fortran/trans-intrinsic.c (.../tags/gcc_4_7_3_release)
+++ b/src/gcc/fortran/trans-intrinsic.c (.../branches/gcc-4_7-branch)
-@@ -5623,8 +5623,7 @@
+@@ -4665,8 +4665,10 @@
+ gfc_conv_intrinsic_ichar (gfc_se * se, gfc_expr * expr)
+ {
+ tree args[2], type, pchartype;
++ int nargs;
+
+- gfc_conv_intrinsic_function_args (se, expr, args, 2);
++ nargs = gfc_intrinsic_argument_list_length (expr);
++ gfc_conv_intrinsic_function_args (se, expr, args, nargs);
+ gcc_assert (POINTER_TYPE_P (TREE_TYPE (args[1])));
+ pchartype = gfc_get_pchar_type (expr->value.function.actual->expr->ts.kind);
+ args[1] = fold_build1_loc (input_location, NOP_EXPR, pchartype, args[1]);
+@@ -5623,8 +5625,7 @@
if (expr->ts.type == BT_CHARACTER)
{
@@ -16656,7 +16880,7 @@ Index: gcc/fortran/trans-intrinsic.c
ptr = convert (gfc_get_pchar_type (expr->ts.kind), source);
tmpdecl = gfc_create_var (gfc_get_pchar_type (expr->ts.kind),
-@@ -5657,6 +5656,13 @@
+@@ -5657,6 +5658,13 @@
tmp = build3_v (COND_EXPR, tmp, direct, indirect);
gfc_add_expr_to_block (&se->pre, tmp);
@@ -18150,6 +18374,15 @@ Index: gcc/config/i386/i386.c
for (i = 0; i < n; i++)
if (regclass[i] == X86_64_X87_CLASS
|| regclass[i] == X86_64_X87UP_CLASS
+@@ -6357,7 +6360,7 @@
+ return gen_rtx_REG (XFmode, FIRST_STACK_REG);
+ if (n == 2 && regclass[0] == X86_64_INTEGER_CLASS
+ && regclass[1] == X86_64_INTEGER_CLASS
+- && (mode == CDImode || mode == TImode || mode == TFmode)
++ && (mode == CDImode || mode == TImode)
+ && intreg[0] + 1 == intreg[1])
+ return gen_rtx_REG (mode, intreg[0]);
+
@@ -7129,9 +7132,15 @@
switch (regno)
{
@@ -18565,6 +18798,15 @@ Index: gcc/config/i386/i386.c
t1 = expand_simple_binop (maskmode, PLUS, t1, vt, t1, 1,
OPTAB_DIRECT);
+@@ -20056,7 +20073,7 @@
+ return;
+
+ case V8SFmode:
+- mask = gen_lowpart (V8SFmode, mask);
++ mask = gen_lowpart (V8SImode, mask);
+ if (one_operand_shuffle)
+ emit_insn (gen_avx2_permvarv8sf (target, op0, mask));
+ else
@@ -20223,7 +20240,7 @@
for (i = 0; i < 16; ++i)
vec[i] = GEN_INT (i/e * e);
@@ -18615,6 +18857,92 @@ Index: gcc/config/i386/i386.c
subtarget = gen_reg_rtx (insn_data[icode].operand[0].mode);
else
subtarget = target;
+@@ -36635,7 +36655,9 @@
+ else
+ dfinal.perm[i] = e;
+ }
+- dfinal.op0 = gen_reg_rtx (dfinal.vmode);
++
++ if (!d->testing_p)
++ dfinal.op0 = gen_reg_rtx (dfinal.vmode);
+ dfinal.op1 = dfinal.op0;
+ dremap.target = dfinal.op0;
+
+@@ -36833,6 +36855,9 @@
+ return false;
+ gcc_assert (d->op0 != d->op1);
+
++ if (d->testing_p)
++ return true;
++
+ nelt = d->nelt;
+ eltsz = GET_MODE_SIZE (GET_MODE_INNER (d->vmode));
+
+@@ -37032,6 +37057,8 @@
+ switch (d->vmode)
+ {
+ case V4DFmode:
++ if (d->testing_p)
++ break;
+ t1 = gen_reg_rtx (V4DFmode);
+ t2 = gen_reg_rtx (V4DFmode);
+
+@@ -37051,6 +37078,8 @@
+ {
+ int mask = odd ? 0xdd : 0x88;
+
++ if (d->testing_p)
++ break;
+ t1 = gen_reg_rtx (V8SFmode);
+ t2 = gen_reg_rtx (V8SFmode);
+ t3 = gen_reg_rtx (V8SFmode);
+@@ -37092,6 +37121,8 @@
+ return expand_vec_perm_pshufb2 (d);
+ else
+ {
++ if (d->testing_p)
++ break;
+ /* We need 2*log2(N)-1 operations to achieve odd/even
+ with interleave. */
+ t1 = gen_reg_rtx (V8HImode);
+@@ -37113,6 +37144,8 @@
+ return expand_vec_perm_pshufb2 (d);
+ else
+ {
++ if (d->testing_p)
++ break;
+ t1 = gen_reg_rtx (V16QImode);
+ t2 = gen_reg_rtx (V16QImode);
+ t3 = gen_reg_rtx (V16QImode);
+@@ -37145,6 +37178,9 @@
+ return expand_vec_perm_even_odd_1 (&d_copy, odd);
+ }
+
++ if (d->testing_p)
++ break;
++
+ t1 = gen_reg_rtx (V4DImode);
+ t2 = gen_reg_rtx (V4DImode);
+
+@@ -37171,6 +37207,9 @@
+ return expand_vec_perm_even_odd_1 (&d_copy, odd);
+ }
+
++ if (d->testing_p)
++ break;
++
+ t1 = gen_reg_rtx (V8SImode);
+ t2 = gen_reg_rtx (V8SImode);
+
+@@ -37263,6 +37302,8 @@
+ case V16QImode:
+ /* These can be implemented via interleave. We save one insn by
+ stopping once we have promoted to V4SImode and then use pshufd. */
++ if (d->testing_p)
++ return true;
+ do
+ {
+ rtx dest;
Index: gcc/config/tilegx/tilegx.md
===================================================================
--- a/src/gcc/config/tilegx/tilegx.md (.../tags/gcc_4_7_3_release)