[C++ PATCH] Fix 23118, 22604

Nathan Sidwell nathan@codesourcery.com
Tue Oct 18 12:39:00 GMT 2005


This patch fixes two ICEs.

22604 was easy, we already mark invalid covariant overriders.  All that was 
needed was to tell the vtable machinery not to try processing them.

23118 was a little harder.  An invalid overload still got added to the *list* of 
member function, but wasn't added to the *vector*.  We process methods in 
declaration order using the list, but search for overrides using the vector. 
When a virtual function is only on the list, look_for_overrides_here will fail 
to find it.  The fix is for add_method to return a flag indicating whether the 
function made it to the method vector, and if it doesn't we don't add it to the 
method list either.

built & tested on i686-pc-linux-gnu.  Mainline & 4.0.  Not for 3.4 as these are 
both ice-on-illformed-after-error.

nathan
-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 22604.patch
Type: text/x-patch
Size: 6274 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051018/3a163d70/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 22604.C
Type: text/x-c++src
Size: 369 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051018/3a163d70/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 23118.C
Type: text/x-c++src
Size: 308 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20051018/3a163d70/attachment-0002.bin>


More information about the Gcc-patches mailing list