From 98c1c7cd1e9ca19eef4899312e963e61087d91b6 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iains@gcc.gnu.org>
Date: Mon, 29 Nov 2010 16:52:41 +0000
Subject: [PATCH] strings-1.m: Move to...

gcc/testsuite:

	* gcc/testsuite/objc.dg/strings-1.m: Move to...
	* gcc/testsuite/objc.dg/strings/strings-1.m: ... here. Update paths.
	* gcc/testsuite/objc.dg/strings-2.m: Move to ...
	* gcc/testsuite/objc.dg/strings/strings-2.m ... here, provide a
	constructor and class reference for NeXT runtime.  Update paths.
	* gcc/testsuite/obj-c++.dg/strings-1.m: Move to...
	* gcc/testsuite/obj-c++.dg/strings/strings-1.m: ... here. Update paths.
	* gcc/testsuite/obj-c++.dg/strings-2.m: Move to ...
	* gcc/testsuite/obj-c__.dg/strings/strings-2.m ... here, provide a
	constructor and class reference for NeXT runtime.  Update paths.

From-SVN: r167253
---
 gcc/testsuite/ChangeLog                       | 13 ++++++++++
 .../obj-c++.dg/{ => strings}/strings-1.mm     |  4 +--
 .../obj-c++.dg/{ => strings}/strings-2.mm     | 26 ++++++++++++++++---
 .../objc.dg/{ => strings}/strings-1.m         |  4 +--
 .../objc.dg/{ => strings}/strings-2.m         | 26 ++++++++++++++++---
 5 files changed, 63 insertions(+), 10 deletions(-)
 rename gcc/testsuite/obj-c++.dg/{ => strings}/strings-1.mm (94%)
 rename gcc/testsuite/obj-c++.dg/{ => strings}/strings-2.mm (63%)
 rename gcc/testsuite/objc.dg/{ => strings}/strings-1.m (94%)
 rename gcc/testsuite/objc.dg/{ => strings}/strings-2.m (63%)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1cfb5b2dfe6b..19080bcb038b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
+
+	* gcc/testsuite/objc.dg/strings-1.m: Move to...
+	* gcc/testsuite/objc.dg/strings/strings-1.m: ... here. Update paths.
+	* gcc/testsuite/objc.dg/strings-2.m: Move to ...
+	* gcc/testsuite/objc.dg/strings/strings-2.m ... here, provide a 
+	constructor and class reference for NeXT runtime.  Update paths.
+	* gcc/testsuite/obj-c++.dg/strings-1.m: Move to...
+	* gcc/testsuite/obj-c++.dg/strings/strings-1.m: ... here. Update paths.
+	* gcc/testsuite/obj-c++.dg/strings-2.m: Move to ...
+	* gcc/testsuite/obj-c__.dg/strings/strings-2.m ... here, provide a 
+	constructor and class reference for NeXT runtime.  Update paths.
+	
 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
 
 	PR c++/42260
diff --git a/gcc/testsuite/obj-c++.dg/strings-1.mm b/gcc/testsuite/obj-c++.dg/strings/strings-1.mm
similarity index 94%
rename from gcc/testsuite/obj-c++.dg/strings-1.mm
rename to gcc/testsuite/obj-c++.dg/strings/strings-1.mm
index 2630220618c2..fc3f211857aa 100644
--- a/gcc/testsuite/obj-c++.dg/strings-1.mm
+++ b/gcc/testsuite/obj-c++.dg/strings/strings-1.mm
@@ -1,8 +1,8 @@
 /* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/next-mapping.h"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #endif
diff --git a/gcc/testsuite/obj-c++.dg/strings-2.mm b/gcc/testsuite/obj-c++.dg/strings/strings-2.mm
similarity index 63%
rename from gcc/testsuite/obj-c++.dg/strings-2.mm
rename to gcc/testsuite/obj-c++.dg/strings/strings-2.mm
index 9b7023a97459..09d7a7f1f320 100644
--- a/gcc/testsuite/obj-c++.dg/strings-2.mm
+++ b/gcc/testsuite/obj-c++.dg/strings/strings-2.mm
@@ -5,10 +5,10 @@
 /* { dg-options "-fconstant-string-class=MyTestString" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=MyTestString" { target *-*-darwin* } } */
 
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.mm" } */
+/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.mm" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/next-mapping.h"
 
 #include <stdlib.h> /* For abort() */
 
@@ -31,6 +31,14 @@
 }
 @end
 
+#ifdef __NEXT_RUNTIME__
+#  ifdef NEXT_OBJC_USE_NEW_INTERFACE
+struct fudge_objc_class _MyTestStringClassReference;
+#  else
+struct objc_class _MyTestStringClassReference;
+#  endif
+#endif
+
 int main (void)
 {
   MyTestString *test_valid1 = @"test";
@@ -49,3 +57,15 @@ int main (void)
 
   return 0;
 }
+
+#ifdef __NEXT_RUNTIME__
+/* The MyTestString metaclass will need to be initialized before we can
+   send messages to strings.  */
+
+void testsuite_mytest_string_init (void) __attribute__((constructor));
+void testsuite_mytest_string_init (void) {
+  memcpy (&_MyTestStringClassReference,
+	  objc_getClass ("MyTestString"),
+	  sizeof (_MyTestStringClassReference));
+}
+#endif
\ No newline at end of file
diff --git a/gcc/testsuite/objc.dg/strings-1.m b/gcc/testsuite/objc.dg/strings/strings-1.m
similarity index 94%
rename from gcc/testsuite/objc.dg/strings-1.m
rename to gcc/testsuite/objc.dg/strings/strings-1.m
index 2630220618c2..fc3f211857aa 100644
--- a/gcc/testsuite/objc.dg/strings-1.m
+++ b/gcc/testsuite/objc.dg/strings/strings-1.m
@@ -1,8 +1,8 @@
 /* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
 /* { dg-do compile } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/next-mapping.h"
 #ifndef __NEXT_RUNTIME__
 #include <objc/NXConstStr.h>
 #endif
diff --git a/gcc/testsuite/objc.dg/strings-2.m b/gcc/testsuite/objc.dg/strings/strings-2.m
similarity index 63%
rename from gcc/testsuite/objc.dg/strings-2.m
rename to gcc/testsuite/objc.dg/strings/strings-2.m
index d69967a6871d..29d9375bf7b1 100644
--- a/gcc/testsuite/objc.dg/strings-2.m
+++ b/gcc/testsuite/objc.dg/strings/strings-2.m
@@ -5,10 +5,10 @@
 /* { dg-options "-fconstant-string-class=MyTestString" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=MyTestString" { target *-*-darwin* } } */
 
-/* { dg-additional-sources "../objc-obj-c++-shared/Object1.m" } */
+/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.m" } */
 
-#include "../objc-obj-c++-shared/Object1.h"
-#include "../objc-obj-c++-shared/next-mapping.h"
+#include "../../objc-obj-c++-shared/Object1.h"
+#include "../../objc-obj-c++-shared/next-mapping.h"
 
 #include <stdlib.h> /* For abort() */
 
@@ -31,6 +31,14 @@
 }
 @end
 
+#ifdef __NEXT_RUNTIME__
+#  ifdef NEXT_OBJC_USE_NEW_INTERFACE
+struct fudge_objc_class _MyTestStringClassReference;
+#  else
+struct objc_class _MyTestStringClassReference;
+#  endif
+#endif
+
 int main (void)
 {
   MyTestString *test_valid1 = @"test";
@@ -49,3 +57,15 @@ int main (void)
 
   return 0;
 }
+
+#ifdef __NEXT_RUNTIME__
+/* The MyTestString metaclass will need to be initialized before we can
+   send messages to strings.  */
+
+void testsuite_mytest_string_init (void) __attribute__((constructor));
+void testsuite_mytest_string_init (void) {
+  memcpy (&_MyTestStringClassReference,
+	  objc_getClass ("MyTestString"),
+	  sizeof (_MyTestStringClassReference));
+}
+#endif
\ No newline at end of file
-- 
GitLab