https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61321
--- Comment #1 from Pedro Alves <palves at redhat dot com> --- I think we need to distinguish conversion operators from expression casts. Working on a patch that adds: --- c/include/demangle.h +++ w/include/demangle.h @@ -373,6 +373,10 @@ enum demangle_component_type /* A typecast, represented as a unary operator. The one subtree is the type to which the argument should be cast. */ DEMANGLE_COMPONENT_CAST, + /* A conversion operator, represented as a unary operator. The one + subtree is the type to which the argument should be converted + to. */ + DEMANGLE_COMPONENT_CONVERSION,