This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
V3 patch causes EH failures in ILP32 mode
- From: Mark Mitchell <mark at codesourcery dot com>
- To: bkoz at redhat dot com
- Cc: zack at codesourcery dot com, libstdc++ at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Date: Wed, 23 Jun 2004 10:41:35 -0700
- Subject: V3 patch causes EH failures in ILP32 mode
- Reply-to: mark at codesourcery dot com
In:
2004-05-22 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/cxxabi.h: Remove duplicated and useless public and
private keywords in class declarations. Format. Use
stddef.h. Expose declarations to "C" compilation.
* libsupc++/tinfo.cc (__upcast_result): Add copy constructor and
assignment operator.
(__dyncast_result): Same.
* libsupc++/vec.cc (uncatch_exception): Same, use member
initialization list.
you added seemingly pointless implementations of __upcast_result's
copy constructor and assignment operator; these versions are almost
identical to the implicit definitions. On HP-UX in ILP32 mode, this
change is causing several G++ testsuite failures relating to upcasts
during EH processing.
That's probably a code-generation problem, which we're trying to track
down, but there's no reason to be tickling it when we don't need to
be. Zack and I plan to revert the __upcast_result assignment operator
on the branch, as it is the proximate cause of these regressions.
Without excusing the compiler for generating wrong code, would you
explain why you added these definitions? The compiler's version may
be more efficient than yours since it may use a bitwise copy; your
version is going to require a fair amount of cleverness to optimize
into that. And, you've got just that much more code to maintain...
Thanks,
--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com