[clang] [Clang] Add a `value_or` helper to `UnsignedOrNone` (PR #143516)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 10 05:49:42 PDT 2025
https://github.com/Sirraide updated https://github.com/llvm/llvm-project/pull/143516
>From 4680bcde0d6abda40dac303275e4ac42f1573109 Mon Sep 17 00:00:00 2001
From: Sirraide <aeternalmail at gmail.com>
Date: Sun, 8 Jun 2025 17:21:13 +0200
Subject: [PATCH 1/2] Add a 'value_or' helper to 'UnsignedOrNone'
---
clang/include/clang/Basic/UnsignedOrNone.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/clang/include/clang/Basic/UnsignedOrNone.h b/clang/include/clang/Basic/UnsignedOrNone.h
index 659fd8c6487d2..5081e3c2a9e32 100644
--- a/clang/include/clang/Basic/UnsignedOrNone.h
+++ b/clang/include/clang/Basic/UnsignedOrNone.h
@@ -29,6 +29,14 @@ struct UnsignedOrNone {
}
constexpr unsigned toInternalRepresentation() const { return Rep; }
+ constexpr unsigned value_or(unsigned val) const {
+ return operator bool() ? **this : val;
+ }
+
+ constexpr UnsignedOrNone value_or(UnsignedOrNone val) const {
+ return operator bool() ? *this : val;
+ }
+
explicit constexpr operator bool() const { return Rep != 0; }
unsigned operator*() const {
assert(operator bool());
>From 005ffaecce3e576dd05ca0c2cbb9e7e02fd31cdd Mon Sep 17 00:00:00 2001
From: Sirraide <aeternalmail at gmail.com>
Date: Tue, 10 Jun 2025 14:49:34 +0200
Subject: [PATCH 2/2] Update clang/include/clang/Basic/UnsignedOrNone.h
Co-authored-by: Aaron Ballman <aaron at aaronballman.com>
---
clang/include/clang/Basic/UnsignedOrNone.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/clang/include/clang/Basic/UnsignedOrNone.h b/clang/include/clang/Basic/UnsignedOrNone.h
index 5081e3c2a9e32..9d597e4ad443f 100644
--- a/clang/include/clang/Basic/UnsignedOrNone.h
+++ b/clang/include/clang/Basic/UnsignedOrNone.h
@@ -29,12 +29,12 @@ struct UnsignedOrNone {
}
constexpr unsigned toInternalRepresentation() const { return Rep; }
- constexpr unsigned value_or(unsigned val) const {
- return operator bool() ? **this : val;
+ constexpr unsigned value_or(unsigned Val) const {
+ return operator bool() ? **this : Val;
}
- constexpr UnsignedOrNone value_or(UnsignedOrNone val) const {
- return operator bool() ? *this : val;
+ constexpr UnsignedOrNone value_or(UnsignedOrNone Val) const {
+ return operator bool() ? *this : Val;
}
explicit constexpr operator bool() const { return Rep != 0; }
More information about the cfe-commits
mailing list