Правильный clang-tidy UndefinedBinaryOperatorResult - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь привести свой код в порядок, и он жалуется, что использую мусорные значения.

У меня есть некоторые данные, хранящиеся в виде слов, и я хочу использовать их побайтно .

clang-tidy, похоже, не определяет размер массива c -style cast.

Минимальный пример:

#include <stdio.h>

int main(void) {
  int words[2] = { 123456789, 987654321 };
  char* bytes = (char*)words;

  printf("%d\n", bytes[1] * 2);
  return 0;
}

Ошибка:

/home/ce/example.c:7:27: warning: The left operand of '*' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
  printf("%d\n", bytes[1] * 2);
                          ^
/home/ce/example.c:7:27: note: The left operand of '*' is a garbage value

Примечание: я использую c99

...