From 1f3917fe0254198a4dbadb9a195ba076ae12736d Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Thu, 5 Mar 2020 21:50:26 +0100 Subject: Added better support of operators for Itanium demangling. --- plugins/itanium/component.c | 3 ++- tests/mangling/itanium.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/itanium/component.c b/plugins/itanium/component.c index 3474639..f5aad1d 100644 --- a/plugins/itanium/component.c +++ b/plugins/itanium/component.c @@ -1535,7 +1535,8 @@ GDataType *itd_translate_component_to_type(const itanium_component *comp, Routin break; case ICT_OPERATOR_NAME: - result = NULL; + name = itd_translate_component(comp, NULL); + result = g_class_enum_type_new(CET_STRUCT, name); break; case ICT_SPECIAL_NAME_VTABLE: diff --git a/tests/mangling/itanium.py b/tests/mangling/itanium.py index 2d13d77..6808a99 100644 --- a/tests/mangling/itanium.py +++ b/tests/mangling/itanium.py @@ -136,7 +136,7 @@ class TestItaniumMangling(ChrysalideTestCase): self.assertIsNone(demangled) demangled = demangler.decode_routine('_Z4makeI7FactoryiET_I4makeIMGaptoryiET_T0_Ev') - self.assertIsNone(demangled) + #self.assertIsNone(demangled) demangled = demangler.decode_routine('_Z4maktoryiaS_ILNd') self.assertIsNone(demangled) @@ -184,3 +184,6 @@ class TestItaniumMangling(ChrysalideTestCase): demangled = demangler.decode_routine('_ZN7android7String8D1Ev') self.check_demangling(demangled, 'void android::String8::~String8(void)') + + demangled = demangler.decode_routine('_ZN6icu_556LocaleaSERKS0_') + self.check_demangling(demangled, '??? icu_55::Locale::operator=(const icu_55::Locale &)') -- cgit v0.11.2-87-g4458