* cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
authorJason Merrill <jason@redhat.com>
Sun, 13 Feb 2005 06:58:55 +0000 (06:58 +0000)
committerJason Merrill <jason@redhat.com>
Sun, 13 Feb 2005 06:58:55 +0000 (06:58 +0000)
        arguments.

libiberty/ChangeLog
libiberty/cp-demangle.c

index adbb2498124c32cddc22bdf337a1e70e8d8f27ab..1d801adf38f9096129b42636e354f8731211fb02 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-13  Jason Merrill  <jason@redhat.com>
+
+       * cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
+       arguments.
+
 2005-01-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
        * hex.c (hex_value): Group 'unsigned int' together to get correct
index 5707aa20aa2a703edb3086f1c7d59cd7896cba69..c4436d7d7d592fcf290c3c87eb3e07e0bd344b47 100644 (file)
@@ -4047,21 +4047,6 @@ __cxa_demangle (mangled_name, output_buffer, length, status)
       return NULL;
     }
 
-  /* The specification for __cxa_demangle() is that if the mangled
-     name could be either an extern "C" identifier, or an internal
-     built-in type name, then we resolve it as the identifier.  All
-     internal built-in type names are a single lower case character.
-     Frankly, this simplistic disambiguation doesn't make sense to me,
-     but it is documented, so we implement it here.  */
-  if (IS_LOWER (mangled_name[0])
-      && mangled_name[1] == '\0'
-      && cplus_demangle_builtin_types[mangled_name[0] - 'a'].name != NULL)
-    {
-      if (status != NULL)
-       *status = -2;
-      return NULL;
-    }
-
   demangled = d_demangle (mangled_name, DMGL_PARAMS | DMGL_TYPES, &alc);
 
   if (demangled == NULL)