[patch] fix _OBJC_Module defined but not used warning

Aldy Hernandez aldyh@redhat.com
Sun Jun 7 13:08:00 GMT 2015


On 06/07/2015 06:19 AM, Andreas Schwab wrote:
> Another fallout:
>
> FAIL: obj-c++.dg/try-catch-5.mm -fgnu-runtime (test for excess errors)
> Excess errors:
> <built-in>: warning: '_OBJC_Module' defined but not used [-Wunused-variable]

check_global_declarations is called for more symbols now.  All the 
defined but not used errors I've seen in development have been 
legitimate.  For tests, the tests should be fixed.  For built-ins such 
as these, does the attached fix the problem?

It is up to the objc maintainers, we can either fix this with the 
attached patch, or setting DECL_IN_SYSTEM_HEADER.

/* Nonzero for a given ..._DECL node means that no warnings should be
    generated just because this node is unused.  */
#define DECL_IN_SYSTEM_HEADER(NODE) \
   (in_system_header_at (DECL_SOURCE_LOCATION (NODE)))

Let me know what you prefer.
Aldy
-------------- next part --------------
commit 25ce72372f7b1309004b87810140573b422e1355
Author: Aldy Hernandez <aldyh@redhat.com>
Date:   Sun Jun 7 07:32:12 2015 -0400

    	* objc-runtime-shared-support.c (build_module_descriptor): Set
    	TREE_USED on UOBJC_MODULES_decl.

diff --git a/gcc/objc/objc-runtime-shared-support.c b/gcc/objc/objc-runtime-shared-support.c
index d9b3c27..1bcb14a 100644
--- a/gcc/objc/objc-runtime-shared-support.c
+++ b/gcc/objc/objc-runtime-shared-support.c
@@ -519,6 +519,9 @@ build_module_descriptor (long vers, tree attr)
      is referenced by the runtime and, therefore, needed.  */
   DECL_PRESERVE_P (UOBJC_MODULES_decl) = 1;
 
+  /* Squash `defined but not used' warning.  */
+  TREE_USED (UOBJC_MODULES_decl) = 1;
+
   /* Allow the runtime to mark meta-data such that it can be assigned to target
      specific sections by the back-end.  */
   if (attr)


More information about the Gcc-patches mailing list