[gcc/f17] 4.7.0-0.20

Jakub Jelinek jakub at fedoraproject.org
Thu Mar 15 19:47:33 UTC 2012


commit ceba2f7e86f79816dd16ddf998f28b5594b03492
Author: Jakub Jelinek <jakub at redhat.com>
Date:   Thu Mar 15 20:47:29 2012 +0100

    4.7.0-0.20

 .gitignore            |    1 +
 gcc.spec              |   23 +++++++++++++--
 gcc47-pr52521.patch   |   52 +++++++++++++++++++++++++++++++++
 gcc47-pr52577.patch   |   76 +++++++++++++++++++++++++++++++++++++++++++++++++
 gcc47-pr52582.patch   |   15 +++++++++
 gcc47-smmintrin.patch |   40 +++++++++++++++++++++++++
 sources               |    2 +-
 7 files changed, 205 insertions(+), 4 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index a030362..da22c53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
 /gcc-4.7.0-20120227.tar.bz2
 /gcc-4.7.0-20120229.tar.bz2
 /gcc-4.7.0-20120308.tar.bz2
+/gcc-4.7.0-20120315.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 19b98bb..bdc3b72 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20120308
-%global SVNREV 185099
+%global DATE 20120315
+%global SVNREV 185441
 %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 0.19
+%global gcc_release 0.20
 %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,10 @@ 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-pr52582.patch
+Patch17: gcc47-smmintrin.patch
+Patch18: gcc47-pr52577.patch
+Patch19: gcc47-pr52521.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -675,6 +679,10 @@ package or when debugging this package.
 %patch14 -p0 -b .ppl-0.10~
 %endif
 %patch15 -p0 -b .libitm-fno-exceptions~
+%patch16 -p0 -b .pr52582~
+%patch17 -p0 -b .smmintrin~
+%patch18 -p0 -b .pr52577~
+%patch19 -p0 -b .pr52521~
 
 %if 0%{?_enable_debug_packages}
 cat > split-debuginfo.sh <<\EOF
@@ -2641,6 +2649,15 @@ fi
 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
+* Thu Mar 15 2012 Jakub Jelinek <jakub at redhat.com> 4.7.0-0.20
+- update from the 4.7 branch
+  - PRs fortran/52469, libitm/52526, libstdc++/52456, target/52450
+  - fix __builtin_ir{ound,int}{,f,l} expansion (#803689, PR middle-end/52592)
+  - fix up devirtualization (#802731, PR c++/52582)
+- fix up user defined literal operator"" lookup (PR c++/52521)
+- avoid false positive -Wunused-but-set-* warnings with __builtin_shuffle
+  (PR c/52577)
+
 * Thu Mar  8 2012 Jakub Jelinek <jakub at redhat.com> 4.7.0-0.19
 - update from trunk and the 4.7 branch
   - PRs libstdc++/51785, middle-end/52419, middle-end/52443,
diff --git a/gcc47-pr52521.patch b/gcc47-pr52521.patch
new file mode 100644
index 0000000..3fb320a
--- /dev/null
+++ b/gcc47-pr52521.patch
@@ -0,0 +1,52 @@
+2012-03-14  Jakub Jelinek  <jakub at redhat.com>
+
+	PR c++/52521
+	* parser.c (lookup_literal_operator): Return fn only if
+	processed all arguments from args vector and argtypes is
+	void_list_node.
+
+	* g++.dg/cpp0x/udlit-args2.C: New test.
+
+--- gcc/cp/parser.c	(revision 185374)
++++ gcc/cp/parser.c	(revision 185375)
+@@ -1,6 +1,6 @@
+ /* C++ Parser.
+    Copyright (C) 2000, 2001, 2002, 2003, 2004,
+-   2005, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
++   2005, 2007, 2008, 2009, 2010, 2011, 2012  Free Software Foundation, Inc.
+    Written by Mark Mitchell <mark at codesourcery.com>.
+ 
+    This file is part of GCC.
+@@ -3581,7 +3581,13 @@ lookup_literal_operator (tree name, VEC(
+ 				       TREE_TYPE (tparm))))
+ 		found = false;
+ 	    }
+-	  if (found)
++	  if (found
++	      && ix == VEC_length (tree, args)
++	      /* May be this should be sufficient_parms_p instead,
++		 depending on how exactly should user-defined literals
++		 work in presence of default arguments on the literal
++		 operator parameters.  */
++	      && argtypes == void_list_node)
+ 	    return fn;
+ 	}
+     }
+--- gcc/testsuite/g++.dg/cpp0x/udlit-args2.C	(revision 0)
++++ gcc/testsuite/g++.dg/cpp0x/udlit-args2.C	(revision 185375)
+@@ -0,0 +1,15 @@
++// PR c++/52521
++// { dg-do compile }
++// { dg-options -std=c++11 }
++
++#include <cstddef>
++
++int operator "" _a (const char *);
++int operator "" _a (const char *, std::size_t);
++int a = 123_a;
++int a2 = "abc"_a;
++
++int operator "" _b (const char *, std::size_t);
++int operator "" _b (const char *);
++int b = 123_b;
++int b2 = "abc"_b;
diff --git a/gcc47-pr52577.patch b/gcc47-pr52577.patch
new file mode 100644
index 0000000..e1439b0
--- /dev/null
+++ b/gcc47-pr52577.patch
@@ -0,0 +1,76 @@
+2012-03-13  Jakub Jelinek  <jakub at redhat.com>
+ 
+	PR c/52577
+	* c-parser.c (c_parser_postfix_expression)
+	<case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
+
+	* gcc.dg/Wunused-var-3.c: New test.
+
+--- gcc/c-parser.c	(revision 185354)
++++ gcc/c-parser.c	(revision 185355)
+@@ -1,7 +1,7 @@
+ /* Parser for C and Objective-C.
+    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
+-   Free Software Foundation, Inc.
++   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011,
++   2012 Free Software Foundation, Inc.
+ 
+    Parser actions based on the old Bison parser; structure somewhat
+    influenced by and fragments based on the C++ parser.
+@@ -6647,6 +6647,8 @@ c_parser_postfix_expression (c_parser *p
+ 	case RID_BUILTIN_SHUFFLE:
+ 	  {
+ 	    VEC(c_expr_t,gc) *cexpr_list;
++	    unsigned int i;
++	    c_expr_t *p;
+ 
+ 	    c_parser_consume_token (parser);
+ 	    if (!c_parser_get_builtin_args (parser,
+@@ -6657,6 +6659,9 @@ c_parser_postfix_expression (c_parser *p
+ 		break;
+ 	      }
+ 
++	    FOR_EACH_VEC_ELT (c_expr_t, cexpr_list, i, p)
++	      mark_exp_read (p->value);
++
+ 	    if (VEC_length (c_expr_t, cexpr_list) == 2)
+ 	      expr.value =
+ 		c_build_vec_perm_expr
+--- gcc/testsuite/gcc.dg/Wunused-var-3.c	(revision 0)
++++ gcc/testsuite/gcc.dg/Wunused-var-3.c	(revision 185355)
+@@ -0,0 +1,34 @@
++/* PR c/52577 */
++/* { dg-do compile } */
++/* { dg-options "-Wunused" } */
++
++typedef int V __attribute__((vector_size (sizeof (int) * 4)));
++
++void
++f1 (V *p)
++{
++  V mask = { 1, 2, 3, 0 };
++  *p = __builtin_shuffle (*p, mask);
++}
++
++void
++f2 (V *p, V *q)
++{
++  V mask = { 1, 2, 3, 0 };
++  *p = __builtin_shuffle (*p, *q, mask);
++}
++
++void
++f3 (V *p, V *mask)
++{
++  V a = { 1, 2, 3, 0 };
++  *p = __builtin_shuffle (a, *mask);
++}
++
++void
++f4 (V *p, V *mask)
++{
++  V a = { 1, 2, 3, 0 };
++  V b = { 2, 3, 4, 1 };
++  *p = __builtin_shuffle (a, b, *mask);
++}
diff --git a/gcc47-pr52582.patch b/gcc47-pr52582.patch
new file mode 100644
index 0000000..f457116
--- /dev/null
+++ b/gcc47-pr52582.patch
@@ -0,0 +1,15 @@
+2012-03-14 Jason Merrill <jason at redhat.com>
+
+    	PR c++/52582
+    	* method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
+
+--- gcc/cp/method.c
++++ gcc/cp/method.c
+@@ -1593,6 +1593,7 @@ implicitly_declare_fn (special_function_kind kind, tree type, bool const_p)
+       DECL_DELETED_FN (fn) = deleted_p;
+       DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
+     }
++  DECL_EXTERNAL (fn) = true;
+   DECL_NOT_REALLY_EXTERN (fn) = 1;
+   DECL_DECLARED_INLINE_P (fn) = 1;
+   gcc_assert (!TREE_USED (fn));
diff --git a/gcc47-smmintrin.patch b/gcc47-smmintrin.patch
new file mode 100644
index 0000000..23bd605
--- /dev/null
+++ b/gcc47-smmintrin.patch
@@ -0,0 +1,40 @@
+2012-03-13  Jakub Jelinek  <jakub at redhat.com>
+
+	* config/i386/smmintrin.h: Avoid /* within a comment.
+	* config/i386/nmmintrin.h: Likewise.
+
+--- gcc/config/i386/nmmintrin.h	(revision 185351)
++++ gcc/config/i386/nmmintrin.h	(revision 185352)
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+@@ -19,7 +19,7 @@
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+-   <http://www.gnu.org/licenses/>.
++   <http://www.gnu.org/licenses/>.  */
+ 
+ /* Implemented from the specification included in the Intel C++ Compiler
+    User Guide and Reference, version 10.0.  */
+--- gcc/config/i386/smmintrin.h	(revision 185351)
++++ gcc/config/i386/smmintrin.h	(revision 185352)
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++/* Copyright (C) 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+@@ -19,8 +19,7 @@
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+-   <http://www.gnu.org/licenses/>.
+-
++   <http://www.gnu.org/licenses/>.  */
+ 
+ /* Implemented from the specification included in the Intel C++ Compiler
+    User Guide and Reference, version 10.0.  */
diff --git a/sources b/sources
index 7ea34ac..487e405 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
-20a719d4e5cf0bbc54b0411bf4874693  gcc-4.7.0-20120308.tar.bz2
+91d390bd5b26040979fc417025d42684  gcc-4.7.0-20120315.tar.bz2


More information about the scm-commits mailing list