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-20120920.tar.bz2
|
||||||
/gcc-4.7.2-20120921.tar.bz2
|
/gcc-4.7.2-20120921.tar.bz2
|
||||||
/gcc-4.7.2-20121001.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 DATE 20121009
|
||||||
%global SVNREV 191896
|
%global SVNREV 192248
|
||||||
%global gcc_version 4.7.2
|
%global gcc_version 4.7.2
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %{release}, append them after %{gcc_release} on Release: line.
|
# %{release}, append them after %{gcc_release} on Release: line.
|
||||||
%global gcc_release 3
|
%global gcc_release 4
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
||||||
@ -171,7 +171,6 @@ Patch0: gcc47-hack.patch
|
|||||||
Patch1: gcc47-c++-builtin-redecl.patch
|
Patch1: gcc47-c++-builtin-redecl.patch
|
||||||
Patch2: gcc47-java-nomulti.patch
|
Patch2: gcc47-java-nomulti.patch
|
||||||
Patch3: gcc47-ppc32-retaddr.patch
|
Patch3: gcc47-ppc32-retaddr.patch
|
||||||
Patch4: gcc47-pr33763.patch
|
|
||||||
Patch5: gcc47-rh330771.patch
|
Patch5: gcc47-rh330771.patch
|
||||||
Patch6: gcc47-i386-libgomp.patch
|
Patch6: gcc47-i386-libgomp.patch
|
||||||
Patch7: gcc47-sparc-config-detection.patch
|
Patch7: gcc47-sparc-config-detection.patch
|
||||||
@ -668,7 +667,6 @@ package or when debugging this package.
|
|||||||
%patch1 -p0 -b .c++-builtin-redecl~
|
%patch1 -p0 -b .c++-builtin-redecl~
|
||||||
%patch2 -p0 -b .java-nomulti~
|
%patch2 -p0 -b .java-nomulti~
|
||||||
%patch3 -p0 -b .ppc32-retaddr~
|
%patch3 -p0 -b .ppc32-retaddr~
|
||||||
%patch4 -p0 -b .pr33763~
|
|
||||||
%patch5 -p0 -b .rh330771~
|
%patch5 -p0 -b .rh330771~
|
||||||
%patch6 -p0 -b .i386-libgomp~
|
%patch6 -p0 -b .i386-libgomp~
|
||||||
%patch7 -p0 -b .sparc-config-detection~
|
%patch7 -p0 -b .sparc-config-detection~
|
||||||
@ -2663,6 +2661,14 @@ fi
|
|||||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||||
|
|
||||||
%changelog
|
%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
|
* Mon Oct 1 2012 Jakub Jelinek <jakub@redhat.com> 4.7.2-3
|
||||||
- update from the 4.7 branch
|
- update from the 4.7 branch
|
||||||
- PRs target/54083, target/54703, target/54746, testsuite/54007
|
- 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