diff --git a/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp b/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp
index 48705d1..def7608 100644
--- a/test/std/numerics/numeric.ops/numeric.ops.midpoint/midpoint.pointer.pass.cpp
+++ b/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>();
 
