diff --git a/clients/drcachesim/common/utils.h b/clients/drcachesim/common/utils.h
index df2914b1a2c3307bf586b8f84b976e72cdbd5663..b120a99e2bbe669c4905fb2c6967692a18e837ce 100644
--- a/clients/drcachesim/common/utils.h
+++ b/clients/drcachesim/common/utils.h
@@ -96,13 +96,6 @@
 #    define END_PACKED_STRUCTURE __attribute__((__packed__))
 #endif
 
-/* TODO(i#2924): Remove this and others like it once we stop supporting VS2013. */
-#if defined(WINDOWS) && _MSC_VER < 1900
-#    define CONSTEXPR const /* 'constexpr' not supported */
-#else
-#    define CONSTEXPR constexpr
-#endif
-
 #ifndef __has_cpp_attribute
 #    define __has_cpp_attribute(x) 0 // Compatibility with non-clang compilers.
 #endif
diff --git a/clients/drcachesim/tracer/instru.h b/clients/drcachesim/tracer/instru.h
index f67b24e732848a1f67ab5ca2e15e4da034ed0959..946df4ce9ec0d8c849067e37832b53b886062cad 100644
--- a/clients/drcachesim/tracer/instru.h
+++ b/clients/drcachesim/tracer/instru.h
@@ -537,10 +537,10 @@ private:
     free_custom_module_data(void *data);
 
     // These identify the 4 fields we store in the label data area array.
-    static CONSTEXPR int LABEL_DATA_ELIDED_INDEX = 0;       // Index among all operands.
-    static CONSTEXPR int LABEL_DATA_ELIDED_MEMOP_INDEX = 1; // Index among memory ops.
-    static CONSTEXPR int LABEL_DATA_ELIDED_IS_WRITE = 2;
-    static CONSTEXPR int LABEL_DATA_ELIDED_NEEDS_BASE = 3;
+    static constexpr int LABEL_DATA_ELIDED_INDEX = 0;       // Index among all operands.
+    static constexpr int LABEL_DATA_ELIDED_MEMOP_INDEX = 1; // Index among memory ops.
+    static constexpr int LABEL_DATA_ELIDED_IS_WRITE = 2;
+    static constexpr int LABEL_DATA_ELIDED_NEEDS_BASE = 3;
     ptr_uint_t elide_memref_note_;
     bool standalone_ = false;
     file_t modfile_ = INVALID_FILE;