diff --git a/.gitignore b/.gitignore index ac14734..e5e1fd4 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /gcc-4.7.0-20120315.tar.bz2 /gcc-4.7.0-20120322.tar.bz2 /gcc-4.7.0-20120416.tar.bz2 +/gcc-4.7.0-20120502.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 0378c21..18325d8 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20120416 -%global SVNREV 186487 +%global DATE 20120502 +%global SVNREV 187043 %global gcc_version 4.7.0 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. -%global gcc_release 2 +%global gcc_release 3 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -174,6 +174,8 @@ Patch12: gcc47-libstdc++-docs.patch Patch13: gcc47-no-add-needed.patch Patch14: gcc47-ppl-0.10.patch Patch15: gcc47-libitm-fno-exceptions.patch +Patch16: gcc47-pr53174.patch +Patch17: gcc47-pr53187.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -675,6 +677,8 @@ package or when debugging this package. %patch14 -p0 -b .ppl-0.10~ %endif %patch15 -p0 -b .libitm-fno-exceptions~ +%patch16 -p0 -b .pr53174~ +%patch17 -p0 -b .pr53187~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2641,6 +2645,20 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Wed May 2 2012 Jakub Jelinek 4.7.0-3 +- update from the 4.7 branch + - PRs bootstrap/52840, c++/38543, c++/50303, c++/50830, c++/53003, + c/51527, c/52880, c/53060, fortran/53148, libstdc++/52689, + libstdc++/52839, libstdc++/53027, libstdc++/53067, libstdc++/53115, + middle-end/52939, middle-end/52999, middle-end/53084, + middle-end/53136, rtl-optimization/53160, target/52932, + target/53020, target/53033, target/53065, target/53120, + target/53138, testsuite/52641, testsuite/53046, + tree-optimization/53085, tree-optimization/53163, + tree-optimizations/52891 +- fix ARM SELECT_CC_MODE ICE (#817086, PR target/53187) +- fix predictive commoning debug info ICE (PR debug/53174) + * Mon Apr 16 2012 Jakub Jelinek 4.7.0-2 - update from the 4.7 branch - PRs c++/52292, c++/52380, c++/52465, c++/52487, c++/52596, c++/52671, diff --git a/gcc47-pr53174.patch b/gcc47-pr53174.patch new file mode 100644 index 0000000..cfce373 --- /dev/null +++ b/gcc47-pr53174.patch @@ -0,0 +1,96 @@ +2012-05-02 Jakub Jelinek + + PR debug/53174 + * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being + removed. + + * gcc.dg/pr53174.c: New test. + +--- gcc/tree-predcom.c.jj 2012-03-28 19:39:21.000000000 +0200 ++++ gcc/tree-predcom.c 2012-05-02 13:14:14.765575987 +0200 +@@ -1707,6 +1707,7 @@ remove_stmt (gimple stmt) + { + name = PHI_RESULT (stmt); + next = single_nonlooparound_use (name); ++ reset_debug_uses (stmt); + psi = gsi_for_stmt (stmt); + remove_phi_node (&psi, true); + +@@ -1728,6 +1729,7 @@ remove_stmt (gimple stmt) + gcc_assert (TREE_CODE (name) == SSA_NAME); + + next = single_nonlooparound_use (name); ++ reset_debug_uses (stmt); + + mark_virtual_ops_for_renaming (stmt); + gsi_remove (&bsi, true); +--- gcc/testsuite/gcc.dg/pr53174.c.jj 2012-05-02 13:36:29.466948569 +0200 ++++ gcc/testsuite/gcc.dg/pr53174.c 2012-05-02 13:35:59.000000000 +0200 +@@ -0,0 +1,67 @@ ++/* PR debug/53174 */ ++/* { dg-do compile } */ ++/* { dg-options "-Ofast -g" } */ ++ ++int w, h; ++ ++void ++bar (float (*x)[4], int y, int z) ++{ ++ int a, b, c, d, e, f, g; ++ ++ a = 2; ++ b = 2; ++ c = 274; ++ d = 274; ++ if (!z) ++ a = 12; ++ if (!y) ++ b = 12; ++ if (z + 266 >= h - 2) ++ c = 8 + h - z; ++ if (y + 266 >= w - 2) ++ d = 8 + w - y; ++ for (e = a; e < c; e++) ++ for (f = b, g = e * 276 + f; f < d; f++, g++) ++ { ++ float (*h)[4] = x + (g - 277); ++ float k = (*h)[0]; ++ float l = (*h)[1]; ++ float m = (*h)[2]; ++ h++; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h++; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h += 274; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h += 2; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h += 274; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h++; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ h++; ++ k += (*h)[0]; ++ l += (*h)[1]; ++ m += (*h)[2]; ++ k *= 0.125f; ++ l *= 0.125f; ++ m *= 0.125f; ++ k = k + (x[g][1] - l); ++ m = m + (x[g][1] - l); ++ x[g][0] = k; ++ x[g][2] = m; ++ } ++} diff --git a/gcc47-pr53187.patch b/gcc47-pr53187.patch new file mode 100644 index 0000000..c2aed70 --- /dev/null +++ b/gcc47-pr53187.patch @@ -0,0 +1,51 @@ +2012-05-02 Jakub Jelinek + + PR target/53187 + * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class + mode, return that mode. + + * gcc.target/arm/pr53187.c: New test. + * gcc.c-torture/compile/pr53187.c: New test. + +--- gcc/config/arm/arm.c.jj 2012-05-02 09:38:35.000000000 +0200 ++++ gcc/config/arm/arm.c 2012-05-02 11:19:51.582016484 +0200 +@@ -11964,6 +11964,9 @@ arm_select_cc_mode (enum rtx_code op, rt + } + } + ++ if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC) ++ return GET_MODE (x); ++ + return CCmode; + } + +--- gcc/testsuite/gcc.target/arm/pr53187.c.jj 2012-05-02 11:36:43.058192951 +0200 ++++ gcc/testsuite/gcc.target/arm/pr53187.c 2012-05-02 11:36:39.224212716 +0200 +@@ -0,0 +1,13 @@ ++/* PR target/53187 */ ++/* { dg-do compile } */ ++/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */ ++ ++void bar (int); ++ ++void ++foo (int x, double y, double z) ++{ ++ _Bool t = z >= y; ++ if (!t || x) ++ bar (t ? 1 : 16); ++} +--- gcc/testsuite/gcc.c-torture/compile/pr53187.c.jj 2012-05-02 11:36:58.053105849 +0200 ++++ gcc/testsuite/gcc.c-torture/compile/pr53187.c 2012-05-02 11:37:09.470039372 +0200 +@@ -0,0 +1,11 @@ ++/* PR target/53187 */ ++ ++void bar (int); ++ ++void ++foo (int x, double y, double z) ++{ ++ _Bool t = z >= y; ++ if (!t || x) ++ bar (t ? 1 : 16); ++} diff --git a/sources b/sources index b66e5ca..67770ad 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -2eae41c9c23756b91f8fcd45c10ba8cb gcc-4.7.0-20120416.tar.bz2 +abe877ad702f9c789fdc7ab40c2c75d1 gcc-4.7.0-20120502.tar.bz2