Index: gcc/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm |
diff --git a/gcc/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm b/gcc/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm |
index 3a6df79ab4c39bc1bbdc5b4f87f5b5ca67a0bfd8..8f836ce9061a201ac06a5eebb253cb8327836ab7 100644 |
--- a/gcc/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm |
+++ b/gcc/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm |
@@ -1,10 +1,12 @@ |
// Check if the '- .cxx_construct' and '-.cxx_destruct' methods get called |
// and if they perform their desired function. |
-// { dg-do run { xfail { "*-*-*" } } } PR27247/PR23681 |
+// { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } |
+// { dg-do run { target *-*-darwin* } } |
+// { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } |
// { dg-options "-fobjc-call-cxx-cdtors" } |
-#include <objc/Object.h> |
+#include "../objc-obj-c++-shared/Object1.h" |
#include <stdlib.h> |
#define CHECK_IF(expr) if(!(expr)) abort() |
@@ -74,3 +76,4 @@ int main (void) |
[foo free]; |
CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called); |
} |
+#include "../objc-obj-c++-shared/Object1-implementation.h" |