Я использую CMake для своего проекта, и я хотел ввести чеки clang-tidy для проекта.
Я использую для этой цели CMAKE_CXX_CLANG_TIDY
и .clang-tidy
файл для настройки проверок.
Я хотел использовать предупреждения-как-ошибки, чтобы иметь надежный способ в CI проверять, вносит ли коммит некоторые новые нарушения. К сожалению, у меня есть некоторые проблемы с включением проверок из-за сторонних библиотек. Например, я использую Eigen
, которая является библиотекой только для заголовка. Из-за этого я получаю некоторые предупреждения в моем коде, например. "a_file. cpp"
/snap/cmake/301/bin/cmake -E __run_co_compile --tidy="clang-tidy;--extra-arg-before=--driver-mode=g++" --source=../../a_file.cpp -- /usr/bin/clang++ -DEIGEN_MPL2_ONLY -DEIGEN_STACK_ALLOCATION_LIMIT=16384 -I../../SomePath -I../../SomePath2 -isystem ../../path_to/include/Eigen -m64 -stdlib=libc++ -g -fPIC -std=c++11 -MD -MT a_file.cpp.o -MF a_file.cpp.o.d -o a_file.cpp.o -c a_file.cpp
../../path_to/include/Eigen/Eigen/src/Core/Swap.h:89:36: error: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign,-warnings-as-errors]
a_file.cpp:279:5: note: Loop condition is true. Entering loop body
for( unsigned int i = 0; i < 100; ++i )
^
a_file.cpp:282:13: note: Calling move assignment operator for 'Matrix<float, 3, 1, 0, 3, 1>'
some_name = Vector3f( GetRandom( fDummy ),GetRandom( fDummy ), GetRandom( fDummy ) );
Я немного не знаю, как игнорировать такого рода проблемы, так как header-filter
, похоже, не решает эту проблему - для других проверок [bugprone- ххх] у меня похожие проблемы. Какие у меня есть варианты помимо добавления //NO-LINT
везде?
Редактировать: немного контекста добавить к ошибке.