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 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 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 + + 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 . + + 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 ++ ++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 + + PR c/52577 + * c-parser.c (c_parser_postfix_expression) + : 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 + + 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 + + * 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 +- . ++ . */ + + /* 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 +- . +- ++ . */ + + /* 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