public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy
@ 2004-10-25 13:11 grigory dot zagorodnev at intel dot com
2004-10-25 13:20 ` [Bug c++/18143] [4.0 Regression] " pinskia at gcc dot gnu dot org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: grigory dot zagorodnev at intel dot com @ 2004-10-25 13:11 UTC (permalink / raw)
To: gcc-bugs
For the code listed below, GCC 4.0 (20041010) emits duplicated virtual
destructor thunk, so assembler fails to compile.
The size of c3::m member does matter there - test fails with magic value
0x3fffd or above and passes with any value below.
$ cat go.cpp
struct c0 {
virtual void foo(){};
};
struct c1 {
virtual ~c1(){};
};
struct c2 : virtual c1 { };
struct c3 {
char m[0x3fffd];
};
struct c4 : c0, c3, c2 {
c4();
};
c4::c4() { };
class c5 : virtual c4 {};
class c6 : c4 {};
$ g++ go.cpp
/tmp/cchxBAaw.s: Assembler messages:
/tmp/cchxBAaw.s:631: Error: symbol `_ZTh262140_N2c4D1Ev' is already defined
/tmp/cchxBAaw.s:650: Error: symbol `_ZTh262140_N2c4D1Ev' is already defined
/tmp/cchxBAaw.s:721: Error: symbol `_ZTh262140_N2c4D0Ev' is already defined
/tmp/cchxBAaw.s:740: Error: symbol `_ZTh262140_N2c4D0Ev' is already defined
--
Summary: Duplicated thunk with a huge member in the hierarchy
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: grigory dot zagorodnev at intel dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-redhat-linux
GCC host triplet: i686-redhat-linux
GCC target triplet: i686-redhat-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/18143] [4.0 Regression] Duplicated thunk with a huge member in the hierarchy
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
@ 2004-10-25 13:20 ` pinskia at gcc dot gnu dot org
2004-10-28 17:02 ` mmitchel at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-25 13:20 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-25 13:20 -------
I get an ICE on the mainline without disabling checking:
pr18143.cc:20: internal compiler error: in make_thunk, at cp/method.c:127
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
This used to work correctly in 3.4 so this is a regression.
: Search converges between 2004-09-30-014001-trunk (#569) and 2004-10-01-014001-trunk
(#570).
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |ice-checking, ice-on-valid-
| |code, wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2004-10-25 13:20:18
date| |
Summary|Duplicated thunk with a huge|[4.0 Regression] Duplicated
|member in the hierarchy |thunk with a huge member in
| |the hierarchy
Target Milestone|--- |4.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/18143] [4.0 Regression] Duplicated thunk with a huge member in the hierarchy
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
2004-10-25 13:20 ` [Bug c++/18143] [4.0 Regression] " pinskia at gcc dot gnu dot org
@ 2004-10-28 17:02 ` mmitchel at gcc dot gnu dot org
2004-10-28 17:09 ` nathan at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-10-28 17:02 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From mmitchel at gcc dot gnu dot org 2004-10-28 17:02 -------
Nathan, this is a result of your change to limit the maximum size of a thunk.
If we're going to keep that limit, we need to have a sorry() somewhere when
making a bigger thunk. Or, we could restore the ability to use a full "tree" as
the THUNK_FIXED_OFFSET.
(I can't remember how that discussion played out on the lists; my preference, I
think would be to allow an unbounded thunk size.)
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |nathan at codesourcery dot
| |com
AssignedTo|unassigned at gcc dot gnu |nathan at codesourcery dot
|dot org |com
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/18143] [4.0 Regression] Duplicated thunk with a huge member in the hierarchy
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
2004-10-25 13:20 ` [Bug c++/18143] [4.0 Regression] " pinskia at gcc dot gnu dot org
2004-10-28 17:02 ` mmitchel at gcc dot gnu dot org
@ 2004-10-28 17:09 ` nathan at gcc dot gnu dot org
2004-11-10 17:27 ` nathan at gcc dot gnu dot org
2004-11-10 17:35 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-10-28 17:09 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From nathan at gcc dot gnu dot org 2004-10-28 17:09 -------
yes, I havebeen meaning to revert it, but wanted to measure the performance hit.
I will make sure I get to it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/18143] [4.0 Regression] Duplicated thunk with a huge member in the hierarchy
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
` (2 preceding siblings ...)
2004-10-28 17:09 ` nathan at gcc dot gnu dot org
@ 2004-11-10 17:27 ` nathan at gcc dot gnu dot org
2004-11-10 17:35 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-11-10 17:27 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From nathan at gcc dot gnu dot org 2004-11-10 17:26 -------
2004-11-10 Nathan Sidwell <nathan@codesourcery.com>
* tree.c (tree_check_failed): Emit general error if the list of
node types is empty.
PR c++/18143
* cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New.
(struct lang_decl_flags): Add thunk_p flag.
(struct lang_decl): Remove separate fixed_offset. Place
cloned_function and fixed_offset into union.
(DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust.
(DECL_THUNK_P, SET_DECL_THUNK_P): Adjust.
(THUNK_FIXED_OFFSET): Adjust.
* method.c (make_thunk): Adjust.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/18143] [4.0 Regression] Duplicated thunk with a huge member in the hierarchy
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
` (3 preceding siblings ...)
2004-11-10 17:27 ` nathan at gcc dot gnu dot org
@ 2004-11-10 17:35 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-11-10 17:35 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-11-10 17:35 -------
Subject: Bug 18143
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: nathan@gcc.gnu.org 2004-11-10 17:34:48
Modified files:
gcc : ChangeLog tree.c
gcc/cp : ChangeLog method.c cp-tree.h
Log message:
.:
* tree.c (tree_check_failed): Emit general error if the list of
node types is empty.
cp:
PR c++/18143
* cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New.
(struct lang_decl_flags): Add thunk_p flag.
(struct lang_decl): Remove separate fixed_offset. Place
cloned_function and fixed_offset into union.
(DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust.
(DECL_THUNK_P, SET_DECL_THUNK_P): Adjust.
(THUNK_FIXED_OFFSET): Adjust.
* method.c (make_thunk): Adjust.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.6265&r2=2.6266
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.c.diff?cvsroot=gcc&r1=1.444&r2=1.445
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4477&r2=1.4478
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/method.c.diff?cvsroot=gcc&r1=1.316&r2=1.317
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.1069&r2=1.1070
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18143
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2004-11-10 17:35 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-25 13:11 [Bug c++/18143] New: Duplicated thunk with a huge member in the hierarchy grigory dot zagorodnev at intel dot com
2004-10-25 13:20 ` [Bug c++/18143] [4.0 Regression] " pinskia at gcc dot gnu dot org
2004-10-28 17:02 ` mmitchel at gcc dot gnu dot org
2004-10-28 17:09 ` nathan at gcc dot gnu dot org
2004-11-10 17:27 ` nathan at gcc dot gnu dot org
2004-11-10 17:35 ` cvs-commit at gcc dot gnu dot org
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).