[EXTERNAL] [llvm] 1792821 - Optional: Deprecated value()

Stella Stamenova via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 18 16:06:27 PST 2022


Looks like this broke the windows mlir buildbot:

https://lab.llvm.org/buildbot/#/builders/13/builds/29892

Can you see about addressing the failure or reverting the change? I can revert it tomorrow otherwise.

Thanks,
-Stella

-----Original Message-----
From: llvm-commits <llvm-commits-bounces at lists.llvm.org> On Behalf Of Fangrui Song via llvm-commits
Sent: Saturday, December 17, 2022 2:43 PM
To: llvm-commits at lists.llvm.org
Subject: [EXTERNAL] [llvm] 1792821 - Optional: Deprecated value()


Author: Fangrui Song
Date: 2022-12-17T22:43:03Z
New Revision: 1792821c8308755593c114c3b7ae8ce33bdb08e9

URL: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fllvm%2Fllvm-project%2Fcommit%2F1792821c8308755593c114c3b7ae8ce33bdb08e9&data=05%7C01%7Cstilis%40microsoft.com%7C09c78db1aa6042b4e42108dae080141c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638069137982306043%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Uq1hXOx%2FOy%2FPFLq%2BxgjFQgDRVXDrzQ9CI4%2Bm8LzMO3w%3D&reserved=0
DIFF: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fllvm%2Fllvm-project%2Fcommit%2F1792821c8308755593c114c3b7ae8ce33bdb08e9.diff&data=05%7C01%7Cstilis%40microsoft.com%7C09c78db1aa6042b4e42108dae080141c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638069137982306043%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=AHed4H0jXicW745O%2B223ohB0ep8jRz8BtznUbm88h3w%3D&reserved=0

LOG: Optional: Deprecated value()

https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.llvm.org%2Ft%2Fdeprecating-llvm-optional-x-hasvalue-getvalue-getvalueor%2F63716%2F19&data=05%7C01%7Cstilis%40microsoft.com%7C09c78db1aa6042b4e42108dae080141c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638069137982306043%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=2VXRDK2toxidFYZF4A2i47Fout48fJPn%2FPIMExDuQmI%3D&reserved=0

value() is a 15.0.0 API for std::optional migration.
std::optional::value() has undesired exception checking semantics and is unavailable in older Xcode (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS). Deprecate value() to prevent new in-tree uses which may accidentally cause build breakage for older Xcode when contributors perform std::optional migrating.

Some downtream MLIR projects such as tensorflow/mlir-hlo, stablehlo use value(), so we do not remove it now.

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/ADT/Optional.h b/llvm/include/llvm/ADT/Optional.h
index 331c681342ad..a458ccf61c71 100644
--- a/llvm/include/llvm/ADT/Optional.h
+++ b/llvm/include/llvm/ADT/Optional.h
@@ -270,7 +270,9 @@ template <typename T> class Optional {
   constexpr const T *getPointer() const { return &Storage.value(); }
   LLVM_DEPRECATED("Use &*X instead.", "&*X")
   T *getPointer() { return &Storage.value(); }
+  LLVM_DEPRECATED("std::optional::value is throwing. Use *X instead", 
+ "*X")
   constexpr const T &value() const & { return Storage.value(); }
+  LLVM_DEPRECATED("std::optional::value is throwing. Use *X instead", 
+ "*X")
   T &value() & { return Storage.value(); }
 
   constexpr explicit operator bool() const { return has_value(); } @@ -284,6 +286,7 @@ template <typename T> class Optional {
     return has_value() ? operator*() : std::forward<U>(alt);
   }
 
+  LLVM_DEPRECATED("std::optional::value is throwing. Use *X instead", 
+ "*X")
   T &&value() && { return std::move(Storage.value()); }
   T &&operator*() && { return std::move(Storage.value()); }
 


        
_______________________________________________
llvm-commits mailing list
llvm-commits at lists.llvm.org
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-commits&data=05%7C01%7Cstilis%40microsoft.com%7C09c78db1aa6042b4e42108dae080141c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638069137982306043%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wjX0myV5gBFNgViKe88t0P5r5ZVp%2FcYCIBVmfLXcQ9w%3D&reserved=0


More information about the llvm-commits mailing list