diff options
-rw-r--r-- | llvm/include/llvm/Support/Chrono.h | 24 | ||||
-rw-r--r-- | llvm/lib/Support/Chrono.cpp | 12 |
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; |