* [Bug c++/31419] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
@ 2007-04-01 14:39 ` fang at csl dot cornell dot edu
2007-04-01 14:42 ` james dot kanze at gmail dot com
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fang at csl dot cornell dot edu @ 2007-04-01 14:39 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from fang at csl dot cornell dot edu 2007-04-01 15:38 -------
Aside, it looks to me as if operator () returns a reference (const) to a
temporary, which is undefined, no?
--
fang at csl dot cornell dot edu changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fang at csl dot cornell dot
| |edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
2007-04-01 14:39 ` [Bug c++/31419] " fang at csl dot cornell dot edu
@ 2007-04-01 14:42 ` james dot kanze at gmail dot com
2007-04-01 15:57 ` fang at csl dot cornell dot edu
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: james dot kanze at gmail dot com @ 2007-04-01 14:42 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from james dot kanze at gmail dot com 2007-04-01 15:42 -------
Subject: Re: template user defined conversion operator instantiated for
conversion to self
On 1 Apr 2007 14:38:52 -0000, fang at csl dot cornell dot edu
<gcc-bugzilla@gcc.gnu.org> wrote:
> ------- Comment #1 from fang at csl dot cornell dot edu 2007-04-01 15:38 -------
> Aside, it looks to me as if operator () returns a reference (const) to a
> temporary, which is undefined, no?
There is no operator() in the code. And there is no undefined
behavior is the reference is not used. But that's not the
point. What the user defined conversion operator does is
irrelevant, since it should never even be instantiated.
(This is not the actual code in my application, of course. I've
simplified it to the maximum.)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
2007-04-01 14:39 ` [Bug c++/31419] " fang at csl dot cornell dot edu
2007-04-01 14:42 ` james dot kanze at gmail dot com
@ 2007-04-01 15:57 ` fang at csl dot cornell dot edu
2007-04-09 14:35 ` [Bug c++/31419] [4.1/4.2/4.3 regression] " reichelt at gcc dot gnu dot org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: fang at csl dot cornell dot edu @ 2007-04-01 15:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from fang at csl dot cornell dot edu 2007-04-01 16:57 -------
Subject: Re: template user defined conversion operator
instantiated for conversion to self
> There is no operator() in the code. And there is no undefined
> behavior is the reference is not used. But that's not the
> point. What the user defined conversion operator does is
> irrelevant, since it should never even be instantiated.
>
> (This is not the actual code in my application, of course. I've
> simplified it to the maximum.)
Yep, I realize it's irrelevant, which is why I mentioned it as an 'aside'.
:) Just brought it up in case the non-reduced version in your original
code does actually use it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (2 preceding siblings ...)
2007-04-01 15:57 ` fang at csl dot cornell dot edu
@ 2007-04-09 14:35 ` reichelt at gcc dot gnu dot org
2007-04-15 22:13 ` mmitchel at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2007-04-09 14:35 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from reichelt at gcc dot gnu dot org 2007-04-09 15:35 -------
Confirmed.
The code fails to compile since GCC 3.3.
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |reichelt at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |monitored, rejects-valid
Known to fail| |3.3 3.3.6 3.4.6 4.0.4 4.1.3
| |4.2.0 4.3.0
Known to work| |3.2.3
Last reconfirmed|0000-00-00 00:00:00 |2007-04-09 15:35:38
date| |
Summary|template user defined |[4.1/4.2/4.3 regression]
|conversion operator |template user defined
|instantiated for conversion |conversion operator
|to self |instantiated for conversion
| |to self
Target Milestone|--- |4.1.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (3 preceding siblings ...)
2007-04-09 14:35 ` [Bug c++/31419] [4.1/4.2/4.3 regression] " reichelt at gcc dot gnu dot org
@ 2007-04-15 22:13 ` mmitchel at gcc dot gnu dot org
2007-04-23 16:03 ` janis at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-04-15 22:13 UTC (permalink / raw)
To: gcc-bugs
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (4 preceding siblings ...)
2007-04-15 22:13 ` mmitchel at gcc dot gnu dot org
@ 2007-04-23 16:03 ` janis at gcc dot gnu dot org
2007-09-04 14:06 ` jason at gcc dot gnu dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: janis at gcc dot gnu dot org @ 2007-04-23 16:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from janis at gcc dot gnu dot org 2007-04-23 17:02 -------
A regression hunt on powerc-linux using the submitter's testcase identified the
following patch:
http://gcc.gnu.org/viewcvs?view=rev&rev=64815
r64815 | nathan | 2003-03-24 19:47:17 +0000 (Mon, 24 Mar 2003)
--
janis at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |nathan at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (5 preceding siblings ...)
2007-04-23 16:03 ` janis at gcc dot gnu dot org
@ 2007-09-04 14:06 ` jason at gcc dot gnu dot org
2007-09-04 20:18 ` jason at gcc dot gnu dot org
2007-09-13 16:05 ` jason at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: jason at gcc dot gnu dot org @ 2007-09-04 14:06 UTC (permalink / raw)
To: gcc-bugs
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
Last reconfirmed|2007-04-09 15:35:38 |2007-09-04 14:06:33
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (6 preceding siblings ...)
2007-09-04 14:06 ` jason at gcc dot gnu dot org
@ 2007-09-04 20:18 ` jason at gcc dot gnu dot org
2007-09-13 16:05 ` jason at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: jason at gcc dot gnu dot org @ 2007-09-04 20:18 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from jason at gcc dot gnu dot org 2007-09-04 20:18 -------
Subject: Bug 31419
Author: jason
Date: Tue Sep 4 20:18:05 2007
New Revision: 128102
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128102
Log:
PR c++/31419
* call.c (reference_binding): Don't look for user-defined conversions
to the same type.
Added:
trunk/gcc/testsuite/g++.dg/conversion/self1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/31419] [4.1/4.2/4.3 regression] template user defined conversion operator instantiated for conversion to self
2007-04-01 13:26 [Bug c++/31419] New: template user defined conversion operator instantiated for conversion to self james dot kanze at gmail dot com
` (7 preceding siblings ...)
2007-09-04 20:18 ` jason at gcc dot gnu dot org
@ 2007-09-13 16:05 ` jason at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: jason at gcc dot gnu dot org @ 2007-09-13 16:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from jason at gcc dot gnu dot org 2007-09-13 16:05 -------
Fixed for 4.2.2 and 4.3.0.
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Known to fail|3.3 3.3.6 3.4.6 4.0.4 4.1.3 |3.3 3.3.6 3.4.6 4.0.4 4.1.3
|4.2.0 4.3.0 |4.2.0
Known to work|3.2.3 |3.2.3 4.2.2 4.3.0
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31419
^ permalink raw reply [flat|nested] 10+ messages in thread