From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25865 invoked by alias); 20 May 2003 01:02:33 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 25842 invoked by uid 48); 20 May 2003 01:02:32 -0000 Date: Tue, 20 May 2003 01:02:00 -0000 Message-ID: <20030520010232.25841.qmail@sources.redhat.com> To: dominique.devriese@student.kuleuven.ac.be, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org From: bangerth@dealii.org Reply-To: bangerth@dealii.org, dominique.devriese@student.kuleuven.ac.be, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c++/10858: failure with calling a method inside sizeof: sorry, unimplemented: `method_call_expr' not supported by dump_expr X-SW-Source: 2003-05/txt/msg02130.txt.bz2 List-Id: Old Synopsis: bogus compiler failure while compiling Boost.Python New Synopsis: failure with calling a method inside sizeof: sorry, unimplemented: `method_call_expr' not supported by dump_expr State-Changed-From-To: open->analyzed State-Changed-By: bangerth State-Changed-When: Tue May 20 01:02:32 2003 State-Changed-Why: Confirmed. Here's a much smaller snippet: ---------------------- template struct P {}; void bar (); template struct X { static int foo(void (*)()); P p; }; template class X; -------------------------- With 3.3, we presently get: g/x> /home/bangerth/bin/gcc-3.3-pre/bin/g++ -c x.cc x.cc:7: sorry, unimplemented: `method_call_expr' not supported by dump_expr x.cc:7: sorry, unimplemented: `method_call_expr' not supported by dump_expr With 3.4, this code doesn't go through the parser (which is reported elsewhere), so it's hard to tell whether the problem is fixed there. Here's what present mainline gives us: g/x> /home/bangerth/bin/gcc-3.4-pre/bin/g++ -c x.cc x.cc: In instantiation of `X': x.cc:10: instantiated from here x.cc:7: error: invalid use of undefined type `struct X' x.cc:5: error: declaration of `struct X' Working around the problem in 3.4 by using X::foo makes the problem go away in 3.3 and 3.4. I tend to think, though, that this is indeed valid code and that it should be accepted in any case. W. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10858