This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/6352: GCC 3.1 inliner regression from March
- From: gbeauchesne at mandrakesoft dot com
- To: gcc-gnats at gcc dot gnu dot org
- Cc: rth at redhat dot com, mark at codesourcery dot com
- Date: 18 Apr 2002 11:52:40 -0000
- Subject: c++/6352: GCC 3.1 inliner regression from March
- Reply-to: gbeauchesne at mandrakesoft dot com
>Number: 6352
>Category: c++
>Synopsis: GCC 3.1 inliner regression from March
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Thu Apr 18 04:56:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Gwenole Beauchesne
>Release: GNU C++ version 3.1 20020418 (prerelease) (i686-pc-linux-gnu)
>Organization:
>Environment:
i586-mandrake-linux-gnu
>Description:
The testcase below, distilled from Mesa 4.0.2 (si-glu/libnurbs/nurbtess/quicksort.cc), ICEs in current gcc-3.1-branch. This is a regression from gcc-3.0.4.
[gb@kernel gcc]$ ./cc1plus -O1 -finline-functions ~/vrac/qsort.cpp
void f() void g() void f() void g()
/home/gb/vrac/qsort.cpp:11: Internal compiler error in genrtl_finish_function,
at cp/semantics.c:2622
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
Compile the following testcase with -O1 -finline-functions and the current gcc-3.1-branch.
[gb@kernel gb]$ cat ~/vrac/qsort.cpp
static void g();
void f()
{
void g();
g();
}
void g()
{
}
BTW, do you want the full preprocessed source from Mesa?
>Fix:
Either don't use inlining or remove the declaration of g() in f().
Ah, as I happen to have a few prebuilt CVS snapshots around, the following might help to spot of the regressing change.
1) It works with
GNU C++ version 3.1 20020315 (prerelease) (i686-pc-linux-gnu)
2) But fails as above-mentioned with
GNU C++ version 3.1 20020316 (prerelease) (i686-pc-linux-gnu)
>Release-Note:
>Audit-Trail:
>Unformatted: