This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

3 C++ Compiler bugs in egcs-1.1.2


The attached .gz file contains a source .cpp file and intermediate (.ii and
.s) files illustrating 3 bugs in egcs-1.1.2 on Solaris 2.6.  The source file
contains instructions for reproducing the bugs, and all the compiler
settings etc, in a massive comment at the top.  Only standard include files
from the egcs distribution are required.

I'm sorry the source file is long, but it is stripped down by 1-2 orders of
magnitude from the original sources.  The code is laden with interacting
templates.

The three bugs are:
1.  An error message about a missing destructor which refers to it as
foo::__dt.  This is mysterious unless you grep the gcc source.
2.  A (probable name mangling) problem which causes destructors for
different classes to clash in the generated assembly code.
3.  A similar name mangling problem which produces a mangled method name
which demangles to an impossible method name and signature (the class is
wrong).  This also causes clashes in the generated assembly code.

Note that you cannot see bug #2 unless you remove bug #1 (instructions in
the source file).

I have worked around bugs #1 and #2 so far.  I would *really* appreciate it
if someone can tell me an option I've missed to generate arbitrarily long
mangled symbol names, or at least longer names than the default, so I can
get rid of the clash in bug #3.  Thanks much.

Jeff Greif
TriVida Corp.
3524 Hayden Ave.
Culver City, CA 90232
310-736-3700
jmg@trivida.com

egcs-bug1.tar.gz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]