From: Iain Sandoe Date: Sat, 3 Oct 2020 23:03:54 +0000 (+0100) Subject: testsuite, Objective-C : Compatibility fixes. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67f984d62e3acd729e086d49780be8e3e5e69833;p=gcc.git testsuite, Objective-C : Compatibility fixes. 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). --- diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h index 66b68c81ec9..0f139bc84b4 100644 --- a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h +++ b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h @@ -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; diff --git a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m index 6bbe7d470e8..703827f8e61 100644 --- a/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m +++ b/gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m @@ -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 diff --git a/gcc/testsuite/objc/execute/class-tests-1.h b/gcc/testsuite/objc/execute/class-tests-1.h index cfdd72b4748..65f1f70234e 100644 --- a/gcc/testsuite/objc/execute/class-tests-1.h +++ b/gcc/testsuite/objc/execute/class-tests-1.h @@ -4,6 +4,8 @@ #include #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.