diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2014-02-22 17:05:48 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2014-02-22 17:05:48 +0000 |
commit | 4bc7962fb0bd07ae4ba542338c4390da77a5c5a1 (patch) | |
tree | 49776b4ac054e3e134a679de8d6e42d362e6be59 | |
parent | c04e4d36e99978922543de1c907aeb0952327a4a (diff) | |
download | gcc-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/changelog | 4 | ||||
-rw-r--r-- | debian/patches/svn-updates.diff | 360 |
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) |