c++/8173: ICE in g++ on compiling Qt-retated code (PerlQt module)
reichelt@igpm.rwth-aachen.de
reichelt@igpm.rwth-aachen.de
Mon Dec 2 17:35:00 GMT 2002
Old Synopsis: Internal error in g++ on compiling Qt-retated code (PerlQt module)
New Synopsis: ICE in g++ on compiling Qt-retated code (PerlQt module)
State-Changed-From-To: open->analyzed
State-Changed-By: reichelt
State-Changed-When: Mon Dec 2 17:35:05 2002
State-Changed-Why:
Confirmed.
The code is in fact illegal, since in x_QTSManip::x_0 we have the expression
(QTSMFI)x[1].s_int
with x[1].s_int being an int and QTSMFI being defined as
typedef int (QTextStream::*QTSMFI)(int);
Mainline correctly reports
x_QTSManip.cpp: In static member function `static void
x_QTSManip::x_0(Smoke::StackItem*)':
x_QTSManip.cpp:10: error: invalid conversion from 'int' to 'int
(QTextStream::*)(int)'
However, gcc 2.95.x - 3.2.1 fail with an ICE.
A reduced testcase is the following:
-----------------------snip here--------------------------
struct A
{
typedef int (A::* P)(int);
A(P);
};
A a((A::P)1);
-----------------------snip here--------------------------
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8173
More information about the Gcc-prs
mailing list