testsuite, Objective-c++ : Fix GNU API tests to work with NeXT where possible.

The version 2 GNU Objective C API is mostly compatible with the NeXT one.
However, there are a few testsuite tweaks needed (and one test fails for NeXT
without considerable increase in complexity).

gcc/testsuite/ChangeLog:

	* obj-c++.dg/gnu-api-2-class-meta.mm: Add a flag to cause NeXT
	headers to expose prototypes for messaging.
	* obj-c++.dg/gnu-api-2-class.mm: Likewise.
	* obj-c++.dg/gnu-api-2-objc.mm: Skip this because of the extra
	protocols pulled in by system headers.
This commit is contained in:
Iain Sandoe 2020-10-07 16:19:09 +01:00
parent 5505a9eab9
commit fa99b56c7f
3 changed files with 8 additions and 2 deletions

View File

@ -20,6 +20,7 @@
/* { dg-do run } */
/* { dg-skip-if "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
/* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
/* To get the modern GNU Objective-C Runtime API, you include
objc/runtime.h. */

View File

@ -7,6 +7,7 @@
/* { dg-do run } */
/* { dg-skip-if "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
/* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
/* To get the modern GNU Objective-C Runtime API, you include
objc/runtime.h. */

View File

@ -3,8 +3,12 @@
This is test 'objc', covering all functions starting with 'objc'. */
/* { dg-do run } */
/* { dg-skip-if "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
/* Although this works with the NeXT runtime in a sub-set of cases, some
versions of the runtime header pulls in a number of system protocols,
which causes the objc_copyProtocolList test to fail (in addition to those
systems that don't have the V2 APis). XFAILing the run is not useful
since it will XPASS on the sub-set that works. */
/* { dg-skip-if "Incompatible" { *-*-darwin* } { "-fnext-runtime" } { "" } } */
/* To get the modern GNU Objective-C Runtime API, you include
objc/runtime.h. */