GNU3 Demangler: fix substitution tracking, expressions, and type names
Substitution table and scoping: - Fix generic lambda auto parameters: save/replace m_templateSubstitute with 'auto' placeholders for lambda-local T_/T0_/T1_ resolution - Fix local-name template scoping with m_inLocalName flag - Fix substitution table off-by-one for all-type template args - Fix pointer-to-member type (case 'M'): set substitute=true per ABI - Fix multi-character seq-id parsing (S10_, S11_, etc.) - Fix DemangleUnresolvedType decltype (DT/Dt) prefix consumption - Add forward template ref support for cv conversion operators - Fix sr qualifier-list PushType and conditional E handling - Fix multi-level sr scope resolution without N prefix - Fix sr + unscoped template substitution table tracking - Fix I...E argument pack handling (GCC I...E vs J...E) - Fix Dp pack expansion to show '...' for concrete types Expression formatting: - Fix L_Z embedded mangled name template scope isolation - Handle LZ<encoding>E function address template args - cl expression: callable(args) format with function substitute tracking - dt/pt expressions: obj.member and obj->member directly - fp_/fp<N>_ placeholders in decltype return types - Fix fL function-param scope validation - Fix DemangleBaseUnresolvedName 'on' prefix consumption Type names (Itanium ABI spec compliance): - x/y: "long long"/"unsigned long long" - a: "signed char" (distinct from 'c' = "char") - n/o: "__int128"/"unsigned __int128" - g: "__float128" via FloatType altName - Dd/Df/De: "decimal64"/"decimal32"/"decimal128" - Dh: "_Float16" - Dp: always show "..." for pack expansion - Fix 'n' literal: __int128 not __uint128 - Fix dot extension spacing Cleanup: - Remove unused NextIsOneOf, ReadUntil, DemangleInitializer - Guard GetRaw/GetTemplateType/PrintTables behind GNUDEMANGLE_DEBUG - Remove unreachable GetNameType C/D cases - Remove dead BinaryExpression "." check Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
P
Peter LaFosse committed
af93db2cbfd24d5da40ed2951f5b9b05bf3d565c
Parent: 9d6b64e