aboutsummaryrefslogtreecommitdiff
path: root/llvm/include
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/ADT/PackedVector.h5
-rw-r--r--llvm/include/llvm/ADT/PagedVector.h3
-rw-r--r--llvm/include/llvm/ADT/STLForwardCompat.h10
-rw-r--r--llvm/include/llvm/Support/GraphWriter.h2
4 files changed, 14 insertions, 6 deletions
diff --git a/llvm/include/llvm/ADT/PackedVector.h b/llvm/include/llvm/ADT/PackedVector.h
index 09c20e3..57e4197 100644
--- a/llvm/include/llvm/ADT/PackedVector.h
+++ b/llvm/include/llvm/ADT/PackedVector.h
@@ -29,6 +29,8 @@ namespace llvm {
/// an assertion.
template <typename T, unsigned BitNum, typename BitVectorTy = BitVector>
class PackedVector {
+ static_assert(BitNum > 0, "BitNum must be > 0");
+
BitVectorTy Bits;
// Keep track of the number of elements on our own.
// We always maintain Bits.size() == NumElements * BitNum.
@@ -133,9 +135,6 @@ public:
BitVectorTy &raw_bits() { return Bits; }
};
-// Leave BitNum=0 undefined.
-template <typename T> class PackedVector<T, 0>;
-
} // end namespace llvm
#endif // LLVM_ADT_PACKEDVECTOR_H
diff --git a/llvm/include/llvm/ADT/PagedVector.h b/llvm/include/llvm/ADT/PagedVector.h
index 52ecd0b..0a691f8 100644
--- a/llvm/include/llvm/ADT/PagedVector.h
+++ b/llvm/include/llvm/ADT/PagedVector.h
@@ -189,8 +189,7 @@ public:
while (ElementIdx < PV->Size &&
!PV->PageToDataPtrs[ElementIdx / PageSize])
ElementIdx += PageSize;
- if (ElementIdx > PV->Size)
- ElementIdx = PV->Size;
+ ElementIdx = std::min(ElementIdx, PV->Size);
}
return *this;
diff --git a/llvm/include/llvm/ADT/STLForwardCompat.h b/llvm/include/llvm/ADT/STLForwardCompat.h
index 273a5cf..0e9bd2d 100644
--- a/llvm/include/llvm/ADT/STLForwardCompat.h
+++ b/llvm/include/llvm/ADT/STLForwardCompat.h
@@ -19,6 +19,7 @@
#include <optional>
#include <type_traits>
+#include <utility>
namespace llvm {
@@ -117,6 +118,15 @@ struct detector<std::void_t<Op<Args...>>, Op, Args...> {
template <template <class...> class Op, class... Args>
using is_detected = typename detail::detector<void, Op, Args...>::value_t;
+struct identity_cxx20 // NOLINT(readability-identifier-naming)
+{
+ using is_transparent = void;
+
+ template <typename T> constexpr T &&operator()(T &&self) const noexcept {
+ return std::forward<T>(self);
+ }
+};
+
//===----------------------------------------------------------------------===//
// Features from C++23
//===----------------------------------------------------------------------===//
diff --git a/llvm/include/llvm/Support/GraphWriter.h b/llvm/include/llvm/Support/GraphWriter.h
index a8784ed..3bef75c 100644
--- a/llvm/include/llvm/Support/GraphWriter.h
+++ b/llvm/include/llvm/Support/GraphWriter.h
@@ -343,7 +343,7 @@ public:
const void *DestNodeID, int DestNodePort,
const std::string &Attrs) {
if (SrcNodePort > 64) return; // Eminating from truncated part?
- if (DestNodePort > 64) DestNodePort = 64; // Targeting the truncated part?
+ DestNodePort = std::min(DestNodePort, 64); // Targeting the truncated part?
O << "\tNode" << SrcNodeID;
if (SrcNodePort >= 0)