summaryrefslogtreecommitdiff
path: root/gcc/testsuite/obj-c++.dg
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2013-07-16 14:44:29 +0000
committerIain Sandoe <iains@gcc.gnu.org>2013-07-16 14:44:29 +0000
commitf0d7ed9886cdeda21c8373fc3f60d839829f6f86 (patch)
tree4161e2fae34716ae7cba49cd0f04a1f9311a1802 /gcc/testsuite/obj-c++.dg
parent1962866cbaf8260ae7ff1e57cc67892bb9639412 (diff)
downloadgcc-f0d7ed9886cdeda21c8373fc3f60d839829f6f86.tar.gz
re PR target/55656 (objc/obj-c++ failures present under darwin11)
gcc/testsuite/ PR target/55656 PR target/55657 * obj-c++.dg/cxx-ivars-3.mm: Use NSObject instead of Object. * obj-c++.dg/strings/const-cfstring-5.mm: Likewise. * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. * objc.dg/image-info.m: Likewise. * objc.dg/symtab-1.m: Likewise. * objc.dg/torture/strings/const-str-10.m: Likewise. * objc.dg/torture/strings/const-str-11.m: Likewise. * objc.dg/torture/strings/const-str-9.m: Likewise. * objc.dg/zero-link-1.m: Likewise. * objc.dg/zero-link-2.m: Likewise. * objc.dg/no-extra-load.m: Avoid Foundation.h. * objc.dg/objc-foreach-4.m: Likewise. * objc.dg/objc-foreach-5.m: Likewise. * obj-c++.dg/proto-lossage-7.mm: Use NSObject instead of Object (for Darwin). * obj-c++.dg/strings/const-str-12.mm: Likewise. * obj-c++.dg/syntax-error-1.mm: Likewise. * objc.dg/method-6.m: Likewise. * objc.dg/pr23214.m: Likewise. * objc.dg/proto-lossage-7.m: Likewise. * objc.dg/strings/const-str-12b.m: Likewise. * objc.dg/zero-link-3.m: Likewise. * obj-c++.dg/method-12.mm: Skip on Darwin versions without 'Object'. * objc.dg/encode-7-next-64bit.m: Use NSObject instead of Object, adjust headers, interfaces and encoded types to reflect current system versions. Add FIXME and outputs from current system compiler for reference. From-SVN: r200982
Diffstat (limited to 'gcc/testsuite/obj-c++.dg')
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm13
-rw-r--r--gcc/testsuite/obj-c++.dg/method-12.mm11
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-7.mm11
-rw-r--r--gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm6
-rw-r--r--gcc/testsuite/obj-c++.dg/strings/const-str-12.mm10
-rw-r--r--gcc/testsuite/obj-c++.dg/syntax-error-1.mm10
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm4
-rw-r--r--gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm4
9 files changed, 49 insertions, 24 deletions
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
index e94e6ec57a2..0098349cbce 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
@@ -2,12 +2,15 @@
// { dg-do run { target *-*-darwin* } }
// { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
-// { dg-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4" }
+// { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
// This test has no equivalent or meaning for m64/ABI V2
// { dg-xfail-run-if "No Test Avail" { *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
#include <objc/objc-runtime.h>
#include <stdlib.h>
+#include <Foundation/NSObject.h>
+
+//extern "C" { int printf(const char *,...); }
#define CHECK_IF(expr) if(!(expr)) abort()
#ifndef CLS_HAS_CXX_STRUCTORS
@@ -19,7 +22,7 @@ struct cxx_struct {
cxx_struct (void) { a = b = 55; }
};
-@interface Foo {
+@interface Foo: NSObject {
int c;
cxx_struct s;
}
@@ -42,9 +45,11 @@ int main (void)
Class cls;
cls = objc_getClass("Foo");
- CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
+// printf((const char *)"Foo info %lx\n",cls->info);
+ CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) != 0);
cls = objc_getClass("Bar");
- CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+// printf((const char *)"Bar info %lx\n",cls->info);
+ CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) == 0);
#else
/* No test needed or available. */
diff --git a/gcc/testsuite/obj-c++.dg/method-12.mm b/gcc/testsuite/obj-c++.dg/method-12.mm
index c1f2a39dfa7..6cdb0f9c810 100644
--- a/gcc/testsuite/obj-c++.dg/method-12.mm
+++ b/gcc/testsuite/obj-c++.dg/method-12.mm
@@ -2,6 +2,7 @@
/* Author: Ziemowit Laski <zlaski@apple.com> */
/* { dg-options "-Wstrict-selector-match" } */
/* { dg-do compile } */
+/* { dg-skip-if "Object interface removed" { *-*-darwin[1-2]* && { lp64 } } { "-fnext-runtime" } { "" } } */
#include <objc/Protocol.h>
@@ -19,13 +20,13 @@ void foo(void) {
Class receiver;
[receiver port]; /* { dg-warning "multiple methods named .\\+port. found" } */
- /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
- /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
+ /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
+ /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
[receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
- /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
- /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
- /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
[Class port]; /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
}
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
index b7746d7a14f..b32cfd8a0dd 100644
--- a/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
@@ -1,12 +1,19 @@
/* Check that typedefs of ObjC classes preserve
any @protocol qualifiers. */
/* { dg-do compile } */
+
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
#include <objc/Object.h>
+#define OBJECT Object
+#endif
@protocol CanDoStuff;
-typedef Object<CanDoStuff> CanDoStuffType;
-typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+typedef OBJECT<CanDoStuff> CanDoStuffType;
+typedef OBJECT<CanDoStuff> *CanDoStuffTypePtr;
@protocol CanDoStuff
- (int) dostuff;
diff --git a/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm b/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
index 13cb7895779..98bb7c5bddc 100644
--- a/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
+++ b/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
@@ -6,16 +6,16 @@
/* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mconstant-cfstrings" } */
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
-@interface Foo: Object {
+@interface Foo: NSObject {
char *cString;
unsigned int len;
}
+ (Foo *)description;
@end
-@interface Bar: Object
+@interface Bar: NSObject
+ (Foo *) getString: (int) which;
@end
diff --git a/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm b/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
index 430ab5db2d6..d0dfb668ea9 100644
--- a/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
+++ b/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
@@ -5,17 +5,23 @@
/* { dg-options "-fconstant-string-class=Foo" } */
/* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
#include <objc/Object.h>
+#define OBJECT Object
+#endif
#include "../../objc-obj-c++-shared/objc-test-suite-types.h"
-@interface Foo: Object {
+@interface Foo: OBJECT {
char *cString;
unsigned int len;
}
+ (id)description;
@end
-@interface Bar: Object
+@interface Bar: OBJECT
+ (Foo *) getString: (int) which;
@end
diff --git a/gcc/testsuite/obj-c++.dg/syntax-error-1.mm b/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
index 13f3c275cce..1fe9ca3c4b0 100644
--- a/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
+++ b/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
@@ -1,7 +1,13 @@
/* Graceful handling of a syntax error. */
/* { dg-do compile } */
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
#include <objc/Object.h>
+#define OBJECT Object
+#endif
class foo {
public:
@@ -12,7 +18,7 @@ class foo {
extern void NXLog(const char *, ...);
-@interface Test2 : Object {
+@interface Test2 : OBJECT {
}
- (void) foo2;
@end
@@ -23,4 +29,4 @@ extern void NXLog(const char *, ...);
} /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
@end
-/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 22 } */
+/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 28 } */
diff --git a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
index cba188b70e3..f2e912beb0a 100644
--- a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
@@ -6,10 +6,10 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
-@interface NSString: Object
+@interface NSString: NSObject
@end
@interface NSSimpleCString : NSString {
diff --git a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
index c54f89bd8c8..7e5d9b61e71 100644
--- a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
@@ -7,10 +7,10 @@
/* { dg-options "-fconstant-string-class=XStr" } */
/* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
-@interface XString: Object {
+@interface XString: NSObject {
@protected
char *bytes;
}
diff --git a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
index b4f15fdcdd6..d78dc73f937 100644
--- a/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
+++ b/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
@@ -5,10 +5,10 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
-@interface NSConstantString: Object {
+@interface NSConstantString: NSObject {
char *cString;
unsigned int len;
}