Skip to content

Commit 502d7ac

Browse files
plafosseclaude
andcommitted
GNU3 demangler: fix __int128 literal type and .eh extension spacing
- Fix DemanglePrimaryExpression 'n' case: type is __int128 (signed), not __uint128 — matches the Itanium ABI spec for type code 'n' - Fix dot-extension appending (.eh, .eh_frame, etc.): add space before the human-readable extension name to avoid "fooexception handler" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bc7fb97 commit 502d7ac

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

demangler/gnu3/demangle_gnu3.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,7 +1078,7 @@ string DemangleGNU3::DemanglePrimaryExpression()
10781078
case 'l': out = DemangleNumberAsString() + "l"; break; //long
10791079
case 'x': out = DemangleNumberAsString() + "ll"; break; //long long
10801080
case 's': out = "(short)" + DemangleNumberAsString(); break; //short
1081-
case 'n': out = "(__uint128)" + DemangleNumberAsString() + "ull"; break; //__int128
1081+
case 'n': out = "(__int128)" + DemangleNumberAsString(); break; //__int128
10821082
case 'i': out = DemangleNumberAsString(); break; // int
10831083
case 'm': out = DemangleNumberAsString() + "ul"; break; //unsigned long
10841084
case 't': out = "(unsigned short)" + DemangleNumberAsString(); break; //unsigned short
@@ -2762,7 +2762,7 @@ DemangledTypeNode DemangleGNU3::DemangleSymbol(QualifiedName& varName)
27622762

27632763
// On the off chance some invalid mangled string is passed in.
27642764
if (varName.size() > 0)
2765-
varName.back() += ext;
2765+
varName.back() += " " + ext;
27662766
break;
27672767
}
27682768

0 commit comments

Comments
 (0)