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 }