http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51969
--- Comment #1 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-01-23 18:21:14 UTC --- The following patch (applied to 4.6) fixes the problem for me: diff --git a/gcc/gengtype.c b/gcc/gengtype.c index abf17f8..550d3bb 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -3594,13 +3594,13 @@ write_field_root (outf_p f, pair_p v, type_p type, const char *name, int has_length, struct fileloc *line, const char *if_marked, bool emit_pch, type_p field_type, const char *field_name) { + struct pair newv; /* If the field reference is relative to V, rather than to some subcomponent of V, we can mark any subarrays with a single stride. We're effectively treating the field as a global variable in its own right. */ if (v && type == v->type) { - struct pair newv; newv = *v; newv.type = field_type;