restore cxx-ivar-3 test functionality
authorIain Sandoe <iains@gcc.gnu.org>
Fri, 2 Jul 2010 09:49:53 +0000 (09:49 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Fri, 2 Jul 2010 09:49:53 +0000 (09:49 +0000)
* obj-c++.dg/cxx-ivars-3.mm: Make the test require OSX <= 10.4.
Use the ABI-0 accessors and fail it for m64.

From-SVN: r161692

gcc/testsuite/ChangeLog
gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm

index 651d8b652ba7a6bc327dec349d6cf8fc02251b18..b4dc10bc2ce7cffc1c25a401123593b730912eb9 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-02  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * obj-c++.dg/cxx-ivars-3.mm: Make the test require OSX <= 10.4.
+       Use the ABI-0 accessors and fail it for m64.
+
 2010-07-02  Jan Hubicka  <jh@suse.cz>
 
        * g++.dg/tree-ssa/pr44706.C: New testcase.
index a3c4b0c492a8cbcf35cdf0ea6d36376862782e69..e94e6ec57a224d1b33c45c1599afdc8a9734fe47 100644 (file)
@@ -1,13 +1,12 @@
 // Check if ObjC classes with non-POD C++ ivars are specially marked in the metadata.
 
 // { dg-do run { target *-*-darwin* } }
-// { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } 
-// { dg-options "-fobjc-call-cxx-cdtors" }
-// { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } }
-
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+// { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
+// { dg-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4" }
+// 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>
 #define CHECK_IF(expr) if(!(expr)) abort()
 
@@ -39,18 +38,17 @@ struct cxx_struct {
 
 int main (void)
 {
+#ifndef __LP64__
   Class cls;
 
-  cls = objc_get_class("Foo");
-#if NEXT_OBJC_USE_NEW_INTERFACE
-  CHECK_IF(class_isMetaClass(cls) & CLS_HAS_CXX_STRUCTORS);
-  cls = objc_getClass("Bar");
-  CHECK_IF(!(class_isMetaClass(cls) & CLS_HAS_CXX_STRUCTORS));
-#else
+  cls = objc_getClass("Foo");
   CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
   cls = objc_getClass("Bar");
   CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+
+#else
+  /* No test needed or available.  */
+  abort ();
 #endif
   return 0;
 }
-#include "../objc-obj-c++-shared/Object1-implementation.h"