aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/libsupc++/tinfo.cc5
2 files changed, 9 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 140bdb1..a1b4af0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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>
PR libstdc++/50529
diff --git a/libstdc++-v3/libsupc++/tinfo.cc b/libstdc++-v3/libsupc++/tinfo.cc
index d939a3f..eba74db 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
}