diff options
author | Benjamin Kosnik <bkoz@haight.constant.com> | 1998-11-23 12:12:03 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 1998-11-23 12:12:03 +0000 |
commit | 6e6e34b7a85567d1a0ca51ec6d7e32a50553e21e (patch) | |
tree | 2c54115e89fe35e48c49d74c3471f70a90ca0553 /libiberty/cplus-dem.c | |
parent | 25f3d2f4b71199dfce42654e6a7669800ac5600a (diff) | |
download | gcc-6e6e34b7a85567d1a0ca51ec6d7e32a50553e21e.zip gcc-6e6e34b7a85567d1a0ca51ec6d7e32a50553e21e.tar.gz gcc-6e6e34b7a85567d1a0ca51ec6d7e32a50553e21e.tar.bz2 |
cplus-dem.c (demangle_fund_type): Add demangling for C9x types.
�
1998-11-16 Benjamin Kosnik <bkoz@haight.constant.com>
* cplus-dem.c (demangle_fund_type): Add demangling for C9x types.
From-SVN: r23799
Diffstat (limited to 'libiberty/cplus-dem.c')
-rw-r--r-- | libiberty/cplus-dem.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c index 5ccf92f..05026c1 100644 --- a/libiberty/cplus-dem.c +++ b/libiberty/cplus-dem.c @@ -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': |