Skip to content

Commit 65d4ddc

Browse files
committed
Fix mangling of @in_cxx
'C' is already taken by @convention(c).
1 parent cd56ed2 commit 65d4ddc

File tree

5 files changed

+5
-4
lines changed

5 files changed

+5
-4
lines changed

docs/ABI/Mangling.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ mangled in to disambiguate.
867867
PARAM-CONVENTION ::= 'l' // indirect inout
868868
PARAM-CONVENTION ::= 'b' // indirect inout aliasable
869869
PARAM-CONVENTION ::= 'n' // indirect in guaranteed
870-
PARAM-CONVENTION ::= 'C' // indirect in C++
870+
PARAM-CONVENTION ::= 'X' // indirect in C++
871871
PARAM-CONVENTION ::= 'x' // direct owned
872872
PARAM-CONVENTION ::= 'y' // direct unowned
873873
PARAM-CONVENTION ::= 'g' // direct guaranteed

lib/AST/ASTMangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1137,7 +1137,7 @@ static char getParamConvention(ParameterConvention conv) {
11371137
case ParameterConvention::Indirect_Inout: return 'l';
11381138
case ParameterConvention::Indirect_InoutAliasable: return 'b';
11391139
case ParameterConvention::Indirect_In_Guaranteed: return 'n';
1140-
case ParameterConvention::Indirect_In_CXX: return 'C';
1140+
case ParameterConvention::Indirect_In_CXX: return 'X';
11411141
case ParameterConvention::Direct_Owned: return 'x';
11421142
case ParameterConvention::Direct_Unowned: return 'y';
11431143
case ParameterConvention::Direct_Guaranteed: return 'g';

lib/Demangling/Demangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2160,7 +2160,7 @@ NodePointer Demangler::demangleImplParamConvention(Node::Kind ConvKind) {
21602160
case 'l': attr = "@inout"; break;
21612161
case 'b': attr = "@inout_aliasable"; break;
21622162
case 'n': attr = "@in_guaranteed"; break;
2163-
case 'C': attr = "@in_cxx"; break;
2163+
case 'X': attr = "@in_cxx"; break;
21642164
case 'x': attr = "@owned"; break;
21652165
case 'g': attr = "@guaranteed"; break;
21662166
case 'e': attr = "@deallocating"; break;

lib/Demangling/Remangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2106,7 +2106,7 @@ ManglingError Remangler::mangleImplFunctionType(Node *node, unsigned depth) {
21062106
.Case("@inout", 'l')
21072107
.Case("@inout_aliasable", 'b')
21082108
.Case("@in_guaranteed", 'n')
2109-
.Case("@in_cxx", 'C')
2109+
.Case("@in_cxx", 'X')
21102110
.Case("@in_constant", 'c')
21112111
.Case("@owned", 'x')
21122112
.Case("@guaranteed", 'g')

test/Demangle/Inputs/manglings.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,3 +473,4 @@ $sSRyxG15Synchronization19AtomicRepresentableABRi0_zrlMc ---> protocol conforman
473473
$sSRyxG15Synchronization19AtomicRepresentableABRi1_zrlMc ---> protocol conformance descriptor for < where A: ~Swift.<bit 2>> Swift.UnsafeBufferPointer<A> : Synchronization.AtomicRepresentable in Synchronization
474474

475475
$s23variadic_generic_opaque2G2VyAA2S1V_AA2S2VQPGAA1PHPAeA1QHPyHC_AgaJHPyHCHX_HC ---> concrete protocol conformance variadic_generic_opaque.G2<Pack{variadic_generic_opaque.S1, variadic_generic_opaque.S2}> to protocol conformance ref (type's module) variadic_generic_opaque.P with conditional requirements: (pack protocol conformance (concrete protocol conformance variadic_generic_opaque.S1 to protocol conformance ref (type's module) variadic_generic_opaque.Q, concrete protocol conformance variadic_generic_opaque.S2 to protocol conformance ref (type's module) variadic_generic_opaque.Q))
476+
$sxq_IyXd_D ---> @callee_unowned (@in_cxx A) -> (@unowned B)

0 commit comments

Comments
 (0)