OSDN Git Service

2011-09-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
authorjye2 <jye2@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Sep 2011 06:03:58 +0000 (06:03 +0000)
committerjye2 <jye2@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Sep 2011 06:03:58 +0000 (06:03 +0000)
* libsupc++/tinfo.cc (type_info::operator==): Test __name instead
of name().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179236 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/tinfo.cc

index 140bdb1..a1b4af0 100644 (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>
 
        PR libstdc++/50529
index d939a3f..eba74db 100644 (file)
@@ -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
 }