]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gengtype: Avoid Werror bootstrap fail when a subclass has no GTY fields
authorMartin Jambor <mjambor@suse.cz>
Mon, 15 Dec 2025 23:44:44 +0000 (00:44 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Mon, 15 Dec 2025 23:52:51 +0000 (00:52 +0100)
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.

gcc/ChangeLog:

2025-10-17  Martin Jambor  <mjambor@suse.cz>

* gengtype.cc (walk_subclasses): Avoid generating code with unused
variables.

gcc/gengtype.cc

index 84c763620472c4550dfcafcc7eefc701baa0e2ec..0f841fa2c2d9b3602d91008f156d393daf51e722 100644 (file)
@@ -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);