public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/1864
@ 2001-04-01 0:00 nathan
0 siblings, 0 replies; 3+ messages in thread
From: nathan @ 2001-04-01 0:00 UTC (permalink / raw)
To: nathan; +Cc: gcc-prs
The following reply was made to PR c++/1864; it has been noted by GNATS.
From: nathan@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nathan@gcc.gnu.org, snyder@fnal.gov
Cc:
Subject: Re: c++/1864
Date: 5 Feb 2001 11:59:52 -0000
Synopsis: V3 ABI bug
State-Changed-From-To: analyzed->closed
State-Changed-By: nathan
State-Changed-When: Mon Feb 5 03:59:52 2001
State-Changed-Why:
2001-02-05 Nathan Sidwell <nathan@codesourcery.com>
* invoke.texi (-fdump-class-layout): Document.
(-fdump-translation-unit): Use `=' as filename separator.
2001-02-05 Nathan Sidwell <nathan@codesourcery.com>
Fix specification and implementation bugs in V3 ABI
construction vtables.
* cp-tree.h (flag_dump_class_layout): New flag.
(BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
(BINFO_LOST_PRIMARY_P): New flag.
(SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
(BINFO_PRIMARY_MARKED_P): Rename to ...
(BINFO_PRIMARY_P): ... here.
(binfo_via_virtual): New prototype.
* decl2.c (flag_dump_class_layout): New flag.
(cxx_decode_option): Set it. Adjust -fdump-translation-unit to
use `=' as a file name separator.
* init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
bases.
(build_vtbl_address): If this is a virtual primary base, then
get the vtbl of what it is ultimately primary for.
* search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
for BINFO_PRIMARY_P.
(dfs_skip_nonprimary_vbases_markedp): Likewise.
(get_shared_vbase_if_not_primary): Likewise.
(dfs_get_pure_virtuals): Likewise.
(expand_upcast_fixups): Likewise.
(fixup_virtual_upcast_offsets): Likewise.
(dfs_find_vbase_instance): Likewise.
(find_vbase_instance): Likewise.
(binfo_from_vbase): Adjust comment to reflect reality.
(binfo_via_virtual): New function.
* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
for binfo walking during VTT construction.
(dfs_mark_primary_bases): Remove.
(force_canonical_binfo_r): New function.
(force_canonical_binfo): New function.
(mark_primary_virtual_base): New function.
(mark_primary_bases): Walk in inheritance graph order, use
mark_primary_virtual_base.
(determine_primary_base): Use some more intermediate variables.
(dfs_find_final_overrider): Don't check for overriding along a
virtual path.
(dfs_modify_vtables): Walk into primary virtual bases too.
(walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
(build_base_fields): Likewise.
(dfs_set_offset_for_unshared_vbases): Likewise.
(layout_virtual_bases): Likewise.
(end_of_class): Likewise.
(finish_struct_1): Call dump_class_hierarchy, if requested.
(dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
(dump_class_hierarchy_r): Add stream parameter. Emit more information.
(dump_class_hierarchy): Add file parameter. Append to file, if
required.
(finish_vtbls): Adjust accumulate_vtbl_inits call.
Use canonical base for virtual bases.
(build_vtt): Add more comments. Adjust build_vtt_inits call.
(build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
virtual VTTs.
(dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
from DATA. We want virtual primary bases and all bases via virtual.
Only set BINFO_VPTR_INDEX for top level. Look up from a primary
virtual base when not a construction vtable.
(dfs_ctor_vtable_bases_queue_p): New DFS predicate.
(build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
Use canonical bases when processing virtual bases.
(accumulate_vtbl_inits): We're interested in any base via a
virtual path.
(dfs_accumulate_vtbl_inits): If this is a primary virtual base
within a construction vtable, determine what is being overridden.
(build_vtbl_initializer): Add more comments
(add_vcall_offset_vtbl_entries_1): Adjust comment.
(build_rtti_vtbl_entries): Check if the base has lost its
primary.
2001-02-05 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.abi/primary2.C: New test.
* g++.old-deja/g++.abi/primary3.C: New test.
* g++.old-deja/g++.abi/primary4.C: New test.
* g++.old-deja/g++.abi/primary5.C: New test.
* g++.old-deja/g++.abi/vtable3.h: New test.
* g++.old-deja/g++.abi/vtable3a.C: New test.
* g++.old-deja/g++.abi/vtable3b.C: New test.
* g++.old-deja/g++.abi/vtable3c.C: New test.
* g++.old-deja/g++.abi/vtable3d.C: New test.
* g++.old-deja/g++.abi/vtable3e.C: New test.
* g++.old-deja/g++.abi/vtable3f.C: New test.
* g++.old-deja/g++.abi/vtable3g.C: New test.
* g++.old-deja/g++.abi/vtable3h.C: New test.
* g++.old-deja/g++.abi/vtable3i.C: New test.
* g++.old-deja/g++.abi/vtable3j.C: New test.
* g++.old-deja/g++.oliva/thunk1.C: Remove XFAIL.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=1864&database=gcc
>From nobu.nokada@softhome.net Sun Apr 01 00:00:00 2001
From: nobu.nokada@softhome.net
To: gcc-gnats@gcc.gnu.org
Subject: optimization/2077: __builtin_frame_address(2) emits wrong codes.
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010223224923.10630.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg01648.html
Content-length: 1191
>Number: 2077
>Category: optimization
>Synopsis: __builtin_frame_address(2) emits wrong codes.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Feb 23 14:56:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: nobu.nokada@softhome.net
>Release: gcc version 2.95.3 19991030 (prerelease)/ gcc version 2.95.2
>Organization:
>Environment:
Linux/ix86
cygwin/ix86
HP-UX
MIPS
>Description:
`__builtin_frame_address(2);' with `-fomit-frame-pointer' command line option emits wrong codes.
ex.
|void* foo(void)
|{
| return __builtin_frame_address(2);
|}
This is compiled as followings, and causes SEGV or returns unknown value.
| .file "bug.c"
| .version "01.01"
|gcc2_compiled.:
|.text
| .align 4
|.globl foo
| .type foo,@function
|foo:
| movl -12(%esp),%eax
| movl (%eax),%eax
| ret
|.Lfe1:
| .size foo,.Lfe1-foo
| .ident "GCC: (GNU) 2.95.3 19991030 (prerelease)"
Also, on some RISC architectures, I've heard it fails without `-fomit-frame-pointer'.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c++/1864
@ 2001-04-01 0:00 nathan
0 siblings, 0 replies; 3+ messages in thread
From: nathan @ 2001-04-01 0:00 UTC (permalink / raw)
To: nathan; +Cc: gcc-prs
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2335 bytes --]
The following reply was made to PR c++/1864; it has been noted by GNATS.
From: nathan@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org, snyder@fnal.gov
Cc:
Subject: Re: c++/1864
Date: 5 Feb 2001 09:36:00 -0000
Old Synopsis: critical
New Synopsis: V3 ABI bug
State-Changed-From-To: open->analyzed
State-Changed-By: nathan
State-Changed-When: Mon Feb 5 01:35:59 2001
State-Changed-Why:
I'm confirming this as a bug, but I'm fairly certain its
related to an ABI defect, for which I'm about to commit a
patch. I'll check when that's done.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=1864&database=gcc
>From wanderer@rsu.ru Sun Apr 01 00:00:00 2001
From: "Vladimir A. Merzliakov" <wanderer@rsu.ru>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: libstdc++/2071: cin bug on solaris 2.6
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010223182601.11490.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg01627.html
Content-length: 1322
The following reply was made to PR libstdc++/2071; it has been noted by GNATS.
From: "Vladimir A. Merzliakov" <wanderer@rsu.ru>
To: <Theodore.Papadopoulo@sophia.inria.fr>, <gcc-gnats@gcc.gnu.org>
Cc:
Subject: Re: libstdc++/2071: cin bug on solaris 2.6
Date: Fri, 23 Feb 2001 21:18:51 +0300
----- Original Message -----
From: <Theodore.Papadopoulo@sophia.inria.fr>
To: <gcc-gnats@gcc.gnu.org>
Sent: 23 ÃÃ
ÃÃÃÃÃ 2001 Ã. 20:59
Subject: libstdc++/2071: cin bug on solaris 2.6
>
> >Number: 2071
> >Category: libstdc++
> >Synopsis: cin bug on solaris 2.6
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: unassigned
> >State: open
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Fri Feb 23 10:06:00 PST 2001
> >Closed-Date:
> >Last-Modified:
> >Originator: Theo Papadopoulo
> >Release: 20010122
> >Organization:
> >Environment:
> Solaris 2.6 machine with g++ 20010122
> >Description:
> The program below compiles successfully but requires
> return to be typed twice to complete. This behaviour seems
> specific to Solaris2.6 and dos not appear with linux
> (same g++ version).
This behaviour specific also to FreeBSD4.2
(see closed but exist for me bug LIBSTDC++/1620)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c++/1864
@ 2001-04-01 0:00 nathan
0 siblings, 0 replies; 3+ messages in thread
From: nathan @ 2001-04-01 0:00 UTC (permalink / raw)
To: nathan; +Cc: gcc-prs
The following reply was made to PR c++/1864; it has been noted by GNATS.
From: nathan@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, nathan@gcc.gnu.org, nobody@gcc.gnu.org,
snyder@fnal.gov
Cc:
Subject: Re: c++/1864
Date: 5 Feb 2001 09:36:51 -0000
Synopsis: V3 ABI bug
Responsible-Changed-From-To: unassigned->nathan
Responsible-Changed-By: nathan
Responsible-Changed-When: Mon Feb 5 01:36:51 2001
Responsible-Changed-Why:
patch in progress
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=1864&database=gcc
>From rodrigc@mediaone.net Sun Apr 01 00:00:00 2001
From: Craig Rodrigues <rodrigc@mediaone.net>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c++/2017
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010311164601.32576.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg02190.html
Content-length: 1132
The following reply was made to PR libstdc++/2017; it has been noted by GNATS.
From: Craig Rodrigues <rodrigc@mediaone.net>
To: Rafael Jesus Alcantara Perez <rafa@dedalo-ing.com>
Cc: Craig Rodrigues <rodrigc@mediaone.net>
Subject: Re: c++/2017
Date: Tue, 20 Feb 2001 12:29:13 -0500
On Tue, Feb 20, 2001 at 10:24:48AM +0100, Rafael Jesus Alcantara Perez wrote:
> Thanks, I have compiled GCC in a GLIBC 2.2 system, and that problem has
> disappeared. Although, I have found another with streams (#2017).
I looked at 2017. I will get a more definitive answer, but
from section 21.6.2 of The C++ Programming Language, 3rd ed. by Stroustrup:
"Unfortunately backing up an input streams is not always possible....
What is guaranteed is that you can back up one character after a successful
read. The peek() reads the next character but leaves
it in the streambuf so that it can be read again."
By the way, I tried your example under C++ compilers from
Sun and Compaq, and they both produced the same result as
gcc 3.0.
--
Craig Rodrigues
http://www.gis.net/~craigr
rodrigc@mediaone.net
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-04-01 0:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-01 0:00 c++/1864 nathan
-- strict thread matches above, loose matches on Subject: below --
2001-04-01 0:00 c++/1864 nathan
2001-04-01 0:00 c++/1864 nathan
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).