This is a meta-bug to collect all the known problems in the C++ name canonicalizer.
I wonder if it's possible to make the name canonicalizer a lot simpler -- that is, instead of attempting a real parse, just lex the name and do some simple transforms: remove or add whitespace as desired, and canonicalize the order of strings of keywords (like "unsigned int short" or whatever). This might be difficult though. The canonicalizer is also used to strip function parameters for lookup_name_info. And it has some "resolve typedefs" functionality... I don't recall exactly what that's used for but it may be a pain to replicate in a dumbed-down rewrite.