diff --git a/tests/auto/tst_io.cpp b/tests/auto/tst_io.cpp index 48abda6..fd31b31 100644 --- a/tests/auto/tst_io.cpp +++ b/tests/auto/tst_io.cpp @@ -27,6 +27,11 @@ using namespace std; +constexpr uint64_t operator""_u64(unsigned long long v) +{ + return static_cast(v); +} + TEST_CASE ("write data", "[write]") { TempFile file; REQUIRE(file.open()); @@ -124,7 +129,7 @@ TEST_CASE ("read line 64bit", "[read]") { REQUIRE(reader >> module); REQUIRE(module == "/tmp/KDevelop-5.2.1-x86_64/usr/lib/libKF5Completion.so.5"); - for (uint64_t expected : {0x7f48beedc00ul, 0x0ul, 0x36854ul, 0x236858ul, 0x2700ul}) { + for (auto expected : {0x7f48beedc00_u64, 0x0_u64, 0x36854_u64, 0x236858_u64, 0x2700_u64}) { uint64_t addr = 0; REQUIRE(reader >> addr); REQUIRE(addr == expected); diff --git a/src/util/linewriter.h b/src/util/linewriter.h index 73a7930..e895e87 100644 --- a/src/util/linewriter.h +++ b/src/util/linewriter.h @@ -158,6 +158,11 @@ public: return __builtin_clzl(V); } + inline static unsigned clz(long long unsigned V) + { + return __builtin_clzll(V); + } + template static char* writeHexNumber(char* buffer, V value) {