https://gcc.gnu.org/g:c8ddca48512179b58d32dde4fcfec1d131659526
commit r16-6148-gc8ddca48512179b58d32dde4fcfec1d131659526 Author: Martin Jambor <[email protected]> Date: Tue Dec 16 00:44:44 2025 +0100 gengtype: Avoid Werror bootstrap fail when a subclass has no GTY fields 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 <[email protected]> * gengtype.cc (walk_subclasses): Avoid generating code with unused variables. Diff: --- gcc/gengtype.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc index 84c763620472..0f841fa2c2d9 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);
