Skip to content

Commit bb4d012

Browse files
committed
[ClangImporter] Switch lookupGlobalsAsMembers to take a non-optional EffectiveClangContext
The only caller is `loadNamedMembers`, and that passes in a non-optional EffectiveClangContext, meaning that we'd miss the case when `getEffectiveClangContext` returns `nullptr`, crashing in `translateContext`. No test case unfortunately as I haven't been able to come up with a reproducer. rdar://129619711
1 parent 5bbf6d0 commit bb4d012

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

lib/ClangImporter/SwiftLookupTable.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -685,14 +685,13 @@ SwiftLookupTable::allGlobalsAsMembersInContext(StoredContext context) {
685685
}
686686

687687
SmallVector<SwiftLookupTable::SingleEntry, 4>
688-
SwiftLookupTable::lookupGlobalsAsMembers(
689-
SerializedSwiftName baseName,
690-
std::optional<EffectiveClangContext> searchContext) {
688+
SwiftLookupTable::lookupGlobalsAsMembers(SerializedSwiftName baseName,
689+
EffectiveClangContext searchContext) {
691690
// Propagate the null search context.
692691
if (!searchContext)
693692
return lookupGlobalsAsMembersImpl(baseName, std::nullopt);
694693

695-
std::optional<StoredContext> storedContext = translateContext(*searchContext);
694+
std::optional<StoredContext> storedContext = translateContext(searchContext);
696695
if (!storedContext) return { };
697696

698697
return lookupGlobalsAsMembersImpl(baseName, *storedContext);

lib/ClangImporter/SwiftLookupTable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ class SwiftLookupTable {
549549
/// entities should reside.
550550
SmallVector<SingleEntry, 4>
551551
lookupGlobalsAsMembers(SerializedSwiftName baseName,
552-
std::optional<EffectiveClangContext> searchContext);
552+
EffectiveClangContext searchContext);
553553

554554
SmallVector<SingleEntry, 4>
555555
allGlobalsAsMembersInContext(EffectiveClangContext context);

0 commit comments

Comments
 (0)