public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/14454] New: virtual function with variable number of arguments won't compile
@ 2004-03-06  2:05 ktrummel at scene7 dot com
  2004-03-06  2:08 ` [Bug c++/14454] " ktrummel at scene7 dot com
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: ktrummel at scene7 dot com @ 2004-03-06  2:05 UTC (permalink / raw)
  To: gcc-bugs

This problem occurs on g++ version 3.3.2 on Solaris 8.  Here is the output from 
g++ -v:

Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-
ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.3.2

The strange thing is that this does NOT occur with g++ 3.3.2 on Linux.  Here is 
the output from g++ -v for it:

Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/specs
Configured with: ../gcc-3.3.2/configure 
Thread model: posix
gcc version 3.3.2

Take the source appended to this message and simply compile (i.e. "g++ -c 
virtual.cpp") and the output is the following:

virtual.cpp:23: error: generic thunk code fails for method `virtual void 
   Foo::log(int, const char*, ...)' which uses `...'


And here is the source:

#include <stdarg.h>
#include <stdio.h>

class BaseClass
{
public:
    BaseClass() {}
    virtual ~BaseClass() {}
    virtual void log(int level, const char *format, ...);
};

class Foo : public virtual BaseClass
{
public:
    Foo() {}
    virtual ~Foo() {}
    virtual void log(int level, const char *format, ...);
private:
};

void Foo::log(int level, const char *format, ...)
{
}

-- 
           Summary: virtual function with variable number of arguments won't
                    compile
           Product: gcc
           Version: 3.3.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ktrummel at scene7 dot com
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c++/14454] virtual function with variable number of arguments won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
@ 2004-03-06  2:08 ` ktrummel at scene7 dot com
  2004-03-06  3:41 ` [Bug target/14454] virtual function with vararg " pinskia at gcc dot gnu dot org
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ktrummel at scene7 dot com @ 2004-03-06  2:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ktrummel at scene7 dot com  2004-03-06 02:08 -------
Created an attachment (id=5873)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5873&action=view)
attempting to compile code with 3.3.2 on Solaris exhibits problem

Sorry, this is the first time I submitted a bug using this system, so I
originally just pasted in the source to the bug report.  I am attaching it here
in case that makes people's life easier.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
  2004-03-06  2:08 ` [Bug c++/14454] " ktrummel at scene7 dot com
@ 2004-03-06  3:41 ` pinskia at gcc dot gnu dot org
  2004-03-06  5:09 ` bangerth at dealii dot org
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-06  3:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-06 03:41 -------
This is a target problem.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |normal
          Component|c++                         |target
 GCC target triplet|                            |sparc-*-*
           Keywords|                            |rejects-valid
            Summary|virtual function with       |virtual function with vararg
                   |variable number of arguments|won't compile
                   |won't compile               |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
  2004-03-06  2:08 ` [Bug c++/14454] " ktrummel at scene7 dot com
  2004-03-06  3:41 ` [Bug target/14454] virtual function with vararg " pinskia at gcc dot gnu dot org
@ 2004-03-06  5:09 ` bangerth at dealii dot org
  2004-04-07 13:55 ` [Bug target/14454] [3.3/3.4/3.5 Regression] " pinskia at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: bangerth at dealii dot org @ 2004-03-06  5:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-03-06 05:09 -------
I don't have any machine here to test, but isn't this fixed on mainline with Nathan
thunk fixes? Or is this the case that is still missing?

W.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nathan at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/3.5 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (2 preceding siblings ...)
  2004-03-06  5:09 ` bangerth at dealii dot org
@ 2004-04-07 13:55 ` pinskia at gcc dot gnu dot org
  2004-06-18 23:57 ` mmitchel at gcc dot gnu dot org
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-04-07 13:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-04-07 13:55 -------
Confirmed on the mainline, it does not happen on 2.95.3 because thunks did not exist or 
were not being used.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
      Known to fail|                            |3.5.0
      Known to work|                            |2.95.3
   Last reconfirmed|0000-00-00 00:00:00         |2004-04-07 13:55:23
               date|                            |
            Summary|virtual function with vararg|[3.3/3.4/3.5 Regression]
                   |won't compile               |virtual function with vararg
                   |                            |won't compile
   Target Milestone|---                         |3.4.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/3.5 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (3 preceding siblings ...)
  2004-04-07 13:55 ` [Bug target/14454] [3.3/3.4/3.5 Regression] " pinskia at gcc dot gnu dot org
@ 2004-06-18 23:57 ` mmitchel at gcc dot gnu dot org
  2004-08-12  7:39 ` pinskia at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-06-18 23:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-06-18 23:57 -------
Postponed until GCC 3.4.2.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.4.1                       |3.4.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/3.5 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (4 preceding siblings ...)
  2004-06-18 23:57 ` mmitchel at gcc dot gnu dot org
@ 2004-08-12  7:39 ` pinskia at gcc dot gnu dot org
  2004-08-29 18:43 ` mmitchel at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-12  7:39 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-12 07:39 -------
PR 7618 was the bug about MIPS.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |7618


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/3.5 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (5 preceding siblings ...)
  2004-08-12  7:39 ` pinskia at gcc dot gnu dot org
@ 2004-08-29 18:43 ` mmitchel at gcc dot gnu dot org
  2004-10-01 16:06 ` [Bug target/14454] [3.3/3.4/4.0 " ebotcazou at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-08-29 18:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-08-29 18:43 -------
Postponed until GCC 3.4.3.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.4.2                       |3.4.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (6 preceding siblings ...)
  2004-08-29 18:43 ` mmitchel at gcc dot gnu dot org
@ 2004-10-01 16:06 ` ebotcazou at gcc dot gnu dot org
  2004-10-07  9:43 ` ebotcazou at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-01 16:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-01 16:06 -------
Ouch!  I totally missed this one.  It could have helped to ping a maintainer if
the problem is so critical.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu dot
                   |                            |org
      Known to fail|3.4.1 4.0                   |3.4.1 4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (7 preceding siblings ...)
  2004-10-01 16:06 ` [Bug target/14454] [3.3/3.4/4.0 " ebotcazou at gcc dot gnu dot org
@ 2004-10-07  9:43 ` ebotcazou at gcc dot gnu dot org
  2004-10-08 22:03 ` ebotcazou at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-07  9:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-07 09:43 -------
Investigating, finally.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|ebotcazou at gcc dot gnu dot|
                   |org                         |
         AssignedTo|unassigned at gcc dot gnu   |ebotcazou at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (8 preceding siblings ...)
  2004-10-07  9:43 ` ebotcazou at gcc dot gnu dot org
@ 2004-10-08 22:03 ` ebotcazou at gcc dot gnu dot org
  2004-10-09  9:04 ` nathan at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-08 22:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-08 22:03 -------
Nathan, what is the typical range of the VCALL_OFFSET passed to the back-end
when the thunk is built?

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (9 preceding siblings ...)
  2004-10-08 22:03 ` ebotcazou at gcc dot gnu dot org
@ 2004-10-09  9:04 ` nathan at gcc dot gnu dot org
  2004-10-10  8:39 ` ebotcazou at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-10-09  9:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From nathan at gcc dot gnu dot org  2004-10-09 09:04 -------
It will be a negative number, the value of which depends on the number of
vbases + virtual functions declared with morally[%] virtual heirarchies.
I suspect mip's -32768 limit would be a sensible implementation limit.  That will
allow 8192 virtualbases+virtualfunctionswithinthem

[%] morally virtual == virtual base + all its direct & indirect non-virtual bases

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (10 preceding siblings ...)
  2004-10-09  9:04 ` nathan at gcc dot gnu dot org
@ 2004-10-10  8:39 ` ebotcazou at gcc dot gnu dot org
  2004-10-10 16:30 ` nathan at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-10  8:39 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-10 08:39 -------
> It will be a negative number, the value of which depends on the number of
> vbases + virtual functions declared with morally[%] virtual heirarchies.
> I suspect mip's -32768 limit would be a sensible implementation limit. That will
> allow 8192 virtualbases+virtualfunctionswithinthem

Thanks for your answer.  I presume 8192 is valid only in 32-bit mode?  In either
case, this doesn't really matter since we (almost always) have 2 scratch regs in
64-bit mode.  The problematic case is 32-bit mode, where we only have 1 scratch
reg and the range of the 'add' immediate field is -4096..4095.  Given your
estimation, I think I'll not add spill code and always resort to multiple adds.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (11 preceding siblings ...)
  2004-10-10  8:39 ` ebotcazou at gcc dot gnu dot org
@ 2004-10-10 16:30 ` nathan at gcc dot gnu dot org
  2004-10-10 18:13 ` pinskia at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-10-10 16:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From nathan at gcc dot gnu dot org  2004-10-10 16:30 -------
yes, that sounds reasonable.  The vast majority of the time both vcall offset and
fixed offset will be above about -1000, I'd recon.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (12 preceding siblings ...)
  2004-10-10 16:30 ` nathan at gcc dot gnu dot org
@ 2004-10-10 18:13 ` pinskia at gcc dot gnu dot org
  2004-10-13 14:04 ` cvs-commit at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-10 18:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-10-10 18:13 -------
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-10/msg00862.html>.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (13 preceding siblings ...)
  2004-10-10 18:13 ` pinskia at gcc dot gnu dot org
@ 2004-10-13 14:04 ` cvs-commit at gcc dot gnu dot org
  2004-10-13 14:17 ` cvs-commit at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-10-13 14:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-10-13 14:04 -------
Subject: Bug 14454

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	ebotcazou@gcc.gnu.org	2004-10-13 14:04:33

Modified files:
	gcc            : ChangeLog 
	gcc/config/sparc: sparc.c sparc.md 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/g++.dg/inherit: thunk1.C 

Log message:
	PR target/14454
	* config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
	sparc_can_output_mi_thunk.
	(sparc_output_mi_thunk): Simplify handling of delta offset.  Add
	handling of vcall offset.
	(sparc_can_output_mi_thunk): New predicate.
	* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
	
	* config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
	
	* config/sparc/sparc.md (movdi): Remove redundant test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5860&r2=2.5861
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&r1=1.338&r2=1.339
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.md.diff?cvsroot=gcc&r1=1.217&r2=1.218
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4441&r2=1.4442
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/inherit/thunk1.C.diff?cvsroot=gcc&r1=1.5&r2=1.6



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (14 preceding siblings ...)
  2004-10-13 14:04 ` cvs-commit at gcc dot gnu dot org
@ 2004-10-13 14:17 ` cvs-commit at gcc dot gnu dot org
  2004-10-13 14:28 ` ebotcazou at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-10-13 14:17 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-10-13 14:16 -------
Subject: Bug 14454

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	ebotcazou@gcc.gnu.org	2004-10-13 14:16:36

Modified files:
	gcc            : ChangeLog 
	gcc/config/sparc: sparc.c sparc.md 
	gcc/doc        : tm.texi 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/g++.dg/inherit: thunk1.C 

Log message:
	PR target/14454
	* config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
	sparc_can_output_mi_thunk.
	(sparc_output_mi_thunk): Simplify handling of delta offset.  Add
	handling of vcall offset.
	(sparc_can_output_mi_thunk): New predicate.
	* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
	
	* config/sparc/sparc.md (movdi): Remove redundant test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.654&r2=2.2326.2.655
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.271.4.21&r2=1.271.4.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.md.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.196.2.5&r2=1.196.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/tm.texi.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.281.2.18&r2=1.281.2.19
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.285&r2=1.3389.2.286
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/inherit/thunk1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.5&r2=1.5.40.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (15 preceding siblings ...)
  2004-10-13 14:17 ` cvs-commit at gcc dot gnu dot org
@ 2004-10-13 14:28 ` ebotcazou at gcc dot gnu dot org
  2004-10-13 14:36 ` giovannibajo at libero dot it
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-13 14:28 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-13 14:28 -------
Gaby, I don't intend to put the fix on the 3.3 branch at this point.  However
the bug is rated as a "critical regression" there too, so you might want to
overrule me.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gdr at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3/3.4/4.0 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (16 preceding siblings ...)
  2004-10-13 14:28 ` ebotcazou at gcc dot gnu dot org
@ 2004-10-13 14:36 ` giovannibajo at libero dot it
  2004-10-13 14:42 ` [Bug target/14454] [3.3 " pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: giovannibajo at libero dot it @ 2004-10-13 14:36 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-10-13 14:36 -------
Notice that the original bugreport is against 3.3.2 though, which means that 
the user really hit this problem on the 3.3 branch. And moving to 3.4 is non-
trivial for much C++ code due to the new parser.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (17 preceding siblings ...)
  2004-10-13 14:36 ` giovannibajo at libero dot it
@ 2004-10-13 14:42 ` pinskia at gcc dot gnu dot org
  2004-10-13 14:45 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-13 14:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-10-13 14:42 -------
I would disagree with  Giovanni's statement about moving to 3.4 being hard, yes it is a pain but it 
would be the correct thing to do for most code anyways but I will leave this up to GDR to decide to let 
this patch go in or not.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|3.4.1 4.0.0                 |3.4.1 3.4.2
      Known to work|2.95.3                      |2.95.3 4.0.0 3.4.3
            Summary|[3.3/3.4/4.0 Regression]    |[3.3 Regression] virtual
                   |virtual function with vararg|function with vararg won't
                   |won't compile               |compile
   Target Milestone|3.4.3                       |3.3.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (18 preceding siblings ...)
  2004-10-13 14:42 ` [Bug target/14454] [3.3 " pinskia at gcc dot gnu dot org
@ 2004-10-13 14:45 ` pinskia at gcc dot gnu dot org
  2004-10-14  6:44 ` ebotcazou at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-13 14:45 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.3.5                       |3.3.6


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (19 preceding siblings ...)
  2004-10-13 14:45 ` pinskia at gcc dot gnu dot org
@ 2004-10-14  6:44 ` ebotcazou at gcc dot gnu dot org
  2004-10-14  6:55 ` cvs-commit at gcc dot gnu dot org
  2004-10-14  7:03 ` ebotcazou at gcc dot gnu dot org
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-14  6:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-14 06:44 -------
> Notice that the original bugreport is against 3.3.2 though, which means that 
> the user really hit this problem on the 3.3 branch. And moving to 3.4 is non-
> trivial for much C++ code due to the new parser.

OK, this is convincing.  I'm going to install it on the 3.3 branch too.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (20 preceding siblings ...)
  2004-10-14  6:44 ` ebotcazou at gcc dot gnu dot org
@ 2004-10-14  6:55 ` cvs-commit at gcc dot gnu dot org
  2004-10-14  7:03 ` ebotcazou at gcc dot gnu dot org
  22 siblings, 0 replies; 24+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-10-14  6:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-10-14 06:55 -------
Subject: Bug 14454

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-branch
Changes by:	ebotcazou@gcc.gnu.org	2004-10-14 06:54:52

Modified files:
	gcc            : ChangeLog 
	gcc/config/sparc: sparc.c sparc.md 
	gcc/doc        : tm.texi 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/g++.dg/inherit: thunk1.C 

Log message:
	PR target/14454
	* config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
	sparc_can_output_mi_thunk.
	(sparc_output_mi_thunk): Simplify handling of delta offset.  Add
	handling of vcall offset.
	(sparc_can_output_mi_thunk): New predicate.
	* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
	
	* config/sparc/sparc.md (movdi): Remove redundant test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.1022&r2=1.16114.2.1023
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.233.4.12&r2=1.233.4.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.md.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.181.4.13&r2=1.181.4.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/tm.texi.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.182.2.8&r2=1.182.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.384&r2=1.2261.2.385
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/inherit/thunk1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.5&r2=1.5.12.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug target/14454] [3.3 Regression] virtual function with vararg won't compile
  2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
                   ` (21 preceding siblings ...)
  2004-10-14  6:55 ` cvs-commit at gcc dot gnu dot org
@ 2004-10-14  7:03 ` ebotcazou at gcc dot gnu dot org
  22 siblings, 0 replies; 24+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2004-10-14  7:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-10-14 07:03 -------
Fixed on all active branches.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14454


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2004-10-14  7:03 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-03-06  2:05 [Bug c++/14454] New: virtual function with variable number of arguments won't compile ktrummel at scene7 dot com
2004-03-06  2:08 ` [Bug c++/14454] " ktrummel at scene7 dot com
2004-03-06  3:41 ` [Bug target/14454] virtual function with vararg " pinskia at gcc dot gnu dot org
2004-03-06  5:09 ` bangerth at dealii dot org
2004-04-07 13:55 ` [Bug target/14454] [3.3/3.4/3.5 Regression] " pinskia at gcc dot gnu dot org
2004-06-18 23:57 ` mmitchel at gcc dot gnu dot org
2004-08-12  7:39 ` pinskia at gcc dot gnu dot org
2004-08-29 18:43 ` mmitchel at gcc dot gnu dot org
2004-10-01 16:06 ` [Bug target/14454] [3.3/3.4/4.0 " ebotcazou at gcc dot gnu dot org
2004-10-07  9:43 ` ebotcazou at gcc dot gnu dot org
2004-10-08 22:03 ` ebotcazou at gcc dot gnu dot org
2004-10-09  9:04 ` nathan at gcc dot gnu dot org
2004-10-10  8:39 ` ebotcazou at gcc dot gnu dot org
2004-10-10 16:30 ` nathan at gcc dot gnu dot org
2004-10-10 18:13 ` pinskia at gcc dot gnu dot org
2004-10-13 14:04 ` cvs-commit at gcc dot gnu dot org
2004-10-13 14:17 ` cvs-commit at gcc dot gnu dot org
2004-10-13 14:28 ` ebotcazou at gcc dot gnu dot org
2004-10-13 14:36 ` giovannibajo at libero dot it
2004-10-13 14:42 ` [Bug target/14454] [3.3 " pinskia at gcc dot gnu dot org
2004-10-13 14:45 ` pinskia at gcc dot gnu dot org
2004-10-14  6:44 ` ebotcazou at gcc dot gnu dot org
2004-10-14  6:55 ` cvs-commit at gcc dot gnu dot org
2004-10-14  7:03 ` ebotcazou 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).