tinfo.cc (type_info::operator==): Test __name instead of name().

2011-09-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* libsupc++/tinfo.cc (type_info::operator==): Test __name instead
	of name().

From-SVN: r179236
This commit is contained in:
Marcus Shawcroft 2011-09-27 06:03:58 +00:00 committed by Joey Ye
parent f14e02622f
commit 16fa5e238a
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-09-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
* libsupc++/tinfo.cc (type_info::operator==): Test __name instead
of name().
2011-09-26 Paolo Carlini <paolo.carlini@oracle.com> 2011-09-26 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50529 PR libstdc++/50529

View File

@ -41,8 +41,11 @@ operator== (const std::type_info& arg) const
#if __GXX_MERGED_TYPEINFO_NAMES #if __GXX_MERGED_TYPEINFO_NAMES
return name () == arg.name (); return name () == arg.name ();
#else #else
/* The name() method will strip any leading '*' prefix. Therefore
take care to look at __name rather than name() when looking for
the "pointer" prefix. */
return (&arg == this) return (&arg == this)
|| (name ()[0] != '*' && (__builtin_strcmp (name (), arg.name ()) == 0)); || (__name[0] != '*' && (__builtin_strcmp (name (), arg.name ()) == 0));
#endif #endif
} }