diff --git a/.gitignore b/.gitignore index feca4f8..0726ecc 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /gcc-4.9.0-20140617.tar.bz2 /gcc-4.9.0-20140619.tar.bz2 /gcc-4.9.0-20140625.tar.bz2 +/gcc-4.9.0-20140702.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 4faa5f7..ec8964a 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20140625 -%global SVNREV 211976 +%global DATE 20140702 +%global SVNREV 212237 %global gcc_version 4.9.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 13 +%global gcc_release 14 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 @@ -196,6 +196,7 @@ Patch12: gcc49-no-add-needed.patch Patch14: gcc49-pr56493.patch Patch15: gcc49-color-auto.patch Patch16: gcc49-libgo-p224.patch +Patch17: gcc49-pr61673.patch Patch1100: cloog-%{cloog_version}-ppc64le-config.patch @@ -722,6 +723,7 @@ package or when debugging this package. %endif %patch16 -p0 -b .libgo-p224~ rm -f libgo/go/crypto/elliptic/p224{,_test}.go +%patch17 -p0 -b .pr61673~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2782,6 +2784,18 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Wed Jul 2 2014 Jakub Jelinek 4.9.0-14 +- update from the 4.9 branch + - OpenMP 4.0 Fortran support + - PRs c++/51253, c++/58704, c++/58753, c++/58781, c++/58930, c++/59867, + c++/60249, c++/61242, c++/61382, c++/61433, c++/61488, c++/61500, + c++/61537, c++/61539, c++/61566, c++/61614, c++/61647, fortran/60127, + fortran/60928, libgfortran/61499, middle-end/57541, target/61503, + target/61542, target/61586, target/61633, tree-optimization/57233, + tree-optimization/61299, tree-optimization/61306 +- fix combiner on s390 (#1102324, PR rtl-optimization/61673) +- small -fsanitize=undefined fixes from the trunk + * Wed Jun 25 2014 Jakub Jelinek 4.9.0-13 - update from the 4.9 branch - PRs bootstrap/61583, c++/61556, ipa/61211, ipa/61540, libstdc++/61532, diff --git a/gcc49-pr61673.patch b/gcc49-pr61673.patch new file mode 100644 index 0000000..0b0c6f8 --- /dev/null +++ b/gcc49-pr61673.patch @@ -0,0 +1,72 @@ +2014-07-02 Jakub Jelinek + + PR rtl-optimization/61673 + * combine.c (simplify_comparison): Test just mode's sign bit + in tmode rather than the sign bit and any bits above it. + + * gcc.c-torture/execute/pr61673.c: New test. + +--- gcc/combine.c.jj 2014-03-28 20:49:52.892077022 +0100 ++++ gcc/combine.c 2014-07-02 16:56:02.260456040 +0200 +@@ -11987,7 +11987,7 @@ simplify_comparison (enum rtx_code code, + = (unsigned HOST_WIDE_INT) 1 << (GET_MODE_BITSIZE (mode) - 1); + op0 = simplify_gen_binary (AND, tmode, + gen_lowpart (tmode, op0), +- gen_int_mode (sign, mode)); ++ gen_int_mode (sign, tmode)); + code = (code == LT) ? NE : EQ; + break; + } +--- gcc/testsuite/gcc.c-torture/execute/pr61673.c.jj 2014-07-02 17:17:01.398908630 +0200 ++++ gcc/testsuite/gcc.c-torture/execute/pr61673.c 2014-07-02 17:12:36.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* PR rtl-optimization/61673 */ ++ ++char e; ++ ++__attribute__((noinline, noclone)) void ++bar (char x) ++{ ++ if (x != 0x54 && x != (char) 0x87) ++ __builtin_abort (); ++} ++ ++__attribute__((noinline, noclone)) void ++foo (const char *x) ++{ ++ char d = x[0]; ++ int c = d; ++ if ((c >= 0 && c <= 0x7f) == 0) ++ e = d; ++ bar (d); ++} ++ ++__attribute__((noinline, noclone)) void ++baz (const char *x) ++{ ++ char d = x[0]; ++ int c = d; ++ if ((c >= 0 && c <= 0x7f) == 0) ++ e = d; ++} ++ ++int ++main () ++{ ++ const char c[] = { 0x54, 0x87 }; ++ e = 0x21; ++ foo (c); ++ if (e != 0x21) ++ __builtin_abort (); ++ foo (c + 1); ++ if (e != 0x87) ++ __builtin_abort (); ++ e = 0x21; ++ baz (c); ++ if (e != 0x21) ++ __builtin_abort (); ++ baz (c + 1); ++ if (e != 0x87) ++ __builtin_abort (); ++ return 0; ++} diff --git a/sources b/sources index b3c1059..3e2f0b6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz -6965fb0ff7730580d8a96774042fd16b gcc-4.9.0-20140625.tar.bz2 +db6dd90b5d82617259afb3803b386479 gcc-4.9.0-20140702.tar.bz2 e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2