From 1db9652d3f92f5369dc3529c9a9a1d8c9a4c4146 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 9 Oct 2012 14:00:55 +0200 Subject: [PATCH] 4.7.2-4 --- .gitignore | 1 + gcc.spec | 16 +++-- gcc47-pr33763.patch | 153 -------------------------------------------- sources | 2 +- 4 files changed, 13 insertions(+), 159 deletions(-) delete mode 100644 gcc47-pr33763.patch diff --git a/.gitignore b/.gitignore index 63b8afe..732186f 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ /gcc-4.7.2-20120920.tar.bz2 /gcc-4.7.2-20120921.tar.bz2 /gcc-4.7.2-20121001.tar.bz2 +/gcc-4.7.2-20121009.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 0a0355a..aafeb13 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20121001 -%global SVNREV 191896 +%global DATE 20121009 +%global SVNREV 192248 %global gcc_version 4.7.2 # 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 3 +%global gcc_release 4 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -171,7 +171,6 @@ Patch0: gcc47-hack.patch Patch1: gcc47-c++-builtin-redecl.patch Patch2: gcc47-java-nomulti.patch Patch3: gcc47-ppc32-retaddr.patch -Patch4: gcc47-pr33763.patch Patch5: gcc47-rh330771.patch Patch6: gcc47-i386-libgomp.patch Patch7: gcc47-sparc-config-detection.patch @@ -668,7 +667,6 @@ package or when debugging this package. %patch1 -p0 -b .c++-builtin-redecl~ %patch2 -p0 -b .java-nomulti~ %patch3 -p0 -b .ppc32-retaddr~ -%patch4 -p0 -b .pr33763~ %patch5 -p0 -b .rh330771~ %patch6 -p0 -b .i386-libgomp~ %patch7 -p0 -b .sparc-config-detection~ @@ -2663,6 +2661,14 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Tue Oct 9 2012 Jakub Jelinek 4.7.2-4 +- update from the 4.7 branch + - PRs c++/54777, c++/54858, debug/53135, target/54741, target/54785, + target/54854 +- backport of selected debug info quality improvements (#851467) + - PRs debug/48866, debug/52983, debug/53740, debug/53923, debug/54519, + debug/54551 + * Mon Oct 1 2012 Jakub Jelinek 4.7.2-3 - update from the 4.7 branch - PRs target/54083, target/54703, target/54746, testsuite/54007 diff --git a/gcc47-pr33763.patch b/gcc47-pr33763.patch deleted file mode 100644 index 0cf0723..0000000 --- a/gcc47-pr33763.patch +++ /dev/null @@ -1,153 +0,0 @@ -2007-11-06 Jakub Jelinek - - PR tree-optimization/33763 - * gcc.dg/pr33763.c: New test. - * g++.dg/opt/inline13.C: New test. - -2007-11-06 Jan Hubicka - - PR tree-optimization/33763 - * tree-inline.c (expand_call_inline): Silently ignore always_inline - attribute for redefined extern inline functions. - ---- gcc/tree-inline.c.jj 2007-11-06 09:29:04.000000000 +0100 -+++ gcc/tree-inline.c 2007-11-06 16:19:12.000000000 +0100 -@@ -3817,6 +3817,12 @@ expand_call_inline (basic_block bb, gimp - goto egress; - - if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) -+ /* For extern inline functions that get redefined we always -+ silently ignored always_inline flag. Better behaviour would -+ be to be able to keep both bodies and use extern inline body -+ for inlining, but we can't do that because frontends overwrite -+ the body. */ -+ && !cg_edge->callee->local.redefined_extern_inline - /* Avoid warnings during early inline pass. */ - && cgraph_global_info_ready - /* PR 20090218-1_0.c. Body can be provided by another module. */ ---- gcc/testsuite/gcc.dg/pr33763.c.jj 2007-11-06 16:19:12.000000000 +0100 -+++ gcc/testsuite/gcc.dg/pr33763.c 2007-11-06 16:19:12.000000000 +0100 -@@ -0,0 +1,60 @@ -+/* PR tree-optimization/33763 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+typedef struct -+{ -+ void *a; -+ void *b; -+} T; -+extern void *foo (const char *, const char *); -+extern void *bar (void *, const char *, T); -+extern int baz (const char *, int); -+ -+extern inline __attribute__ ((always_inline, gnu_inline)) int -+baz (const char *x, int y) -+{ -+ return 2; -+} -+ -+int -+baz (const char *x, int y) -+{ -+ return 1; -+} -+ -+int xa, xb; -+ -+static void * -+inl (const char *x, const char *y) -+{ -+ T t = { &xa, &xb }; -+ int *f = (int *) __builtin_malloc (sizeof (int)); -+ const char *z; -+ int o = 0; -+ void *r = 0; -+ -+ for (z = y; *z; z++) -+ { -+ if (*z == 'r') -+ o |= 1; -+ if (*z == 'w') -+ o |= 2; -+ } -+ if (o == 1) -+ *f = baz (x, 0); -+ if (o == 2) -+ *f = baz (x, 1); -+ if (o == 3) -+ *f = baz (x, 2); -+ -+ if (o && *f > 0) -+ r = bar (f, "w", t); -+ return r; -+} -+ -+void * -+foo (const char *x, const char *y) -+{ -+ return inl (x, y); -+} ---- gcc/testsuite/g++.dg/opt/inline13.C.jj 2007-11-06 16:20:20.000000000 +0100 -+++ gcc/testsuite/g++.dg/opt/inline13.C 2007-11-06 16:21:30.000000000 +0100 -@@ -0,0 +1,60 @@ -+// PR tree-optimization/33763 -+// { dg-do compile } -+// { dg-options "-O2" } -+ -+typedef struct -+{ -+ void *a; -+ void *b; -+} T; -+extern void *foo (const char *, const char *); -+extern void *bar (void *, const char *, T); -+extern int baz (const char *, int); -+ -+extern inline __attribute__ ((always_inline, gnu_inline)) int -+baz (const char *x, int y) -+{ -+ return 2; -+} -+ -+int -+baz (const char *x, int y) -+{ -+ return 1; -+} -+ -+int xa, xb; -+ -+static void * -+inl (const char *x, const char *y) -+{ -+ T t = { &xa, &xb }; -+ int *f = (int *) __builtin_malloc (sizeof (int)); -+ const char *z; -+ int o = 0; -+ void *r = 0; -+ -+ for (z = y; *z; z++) -+ { -+ if (*z == 'r') -+ o |= 1; -+ if (*z == 'w') -+ o |= 2; -+ } -+ if (o == 1) -+ *f = baz (x, 0); -+ if (o == 2) -+ *f = baz (x, 1); -+ if (o == 3) -+ *f = baz (x, 2); -+ -+ if (o && *f > 0) -+ r = bar (f, "w", t); -+ return r; -+} -+ -+void * -+foo (const char *x, const char *y) -+{ -+ return inl (x, y); -+} diff --git a/sources b/sources index e54062a..664e5e6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -b1167b144ac4c081d1fb68cfb95e2706 gcc-4.7.2-20121001.tar.bz2 +57efcf9b68bb9f6e739a16f4673230d0 gcc-4.7.2-20121009.tar.bz2