Is the Demangle ComplexityGuard necessary?
breese opened this issue · comments
I frequently encounter valid long mangled names that -d shortsymbols
fails to demangle because of the ComplexityGuard. Examples of long mangled names are Boost.Spririt grammer types.
If I disable the ComplexityGuard then everything works just fine.
Can we remove the ComplexityGuard, or perhaps add an option to by-pass it?
I think the ComplexityGuard is important to prevent stack overflow from an arbitrarily nested symbol. However the static limits may be set too low.
You reminded me that I've been meaning to remove Bloaty's copy of the demangler in favor of ABSL, which has now open-sourced this separately. I've implemented this in: #227
Could you raise this issue in https://github.com/abseil/abseil-cpp? If real symbols are overflowing the ComplexityGuard that could be a good argument for upping the static limits.