const uint32_t выдает ошибку: привет cpp побитовые операции со целыми числами со знаком - PullRequest
2 голосов
/ 29 апреля 2020

Приведенный ниже код выдает ошибку clang-tidy:

[clang-tidy] hi cpp побитовые операции со целыми числами со знаком

// File 1: Clang - Tidy not enabled
typedef struct A {
                   struct { uint32_t b; } c;
} A;

// File 2: Clang-Tidy enabled
A *ptr;     
// Some code that assigns values at the address pointed by ptr
...
...
const uint32_t mask = 0xFFFF0000;
uint32_t masked_var = ptr->c.b & mask;

Когда Я изменяю код, как показано ниже, эта ошибка исчезла:

uint32_t masked_var = ptr->c.b & (static_cast<uint32_t>(mask));

В этом примере mask уже не подписано?

...