https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90709
--- Comment #9 from Iain Sandoe <iains at gcc dot gnu.org> --- Author: iains Date: Sun Sep 15 02:38:25 2019 New Revision: 275724 URL: https://gcc.gnu.org/viewcvs?rev=275724&root=gcc&view=rev Log: [objective-c/c++, testsuite] Workaround for PR90709. Since we cannot parse the current NeXT headers, because of PR90709 and its dependents, we have a large amount of testsuite noise for Darwin platforms. In order to restore the usefulness of the testsuite, we are going add headers without the modern syntax elements that trigger the bug, and use these for test runs on newer Darwin. The headers are imported from GNUStep, with some local modifications to make sure that __BLOCKS__ is honoured as a gate for Apple-style blocks closures. CF-CFString.h, F-NS*.h are proxy headers that use the installed CoreFoundation or Foundation headers on systems <= Darwin12 and the GNUStep headers for newer. 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-09-15 Iain Sandoe <i...@sandoe.co.uk> Backport from mainline. 2019-06-15 Iain Sandoe <i...@sandoe.co.uk> PR objc/90709 * obj-c++.dg/proto-lossage-7.mm: Use proxy headers. * obj-c++.dg/strings/const-cfstring-2.mm: Likewise. * obj-c++.dg/strings/const-cfstring-5.mm: Likewise * obj-c++.dg/strings/const-str-12.mm: Likewise. * obj-c++.dg/syntax-error-1.mm: Likewise. * obj-c++.dg/torture/strings/const-cfstring-1.mm: Likewise. * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. * obj-c++.dg/torture/strings/const-str-11.mm: Likewise. * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. * obj-c++.dg/cxx-ivars-3.mm: Skip on later Darwin, where the 10.4 API in no longer supported, also on m64 where there's no meaning to it. * obj-c++.dg/isa-field-1.mm: Suppress unwanted warning, add comment why. * obj-c++.dg/objc-gc-3.mm: Skip for Darwin > 16, the API use is an error there. * obj-c++.dg/qual-types-1.mm: Prune a spurious l64 warning. * obj-c++.dg/stubify-1.mm: Tidy up after better compiler warnings. * obj-c++.dg/stubify-2.mm: Likewise. * obj-c++.dg/try-catch-1.mm: Likewise. * obj-c++.dg/try-catch-3.mm: Likewise. Backport from mainline. 2019-06-15 Iain Sandoe <i...@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. Backport from mainline. 2019-06-15 Iain Sandoe <i...@sandoe.co.uk> PR objc/90709 * objc-obj-c++-shared/CF-CFString.h: New. * objc-obj-c++-shared/F-NSArray.h: New. * objc-obj-c++-shared/F-NSAutoreleasePool.h: New. * objc-obj-c++-shared/F-NSObject.h: New. * objc-obj-c++-shared/F-NSString.h: New. * objc-obj-c++-shared/F-NSValue.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h: New. * objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSArray.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSDate.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSObject.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSRange.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSString.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSValue.h: New. * objc-obj-c++-shared/GNUStep/Foundation/NSZone.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h: New. * objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h: New. Added: branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/CF-CFString.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/F-NSArray.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/F-NSObject.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/F-NSString.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/F-NSValue.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/ branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/ branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/ branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/ branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h branches/gcc-7-branch/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h Modified: branches/gcc-7-branch/gcc/testsuite/ChangeLog branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/isa-field-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/objc-gc-3.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/qual-types-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/stubify-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/stubify-2.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/syntax-error-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/try-catch-1.mm branches/gcc-7-branch/gcc/testsuite/obj-c++.dg/try-catch-3.mm branches/gcc-7-branch/gcc/testsuite/objc.dg/encode-7-next-64bit.m branches/gcc-7-branch/gcc/testsuite/objc.dg/headers.m branches/gcc-7-branch/gcc/testsuite/objc.dg/image-info.m branches/gcc-7-branch/gcc/testsuite/objc.dg/isa-field-1.m branches/gcc-7-branch/gcc/testsuite/objc.dg/method-6.m branches/gcc-7-branch/gcc/testsuite/objc.dg/no-extra-load.m branches/gcc-7-branch/gcc/testsuite/objc.dg/objc-foreach-4.m branches/gcc-7-branch/gcc/testsuite/objc.dg/objc-foreach-5.m branches/gcc-7-branch/gcc/testsuite/objc.dg/objc-gc-4.m branches/gcc-7-branch/gcc/testsuite/objc.dg/proto-lossage-7.m branches/gcc-7-branch/gcc/testsuite/objc.dg/strings/const-cfstring-2.m branches/gcc-7-branch/gcc/testsuite/objc.dg/strings/const-cfstring-5.m branches/gcc-7-branch/gcc/testsuite/objc.dg/strings/const-str-12b.m branches/gcc-7-branch/gcc/testsuite/objc.dg/symtab-1.m branches/gcc-7-branch/gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m branches/gcc-7-branch/gcc/testsuite/objc.dg/torture/strings/const-str-10.m branches/gcc-7-branch/gcc/testsuite/objc.dg/torture/strings/const-str-11.m branches/gcc-7-branch/gcc/testsuite/objc.dg/torture/strings/const-str-9.m branches/gcc-7-branch/gcc/testsuite/objc.dg/zero-link-1.m branches/gcc-7-branch/gcc/testsuite/objc.dg/zero-link-2.m branches/gcc-7-branch/gcc/testsuite/objc.dg/zero-link-3.m