diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp
index 48705d1..def7608 100644
--- a/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp
@@ -21,15 +21,29 @@
 
 
 template <typename T>
-void pointer_test()
+constexpr void constexpr_test()
 {
-    T array[1000] = {}; // we need an array to make valid pointers
-    constexpr T cArray[2] = {};
-    ASSERT_SAME_TYPE(decltype(std::midpoint(array, array)), T*);
+    constexpr T array[1000] = {};
+    ASSERT_SAME_TYPE(decltype(std::midpoint(array, array)), const T*);
     ASSERT_NOEXCEPT(          std::midpoint(array, array));
 
-    static_assert(std::midpoint(cArray, cArray + 2) == cArray + 1, "");
-    static_assert(std::midpoint(cArray + 2, cArray) == cArray + 1, "");
+    static_assert(std::midpoint(array, array)        == array, "");
+    static_assert(std::midpoint(array, array + 1000) == array + 500, "");
+
+    static_assert(std::midpoint(array, array +    9) == array + 4, "");
+    static_assert(std::midpoint(array, array +   10) == array + 5, "");
+    static_assert(std::midpoint(array, array +   11) == array + 5, "");
+    static_assert(std::midpoint(array +    9, array) == array + 5, "");
+    static_assert(std::midpoint(array +   10, array) == array + 5, "");
+    static_assert(std::midpoint(array +   11, array) == array + 6, "");
+}
+
+template <typename T>
+void runtime_test()
+{
+    T array[1000] = {}; // we need an array to make valid pointers
+    ASSERT_SAME_TYPE(decltype(std::midpoint(array, array)), T*);
+    ASSERT_NOEXCEPT(          std::midpoint(array, array));
 
     assert(std::midpoint(array, array)        == array);
     assert(std::midpoint(array, array + 1000) == array + 500);
@@ -42,14 +56,30 @@
     assert(std::midpoint(array +   11, array) == array + 6);
 }
 
+template <typename T>
+void pointer_test()
+{
+    runtime_test<               T>();
+    runtime_test<const          T>();
+    runtime_test<      volatile T>();
+    runtime_test<const volatile T>();
+
+//  The constexpr tests are always const, but we can test them anyway.
+    constexpr_test<               T>();
+    constexpr_test<const          T>();
+
+//  GCC 9.0.1 (unreleased as of 2019-03) barfs on this, but we have a bot for it.
+//  Uncomment when gcc 9.1 is released
+#ifndef TEST_COMPILER_GCC
+    constexpr_test<      volatile T>();
+    constexpr_test<const volatile T>();
+#endif
+}
+
 
 int main(int, char**)
 {
-    pointer_test<               char>();
-    pointer_test<const          char>();
-    pointer_test<      volatile char>();
-    pointer_test<const volatile char>();
-    
+    pointer_test<char>();
     pointer_test<int>();
     pointer_test<double>();
 
