This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/28915] [4.2 regression] ICE: tree check: expected class 'constant', have 'declaration' (var_decl) in build_vector, at tree.c:973
- From: "roger at eyesopen dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Sep 2006 15:36:55 -0000
- Subject: [Bug middle-end/28915] [4.2 regression] ICE: tree check: expected class 'constant', have 'declaration' (var_decl) in build_vector, at tree.c:973
- References: <bug-28915-12387@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #12 from roger at eyesopen dot com 2006-09-06 15:36 -------
Here's the .102t.final_cleanup
;; Function f (f)
f ()
{
int D.1524;
int D.1522;
int D.1520;
int t.0;
<bb 2>:
t.0 = (int) &t;
D.1520 = (int) &t[1];
D.1522 = (int) &t[2];
D.1524 = (int) &t[3];
return {t.0, D.1520, D.1522, D.1524};
}
The CONSTRUCTOR in the return incorrectly has the TREE_CONSTANT flag set.
So the problem is somewhere in tree-ssa. One workaround/improvement might
be for out-of-ssa to reconstitute the constructor back to a constant.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28915