This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/31780] [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion
- From: "gdr at cs dot tamu dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 5 Jan 2008 07:51:04 -0000
- Subject: [Bug c++/31780] [4.2/4.3 regression] ICE with incompatible types for ?: with "complex type" conversion
- References: <bug-31780-1771@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #20 from gdr at cs dot tamu dot edu 2008-01-05 07:51 -------
Subject: Re: [4.2/4.3 regression] ICE with incompatible types for ?: with
"complex type" conversion
"mark at codesourcery dot com" <gcc-bugzilla@gcc.gnu.org> writes:
| ------- Comment #18 from mark at codesourcery dot com 2007-12-26 21:19
-------
| Subject: Re: [4.2/4.3 regression] ICE with incompatible types
| for ?: with "complex type" conversion
|
| gdr at gcc dot gnu dot org wrote:
|
| > I'm very nervous about adding more constructors.
| > I'd rather distinguish the constructor taking __complex__ by adding
| > a dummy parameter:
| >
| > enum _DummyArg { };
| > complex(__complex__ double __z, _DummyArg);
|
| That will, however, break backwards compatibility for user programs (if
| any) relying on the constructor.
That isn't a concern because I never published that constructor as a
contract in the interface of std::complex<double>.
-- Gaby
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31780