This commit is contained in:
Jakub Jelinek 2014-07-02 19:24:13 +02:00
parent 3e2f90cd29
commit 78557d4f6e
4 changed files with 91 additions and 4 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -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 <jakub@redhat.com> 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 <jakub@redhat.com> 4.9.0-13
- update from the 4.9 branch
- PRs bootstrap/61583, c++/61556, ipa/61211, ipa/61540, libstdc++/61532,

72
gcc49-pr61673.patch Normal file
View File

@ -0,0 +1,72 @@
2014-07-02 Jakub Jelinek <jakub@redhat.com>
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;
+}

View File

@ -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