Skip to content

Commit 17eb8b0

Browse files
authored
Merge pull request swiftlang#28587 from eeckstein/fix-cmo-asan-crash
2 parents d6346f4 + a7910d7 commit 17eb8b0

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/SILOptimizer/IPO/CrossModuleSerializationSetup.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ class InstructionVisitor : public SILCloner<InstructionVisitor> {
101101

102102
private:
103103
CrossModuleSerializationSetup &CMS;
104+
SILInstruction *result = nullptr;
104105

105106
public:
106107
InstructionVisitor(SILFunction *F, CrossModuleSerializationSetup &CMS) :
@@ -122,8 +123,8 @@ class InstructionVisitor : public SILCloner<InstructionVisitor> {
122123
}
123124

124125
void postProcess(SILInstruction *Orig, SILInstruction *Cloned) {
125-
SILInstruction::destroy(Cloned);
126-
Orig->getFunction()->getModule().deallocateInst(Cloned);
126+
result = Cloned;
127+
SILCloner<InstructionVisitor>::postProcess(Orig, Cloned);
127128
}
128129

129130
SILValue getMappedValue(SILValue Value) { return Value; }
@@ -133,6 +134,9 @@ class InstructionVisitor : public SILCloner<InstructionVisitor> {
133134
static void visitInst(SILInstruction *I, CrossModuleSerializationSetup &CMS) {
134135
InstructionVisitor visitor(I->getFunction(), CMS);
135136
visitor.visit(I);
137+
138+
SILInstruction::destroy(visitor.result);
139+
CMS.M.deallocateInst(visitor.result);
136140
}
137141
};
138142

0 commit comments

Comments
 (0)