4.7.2-4
This commit is contained in:
parent
c7f844b164
commit
1db9652d3f
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
16
gcc.spec
16
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 <jakub@redhat.com> 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 <jakub@redhat.com> 4.7.2-3
|
||||
- update from the 4.7 branch
|
||||
- PRs target/54083, target/54703, target/54746, testsuite/54007
|
||||
|
@ -1,153 +0,0 @@
|
||||
2007-11-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/33763
|
||||
* gcc.dg/pr33763.c: New test.
|
||||
* g++.dg/opt/inline13.C: New test.
|
||||
|
||||
2007-11-06 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
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);
|
||||
+}
|
Loading…
Reference in New Issue
Block a user