[StaticAnalyzer] Don't use Optional<T>::create (NFC)
authorKazu Hirata <kazu@google.com>
Sat, 10 Dec 2022 20:35:02 +0000 (12:35 -0800)
committerKazu Hirata <kazu@google.com>
Sat, 10 Dec 2022 20:35:03 +0000 (12:35 -0800)
std::optional<T> does not have an equivalent method.

This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716

clang/lib/StaticAnalyzer/Core/RegionStore.cpp

index f5959b2..db8a5c5 100644 (file)
@@ -263,11 +263,13 @@ public:
 typedef const RegionBindingsRef& RegionBindingsConstRef;
 
 Optional<SVal> RegionBindingsRef::getDirectBinding(const MemRegion *R) const {
-  return Optional<SVal>::create(lookup(R, BindingKey::Direct));
+  const SVal *V = lookup(R, BindingKey::Direct);
+  return V ? Optional<SVal>(*V) : std::nullopt;
 }
 
 Optional<SVal> RegionBindingsRef::getDefaultBinding(const MemRegion *R) const {
-  return Optional<SVal>::create(lookup(R, BindingKey::Default));
+  const SVal *V = lookup(R, BindingKey::Default);
+  return V ? Optional<SVal>(*V) : std::nullopt;
 }
 
 RegionBindingsRef RegionBindingsRef::addBinding(BindingKey K, SVal V) const {