From 6379d1f90ef746298cd2f308af6e9f5f58e8d16a Mon Sep 17 00:00:00 2001 From: XMRig Date: Sun, 15 Nov 2020 04:13:40 +0700 Subject: [PATCH] Add static_assert --- src/backend/cpu/platform/BasicCpuInfo.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/backend/cpu/platform/BasicCpuInfo.cpp b/src/backend/cpu/platform/BasicCpuInfo.cpp index 7177554fb..7cf09f8c3 100644 --- a/src/backend/cpu/platform/BasicCpuInfo.cpp +++ b/src/backend/cpu/platform/BasicCpuInfo.cpp @@ -52,8 +52,16 @@ namespace xmrig { -static const std::array flagNames = { "aes", "avx2", "avx512f", "bmi2", "osxsave", "pdpe1gb", "sse2", "ssse3", "sse4.1", "xop", "popcnt", "cat_l3" }; -static const std::array msrNames = { MSR_NAMES_LIST }; +constexpr size_t kCpuFlagsSize = 12; +static const std::array flagNames = { "aes", "avx2", "avx512f", "bmi2", "osxsave", "pdpe1gb", "sse2", "ssse3", "sse4.1", "xop", "popcnt", "cat_l3" }; +static_assert(kCpuFlagsSize == ICpuInfo::FLAG_MAX, "kCpuFlagsSize and FLAG_MAX mismatch"); + + +#ifdef XMRIG_FEATURE_MSR +constexpr size_t kMsrArraySize = 5; +static const std::array msrNames = { MSR_NAMES_LIST }; +static_assert(kMsrArraySize == ICpuInfo::MSR_MOD_MAX, "kMsrArraySize and MSR_MOD_MAX mismatch"); +#endif static inline void cpuid(uint32_t level, int32_t output[4]) @@ -344,7 +352,12 @@ rapidjson::Value xmrig::BasicCpuInfo::toJSON(rapidjson::Document &doc) const out.AddMember("packages", static_cast(packages()), allocator); out.AddMember("nodes", static_cast(nodes()), allocator); out.AddMember("backend", StringRef(backend()), allocator); + +# ifdef XMRIG_FEATURE_MSR out.AddMember("msr", StringRef(msrNames[msrMod()]), allocator); +# else + out.AddMember("msr", "none", allocator); +# endif # ifdef XMRIG_FEATURE_ASM out.AddMember("assembly", StringRef(Assembly(assembly()).toString()), allocator);