[PATCH] D138621: [ADT] Deprecate Optional::getPointer

Kazu Hirata via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 23 15:24:47 PST 2022


kazu created this revision.
Herald added a project: All.
kazu requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This patch deprecates Optional::getPointer.  Note that I've converted
all known occurrences of X.getPointer() to &*X on Nov 21, 2022 in
commit 1f914944b6c9a5e4229ceb9f06140fdf178c5ea0 <https://reviews.llvm.org/rG1f914944b6c9a5e4229ceb9f06140fdf178c5ea0>.

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


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D138621

Files:
  llvm/include/llvm/ADT/Optional.h


Index: llvm/include/llvm/ADT/Optional.h
===================================================================
--- llvm/include/llvm/ADT/Optional.h
+++ llvm/include/llvm/ADT/Optional.h
@@ -274,15 +274,17 @@
 
   void reset() { Storage.reset(); }
 
+  LLVM_DEPRECATED("Use &*X instead.", "&*X")
   constexpr const T *getPointer() const { return &Storage.value(); }
+  LLVM_DEPRECATED("Use &*X instead.", "&*X")
   T *getPointer() { return &Storage.value(); }
   constexpr const T &value() const & { return Storage.value(); }
   T &value() & { return Storage.value(); }
 
   constexpr explicit operator bool() const { return has_value(); }
   constexpr bool has_value() const { return Storage.has_value(); }
-  constexpr const T *operator->() const { return getPointer(); }
-  T *operator->() { return getPointer(); }
+  constexpr const T *operator->() const { return &Storage.value(); }
+  T *operator->() { return &Storage.value(); }
   constexpr const T &operator*() const & { return value(); }
   T &operator*() & { return value(); }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138621.477629.patch
Type: text/x-patch
Size: 1035 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221123/ca0e3a91/attachment.bin>


More information about the llvm-commits mailing list