summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/itanium/abi.c2
-rw-r--r--tests/mangling/itanium.py7
2 files changed, 6 insertions, 3 deletions
diff --git a/plugins/itanium/abi.c b/plugins/itanium/abi.c
index 2a9561f..34a2a01 100644
--- a/plugins/itanium/abi.c
+++ b/plugins/itanium/abi.c
@@ -1011,7 +1011,7 @@ static itanium_component *itd_template_prefix(GItaniumDemangling *context)
else if (peek == 'T')
result = itd_template_param(context);
- if (is_itd_unqualified_name(context))
+ else if (is_itd_unqualified_name(context))
result = itd_unqualified_name(context);
/* Vérification : a-t-on empiété sur une règle <prefix> ? */
diff --git a/tests/mangling/itanium.py b/tests/mangling/itanium.py
index 7ff16c2..a1cc517 100644
--- a/tests/mangling/itanium.py
+++ b/tests/mangling/itanium.py
@@ -192,7 +192,7 @@ class TestItaniumMangling(ChrysalideTestCase):
self.check_demangling(demangled, '??? zzz::aa<cccc::xxxx<float>>::ddddd(unsigned int)')
demangled = demangler.decode_routine('_ZN3aaa3bbbINS_3cccIfEEE3dddEj')
- self.check_demangling(demangled, '??? aaa::bbb<ccc<float>>::ddd(unsigned int)')
+ self.check_demangling(demangled, '??? aaa::bbb<aaa::ccc<float>>::ddd(unsigned int)')
def testAndroidSystem(self):
@@ -207,7 +207,10 @@ class TestItaniumMangling(ChrysalideTestCase):
self.check_demangling(demangled, '??? icu_55::Locale::operator=(const icu_55::Locale &)')
demangled = demangler.decode_routine('_ZNSt3__16vectorIfNS_9allocatorIfEEE8__appendEj')
- self.check_demangling(demangled, '??? std::__1::vector<float, allocator<float>>::__append(unsigned int)')
+ self.check_demangling(demangled, '??? std::__1::vector<float, std::__1::allocator<float>>::__append(unsigned int)')
demangled = demangler.decode_routine('_ZN7android7String8C1EPKDsj')
self.check_demangling(demangled, 'android::String8 *android::String8::String8(const char16_t *, unsigned int)')
+
+ demangled = demangler.decode_routine('_ZNSt3__111__tree_nextIPNS_16__tree_node_baseIPvEEEET_S5_')
+ self.check_demangling(demangled, 'std::__1::__tree_node_base<void *> *std::__1::__tree_next<std::__1::__tree_node_base<void *> *>(std::__1::__tree_node_base<void *> *)')