public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation
@ 2001-06-12 1:20 nathan
0 siblings, 0 replies; 4+ messages in thread
From: nathan @ 2001-06-12 1:20 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nathan, snyder
Synopsis: ICE in build_rtti_vtbl_entries with complex virtual derivation
State-Changed-From-To: open->analyzed
State-Changed-By: nathan
State-Changed-When: Tue Jun 12 01:20:29 2001
State-Changed-Why:
nooooooo!
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3130&database=gcc
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation
@ 2001-06-12 11:05 nathan
0 siblings, 0 replies; 4+ messages in thread
From: nathan @ 2001-06-12 11:05 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nathan, snyder
Synopsis: ICE in build_rtti_vtbl_entries with complex virtual derivation
State-Changed-From-To: analyzed->closed
State-Changed-By: nathan
State-Changed-When: Tue Jun 12 11:04:57 2001
State-Changed-Why:
2001-06-12 Nathan Sidwell <nathan@codesourcery.com>
PR c++/3130, c++/3131, c++/3132
* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
* class.c (force_canonical_binfo_r): Move
BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
virtual bases unless they're primary and what they're primary
too has been moved.
(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
derived binfo.
(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
(layout_nonempty_base_or_field): Add most derived type
parameter. Adjust.
(layout_empty_base): Likewise.
(build_base_field): Likewise.
(build_base_fields): Likewise.
(propagate_binfo_offsets): Add most derived type
parameter. Skip non canonical virtual bases too.
(dfs_set_offset_for_unshared_vbases): Don't skip primary
bases. Do skip canonical bases.
(layout_virtual_bases): Adjust.
(layout_class_type): Adjust.
(dfs_get_primary_binfo): Build list of virtual primary base
candidates.
(get_primary_binfo): Check that the shared virtual primary
base candidate was found first.
(accumulate_vtbl_inits): Don't do anything for non-vptr
containing binfos. For case 1 primary virtual bases, keep
checking that we've not emerged from the hierarchy of RTTI_BINFO.
2001-06-12 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.abi/vbase5.C: New test.
* g++.old-deja/g++.abi/vbase6.C: New test.
* g++.old-deja/g++.abi/vbase7.C: New test.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3130&database=gcc
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation
@ 2001-06-11 21:53 mmitchel
0 siblings, 0 replies; 4+ messages in thread
From: mmitchel @ 2001-06-11 21:53 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nathan, nobody, snyder
Synopsis: ICE in build_rtti_vtbl_entries with complex virtual derivation
Responsible-Changed-From-To: unassigned->nathan
Responsible-Changed-By: mmitchel
Responsible-Changed-When: Mon Jun 11 21:53:21 2001
Responsible-Changed-Why:
Nathan -- will you take a look at this ASAP so that we
can decide whether or not to fix it for 3.0? Thanks!
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3130&database=gcc
^ permalink raw reply [flat|nested] 4+ messages in thread
* c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation
@ 2001-06-11 15:46 snyder
0 siblings, 0 replies; 4+ messages in thread
From: snyder @ 2001-06-11 15:46 UTC (permalink / raw)
To: gcc-gnats
>Number: 3130
>Category: c++
>Synopsis: ICE in build_rtti_vtbl_entries with complex virtual derivation
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Mon Jun 11 15:46:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: scott snyder
>Release: 3.0 20010611 (prerelease)
>Organization:
>Environment:
System: Linux karma 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long
>Description:
I get an ICE for the source below:
$ ./cc1plus yy.cc
yy.cc:14: Internal error #20010127.
yy.cc:14: Internal compiler error in build_rtti_vtbl_entries, at cp/class.c:
8199
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
>How-To-Repeat:
------------------------------------------------------------
struct A
{
virtual ~A ();
};
struct B
{
virtual ~B ();
};
struct C : virtual public A, virtual public B {};
class D : public virtual C {};
class E : public virtual C, public virtual D {};
------------------------------------------------------------
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
I have this patch from Nathan installed:
2001-06-11 Nathan Sidwell <nathan@codesourcery.com>
PR c++/3089
* class.c (dfs_accumulate_vtbl_inits): Always walk down the
hierarchy looking for primary bases for a ctor
vtable. Recursively call oneself, if we meet our primary via
this route and haven't met it yet via inheritance graph order.
But i get the ICE both with and without the patch.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-06-12 11:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-12 1:20 c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation nathan
-- strict thread matches above, loose matches on Subject: below --
2001-06-12 11:05 nathan
2001-06-11 21:53 mmitchel
2001-06-11 15:46 snyder
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).