This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/11376] [3.3/3.4 regression] mozilla-1.4 miscompiled
- From: "bangerth at dealii dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Jul 2003 01:21:03 -0000
- Subject: [Bug c++/11376] [3.3/3.4 regression] mozilla-1.4 miscompiled
- References: <20030630081619.11376.sirl@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11376
------- Additional Comments From bangerth at dealii dot org 2003-07-08 01:21 -------
As Andrew said, inlining might be different (functions defined in-class
have an implicit "inline" attribute, which is not the case if a function
is defined out-of-class). You may see whether you can trigger the abort
in the out-of-class case when you pass -finline-functions to gcc, which
makes all functions eligible for inlining. Alternatively, use -O3, which
implies -finline-functions.
As a hint for further testcase reduction: make all classes structs, and
remove the public/private/protected markers. Then try to do some of
the inlining by hand, by replacing the use of accessor functions by
direct accesses of the respective values, and subsequent removal of
the accessor functions. By looking at the code, it's obvious that you are
very close to the hailed one-page-limit, at which everything suddenly
becomes clear. (I'd like to help here, but can't for lack of a respective
platform...)
W.