summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-06-12 20:56:57 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-14 14:37:31 +0100
commit3968f33b6542cf20cf63cf49bfbc033bd2486295 (patch)
tree2bdb5e2f692a3bd3ecadbf2b4c7dc9f54485c737 /meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch
parent022ca1d1357caafdfe23aa9ab82f90ba89b6942b (diff)
downloadopenembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.gz
openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.bz2
openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.tar.xz
openembedded-core-3968f33b6542cf20cf63cf49bfbc033bd2486295.zip
gcc-4.6.0: Bring in patches from FSF 4.6 branch
This brings in new patches from 4.6 release branch updates the comment section of existing branch to not contain patch numbers. Tested build on qemu for arm ppc mips x86 and x86_64 Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch
new file mode 100644
index 000000000..7e2287cb3
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0328-In-libobjc.patch
@@ -0,0 +1,81 @@
+From 30ac84569e48f4807970260f04821bf31f42b66c Mon Sep 17 00:00:00 2001
+From: nicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Wed, 25 May 2011 09:07:57 +0000
+Subject: [PATCH] In libobjc/:
+ 2011-05-25 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Backport from mainline
+ 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR libobjc/48177
+ * selector.c (__sel_register_typed_name): Use sel_types_match()
+ instead of strcmp() to compare selector types (Suggestion by
+ Richard Frith-Macdonald <rfm@gnu.org>).
+
+In gcc/testsuite/:
+2011-05-25 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ Backport from mainline
+ 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ PR libobjc/48177
+ * objc.dg/pr48177.m: New testcase.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174176 138bc75d-0d04-0410-961f-82ee72b054a4
+
+new file mode 100644
+index 0000000..0d7ff29
+--- /dev/null
++++ b/gcc/testsuite/objc.dg/pr48177.m
+@@ -0,0 +1,35 @@
++/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, May 2011. */
++/* { dg-do run } */
++/* { dg-skip-if "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
++
++#include <objc/runtime.h>
++#include <stdlib.h>
++
++int main(int argc, void **args)
++{
++#ifdef __GNU_LIBOBJC__
++ /* This special test tests that, if you have a selector already
++ registered in the runtime with full type information, you can use
++ sel_registerTypedName() to get it even if you specify the type
++ with incorrect argframe information. This is helpful as
++ selectors generated by the compiler (which have correct argframe
++ information) are usually registered before hand-written ones
++ (which often have incorrect argframe information, but need the
++ correct one).
++
++ Note that in this hand-written test, even the type information of
++ the first selector may be wrong (on this machine); but that's OK
++ as we'll never actually use the selectors. */
++ SEL selector1 = sel_registerTypedName ("testMethod", "i8@0:4");
++ SEL selector2 = sel_registerTypedName ("testMethod", "i8@8:8");
++
++ /* We compare the selectors using ==, not using sel_isEqual(). This
++ is because we are testing internals of the runtime and we know
++ that in the current implementation they should be identical if
++ the stuff is to work as expected. Don't do this at home. */
++ if (selector1 != selector2)
++ abort ();
++#endif
++
++ return 0;
++}
+index 80d2d80..628b4f6 100644
+--- a/libobjc/selector.c
++++ b/libobjc/selector.c
+@@ -597,7 +597,7 @@ __sel_register_typed_name (const char *name, const char *types,
+ return s;
+ }
+ }
+- else if (! strcmp (s->sel_types, types))
++ else if (sel_types_match (s->sel_types, types))
+ {
+ if (orig)
+ {
+--
+1.7.0.4
+