Skip to content

Commit 0315691

Browse files
committed
ASTMangler: Fix mangling of SILFunctionType with @pack conventions
Fixes rdar://problem/107151125.
1 parent cbeb702 commit 0315691

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

lib/AST/ASTMangler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,9 +1097,9 @@ static char getParamConvention(ParameterConvention conv) {
10971097
case ParameterConvention::Direct_Owned: return 'x';
10981098
case ParameterConvention::Direct_Unowned: return 'y';
10991099
case ParameterConvention::Direct_Guaranteed: return 'g';
1100-
case ParameterConvention::Pack_Owned: return 'x';
1101-
case ParameterConvention::Pack_Inout: return 'y';
1102-
case ParameterConvention::Pack_Guaranteed: return 'g';
1100+
case ParameterConvention::Pack_Owned: return 'v';
1101+
case ParameterConvention::Pack_Inout: return 'm';
1102+
case ParameterConvention::Pack_Guaranteed: return 'p';
11031103
}
11041104
llvm_unreachable("bad parameter convention");
11051105
}

lib/Demangling/Demangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,7 @@ NodePointer Demangler::demangleImplParamConvention(Node::Kind ConvKind) {
20682068
case 'y': attr = "@unowned"; break;
20692069
case 'v': attr = "@pack_owned"; break;
20702070
case 'p': attr = "@pack_guaranteed"; break;
2071-
case 'm': attr = "@pack_guaranteed"; break;
2071+
case 'm': attr = "@pack_inout"; break;
20722072
default:
20732073
pushBack();
20742074
return nullptr;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// RUN: %target-swift-frontend -emit-ir %s -g | %FileCheck %s
2+
3+
// CHECK: !{{[0-9]+}} = !DICompositeType(tag: DW_TAG_structure_type, name: "$sxxQp_QSiIgp_D", {{.*}})
4+
public func f<each Input>(builder: (repeat each Input) -> ()) {}

0 commit comments

Comments
 (0)