From 16fa5e238ac913a6713582d7d93e9289d1ac802a Mon Sep 17 00:00:00 2001 From: Marcus Shawcroft Date: Tue, 27 Sep 2011 06:03:58 +0000 Subject: [PATCH] tinfo.cc (type_info::operator==): Test __name instead of name(). 2011-09-27 Marcus Shawcroft * libsupc++/tinfo.cc (type_info::operator==): Test __name instead of name(). From-SVN: r179236 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/libsupc++/tinfo.cc | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 140bdb1a5b6..a1b4af02c34 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-09-27 Marcus Shawcroft + + * libsupc++/tinfo.cc (type_info::operator==): Test __name instead + of name(). + 2011-09-26 Paolo Carlini PR libstdc++/50529 diff --git a/libstdc++-v3/libsupc++/tinfo.cc b/libstdc++-v3/libsupc++/tinfo.cc index d939a3fdab7..eba74dbdada 100644 --- a/libstdc++-v3/libsupc++/tinfo.cc +++ b/libstdc++-v3/libsupc++/tinfo.cc @@ -41,8 +41,11 @@ operator== (const std::type_info& arg) const #if __GXX_MERGED_TYPEINFO_NAMES return name () == arg.name (); #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) - || (name ()[0] != '*' && (__builtin_strcmp (name (), arg.name ()) == 0)); + || (__name[0] != '*' && (__builtin_strcmp (name (), arg.name ()) == 0)); #endif } -- 2.30.2