Skip to content

Commit c2e8ec9

Browse files
committed
Add variable name and indent parameter...
... to value witness table access sequence function
1 parent 38b6947 commit c2e8ec9

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

lib/PrintAsClang/ClangSyntaxPrinter.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,15 @@ void ClangSyntaxPrinter::printSwiftTypeMetadataAccessFunctionCall(
147147
}
148148

149149
void ClangSyntaxPrinter::printValueWitnessTableAccessSequenceFromTypeMetadata(
150-
StringRef metadataVariable) {
151-
os << " auto *vwTableAddr = ";
150+
StringRef metadataVariable, StringRef vwTableVariable, int indent) {
151+
os << std::string(indent, ' ');
152+
os << "auto *vwTableAddr = ";
152153
os << "reinterpret_cast<";
153154
printSwiftImplQualifier();
154155
os << "ValueWitnessTable **>(" << metadataVariable << "._0) - 1;\n";
155156
os << "#ifdef __arm64e__\n";
156-
os << " auto *vwTable = ";
157+
os << std::string(indent, ' ');
158+
os << "auto *" << vwTableVariable << " = ";
157159
os << "reinterpret_cast<";
158160
printSwiftImplQualifier();
159161
os << "ValueWitnessTable *>(ptrauth_auth_data(";
@@ -162,6 +164,7 @@ void ClangSyntaxPrinter::printValueWitnessTableAccessSequenceFromTypeMetadata(
162164
os << "ptrauth_blend_discriminator(vwTableAddr, "
163165
<< SpecialPointerAuthDiscriminators::ValueWitnessTable << ")));\n";
164166
os << "#else\n";
165-
os << " auto *vwTable = *vwTableAddr;\n";
167+
os << std::string(indent, ' ');
168+
os << "auto *" << vwTableVariable << " = *vwTableAddr;\n";
166169
os << "#endif\n";
167170
}

lib/PrintAsClang/ClangSyntaxPrinter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class ClangSyntaxPrinter {
9393
/// Print the set of statements to access the value witness table pointer
9494
/// ('vwTable') from the given type metadata variable.
9595
void printValueWitnessTableAccessSequenceFromTypeMetadata(
96-
StringRef metadataVariable);
96+
StringRef metadataVariable, StringRef vwTableVariable, int indent);
9797

9898
protected:
9999
raw_ostream &os;

lib/PrintAsClang/PrintClangValueType.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ void ClangValueTypePrinter::printValueWitnessTableAccessAsVariable(
6565
StringRef metadataVarName, StringRef vwTableVarName) {
6666
ClangSyntaxPrinter printer(os);
6767
printMetadataAccessAsVariable(os, metadataFuncName, indent, metadataVarName);
68-
printer.printValueWitnessTableAccessSequenceFromTypeMetadata("metadata");
68+
printer.printValueWitnessTableAccessSequenceFromTypeMetadata(
69+
metadataVarName, vwTableVarName, indent);
6970
}
7071

7172
static void

0 commit comments

Comments
 (0)