C++: Internal compiler error 981117.
Jason Merrill
jason@cygnus.com
Mon Mar 22 00:18:00 GMT 1999
>>>>> Martin v Loewis <martin@mira.isdn.cs.tu-berlin.de> writes:
>> It's not obsolete; as a comment above says, layout_basetypes should remove
>> the base subobject fields.
> Well, the assertion is triggered if
> struct input_iterator_tag {};
> struct forward_iterator_tag : public input_iterator_tag {};
> is compiled with -fnew-abi. I don't fully understand this, but it
> seems that the field which is left is the single-byte fields that
> makes forward_iterator_tag to have size 1, which looks right to me.
You're right. The bug is that we're assuming that we don't need to deal
with that field if we have base classes. Removing the 'else' just above
the assert should do the trick.
Jason
More information about the Gcc-patches
mailing list