Commit e3b8c2ae by Iain Sandoe Committed by Iain Sandoe

[objective-c/c++, testsuite, 2/3] Workaround for PR90709.

Use the CF-CFString.h, F-NS*.h proxy headers where needed in the objective-c
testsuite.  Make minor adjustments to tests as required, providing that those
do not alter the test intent.

2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc/90709
	* objc.dg/encode-7-next-64bit.m: Use proxy headers.
	* objc.dg/image-info.m: Likewise.
	* objc.dg/method-6.m: Likewise.
	* objc.dg/no-extra-load.m: Likewise.
	* objc.dg/objc-foreach-4.m: Likewise.
	* objc.dg/objc-foreach-5.m: Likewise.
	* objc.dg/proto-lossage-7.m: Likewise.
	* objc.dg/strings/const-cfstring-2.m: Likewise.
	* objc.dg/strings/const-cfstring-5.m: Likewise.
	* objc.dg/strings/const-str-12b.m: Likewise.
	* objc.dg/symtab-1.m: Likewise.
	* objc.dg/torture/strings/const-cfstring-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/zero-link-3.m: Likewise.
	* objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why.
	* objc.dg/headers.m: XFAIL for Darwin14-19.
	* objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error
	there.

From-SVN: r272326
parent 0efbd66e
2019-06-15 Iain Sandoe <iain@sandoe.co.uk> 2019-06-15 Iain Sandoe <iain@sandoe.co.uk>
PR objc/90709 PR objc/90709
* objc.dg/encode-7-next-64bit.m: Use proxy headers.
* objc.dg/image-info.m: Likewise.
* objc.dg/method-6.m: Likewise.
* objc.dg/no-extra-load.m: Likewise.
* objc.dg/objc-foreach-4.m: Likewise.
* objc.dg/objc-foreach-5.m: Likewise.
* objc.dg/proto-lossage-7.m: Likewise.
* objc.dg/strings/const-cfstring-2.m: Likewise.
* objc.dg/strings/const-cfstring-5.m: Likewise.
* objc.dg/strings/const-str-12b.m: Likewise.
* objc.dg/symtab-1.m: Likewise.
* objc.dg/torture/strings/const-cfstring-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/zero-link-3.m: Likewise.
* objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why.
* objc.dg/headers.m: XFAIL for Darwin14-19.
* objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error
there.
2019-06-15 Iain Sandoe <iain@sandoe.co.uk>
PR objc/90709
* objc-obj-c++-shared/CF-CFString.h: New. * objc-obj-c++-shared/CF-CFString.h: New.
* objc-obj-c++-shared/F-NSArray.h: New. * objc-obj-c++-shared/F-NSArray.h: New.
* objc-obj-c++-shared/F-NSAutoreleasePool.h: New. * objc-obj-c++-shared/F-NSAutoreleasePool.h: New.
......
...@@ -9,10 +9,11 @@ ...@@ -9,10 +9,11 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <Foundation/NSObject.h> #include <stdio.h>
#include "../objc-obj-c++-shared/F-NSObject.h"
#include "../objc-obj-c++-shared/CF-CFString.h"
#include "../objc-obj-c++-shared/runtime.h" #include "../objc-obj-c++-shared/runtime.h"
extern int printf(char *,...);
void CHECK_IF(const char *s1, const char *s2) void CHECK_IF(const char *s1, const char *s2)
{ {
if (strcmp(s1,s2) != 0) { if (strcmp(s1,s2) != 0) {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// test in libstdc++-v3). Author: Loren J. Rittle <ljrittle@acm.org>. // test in libstdc++-v3). Author: Loren J. Rittle <ljrittle@acm.org>.
// { dg-options "-Wall -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wshadow" } // { dg-options "-Wall -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wshadow" }
// { dg-do compile } // { dg-do compile }
/* { dg-xfail-if "PR90709" { *-*-darwin1[4-9]* } { "-fnext-runtime" } { "" } } */
#ifdef __NEXT_RUNTIME__ #ifdef __NEXT_RUNTIME__
#include <Foundation/NSString.h> #include <Foundation/NSString.h>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
/* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-freplace-objc-classes" } */ /* { dg-options "-freplace-objc-classes" } */
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
extern void abort(void); extern void abort(void);
#define CHECK_IF(expr) if(!(expr)) abort(); #define CHECK_IF(expr) if(!(expr)) abort();
......
/* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects. */ /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects. */
/* { dg-do compile } */ /* { dg-do compile } */
/* The use of isa is deprecated, but we still want to test that it works. */
/* { dg-additional-options "-Wno-deprecated-declarations" } */
#include "../objc-obj-c++-shared/TestsuiteObject.h" #include "../objc-obj-c++-shared/TestsuiteObject.h"
#include "../objc-obj-c++-shared/runtime.h" #include "../objc-obj-c++-shared/runtime.h"
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
/* { dg-options "-Wstrict-selector-match" } */ /* { dg-options "-Wstrict-selector-match" } */
#ifdef __NEXT_RUNTIME__ #ifdef __NEXT_RUNTIME__
#include <Foundation/NSObject.h> # include "../objc-obj-c++-shared/F-NSObject.h"
#define OBJECT NSObject # define OBJECT NSObject
#else #else
#include <objc/Object.h> # include <objc/Object.h>
#include <objc/Protocol.h> # include <objc/Protocol.h>
#define OBJECT Object # define OBJECT Object
#endif #endif
@interface Base @interface Base
......
/* { dg-do compile { target *-*-darwin* } } */ /* { dg-do compile { target *-*-darwin* } } */
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
main() { [NSObject new]; } main() { [NSObject new]; }
/* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */ /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
/* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */ /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */ /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
#include <Foundation/NSString.h> #include "../objc-obj-c++-shared/F-NSString.h"
#include <Foundation/NSAutoreleasePool.h> #include "../objc-obj-c++-shared/F-NSAutoreleasePool.h"
#include <Foundation/NSArray.h> #include "../objc-obj-c++-shared/F-NSArray.h"
// gcc -o foo foo.m -framework Foundation // gcc -o foo foo.m -framework Foundation
......
...@@ -4,8 +4,9 @@ ...@@ -4,8 +4,9 @@
/* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */ /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */ /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
#include <Foundation/NSArray.h> #include "../objc-obj-c++-shared/F-NSArray.h"
#include <Foundation/NSAutoreleasePool.h> #include "../objc-obj-c++-shared/F-NSAutoreleasePool.h"
#include "../objc-obj-c++-shared/F-NSValue.h"
NSArray * createTestVictim(unsigned capacity) { NSArray * createTestVictim(unsigned capacity) {
NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity]; NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
/* Contributed by Ziemowit Laski <zlaski@apple.com> */ /* Contributed by Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-options "-fobjc-gc" } */ /* { dg-options "-fobjc-gc" } */
/* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */ /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
#ifdef __NEXT_RUNTIME__ #ifdef __NEXT_RUNTIME__
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
#define OBJECT NSObject #define OBJECT NSObject
#else #else
#include <objc/Object.h> #include <objc/Object.h>
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
/* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mconstant-cfstrings -Wnonportable-cfstrings" } */ /* { dg-options "-mconstant-cfstrings -Wnonportable-cfstrings" } */
#import <Foundation/NSString.h> #include "../../objc-obj-c++-shared/F-NSString.h"
#import <CoreFoundation/CFString.h> #include "../../objc-obj-c++-shared/CF-CFString.h"
#ifndef __CONSTANT_CFSTRINGS__ #ifndef __CONSTANT_CFSTRINGS__
#error The -fconstant-cfstrings option is not functioning properly #error The -fconstant-cfstrings option is not functioning properly
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
/* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mconstant-cfstrings" } */ /* { dg-options "-mconstant-cfstrings" } */
#include <Foundation/NSObject.h> #include "../../objc-obj-c++-shared/F-NSObject.h"
@interface Foo: NSObject { @interface Foo: NSObject {
char *cString; char *cString;
......
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
/* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */ /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
#ifdef __NEXT_RUNTIME__ #ifdef __NEXT_RUNTIME__
#include <Foundation/NSObject.h> # include "../../objc-obj-c++-shared/F-NSObject.h"
#define OBJECT NSObject # define OBJECT NSObject
#else #else
#include <objc/Object.h> # include <objc/Object.h>
#define OBJECT Object # define OBJECT Object
#endif #endif
#include "../../objc-obj-c++-shared/objc-test-suite-types.h" #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
/* { dg-do compile { target { *-*-darwin* } } } */ /* { dg-do compile { target { *-*-darwin* } } } */
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
@interface Base: NSObject @interface Base: NSObject
- (void)setValues; - (void)setValues;
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
Well, we don't implement writable ones at this juncture. */ Well, we don't implement writable ones at this juncture. */
/* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */ /* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */
#import <Foundation/NSString.h> #include "../../../objc-obj-c++-shared/F-NSString.h"
#import <CoreFoundation/CFString.h> #include "../../../objc-obj-c++-shared/CF-CFString.h"
#include <stdlib.h> #include <stdlib.h>
void printOut(NSString *str) { void printOut(NSString *str) {
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */ /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
#include <Foundation/NSObject.h> #include "../../../objc-obj-c++-shared/F-NSObject.h"
#include <stdlib.h>
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */ #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
@interface NSString: NSObject @interface NSString: NSObject
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
/* { dg-options "-fconstant-string-class=XStr" } */ /* { dg-options "-fconstant-string-class=XStr" } */
/* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */ /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
#include <Foundation/NSObject.h> #include "../../../objc-obj-c++-shared/F-NSObject.h"
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */ #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
@interface XString: NSObject { @interface XString: NSObject {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */ /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
#include <Foundation/NSObject.h> #include "../../../objc-obj-c++-shared/F-NSObject.h"
#include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */ #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE. */
@interface NSConstantString: NSObject { @interface NSConstantString: NSObject {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-fzero-link" } */ /* { dg-options "-fzero-link" } */
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
extern void abort(void); extern void abort(void);
#define CHECK_IF(expr) if(!(expr)) abort(); #define CHECK_IF(expr) if(!(expr)) abort();
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
/* { dg-options "-fno-zero-link" } */ /* { dg-options "-fno-zero-link" } */
#include <Foundation/NSObject.h> #include "../objc-obj-c++-shared/F-NSObject.h"
extern void abort(void); extern void abort(void);
#define CHECK_IF(expr) if(!(expr)) abort(); #define CHECK_IF(expr) if(!(expr)) abort();
......
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
#ifdef __NEXT_RUNTIME__ #ifdef __NEXT_RUNTIME__
#include <Foundation/NSObject.h> # include "../objc-obj-c++-shared/F-NSObject.h"
#define OBJECT NSObject # define OBJECT NSObject
#else #else
#include <objc/Object.h> # include <objc/Object.h>
#include <objc/Protocol.h> # include <objc/Protocol.h>
#define OBJECT Object # define OBJECT Object
#endif #endif
extern void abort(void); extern void abort(void);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment