1/* Define test-suite types to minimize conditional test-case source.
2   Copyright (C) 2011 Free Software Foundation, Inc.
3   Contributed by Iain Sandoe
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GCC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3.  If not see
19<http://www.gnu.org/licenses/>.  */
20
21#ifndef _OBJC_TEST_SUITE_TYPES_H_
22#define _OBJC_TEST_SUITE_TYPES_H_
23
24#ifndef __NEXT_RUNTIME__
25
26/* dummy const string class ref. */
27typedef void * TNS_STRING_REF_T;
28
29#else /* NeXT */
30
31#include "next-abi.h"
32#ifdef NEXT_OBJC_USE_NEW_INTERFACE
33#include <objc/runtime.h>
34#else
35#include <objc/objc-runtime.h>
36#endif
37
38/* Force a definition of nil that is compatible with GNU runtime.  */
39#undef  nil
40#define nil ((id)0)
41
42#ifndef NULL
43#define NULL 0
44#endif
45
46/* Where there are equivalent interfaces between APIs we substitute
47   a macro or typedef.  */
48
49#ifdef __OBJC2__
50/* Const String Class ref.  */
51typedef Class TNS_STRING_REF_T;
52#else
53/* Const String Class ref.  */
54/* We need objc_class - but we don't need endless reminders that it's deprecated.  */
55#pragma GCC diagnostic push
56#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
57typedef struct objc_class TNS_STRING_REF_T;
58#pragma GCC diagnostic pop
59#endif
60
61#endif  /*__NEXT_RUNTIME__ */
62#endif /* _OBJC_TEST_SUITE_TYPES_H_ */
63