This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/14738] [3.3 regression] ICE on use of bound member pointers
- From: "bangerth at dealii dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Mar 2004 00:12:53 -0000
- Subject: [Bug c++/14738] [3.3 regression] ICE on use of bound member pointers
- References: <20040326000406.14738.val@digiways.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From bangerth at dealii dot org 2004-03-26 00:12 -------
Confirmed. The code used to compile with 2.95 due to an obscure
gcc extension (bound member function pointers), in 3.2.3 we get an
equally obscure error:
g/x> /home/bangerth/bin/gcc-3.2.3/bin/c++ -c x.cc
x.cc: In function `int main()':
x.cc:7: conditional expression between distinct pointer types `int (**)(...)'
and `void (A::**)()' lacks a cast
In 3.3 this turned into an ICE:
g/x> /home/bangerth/bin/gcc-3.3.4-pre/bin/c++ -c x.cc
x.cc: In function `int main()':
x.cc:7: internal compiler error: Segmentation fault
In 3.4 and 3.5 it is fixed, though (i.e. the extension is removed):
g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc
x.cc: In function `int main()':
x.cc:7: error: invalid use of non-static member function
The bug is therefore a 3.3-only regression. I'll keep it open, though
I could imagine that Gaby may want to decide that we don't want
to fix such an obscure case on the branch...
W.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords|ice-on-invalid-code |
Known to fail|3.3.1 |3.2.3 3.3.4
Known to work|3.4.0 3.5.0 3.2.3 |2.95.3 3.4.0 3.5.0
Last reconfirmed|0000-00-00 00:00:00 |2004-03-26 00:12:50
date| |
Summary|[3.3 Regression] internal |[3.3 regression] ICE on use
|compiler error, this code |of bound member pointers
|should not compile at all |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14738