Index: src/cxa_demangle.cpp
===================================================================
--- src/cxa_demangle.cpp
+++ src/cxa_demangle.cpp
@@ -2425,7 +2425,8 @@
first += 2;
break;
case 't':
- db.names.push_back("operator>");
+ // Add extra space and avoid collisions with templates.
+ db.names.push_back("operator> ");
first += 2;
break;
}
Index: test/test_demangle.cpp
===================================================================
--- test/test_demangle.cpp
+++ test/test_demangle.cpp
@@ -21,6 +21,7 @@
{"_Z1A1B1C", "A(B, C)"},
{"_Z4testI1A1BE1Cv", "C test()"},
{"_Z4testI1A1BET0_T_S3_", "B test(A, A)"},
+ {"_ZN1SgtEi", "S::operator> (int)"},
{"_ZN13dyldbootstrap5startEPK12macho_headeriPPKcl", "dyldbootstrap::start(macho_header const*, int, char const**, long)"},
{"_ZN4dyld17getExecutablePathEv", "dyld::getExecutablePath()"},
{"_ZN4dyld22mainExecutablePreboundEv", "dyld::mainExecutablePrebound()"},