V3 patch causes EH failures in ILP32 mode
Mark Mitchell
mark@codesourcery.com
Wed Jun 23 17:53:00 GMT 2004
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
More information about the Libstdc++
mailing list