抑制与Thirdparty-Libraries相关的Clang警告

时间:2015-11-05 14:03:57

标签: clang clang++ suppress-warnings

我在编写代码时会收到多个Clang警告,这些警告位于名为 Boost 的Thirdparty-Library中。

我如何抑制这些警告,所以我只从我自己的代码中获得警告?

我正在使用CMake编译我的项目并尝试了不同的Clang-Options,即

-iystem /usr/include/boost

--system-header-prefix boost/

in

set( CMAKE_CXX_FLAGS ...

但我仍然收到与 Boost 相关的警告。

受影响的文件始终是.cpp-Files,因此CMAKE_ CXX _FLAGS应该生效。

如果我使用

激活详细的Makefile
set( CMAKE_VERBOSE_MAKEFILE 1 )

我得到以下输出。

cd /tmp/Sandbox && /usr/lib/clang-analyzer/scan-build/c++-analyzer    -march=native -std=c++11 -DBOOST_HAS_INT128=1 -DBOOST_ASIO_HAS_STD_CHRONO -pthread -DBOOST_LOG_DYN_LINK -Wall -march=native -std=c++11 -DBOOST_HAS_INT128=1
-DBOOST_ASIO_HAS_STD_CHRONO -pthread -DBOOST_LOG_DYN_LINK -g -ftemplate-backtrace-limit=0 -fmodules-prune-interval=5 -fPIE -fcolor-diagnostics -fno-omit-frame-pointer
-fsanitize=bool,bounds,float-cast-overflow,float-divide-by-zero,function,integer-divide-by-zero,nonnull-attribute,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unreachable,unsigned-integer-overflow,vla-bound -fstandalone-debug -fsanitize=address,leak -fsanitize-coverage=1
-isystem /usr/include/boost -isystem boost --system-header-prefix boost/ -isystem /usr/include/boost/
-I/usr/include/gtkmm-3.0 -I/usr/lib/gtkmm-3.0/include -I/usr/include/atkmm-1.6 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gdkmm-3.0 -I/usr/lib/gdkmm-3.0/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/libdrm -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/jsoncpp -isystem /usr/include/opencv
-o CMakeFiles/density.dir/density.cpp.o -c /tmp/Sandbox/density.cpp
In file included from /tmp/Sandbox/serialcom.hpp:24:
In file included from /usr/include/boost/lexical_cast.hpp:32:
In file included from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:35:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:54:
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp:169:17: warning: Returned pointer value points outside the original object (potential buffer overflow)
            return finish;
            ^~~~~~~~~~~~~

- 系统分别设置 - system-header-prefix 选项。我也尝试了不同的Variants,因为之前的选项没有识别出效果。

-isystem /usr/include/boost -isystem boost --system-header-prefix boost/ -isystem /usr/include/boost/

但警告仍在那里

In file included from /tmp/Sandbox/serialcom.hpp:24:
In file included from /usr/include/boost/lexical_cast.hpp:32:
In file included from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:35:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:54:
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp:169:17: warning: Returned pointer value points outside the original object (potential buffer overflow)
            return finish;
            ^~~~~~~~~~~~~

提前致谢!

0 个答案:

没有答案