diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.5.1/fedora/gcc43-pr33763.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.5.1/fedora/gcc43-pr33763.patch | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1/fedora/gcc43-pr33763.patch b/meta/recipes-devtools/gcc/gcc-4.5.1/fedora/gcc43-pr33763.patch deleted file mode 100644 index 6fc0a1f7c1..0000000000 --- a/meta/recipes-devtools/gcc/gcc-4.5.1/fedora/gcc43-pr33763.patch +++ /dev/null @@ -1,160 +0,0 @@ -Upstream-Status: Inappropriate [distribution: fedora] -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. - -Index: gcc/tree-inline.c -=================================================================== ---- gcc/tree-inline.c.orig 2010-03-18 13:07:13.000000000 -0700 -+++ gcc/tree-inline.c 2010-06-25 10:18:51.230139825 -0700 -@@ -3545,6 +3545,12 @@ - goto egress; - - if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) -+ /* For extern inline functions that get redefined we always -+ silently ignored alway_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) - { -Index: gcc/testsuite/gcc.dg/pr33763.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gcc/testsuite/gcc.dg/pr33763.c 2010-06-25 10:18:51.234141302 -0700 -@@ -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); -+} -Index: gcc/testsuite/g++.dg/opt/inline13.C -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gcc/testsuite/g++.dg/opt/inline13.C 2010-06-25 10:18:51.261052137 -0700 -@@ -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); -+} |