Hello,

in a follow-up patch, I have created a GTYed subclass which does not
have any garbage collectible fields, just integers (a "sibling"
subclass does).  This leads to gengtype outputting code like this to
gtype-desc.cc:

   2722         case CIIK_SIMPLE:
   2723           {
   2724             cgraph_simple_indirect_info *sub = static_cast 
<cgraph_simple_indirect_info *> (x);
   2725           }
   2726           break;

And because in stage2 of our bootstrap we compile the file with -Wall
-Werror, this leads to a bootstrap failure because of
-Werror=unused-variable.

I have briefly looked into building that particular file with
-Wno-error but did not found a simple way to do that, at least not
yet.

So instead this patch generates statement "(void) sub;" after each
such static_assert to avoid the warning in the first place.

Bootstrapped and LTO-bootstrapped and tested on x86_64-linux, OK for
master?

Martin



gcc/ChangeLog:

2025-10-17  Martin Jambor  <[email protected]>

        * gengtype.cc (walk_subclasses): Avoid generating code with unused
        variables.
---
 gcc/gengtype.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
index 84c76362047..0f841fa2c2d 100644
--- a/gcc/gengtype.cc
+++ b/gcc/gengtype.cc
@@ -2635,6 +2635,7 @@ walk_subclasses (type_p base, struct walk_type_data *d,
          d->indent += 2;
          oprintf (d->of, "%*s%s *sub = static_cast <%s *> (x);\n",
                   d->indent, "", sub->u.s.tag, sub->u.s.tag);
+         oprintf (d->of, "%*s(void) sub;\n", d->indent, "");
          const char *old_val = d->val;
          d->val = "(*sub)";
          walk_type (sub, d);
-- 
2.51.0

Reply via email to