Skip to content

Commit

Permalink
Attempt to fix MSVC build broken by r294326
Browse files Browse the repository at this point in the history
MSVC does not think that `char []` can be constexpr. Switch to regular const.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294327 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
labath committed Feb 7, 2017
1 parent 6f3190d commit 6997bd2
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 21 deletions.
24 changes: 9 additions & 15 deletions include/llvm/Support/Chrono.h
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
12 changes: 6 additions & 6 deletions lib/Support/Chrono.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 6997bd2

Please sign in to comment.