- Fix template applying to function name without a starting N.
- Fix return types for templates handling.
- Add support for the T substitution parameter.
- Fix a case where the literal L handler was not being set properly.
Bug: 67678053
Test: New unit tests, fuzzer.
Change-Id: I4f831038047eb2cd8519426f16aa2bdcb846d92d
The purpose of this demangler is to avoid crashes for any string.
- It does one pass and should avoid going past the end of the string.
- The code avoids recursion to minimize the amount of stack required.
- It cannot demangle all mangled names, but it should be able to work
on nearly all names in normal stack traces.
- If the mangled name is too large, it will stop demangling and return
as if the name is not a demangled name.
Test: Passes new unit tests.
Change-Id: I596f74a533c0e093d1517c6bd11cced07009d321