]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Nov 1998 12:12:03 +0000 (12:12 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Nov 1998 12:12:03 +0000 (12:12 +0000)
1998-11-16  Benjamin Kosnik  <bkoz@haight.constant.com>
        * cplus-dem.c (demangle_fund_type): Add demangling for C9x types.

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

libiberty/ChangeLog
libiberty/cplus-dem.c

index aca683defa1df541aa63295faebb25def1f97f41..63cfef347f0d8e6c79a624ae60a834ea7956de84 100644 (file)
@@ -1,3 +1,7 @@
+1998-11-16  Benjamin Kosnik  <bkoz@haight.constant.com>
+
+        * cplus-dem.c (demangle_fund_type): Add demangling for C9x types.
+
 Thu Nov 19 22:15:50 1998  Jeffrey A Law  (law@cygnus.com)
 
        * mpw.c (mpw_access): Add missing parens.
index 5ccf92ffa7b72b886434cd3148c38ff6d9321fd6..05026c1da4e39cc2546c554c0eabb48938bb8400 100644 (file)
@@ -2883,6 +2883,8 @@ demangle_fund_type (work, mangled, result)
 {
   int done = 0;
   int success = 1;
+  char buf[10];
+  int dec = 0;
   string btype;
   type_kind_t tk = tk_integral;
 
@@ -3000,6 +3002,28 @@ demangle_fund_type (work, mangled, result)
          success = 0;
          break;
        }
+    case 'I':
+      ++(*mangled);
+      if (**mangled == '_')
+       {
+         int i;
+         ++(*mangled);
+         for (i = 0; **mangled != '_'; ++(*mangled), ++i)
+           buf[i] = **mangled;
+         buf[i] = '\0';
+         ++(*mangled);
+       }
+      else
+       {
+         strncpy (buf, *mangled, 2);
+         *mangled += 2;
+       }
+      sscanf (buf, "%x", &dec); 
+      sprintf (buf, "int%i_t", dec);
+      APPEND_BLANK (result);
+      string_append (result, buf);
+      break;
+
       /* fall through */
       /* An explicit type, such as "6mytype" or "7integer" */
     case '0':