diff --git a/clang/lib/StaticAnalyzer/Core/RegionStore.cpp b/clang/lib/StaticAnalyzer/Core/RegionStore.cpp index f5959b26dd92c0..db8a5c5c38c84d 100644 --- a/clang/lib/StaticAnalyzer/Core/RegionStore.cpp +++ b/clang/lib/StaticAnalyzer/Core/RegionStore.cpp @@ -263,11 +263,13 @@ class RegionBindingsRef : public llvm::ImmutableMapRef RegionBindingsRef::getDirectBinding(const MemRegion *R) const { - return Optional::create(lookup(R, BindingKey::Direct)); + const SVal *V = lookup(R, BindingKey::Direct); + return V ? Optional(*V) : std::nullopt; } Optional RegionBindingsRef::getDefaultBinding(const MemRegion *R) const { - return Optional::create(lookup(R, BindingKey::Default)); + const SVal *V = lookup(R, BindingKey::Default); + return V ? Optional(*V) : std::nullopt; } RegionBindingsRef RegionBindingsRef::addBinding(BindingKey K, SVal V) const {