Utilizing public or generated code can often introduce warnings into your software builds. Many of these warnings are not serious and developers will often ignore them. This pollutes the warning report and prevents developers from noticing useful warnings in their own software.
Using clang, you can suppress warnings using a #pragma
:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wfloat-equal -Wdeprecated"
#include <annoying_warning_creating_header.h>
#pragma clang diagnostic pop
I’ve often used this approach to silence acceptable warnings from external code.
Well its great, many places say pragma ignored -Wall or -Weverything will stop clang warning BUT IT DOESNT!!!!!!
As you can see here I have tried a LOT:
#pragma clang diagnostic push
#pragma clang diagnostic ignored “-Wall”
#pragma clang diagnostic ignored “-Weverything”
#pragma clang diagnostic ignored “-Whicpp-avoid-c-arrays”
#pragma clang diagnostic ignored “-hicpp-avoid-c-arrays”
#pragma clang diagnostic ignored “-Wicpp-avoid-c-arrays”
#pragma clang diagnostic ignored “-Wcpp-avoid-c-arrays”
#pragma GCC diagnostic ignored “-Wall”
#pragma GCC diagnostic ignored “-Weverything”
#pragma GCC diagnostic ignored “-Whicpp-avoid-c-arrays”
#pragma GCC diagnostic ignored “-hicpp-avoid-c-arrays”
#pragma GCC diagnostic ignored “-Wicpp-avoid-c-arrays”
#pragma GCC diagnostic ignored “-Wcpp-avoid-c-arrays”
_Pragma(“GCC diagnostic push”)
_Pragma(“GCC diagnostic ignored \”-Wall\””)
union {
uint32_t i;
char c[4];
} bint;
_Pragma(“GCC diagnostic pop”)
#pragma clang diagnostic pop
but still get:
192:9: warning: do not declare C-style arrays, use std::array<> instead [cppcoreguidelines-avoid-c-arrays]
char c[4];
^
:192:9: warning: do not declare C-style arrays, use std::array<> instead [hicpp-avoid-c-arrays]
../CanFrame.cpp: In member function ‘bool CanFrame::needToEndian()’:
../CanFrame.cpp:183:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
#pragma GCC diagnostic ignored “-Weverything”
^~~~~~~~~~~~~~
../CanFrame.cpp:184:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
#pragma GCC diagnostic ignored “-Whicpp-avoid-c-arrays”
^~~~~~~~~~~~~~~~~~~~~~~~
../CanFrame.cpp:185:32: warning: ‘-hicpp-avoid-c-arrays’ is not an option that controls warnings [-Wpragmas]
#pragma GCC diagnostic ignored “-hicpp-avoid-c-arrays”
^~~~~~~~~~~~~~~~~~~~~~~
../CanFrame.cpp:186:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
#pragma GCC diagnostic ignored “-Wicpp-avoid-c-arrays”
^~~~~~~~~~~~~~~~~~~~~~~
../CanFrame.cpp:187:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
#pragma GCC diagnostic ignored “-Wcpp-avoid-c-arrays”
WHY cant I shut the thing up from whining about the array? I am using it as a simple way of determining endianess… I CANT use a std array for this