summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/Support/Chrono.h24
-rw-r--r--llvm/lib/Support/Chrono.cpp12
2 files changed, 15 insertions, 21 deletions
diff --git a/llvm/include/llvm/Support/Chrono.h b/llvm/include/llvm/Support/Chrono.h
index c46ae5a32db..6118ed0476e 100644
--- a/llvm/include/llvm/Support/Chrono.h
+++ b/llvm/include/llvm/Support/Chrono.h
@@ -76,21 +76,15 @@ raw_ostream &operator<<(raw_ostream &OS, sys::TimePoint<> TP);
/// display unit or you request that the unit is not displayed.
namespace detail {
-template <typename Period> struct unit { static constexpr char value[] = ""; };
-template <typename Period> constexpr char unit<Period>::value[];
-
-template <> struct unit<std::ratio<3600>> {
- static constexpr char value[] = "h";
-};
-
-template <> struct unit<std::ratio<60>> {
- static constexpr char value[] = "m";
-};
-
-template <> struct unit<std::ratio<1>> { static constexpr char value[] = "s"; };
-template <> struct unit<std::milli> { static constexpr char value[] = "ms"; };
-template <> struct unit<std::micro> { static constexpr char value[] = "us"; };
-template <> struct unit<std::nano> { static constexpr char value[] = "ns"; };
+template <typename Period> struct unit { static const char value[]; };
+template <typename Period> const char unit<Period>::value[] = "";
+
+template <> struct unit<std::ratio<3600>> { static const char value[]; };
+template <> struct unit<std::ratio<60>> { static const char value[]; };
+template <> struct unit<std::ratio<1>> { static const char value[]; };
+template <> struct unit<std::milli> { static const char value[]; };
+template <> struct unit<std::micro> { static const char value[]; };
+template <> struct unit<std::nano> { static const char value[]; };
} // namespace detail
template <typename Rep, typename Period>
diff --git a/llvm/lib/Support/Chrono.cpp b/llvm/lib/Support/Chrono.cpp
index ef81edc9269..ca748f5c046 100644
--- a/llvm/lib/Support/Chrono.cpp
+++ b/llvm/lib/Support/Chrono.cpp
@@ -16,12 +16,12 @@ namespace llvm {
using namespace sys;
-constexpr char detail::unit<std::ratio<3600>>::value[];
-constexpr char detail::unit<std::ratio<60>>::value[];
-constexpr char detail::unit<std::ratio<1>>::value[];
-constexpr char detail::unit<std::milli>::value[];
-constexpr char detail::unit<std::micro>::value[];
-constexpr char detail::unit<std::nano>::value[];
+const char detail::unit<std::ratio<3600>>::value[] = "h";
+const char detail::unit<std::ratio<60>>::value[] = "m";
+const char detail::unit<std::ratio<1>>::value[] = "s";
+const char detail::unit<std::milli>::value[] = "ms";
+const char detail::unit<std::micro>::value[] = "us";
+const char detail::unit<std::nano>::value[] = "ns";
static inline struct tm getStructTM(TimePoint<> TP) {
struct tm Storage;
OpenPOWER on IntegriCloud