testsuite, Objective-C : Compatibility fixes.
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 3 Oct 2020 23:03:54 +0000 (00:03 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Sun, 11 Oct 2020 13:28:53 +0000 (14:28 +0100)
Changes to deal with warnings and/or errors seen when compiling the
tests with clang.

gcc/testsuite/ChangeLog:

* objc-obj-c++-shared/TestsuiteObject.h: If the compiler
supports objc_root_object attributes, then mark the testsuite
object accordingly.
* objc-obj-c++-shared/TestsuiteObject.m: Avoid direct access
to isa, which is an error for modern Objective-C.
* objc/execute/class-tests-1.h: Declare a string function we
use locally (avoid pulling in the whole of string.h).

gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
gcc/testsuite/objc/execute/class-tests-1.h

index 66b68c81ec9d40f2038cac14c353d681bcb56802..0f139bc84b4861bd3e4748992df9e776244e5cb9 100644 (file)
@@ -24,6 +24,9 @@ along with GCC; see the file COPYING3.  If not see
 /* We use this root class instead of Object to keep the tests
    independent of the runtime being used.  Keep it simple.  */
 
+#if defined(__has_attribute) && __has_attribute(objc_root_class)
+__attribute__((objc_root_class))
+#endif
 @interface TestsuiteObject
 {
   Class isa;
index 6bbe7d470e892ba890350643309e8c6bb682980e..703827f8e6132067a7d83dd6fc0411462d4988aa 100644 (file)
@@ -64,6 +64,6 @@ along with GCC; see the file COPYING3.  If not see
 }
 - (const char *)name
 {
-  return class_getName (isa);
+  return object_getClassName (self);
 }
 @end
index cfdd72b4748a1f35e8c2f49d585d473b697fbd39..65f1f70234edb92a356dc5e94cd1213600d76e6f 100644 (file)
@@ -4,6 +4,8 @@
 #include <stdlib.h>
 #include "../../objc-obj-c++-shared/runtime.h"
 
+extern int strcmp(const char *, const char *);
+
 /*
  * Standard Tests For Classes and Objects - abort upon failing; return
  * normally if all is well.