Skip to content

Commit 607a01b

Browse files
committed
More fixes for crashes when building with a recent clang.
These are more instances of the same problems we've seen elsewhere with ArrayRef and function_ref capturing references to temporary values.
1 parent a4dd11c commit 607a01b

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

lib/Parse/ParseSIL.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ namespace {
117117
llvm::StringMap<SourceLoc> ForwardRefLocalValues;
118118

119119
/// A callback to be invoked every time a type was deserialized.
120-
llvm::function_ref<void(Type)> ParsedTypeCallback;
120+
std::function<void(Type)> ParsedTypeCallback;
121121

122122

123123
bool performTypeLocChecking(TypeLoc &T, bool IsSILType,

lib/SILOptimizer/IPO/EagerSpecializer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@ static void addReturnValueImpl(SILBasicBlock *RetBB, SILBasicBlock *NewRetBB,
120120
}
121121
// Create a CFG edge from NewRetBB to MergedBB.
122122
Builder.setInsertionPoint(NewRetBB);
123-
ArrayRef<SILValue> BBArgs;
123+
SmallVector<SILValue, 1> BBArgs;
124124
if (!NewRetVal->getType().isVoid())
125-
BBArgs = NewRetVal;
125+
BBArgs.push_back(NewRetVal);
126126
Builder.createBranch(Loc, MergedBB, BBArgs);
127127
}
128128

0 commit comments

Comments
 (0)