gcc-4.7 doesn't build gcc-4.6 anymore: gtype-desc.c:8893:18: error: subscripted value is neither array nor pointer nor vector gtype-desc.c:9012:36: error: subscripted value is neither array nor pointer nor vector gtype-desc.c:9096:31: error: subscripted value is neither array nor pointer nor vector gtype-desc.c:9117:31: error: subscripted value is neither array nor pointer nor vector gtype-desc.c:9124:31: error: subscripted value is neither array nor pointer nor vector gtype-desc.c:9131:31: error: subscripted value is neither array nor pointer nor vector make[3]: *** [gtype-desc.o] Error 1 make[3]: *** Waiting for unfinished jobs.... or with --enable-build-with-cxx: gtype-desc.c:8893:20: error: no match for ‘operator[]’ in ‘x_rtl[0]’ gtype-desc.c:9012:38: error: no match for ‘operator[]’ in ‘default_target_libfuncs[0]’ gtype-desc.c:9096:33: error: no match for ‘operator[]’ in ‘default_target_rtl[0]’ gtype-desc.c:9117:33: error: no match for ‘operator[]’ in ‘default_target_rtl[0]’ gtype-desc.c:9124:33: error: no match for ‘operator[]’ in ‘default_target_rtl[0]’ gtype-desc.c:9131:33: error: no match for ‘operator[]’ in ‘default_target_rtl[0]’ make[3]: *** [gtype-desc.o] Error 1 make[3]: *** Waiting for unfinished jobs.... (gcc-4.6.3 builds gcc-4.6 without problems.)
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;
Yeah, 2011-11-08 Michael Matz <matz@suse.de> * gengtype.c (write_field_root): Avoid out-of-scope access of newv. should be backported to 4.6.
Thanks, Markus, Jakub. Despite I don't understand this patch, it patch seems to work for me :)
Confirmed, I've seen this as well.
Author: jakub Date: Tue Feb 14 23:31:42 2012 New Revision: 184239 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184239 Log: PR bootstrap/51969 Backported from mainline 2011-11-08 Michael Matz <matz@suse.de> * gengtype.c (write_field_root): Avoid out-of-scope access of newv. Modified: branches/gcc-4_6-branch/gcc/ChangeLog branches/gcc-4_6-branch/gcc/gengtype.c
Fixed.
*** Bug 52986 has been marked as a duplicate of this bug. ***
Author: jye2 Date: Mon Jun 11 09:10:07 2012 New Revision: 188381 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188381 Log: 2012-06-11 Joey Ye <joey.ye@arm.com> Backport r184089,184180 from mainline 2012-02-10 Jan Hubicka <jh@suse.cz> PR middle-end/48600 * predict.c (predict_paths_for_bb): Prevent looping. (predict_paths_leading_to_edge, predict_paths_leading_to): Update. 2012-02-13 Jan Hubicka <jh@suse.cz> PR middle-end/52214 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch. Backport partly r181172 from mainline 2011-11-08 Michael Matz <matz@suse.de> PR bootstrap/51969 * gengtype.c (write_field_root): Avoid out-of-scope access of newv. testsuite: Backport r184089 from mainline 2012-02-10 Jan Hubicka <jh@suse.cz> PR middle-end/48600 * g++.dg/torture/pr48600.C: New testcase. Added: branches/ARM/embedded-4_6-branch/gcc/testsuite/c-c++-common/pr52181.c branches/ARM/embedded-4_6-branch/gcc/testsuite/g++.dg/torture/pr48600.C Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/gengtype.c branches/ARM/embedded-4_6-branch/gcc/predict.c branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm