aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2011-01-08 14:12:14 +0000
committerIain Sandoe <iains@gcc.gnu.org>2011-01-08 14:12:14 +0000
commitd5dc93f4464d315c1ee2f5d72377381529b88208 (patch)
treec9cef10888f13a820fe64443d26bc8d8fc3d1581 /gcc/testsuite/objc
parentecb3baaa8e973e3963eee7929bfd2fc419a2a950 (diff)
downloadgcc-d5dc93f4464d315c1ee2f5d72377381529b88208.zip
gcc-d5dc93f4464d315c1ee2f5d72377381529b88208.tar.gz
gcc-d5dc93f4464d315c1ee2f5d72377381529b88208.tar.bz2
ObjC NeXT, split encode-support code from next-mapping.h
* objc-obj-c++-shared/next-mapping.h: Move code and definitions for emulation of libobjc-gnu structure layout functionality to .. * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: New. * objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h: New. * objc/execute/bf-common.h: Adjust headers. * objc/execute/bf-1.m: Likewise. * objc/execute/bf-2.m: Likewise. * objc/execute/bf-3.m: Likewise. * objc/execute/bf-4.m: Likewise. * objc/execute/bf-5.m: Likewise. * objc/execute/bf-6.m: Likewise. * objc/execute/bf-7.m: Likewise. * objc/execute/bf-8.m: Likewise. * objc/execute/bf-9.m: Likewise. * objc/execute/bf-10.m: Likewise. * objc/execute/bf-11.m: Likewise. * objc/execute/bf-12.m: Likewise. * objc/execute/bf-13.m: Likewise. * objc/execute/bf-14.m: Likewise. * objc/execute/bf-15.m: Likewise. * objc/execute/bf-16.m: Likewise. * objc/execute/bf-17.m: Likewise. * objc/execute/bf-18.m: Likewise. * objc/execute/bf-19.m: Likewise. * objc/execute/bf-20.m: Likewise. * objc/execute/bf-21.m: Likewise. * objc/execute/bycopy-3.m: Adjust headers, add next-specific code for objc_get_type_qualifiers (). From-SVN: r168597
Diffstat (limited to 'gcc/testsuite/objc')
-rw-r--r--gcc/testsuite/objc/execute/bf-1.m3
-rw-r--r--gcc/testsuite/objc/execute/bf-10.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-11.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-12.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-13.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-14.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-15.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-16.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-17.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-18.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-19.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-2.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-20.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-21.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-3.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-4.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-5.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-6.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-7.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-8.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-9.m2
-rw-r--r--gcc/testsuite/objc/execute/bf-common.h12
-rw-r--r--gcc/testsuite/objc/execute/bycopy-3.m36
23 files changed, 45 insertions, 46 deletions
diff --git a/gcc/testsuite/objc/execute/bf-1.m b/gcc/testsuite/objc/execute/bf-1.m
index d8b9b29..a5d2191 100644
--- a/gcc/testsuite/objc/execute/bf-1.m
+++ b/gcc/testsuite/objc/execute/bf-1.m
@@ -1,5 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
-#include <objc/objc-api.h>
+#include <objc/objc.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-10.m b/gcc/testsuite/objc/execute/bf-10.m
index 9f5c7a5..6cbdc22 100644
--- a/gcc/testsuite/objc/execute/bf-10.m
+++ b/gcc/testsuite/objc/execute/bf-10.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-11.m b/gcc/testsuite/objc/execute/bf-11.m
index 1779d0f..42a97a5 100644
--- a/gcc/testsuite/objc/execute/bf-11.m
+++ b/gcc/testsuite/objc/execute/bf-11.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-12.m b/gcc/testsuite/objc/execute/bf-12.m
index 5a05a09..78a19d3 100644
--- a/gcc/testsuite/objc/execute/bf-12.m
+++ b/gcc/testsuite/objc/execute/bf-12.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-13.m b/gcc/testsuite/objc/execute/bf-13.m
index f893bfd..fa47238 100644
--- a/gcc/testsuite/objc/execute/bf-13.m
+++ b/gcc/testsuite/objc/execute/bf-13.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-14.m b/gcc/testsuite/objc/execute/bf-14.m
index 8b65a04..99fa8fe 100644
--- a/gcc/testsuite/objc/execute/bf-14.m
+++ b/gcc/testsuite/objc/execute/bf-14.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-15.m b/gcc/testsuite/objc/execute/bf-15.m
index f8d096b..c32e663 100644
--- a/gcc/testsuite/objc/execute/bf-15.m
+++ b/gcc/testsuite/objc/execute/bf-15.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-16.m b/gcc/testsuite/objc/execute/bf-16.m
index dea379c..e286de7 100644
--- a/gcc/testsuite/objc/execute/bf-16.m
+++ b/gcc/testsuite/objc/execute/bf-16.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
struct A {
int i;
diff --git a/gcc/testsuite/objc/execute/bf-17.m b/gcc/testsuite/objc/execute/bf-17.m
index b36d406..7650ffa 100644
--- a/gcc/testsuite/objc/execute/bf-17.m
+++ b/gcc/testsuite/objc/execute/bf-17.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
struct A {
int i;
diff --git a/gcc/testsuite/objc/execute/bf-18.m b/gcc/testsuite/objc/execute/bf-18.m
index 96a8aeb..5288295 100644
--- a/gcc/testsuite/objc/execute/bf-18.m
+++ b/gcc/testsuite/objc/execute/bf-18.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-19.m b/gcc/testsuite/objc/execute/bf-19.m
index 8be8ecc..d9306df 100644
--- a/gcc/testsuite/objc/execute/bf-19.m
+++ b/gcc/testsuite/objc/execute/bf-19.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-2.m b/gcc/testsuite/objc/execute/bf-2.m
index bbb6fe1..f776eea 100644
--- a/gcc/testsuite/objc/execute/bf-2.m
+++ b/gcc/testsuite/objc/execute/bf-2.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-20.m b/gcc/testsuite/objc/execute/bf-20.m
index 00cf99b..311a0fd 100644
--- a/gcc/testsuite/objc/execute/bf-20.m
+++ b/gcc/testsuite/objc/execute/bf-20.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-21.m b/gcc/testsuite/objc/execute/bf-21.m
index 423bde0..587060d 100644
--- a/gcc/testsuite/objc/execute/bf-21.m
+++ b/gcc/testsuite/objc/execute/bf-21.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
typedef enum
{
diff --git a/gcc/testsuite/objc/execute/bf-3.m b/gcc/testsuite/objc/execute/bf-3.m
index a531726..52863bb 100644
--- a/gcc/testsuite/objc/execute/bf-3.m
+++ b/gcc/testsuite/objc/execute/bf-3.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-4.m b/gcc/testsuite/objc/execute/bf-4.m
index 8c9aa4e..5654b6f 100644
--- a/gcc/testsuite/objc/execute/bf-4.m
+++ b/gcc/testsuite/objc/execute/bf-4.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-5.m b/gcc/testsuite/objc/execute/bf-5.m
index 3a2208f..b75509d 100644
--- a/gcc/testsuite/objc/execute/bf-5.m
+++ b/gcc/testsuite/objc/execute/bf-5.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-6.m b/gcc/testsuite/objc/execute/bf-6.m
index 1a3c2d8..187c758 100644
--- a/gcc/testsuite/objc/execute/bf-6.m
+++ b/gcc/testsuite/objc/execute/bf-6.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-7.m b/gcc/testsuite/objc/execute/bf-7.m
index c4e8d6e..f1ee46e 100644
--- a/gcc/testsuite/objc/execute/bf-7.m
+++ b/gcc/testsuite/objc/execute/bf-7.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-8.m b/gcc/testsuite/objc/execute/bf-8.m
index 8dfdccf..164950f 100644
--- a/gcc/testsuite/objc/execute/bf-8.m
+++ b/gcc/testsuite/objc/execute/bf-8.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-9.m b/gcc/testsuite/objc/execute/bf-9.m
index 077de6c..9fc7c70 100644
--- a/gcc/testsuite/objc/execute/bf-9.m
+++ b/gcc/testsuite/objc/execute/bf-9.m
@@ -1,6 +1,4 @@
-#import "../../objc-obj-c++-shared/Object1.h"
#include <objc/objc.h>
-#include <objc/objc-api.h>
@interface MyObject
{
diff --git a/gcc/testsuite/objc/execute/bf-common.h b/gcc/testsuite/objc/execute/bf-common.h
index 5d6ef57..c79c3ef 100644
--- a/gcc/testsuite/objc/execute/bf-common.h
+++ b/gcc/testsuite/objc/execute/bf-common.h
@@ -1,7 +1,14 @@
+#include <stdio.h>
#include <stdlib.h>
-#include "../../objc-obj-c++-shared/next-mapping.h"
+
#ifndef __NEXT_RUNTIME__
#include <objc/encoding.h>
+#else
+/* The following header, together with the implementation included below,
+ emulate functionality provided by the GNU runtime but not available from
+ the NeXT runtime. */
+#include "../../objc-obj-c++-shared/objc-test-suite-next-encode-assist.h"
+#define objc_get_class(C) objc_getClass(C)
#endif
void print_ivars (Class class)
@@ -63,7 +70,6 @@ int main ()
};
int size1, size2;
Class class = objc_get_class ("MyObject");
-
printf ("type = %s\n", @encode (struct class_vars));
print_ivars (class);
@@ -77,3 +83,5 @@ int main ()
exit (0);
}
+
+#include "../../objc-obj-c++-shared/objc-test-suite-next-encode-assist-impl.h"
diff --git a/gcc/testsuite/objc/execute/bycopy-3.m b/gcc/testsuite/objc/execute/bycopy-3.m
index d1944a4..4c2bd27 100644
--- a/gcc/testsuite/objc/execute/bycopy-3.m
+++ b/gcc/testsuite/objc/execute/bycopy-3.m
@@ -9,8 +9,10 @@
* interfere with what we are testing, which is that the `bycopy'
* keyword generates the _F_BYCOPY qualifier for the return type. */
-#include "../../objc-obj-c++-shared/next-mapping.h"
-#include "../../objc-obj-c++-shared/Protocol1.h"
+extern void exit (int) __attribute__ ((noreturn));
+extern int printf (const char *, ...);
+
+#include <objc/Protocol.h>
#ifndef __NEXT_RUNTIME__
#include <objc/encoding.h>
@@ -31,6 +33,11 @@
}
@end
+/* The following header, together with the implementation included below,
+ emulate functionality provided by the GNU runtime but not available from
+ the NeXT runtime. */
+#include "../../objc-obj-c++-shared/objc-test-suite-next-encode-assist.h"
+
int main (void)
{
struct objc_method_description *method;
@@ -69,3 +76,28 @@ int main (void)
/* Else, happy end */
return 0;
}
+
+#ifdef __NEXT_RUNTIME__
+unsigned
+objc_get_type_qualifiers (const char *type)
+{
+ unsigned res = 0;
+ BOOL flag = YES;
+
+ while (flag)
+ switch (*type++)
+ {
+ case _C_CONST: res |= _F_CONST; break;
+ case _C_IN: res |= _F_IN; break;
+ case _C_INOUT: res |= _F_INOUT; break;
+ case _C_OUT: res |= _F_OUT; break;
+ case _C_BYCOPY: res |= _F_BYCOPY; break;
+ case _C_BYREF: res |= _F_BYREF; break;
+ case _C_ONEWAY: res |= _F_ONEWAY; break;
+ case _C_GCINVISIBLE: res |= _F_GCINVISIBLE; break;
+ default: flag = NO;
+ }
+
+ return res;
+}
+#endif