[pushed] testsuite, Objective-C : Fix call-super-2.m for newer NeXT headers.
Iain Sandoe
iain@sandoe.co.uk
Sun Oct 11 14:54:05 GMT 2020
Hi,
We were using a callout to runtime.h which, eventually brings in the system
runtime.h. One newer versions of the Darwin/NeXT headers this declares the
objc_getClass() function as returning Class, rather than the internal
representation of that. This breaks a fragile assumption in objc-act that
the use of these internal functions can be deduced by looking at the function
type. Ultimately, the fragility should be fixed - but this fixes up the test
so that it only uses the compiler's forward declaration of the function.
tested across the Darwin range, and on x86_64-linux
pushed to master
thanks
Iain
gcc/testsuite/ChangeLog:
* objc.dg/call-super-2.m: Remove inclusion of runtime.h.
Add a FIXME about the test portability.
---
gcc/testsuite/objc.dg/call-super-2.m | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/testsuite/objc.dg/call-super-2.m b/gcc/testsuite/objc.dg/call-super-2.m
index 0a3765f07fb..836cad92126 100644
--- a/gcc/testsuite/objc.dg/call-super-2.m
+++ b/gcc/testsuite/objc.dg/call-super-2.m
@@ -3,7 +3,8 @@
/* { dg-do compile } */
#include "../objc-obj-c++-shared/TestsuiteObject.h"
-#include "../objc-obj-c++-shared/runtime.h"
+/* NOTE: we are relying on the built-in type for objc_getClass being used
+ rather than the one that might come from including <objc/runtime.h>. */
#include <stddef.h>
/* FIXME: This is temporary. At the moment, the compiler, when
@@ -14,6 +15,9 @@
# define objc_getClass(C) objc_get_class(C)
#endif
+/* FIXME: casting of super is not permitted by clang, so that many of the
+ tests here are testing non-portable code. */
+
@protocol Func
+ (int) class_func0;
- (int) instance_func0;
--
2.24.1
More information about the Gcc-patches
mailing list