------- Comment #10 from jakub at gcc dot gnu dot org 2006-11-14 10:45 ------- The problem is in the make_tree change of PR28915. make_tree is called with (const (unspec (something) ) ), before make_tree would just create a dummy VAR_DECL with DECL_RTL set to this, but now calls make_tree recursively and thus returns a dummy VAR_DECL with DECL_RTL set to (unspec (something) ) - note that CONST is lost. It is then folded and expanded, but CONST is never added back and i386 backend relies on it (and I believe other backends have similar requirements). I don't know why exactly the make_tree change was done, but certainly it should be limited to RTLs inside CONST that the middle-end groks fully.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29825