mirror of
https://github.com/SChernykh/p2pool.git
synced 2024-12-22 19:39:22 +00:00
CI: added clang-tidy
This commit is contained in:
parent
950330b5f7
commit
8b4f05dc78
5 changed files with 41 additions and 8 deletions
30
.github/workflows/clang-tidy.yml
vendored
Normal file
30
.github/workflows/clang-tidy.yml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
name: clang-tidy
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
clang-tidy:
|
||||||
|
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install clang
|
||||||
|
run: |
|
||||||
|
wget https://apt.llvm.org/llvm.sh
|
||||||
|
chmod +x llvm.sh
|
||||||
|
sudo ./llvm.sh 16
|
||||||
|
sudo apt-get install -y clang-tidy-16
|
||||||
|
|
||||||
|
- name: Verify clang-tidy configuration
|
||||||
|
run: |
|
||||||
|
clang-tidy-16 --verify-config
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Run clang-tidy
|
||||||
|
run: |
|
||||||
|
cd src
|
||||||
|
clang-tidy-16 *.cpp -checks=-clang-diagnostic-undefined-internal -warnings-as-errors=* -- -I../external/src/robin-hood-hashing/src/include -I../external/src/rapidjson/include -I../external/src/cryptonote -I../external/src/RandomX/src -I../external/src/cppzmq -I../external/src/libuv/include -I../external/src/libzmq/include -I../external/src/curl/include -I../external/src -DCLANG_TIDY -DSIZE_MAX=UINT64_MAX -DRAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN -DRAPIDJSON_PARSE_DEFAULT_FLAGS=kParseTrailingCommasFlag
|
|
@ -24,6 +24,7 @@ Reddit discussions: [original announcement](https://www.reddit.com/r/MoneroMinin
|
||||||
<img alt="Coverity Scan Build Status"
|
<img alt="Coverity Scan Build Status"
|
||||||
src="https://scan.coverity.com/projects/23659/badge.svg"/>
|
src="https://scan.coverity.com/projects/23659/badge.svg"/>
|
||||||
</a>
|
</a>
|
||||||
|
![clang-tidy](https://github.com/SChernykh/p2pool/actions/workflows/clang-tidy.yml/badge.svg)
|
||||||
# Contents
|
# Contents
|
||||||
- [Pool mining vs Solo mining vs P2Pool mining](#pool-mining-vs-solo-mining-vs-p2pool-mining)
|
- [Pool mining vs Solo mining vs P2Pool mining](#pool-mining-vs-solo-mining-vs-p2pool-mining)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
|
|
|
@ -204,7 +204,7 @@ struct
|
||||||
{
|
{
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
_addcarry_u64(_addcarry_u64(0, lo, b.lo, &lo), hi, b.hi, &hi);
|
_addcarry_u64(_addcarry_u64(0, lo, b.lo, &lo), hi, b.hi, &hi);
|
||||||
#elif __GNUC__
|
#elif defined(__GNUC__) && !defined(CLANG_TIDY)
|
||||||
*reinterpret_cast<unsigned __int128*>(this) += *reinterpret_cast<const unsigned __int128*>(&b);
|
*reinterpret_cast<unsigned __int128*>(this) += *reinterpret_cast<const unsigned __int128*>(&b);
|
||||||
#else
|
#else
|
||||||
const uint64_t t = lo;
|
const uint64_t t = lo;
|
||||||
|
@ -221,7 +221,7 @@ struct
|
||||||
{
|
{
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
_subborrow_u64(_subborrow_u64(0, lo, b.lo, &lo), hi, b.hi, &hi);
|
_subborrow_u64(_subborrow_u64(0, lo, b.lo, &lo), hi, b.hi, &hi);
|
||||||
#elif __GNUC__
|
#elif defined(__GNUC__) && !defined(CLANG_TIDY)
|
||||||
*reinterpret_cast<unsigned __int128*>(this) -= *reinterpret_cast<const unsigned __int128*>(&b);
|
*reinterpret_cast<unsigned __int128*>(this) -= *reinterpret_cast<const unsigned __int128*>(&b);
|
||||||
#else
|
#else
|
||||||
const uint64_t t = b.lo;
|
const uint64_t t = b.lo;
|
||||||
|
|
10
src/log.h
10
src/log.h
|
@ -65,7 +65,7 @@ struct Stream
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, int base = 10>
|
template<typename T, unsigned int base = 10>
|
||||||
NOINLINE void writeInt(T data)
|
NOINLINE void writeInt(T data)
|
||||||
{
|
{
|
||||||
static_assert(1 < base && base <= 64, "Invalid base");
|
static_assert(1 < base && base <= 64, "Invalid base");
|
||||||
|
@ -78,11 +78,13 @@ struct Stream
|
||||||
size_t k = sizeof(buf);
|
size_t k = sizeof(buf);
|
||||||
int w = m_numberWidth;
|
int w = m_numberWidth;
|
||||||
|
|
||||||
|
std::make_unsigned_t<T> udata = static_cast<std::make_unsigned_t<T>>(data);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
buf[--k] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/"[data % base];
|
buf[--k] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/"[udata % base];
|
||||||
data /= base;
|
udata /= base;
|
||||||
--w;
|
--w;
|
||||||
} while ((data > 0) || (w > 0));
|
} while (udata || (w > 0));
|
||||||
|
|
||||||
if (negative) {
|
if (negative) {
|
||||||
buf[--k] = '-';
|
buf[--k] = '-';
|
||||||
|
|
|
@ -804,13 +804,13 @@ bool p2pool::get_timestamps(uint64_t (×tamps)[TIMESTAMP_WINDOW]) const
|
||||||
{
|
{
|
||||||
ReadLock lock(m_mainchainLock);
|
ReadLock lock(m_mainchainLock);
|
||||||
|
|
||||||
if (m_mainchainByHeight.size() <= TIMESTAMP_WINDOW) {
|
if (m_mainchainByHeight.size() < TIMESTAMP_WINDOW) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto it = m_mainchainByHeight.end();
|
auto it = m_mainchainByHeight.end();
|
||||||
|
|
||||||
for (int i = 0; (i < TIMESTAMP_WINDOW) && (it != m_mainchainByHeight.begin()); ++i) {
|
for (int i = 0; i < TIMESTAMP_WINDOW; ++i) {
|
||||||
--it;
|
--it;
|
||||||
timestamps[i] = it->second.timestamp;
|
timestamps[i] = it->second.timestamp;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue