summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/itanium/component.c3
-rw-r--r--tests/mangling/itanium.py5
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 &)')