From 03af6e448f1f0893f4a0470e39186ecb4720f238 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
Date: Wed, 31 Mar 2010 15:50:45 +0000
Subject: [PATCH] re PR objc/35165 (Massive failures of objc on
 i686-apple-darwin9)

2010-03-31  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>

	PR testsuite/35165
	* obj-c++.dg/try-catch-9.mm: Don't XFAIL m32 NeXT runtime.
	* obj-c++.dg/try-catch-2.mm: Ditto.
	* obj-c++.dg/lookup-2.mm: Ditto.
	* obj-c++.dg/encode-8.m: Ditto.
	* obj-c++.dg/cxx-ivars-2.mm: Ditto.
	* obj-c++.dg/cxx-ivars-3.mm: Skip for GNU, XFail for m64 NeXT.
	* obj-c++.dg/const-str-10.mm: Skip for GNU, match .quad for m64 NeXT.
	* obj-c++.dg/const-str-11.mm: Ditto.
	* obj-c++.dg/const-str-9.mm: Ditto.
	* obj-c++.dg/bitfield-3.mm: Skip for GNU runtime.
	* obj-c++.dg/bitfield-2.mm: XFAIL run for m64 NeXT runtime.
	* obj-c++.dg/except-1.mm: Ditto.
	* obj-c++.dg/const-str-7.mm: Ditto.
	* obj-c++.dg/cxx-ivars-1.mm: Ditto.
	* obj-c++.dg/const-str-3.mm: Ditto.
	* obj-c++.dg/const-str-7.mm: Ditto.
	* obj-c++.dg/stubify-2.mm: Change dump file name.

From-SVN: r157873
---
 gcc/testsuite/ChangeLog                  | 19 +++++++++++++++++++
 gcc/testsuite/obj-c++.dg/bitfield-2.mm   |  1 +
 gcc/testsuite/obj-c++.dg/bitfield-3.mm   |  3 ++-
 gcc/testsuite/obj-c++.dg/const-str-10.mm |  5 +++--
 gcc/testsuite/obj-c++.dg/const-str-11.mm |  5 +++--
 gcc/testsuite/obj-c++.dg/const-str-3.mm  |  1 +
 gcc/testsuite/obj-c++.dg/const-str-7.mm  |  1 +
 gcc/testsuite/obj-c++.dg/const-str-9.mm  |  3 ++-
 gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm  |  2 +-
 gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm  |  3 ++-
 gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm  |  5 +++--
 gcc/testsuite/obj-c++.dg/encode-8.mm     |  3 ++-
 gcc/testsuite/obj-c++.dg/except-1.mm     |  1 +
 gcc/testsuite/obj-c++.dg/lookup-2.mm     |  2 +-
 gcc/testsuite/obj-c++.dg/stubify-2.mm    |  2 +-
 gcc/testsuite/obj-c++.dg/try-catch-2.mm  |  3 ++-
 gcc/testsuite/obj-c++.dg/try-catch-9.mm  |  3 ++-
 17 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ed8cdfc83c7e..2f883fcb50d8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,24 @@
 2010-03-31  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
 
+	PR testsuite/35165
+	* obj-c++.dg/try-catch-9.mm: Don't XFAIL m32 NeXT runtime.
+	* obj-c++.dg/try-catch-2.mm: Ditto.
+	* obj-c++.dg/lookup-2.mm: Ditto.
+	* obj-c++.dg/encode-8.m: Ditto.
+	* obj-c++.dg/cxx-ivars-2.mm: Ditto.
+	* obj-c++.dg/cxx-ivars-3.mm: Skip for GNU, XFail for m64 NeXT.
+	* obj-c++.dg/const-str-10.mm: Skip for GNU, match .quad for m64 NeXT.
+	* obj-c++.dg/const-str-11.mm: Ditto.
+	* obj-c++.dg/const-str-9.mm: Ditto.
+	* obj-c++.dg/bitfield-3.mm: Skip for GNU runtime.
+	* obj-c++.dg/bitfield-2.mm: XFAIL run for m64 NeXT runtime.
+	* obj-c++.dg/except-1.mm: Ditto.
+	* obj-c++.dg/const-str-7.mm: Ditto.
+	* obj-c++.dg/cxx-ivars-1.mm: Ditto.
+	* obj-c++.dg/const-str-3.mm: Ditto.
+	* obj-c++.dg/const-str-7.mm: Ditto.
+	* obj-c++.dg/stubify-2.mm: Change dump file name.
+
 	PR objc++/23613
 	* gcc/testsuite/objc-obj-c++-shared/next-mapping.h (CLASSPTRFIELD):
 	New macro.
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-2.mm b/gcc/testsuite/obj-c++.dg/bitfield-2.mm
index 1bddf540a67d..f384f24dd5ac 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-2.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-2.mm
@@ -2,6 +2,7 @@
    being "promoted" to ints).  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 /* { dg-do run } */
+/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #include "../objc-obj-c++-shared/Object1.h"
 #include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-3.mm b/gcc/testsuite/obj-c++.dg/bitfield-3.mm
index 32f2d726ddac..d81976ab6244 100644
--- a/gcc/testsuite/obj-c++.dg/bitfield-3.mm
+++ b/gcc/testsuite/obj-c++.dg/bitfield-3.mm
@@ -1,8 +1,9 @@
 /* Check if bitfield ivars are correctly @encode'd when
    the NeXT runtime is used.  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
-/* { dg-options "-fsigned-char" } */
 /* { dg-do run { target *-*-darwin* } } */
+/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
+/* { dg-options "-fsigned-char" } */
 
 typedef struct objc_object { struct objc_class *class_pointer; } *id;
 
diff --git a/gcc/testsuite/obj-c++.dg/const-str-10.mm b/gcc/testsuite/obj-c++.dg/const-str-10.mm
index 8605bdb33413..693b6be6e846 100644
--- a/gcc/testsuite/obj-c++.dg/const-str-10.mm
+++ b/gcc/testsuite/obj-c++.dg/const-str-10.mm
@@ -2,7 +2,7 @@
    constant string classes get derived.  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
 
-/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-do compile } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
 #include "../objc-obj-c++-shared/Object1.h"
@@ -29,4 +29,5 @@ extern struct objc_class _NSConstantStringClassReference;
 const NSConstantString *appKey = @"MyApp";
 
 /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
-/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
+/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" { target { *-*-darwin* && { lp64 } } } } } */
diff --git a/gcc/testsuite/obj-c++.dg/const-str-11.mm b/gcc/testsuite/obj-c++.dg/const-str-11.mm
index 22c1f04cf1f9..ea9371091b8c 100644
--- a/gcc/testsuite/obj-c++.dg/const-str-11.mm
+++ b/gcc/testsuite/obj-c++.dg/const-str-11.mm
@@ -2,7 +2,7 @@
    constant string classes get derived.  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
 
-/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-do compile } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fconstant-string-class=XStr" } */
 
@@ -29,4 +29,5 @@ extern Class _XStrClassReference;
 const XStr *appKey = @"MyApp";
 
 /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
-/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
+/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler ".quad\t__XStrClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" { target { *-*-darwin* && { lp64 } } } } } */
diff --git a/gcc/testsuite/obj-c++.dg/const-str-3.mm b/gcc/testsuite/obj-c++.dg/const-str-3.mm
index 3e7939adeb17..5ea8e229fbef 100644
--- a/gcc/testsuite/obj-c++.dg/const-str-3.mm
+++ b/gcc/testsuite/obj-c++.dg/const-str-3.mm
@@ -4,6 +4,7 @@
 
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-do run { target *-*-darwin* } } */
+/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #import "../objc-obj-c++-shared/Object1.h"
 #import "../objc-obj-c++-shared/next-mapping.h"
diff --git a/gcc/testsuite/obj-c++.dg/const-str-7.mm b/gcc/testsuite/obj-c++.dg/const-str-7.mm
index fe66b2cc2c82..755b0452be20 100644
--- a/gcc/testsuite/obj-c++.dg/const-str-7.mm
+++ b/gcc/testsuite/obj-c++.dg/const-str-7.mm
@@ -4,6 +4,7 @@
 
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-do run } */
+/* { 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"
diff --git a/gcc/testsuite/obj-c++.dg/const-str-9.mm b/gcc/testsuite/obj-c++.dg/const-str-9.mm
index 28621334a614..bca916a1609c 100644
--- a/gcc/testsuite/obj-c++.dg/const-str-9.mm
+++ b/gcc/testsuite/obj-c++.dg/const-str-9.mm
@@ -21,4 +21,5 @@ extern struct objc_class _NSConstantStringClassReference;
 const NSConstantString *appKey = @"MyApp";
 
 /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
-/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
+/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data"  { target { *-*-darwin* && { ! lp64 } } }} } */
+/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" { target { *-*-darwin* && { lp64 } } } } } */
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
index d89258aa6b75..6e0c3fded4b0 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
@@ -1,7 +1,7 @@
 // Check if ivars may be accessed via the C++ dot notation.
-
 // { dg-do run }
 // { dg-options "-fno-objc-call-cxx-cdtors" }
+// { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } 
 
 #include "../objc-obj-c++-shared/Object1.h"
 #include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
index e07437187a4e..a85f4e5b00cf 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
@@ -1,7 +1,8 @@
 // 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 "PR27247/PR23681" { *-*-* } { "-fgnu-runtime" } { "" } }
+// { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } }
 // { dg-options "-fobjc-call-cxx-cdtors" }
 
 #include "../objc-obj-c++-shared/Object1.h"
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
index 898ce6aed903..a3c4b0c492a8 100644
--- a/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
@@ -1,9 +1,10 @@
 // Check if ObjC classes with non-POD C++ ivars are specially marked in the metadata.
 
 // { dg-do run { target *-*-darwin* } }
-// { dg-options "-fobjc-call-cxx-cdtors" }
 // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } 
-/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-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"
 
diff --git a/gcc/testsuite/obj-c++.dg/encode-8.mm b/gcc/testsuite/obj-c++.dg/encode-8.mm
index de800d08d948..2d5734ebee18 100644
--- a/gcc/testsuite/obj-c++.dg/encode-8.mm
+++ b/gcc/testsuite/obj-c++.dg/encode-8.mm
@@ -2,7 +2,8 @@
    'BOOL *' (which should be encoded as '^c') and 'char *' (which
    should be encoded as '*').  */
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
-/* { dg-do run { xfail { "*-*-*" } } } PR27249 */
+/* { dg-xfail-run-if "PR27249" { *-*-* } { "-fgnu-runtime" } { "" } } */
+/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 #include <string.h>           
 #include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/except-1.mm b/gcc/testsuite/obj-c++.dg/except-1.mm
index ccd5bad5f2b4..b835dc73ee0b 100644
--- a/gcc/testsuite/obj-c++.dg/except-1.mm
+++ b/gcc/testsuite/obj-c++.dg/except-1.mm
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
 /* This tests that exceptions work.  It used to fail because
    objc_msgSend was marked with DECL_NOTHROW. 
diff --git a/gcc/testsuite/obj-c++.dg/lookup-2.mm b/gcc/testsuite/obj-c++.dg/lookup-2.mm
index 5dffb017d4d2..4d56cf25c14c 100644
--- a/gcc/testsuite/obj-c++.dg/lookup-2.mm
+++ b/gcc/testsuite/obj-c++.dg/lookup-2.mm
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-xfail-if "PR23614" { "*-*-*" } { "*" } { "" } } */
+/* { dg-xfail-if "PR23614" { "*-*-*" } { "*" } { "-fnext-runtime" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 #include "../objc-obj-c++-shared/Object1.h"
 #include <stdlib.h>
diff --git a/gcc/testsuite/obj-c++.dg/stubify-2.mm b/gcc/testsuite/obj-c++.dg/stubify-2.mm
index a928d3fb7ab9..9db573e8afae 100644
--- a/gcc/testsuite/obj-c++.dg/stubify-2.mm
+++ b/gcc/testsuite/obj-c++.dg/stubify-2.mm
@@ -28,4 +28,4 @@ extern int bogonic (int, int, int) ;
 
 /* Any symbol_ref of an un-stubified objc_msgSend is an error; look
    for "objc_msgSend" in quotes, without the $stub suffix.  */
-/* { dg-final { scan-file-not stubify-2.mm.08.jump "symbol_ref.*\"objc_msgSend\"" } } */
+/* { dg-final { scan-file-not stubify-2.mm.147r.jump "symbol_ref.*\"objc_msgSend\"" } } */
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-2.mm b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
index f39c22c878f7..d85284b9aaed 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-2.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
@@ -3,7 +3,8 @@
 /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
 
 /* { dg-do run } */
-/* { dg-xfail-if "PR23616" { "*-*-*" } { "*" } { "" } } */
+/* { dg-xfail-if "PR23616" { "*-*-*" } { "*" } { "-fnext-runtime" } } */
+/* { dg-xfail-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } 
 /* { dg-options "-fobjc-exceptions" } */
 
 #include "../objc-obj-c++-shared/Object1.h"
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-9.mm b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
index 306c467a30f5..21b7dd5476ab 100644
--- a/gcc/testsuite/obj-c++.dg/try-catch-9.mm
+++ b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
@@ -3,7 +3,8 @@
 /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
 
 /* { dg-do run } */
-/* { dg-xfail-if "PR23616" { *-*-* } { "*" } { "" } } */
+/* { dg-xfail-if "PR23616" { *-*-* } { "*" } { "-fnext-runtime" } } */
+/* { dg-xfail-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } 
 /* { dg-prune-output ".*internal compiler error.*" } */
 /* { dg-options "-fobjc-exceptions -O2" } */
 
-- 
GitLab