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).