Hello, I'm building plasma-desktop 5.9.3 on Linux and am seeing compiler failures because of -Werror=return-type, in boost functions. See below for an example. I'm using boost 1.59.0, gcc 6.3 and Qt 5.8.0 (all installed in /opt/local). I've included one of the warnings I also see, in case they're related.
Is there anything obvious I should look for in my set-up before reporting this as a bug? R. %> cd .../work/build/kcms/keyboard && /usr/bin/c++ -DKCOREADDONS_LIB -DKGUIADDONS_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0 -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_URL_CAST_FROM_STRING -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"kcmkeyboard\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkcm_keyboard_EXPORTS -I.../work/build/kcms/keyboard -I.../work/plasma-desktop-5.9.3/kcms/keyboard -I.../work/build -I.../work/plasma-desktop-5.9.3/kcms/keyboard/preview -isystem /opt/local/include/qt5 -isystem /opt/local/include/qt5/QtConcurrent -isystem /opt/local/include/qt5/QtCore -isystem /opt/local/share/qt5/mkspecs/linux-g++-64 -isystem /opt/local/include/qt5/QtWidgets -isystem /opt/local/include/qt5/QtGui -isystem /opt/local/include/qt5/QtX11Extras -isystem /opt/local/include/qt5/QtXml -isystem /opt/local/include/KF5/KCMUtils -isystem /opt/local/include/KF5 -isystem /opt/local/include/KF5/KConfigWidgets -isystem /opt/local/include/KF5/KCodecs -isystem /opt/local/include/KF5/KWidgetsAddons -isystem /opt/local/include/KF5/KConfigGui -isystem /opt/local/include/KF5/KConfigCore -isystem /opt/local/include/KF5/KAuth -isystem /opt/local/include/KF5/KCoreAddons -isystem /opt/local/include/KF5/KService -isystem /opt/local/include/KF5/KGlobalAccel -isystem /opt/local/include/qt5/QtDBus -isystem /opt/local/include/KF5/KI18n -isystem /opt/local/include/KF5/KIOCore -isystem /opt/local/include/KF5/KIOWidgets -isystem /opt/local/include/KF5/KJobWidgets -isystem /opt/local/include/qt5/QtNetwork -isystem /opt/local/include/KF5/KCompletion -isystem /opt/local/include/KF5/KWindowSystem -isystem /opt/local/include/KF5/Plasma -isystem /opt/local/include/KF5/KPackage -isystem /opt/local/include/KF5/KXmlGui -isystem /opt/local/include/KF5/KGuiAddons -isystem /opt/local/include/KF5/KIconThemes -O3 -g -DNDEBUG -m64 -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/kcm_keyboard.dir/preview/kbpreviewframe.cpp.o -c .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp In file included from /opt/local/include/boost/proto/proto_fwd.hpp:15:0, from /opt/local/include/boost/phoenix/core/limits.hpp:26, from /opt/local/include/boost/spirit/include/phoenix_limits.hpp:11, from /opt/local/include/boost/spirit/home/support/meta_compiler.hpp:16, from /opt/local/include/boost/spirit/home/qi/meta_compiler.hpp:14, from /opt/local/include/boost/spirit/home/qi/action/action.hpp:14, from /opt/local/include/boost/spirit/home/qi/action.hpp:14, from /opt/local/include/boost/spirit/home/qi.hpp:14, from /opt/local/include/boost/spirit/include/qi.hpp:16, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/geometry_parser.h:24, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp:22: /opt/local/include/boost/fusion/support/config.hpp:93:22: warning: "BOOST_GCC_WORKAROUND_GUARD" is not defined [-Wundef] #if BOOST_WORKAROUND(BOOST_GCC, < 40700) ^ /opt/local/include/boost/detail/workaround.hpp:234:12: note: in definition of macro ‘BOOST_WORKAROUND’ ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ ^~~~~~ /opt/local/include/boost/mpl/aux_/config/operators.hpp:27:29: warning: "__NVCC___WORKAROUND_GUARD" is not defined [-Wundef] || BOOST_WORKAROUND(__NVCC__, BOOST_TESTED_AT(1)) \ ^ /opt/local/include/boost/detail/workaround.hpp:234:12: note: in definition of macro ‘BOOST_WORKAROUND’ ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ ^~~~~~ /opt/local/include/boost/mpl/aux_/config/operators.hpp:27:29: warning: "__NVCC__" is not defined [-Wundef] || BOOST_WORKAROUND(__NVCC__, BOOST_TESTED_AT(1)) \ ^ /opt/local/include/boost/detail/workaround.hpp:235:11: note: in definition of macro ‘BOOST_WORKAROUND’ (symbol != 0) && (1 % (( (symbol test) ) + 1))) ^~~~~~ <<SNIP>> In file included from /opt/local/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:23:0, from /opt/local/include/boost/iostreams/stream_buffer.hpp:22, from /opt/local/include/boost/iostreams/stream.hpp:21, from /opt/local/include/boost/spirit/home/qi/stream/detail/iterator_source.hpp:14, from /opt/local/include/boost/spirit/home/qi/stream/stream.hpp:16, from /opt/local/include/boost/spirit/home/qi/stream.hpp:15, from /opt/local/include/boost/spirit/home/qi.hpp:30, from /opt/local/include/boost/spirit/include/qi.hpp:16, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/geometry_parser.h:24, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp:22: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streampos boost::iostreams::detail::device_wrapper_impl<boost::iostreams::any_tag>::seek(Device&, boost::iostreams::stream_offset, std::ios_base::seekdir, std::ios_base::openmode, boost::iostreams::any_tag)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:145:5: error: no return statement in function returning non-void [-Werror=return-type] } ^ /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::device_wrapper_impl<boost::iostreams::input>::write(Device&, Dummy*, const typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:179:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::device_wrapper_impl<boost::iostreams::output>::read(Device&, Dummy*, typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:188:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streampos boost::iostreams::detail::flt_wrapper_impl<boost::iostreams::any_tag>::seek(Filter&, Device*, boost::iostreams::stream_offset, std::ios_base::seekdir, std::ios_base::openmode, boost::iostreams::any_tag)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:215:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::flt_wrapper_impl<boost::iostreams::input>::write(Filter&, Sink*, const typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:263:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::flt_wrapper_impl<boost::iostreams::output>::read(Filter&, Source*, typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/detail/adapter/concept_adapter.hpp:272:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ In file included from /opt/local/include/boost/iostreams/detail/buffer.hpp:22:0, from /opt/local/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:24, from /opt/local/include/boost/iostreams/stream_buffer.hpp:22, from /opt/local/include/boost/iostreams/stream.hpp:21, from /opt/local/include/boost/spirit/home/qi/stream/detail/iterator_source.hpp:14, from /opt/local/include/boost/spirit/home/qi/stream/stream.hpp:16, from /opt/local/include/boost/spirit/home/qi/stream.hpp:15, from /opt/local/include/boost/spirit/home/qi.hpp:30, from /opt/local/include/boost/spirit/include/qi.hpp:16, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/geometry_parser.h:24, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp:22: /opt/local/include/boost/iostreams/checked_operations.hpp: In static member function ‘static bool boost::iostreams::detail::read_write_if_impl<boost::iostreams::input>::put(T&, typename boost::iostreams::char_type_of<T>::type)’: /opt/local/include/boost/iostreams/checked_operations.hpp:99:49: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(false) } ^ /opt/local/include/boost/iostreams/checked_operations.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::read_write_if_impl<boost::iostreams::input>::write(T&, const typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/checked_operations.hpp:105:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/checked_operations.hpp: In static member function ‘static std::streamsize boost::iostreams::detail::read_write_if_impl<boost::iostreams::output>::read(T&, typename boost::iostreams::char_type_of<T>::type*, std::streamsize)’: /opt/local/include/boost/iostreams/checked_operations.hpp:119:45: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(0) } ^ /opt/local/include/boost/iostreams/checked_operations.hpp: In static member function ‘static std::streampos boost::iostreams::detail::seek_if_impl<boost::iostreams::any_tag>::seek(T&, boost::iostreams::stream_offset, std::ios_base::seekdir, std::ios_base::openmode)’: /opt/local/include/boost/iostreams/checked_operations.hpp:149:60: error: no return statement in function returning non-void [-Werror=return-type] BOOST_IOSTREAMS_UNREACHABLE_RETURN(std::streampos()) } ^ .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp: In member function ‘void KbPreviewFrame::drawKeySymbols(QPainter&, QPoint*, const GShape&, const QString&)’: .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp:106:46: warning: ‘constexpr typename std::enable_if<std::is_same<typename std::remove_cv< <template-parameter-1-1> >::type, int>::value, bool>::type operator==(QChar, T) [with T = int; typename std::enable_if<std::is_same<typename std::remove_cv< <template-parameter-1-1> >::type, int>::value, bool>::type = bool]’ is deprecated: don't compare ints to QChars, compare them to QChar::unicode() instead [-Wdeprecated-declarations] QColor txtColor = txt[0] == -1 ? unknownSymbolColor : color[level]; ^ In file included from /opt/local/include/qt5/QtCore/qhashfunctions.h:44:0, from /opt/local/include/qt5/QtCore/qlist.h:47, from /opt/local/include/qt5/QtCore/qmap.h:44, from /opt/local/include/qt5/QtCore/QMap:1, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/keyaliases.h:21, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/keyboardlayout.h:22, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.h:21, from .../work/plasma-desktop-5.9.3/kcms/keyboard/preview/kbpreviewframe.cpp:20: /opt/local/include/qt5/QtCore/qchar.h:586:1: note: declared here operator==(QChar lhs, T rhs) Q_DECL_NOEXCEPT { return lhs == QChar(rhs); } ^~~~~~~~ cc1plus: some warnings being treated as errors