diff options
author | Iain Sandoe <iains@gcc.gnu.org> | 2011-01-08 14:12:14 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2011-01-08 14:12:14 +0000 |
commit | d5dc93f4464d315c1ee2f5d72377381529b88208 (patch) | |
tree | c9cef10888f13a820fe64443d26bc8d8fc3d1581 /gcc/testsuite/objc | |
parent | ecb3baaa8e973e3963eee7929bfd2fc419a2a950 (diff) | |
download | gcc-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')
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 |