------- Comment #8 from dberlin at gcc dot gnu dot org 2005-10-24 12:55 ------- Subject: Re: [4.1 Regression] ICE in do_simple_structure_copy with some C++ code
On Mon, 2005-10-24 at 11:55 +0000, rguenth at gcc dot gnu dot org wrote: > > ------- Comment #7 from rguenth at gcc dot gnu dot org 2005-10-24 11:55 > ------- > All of the fixes are wrong. The only safe thing papering over the problem is > disallowing this case with If you look, you'll note that while the assignments have the same type, one is embedded in a structure and the other isn't. If you stare at that structure it is embedded in, you'll discover the empty base for one of the classes seems to appear twice, which is where we get the fullsize of 16. Thus, we end up with an extra "field" on one side of the assignment. We reasonably expect that an assignment between two of the same types will have the same fields on both sides. This is really another effect of the problem in 24288, AFAICT. The empty base for struct adaptor_base appears twice in one of the structures, even though it's "not really there" twice. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24351