diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2000-09-13 23:09:30 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2000-09-13 23:09:30 +0000 |
commit | 2979107801062274996feb3bb609c0b2f9d6a2a3 (patch) | |
tree | 86b4407658b5168aba27a07662f1ac9c9230e16f /libiberty/cplus-dem.c | |
parent | 9a16ff93622eedf5d6064c52aa813de2154bec09 (diff) | |
download | gcc-2979107801062274996feb3bb609c0b2f9d6a2a3.zip gcc-2979107801062274996feb3bb609c0b2f9d6a2a3.tar.gz gcc-2979107801062274996feb3bb609c0b2f9d6a2a3.tar.bz2 |
demangle-expected: Add two tests for anonymous namespaces.
* testsuite/demangle-expected: Add two tests for anonymous
namespaces.
* cplus-dem.c (gnu_special): Handle anonymous namespaces.
From-SVN: r36398
Diffstat (limited to 'libiberty/cplus-dem.c')
-rw-r--r-- | libiberty/cplus-dem.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c index 79b6dc5..3fe70b4 100644 --- a/libiberty/cplus-dem.c +++ b/libiberty/cplus-dem.c @@ -2811,6 +2811,25 @@ gnu_special (work, mangled, declp) success = 0; break; } + + if (n > 10 && strncmp (*mangled, "_GLOBAL_", 8) == 0 + && (*mangled)[9] == 'N' + && (*mangled)[8] == (*mangled)[10] + && strchr (cplus_markers, (*mangled)[8])) + { + /* A member of the anonymous namespace. There's information + about what identifier or filename it was keyed to, but + it's just there to make the mangled name unique; we just + step over it. */ + string_append (declp, "{anonymous}"); + (*mangled) += n; + + /* Now p points to the marker before the N, so we need to + update it to the first marker after what we consumed. */ + p = strpbrk (*mangled, cplus_markers); + break; + } + string_appendn (declp, *mangled, n); (*mangled) += n; } |