diff options
Diffstat (limited to 'libiberty/d-demangle.c')
-rw-r--r-- | libiberty/d-demangle.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libiberty/d-demangle.c b/libiberty/d-demangle.c index 880f2ec..6c7ac5a 100644 --- a/libiberty/d-demangle.c +++ b/libiberty/d-demangle.c @@ -1650,13 +1650,19 @@ dlang_parse_qualified (string *decl, const char *mangled, size_t n = 0; do { + /* Skip over anonymous symbols. */ + if (*mangled == '0') + { + do + mangled++; + while (*mangled == '0'); + + continue; + } + if (n++) string_append (decl, "."); - /* Skip over anonymous symbols. */ - while (*mangled == '0') - mangled++; - mangled = dlang_identifier (decl, mangled, info); /* Consume the encoded arguments. However if this is not followed by the |