This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: Exception propagation problem on IA-64/Linux


Eric Botcazou wrote:
>>The name here would seem to imply that we *are* mangling the type
>>name: "typeinfo for foo()::S".  Which begs the question of why you're
>>seeing something different for ia64.
> 
> 
> Both names are mangled identically (either on IA-32 or IA-64) because they are 
> supposed to be local to the translation unit.

Correct.

This test case is valid, and the results observed are in incorrect; in
other words, yes, there is a bug.

In general, comparison of type_info objects is supposed to be done by
checking for address equality of the type info strings.  On systems
without weak symbols, we use strcmp.  (Look for
__GXX_MERGED_TYPEINFO_NAMES in <typeinfo>.)  In the situation where we
use strcmp, I would expect to see this bug.  In the situation where we
do not use strcmp, I would not expect to see that bug -- because I would
expect that the type_info objects and the corresponding type_info
strings are local symbols.  If that is not the case, then that is the bug.

-- 
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
(916) 791-8304


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