diff --git a/llvm/include/llvm/ADT/ArrayRef.h b/llvm/include/llvm/ADT/ArrayRef.h index 75bb7d690cc0..070aec224b8f 100644 --- a/llvm/include/llvm/ADT/ArrayRef.h +++ b/llvm/include/llvm/ADT/ArrayRef.h @@ -44,6 +44,7 @@ namespace llvm { using const_iterator = const T *; using size_type = size_t; using reverse_iterator = std::reverse_iterator; + using value_type = typename std::remove_cv::type; private: /// The start of the array, in an external buffer. diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp index a5609f89ff95..0407fb41ea52 100644 --- a/llvm/unittests/ADT/ArrayRefTest.cpp +++ b/llvm/unittests/ADT/ArrayRefTest.cpp @@ -51,6 +51,14 @@ static_assert( "Assigning from an initializer list"); #endif +// Check Typedefs. +static_assert( + std::is_same::value_type, int>::value, + "erroneous value_type"); +static_assert( + std::is_same::value_type, int>::value, + "erroneous value_type"); + namespace { TEST(ArrayRefTest, AllocatorCopy) {