Bug 396185 - Compilation failed with gcc 8.1
Summary: Compilation failed with gcc 8.1
Status: RESOLVED FIXED
Alias: None
Product: ring-kde
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Emmanuel Lepage Vallée
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-05 08:17 UTC by Sergei Gureev
Modified: 2018-07-10 17:04 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergei Gureev 2018-07-05 08:17:14 UTC
I can't compile ring-kde with gcc-8.1.1. The errors are:

src/qmlwidgets/treeview2.cpp: In member function ‘bool VisualTreeItem::error()’:
src/qmlwidgets/treeview2.cpp:1414:1: error: control reaches end of non-void function [-Werror=return-type]

src/qmlwidgets/treeview2.cpp: In member function ‘bool TreeTraversalItems::error()’:
src/qmlwidgets/treeview2.cpp:1445:1: error: control reaches end of non-void function [-Werror=return-type]

src/qmlwidgets/treeview2.cpp: In member function ‘bool TreeView2Private::error()’:
src/qmlwidgets/treeview2.cpp:1630:1: error: control reaches end of non-void function [-Werror=return-type]
Comment 1 Emmanuel Lepage Vallée 2018-07-09 13:33:05 UTC
Can you try again with the latest git-master?
Comment 2 Sergei Gureev 2018-07-09 13:36:57 UTC
Thank you!
But it fails again:

[  4%] Building CXX object src/klib/CMakeFiles/libkring.dir/kcfg_settings.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:4:
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.h:12:18: error: Declaring type ‘class ConfigurationSkeleton’ final would enable devirtualization of 1 call [-Werror=suggest-final-types]
 class LIB_EXPORT ConfigurationSkeleton : public KConfigSkeleton
                  ^~~~~~~~~~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:246:1: error: Declaring virtual destructor of ‘class ConfigurationSkeleton’ final would enable devirtualization of 1 call [-Werror=suggest-final-methods]
 ConfigurationSkeleton::~ConfigurationSkeleton()
 ^~~~~~~~~~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp: In destructor ‘ConfigurationSkeleton::~ConfigurationSkeleton()’:
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:248:38: error: potential null pointer dereference [-Werror=null-dereference]
   s_globalConfigurationSkeleton()->q = nullptr;
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp: In static member function ‘static ConfigurationSkeleton* ConfigurationSkeleton::self()’:
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:19:41: error: potential null pointer dereference [-Werror=null-dereference]
   if (!s_globalConfigurationSkeleton()->q) {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:21:38: error: potential null pointer dereference [-Werror=null-dereference]
     s_globalConfigurationSkeleton()->q->read();
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/tmp/yaytmp-1000/ring-kde-git/src/build/src/klib/kcfg_settings.cpp:24:43: error: potential null pointer dereference [-Werror=null-dereference]
   return s_globalConfigurationSkeleton()->q;
Comment 3 Emmanuel Lepage Vallée 2018-07-09 16:04:13 UTC
woops, I forgot to remove the `-Werror` from the cmakelists I added for testing. That one is on me. Fixed
Comment 4 Sergei Gureev 2018-07-10 07:14:20 UTC
The error is still there =(

[ 15%] Building CXX object src/qmlwidgets/CMakeFiles/libqmlwidgets.dir/treeview2.cpp.o
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/qmlwidgets/treeview2.cpp: In member function ‘bool VisualTreeItem::error()’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/qmlwidgets/treeview2.cpp:1423:1: error: no return statement in function returning non-void [-Werror=return-type]
 }
 ^
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/qmlwidgets/treeview2.cpp: In member function ‘bool TreeView2Private::error()’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/qmlwidgets/treeview2.cpp:1645:1: error: control reaches end of non-void function [-Werror=return-type]
 }
Comment 5 Emmanuel Lepage Vallée 2018-07-10 08:08:51 UTC
Another one fixed. This was a false positive tho. Functions that explicitly don't return... don't need to return.

That's why using -Werror is a bad idea in general
Comment 6 Sergei Gureev 2018-07-10 09:31:55 UTC
We're moving further!

[ 68%] Building CXX object src/CMakeFiles/ring-kde.dir/ringapplication.cpp.o
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp: In member function ‘void RingApplication::initCollections()’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp:317:43: error: too few arguments to function ‘void HistoryImporter::importHistory(LocalHistoryCollection*, std::function<void(const QVector<Calendar*>&)>)’
       HistoryImporter::importHistory(histo);
                                           ^
Comment 7 Christoph Feck 2018-07-10 11:46:44 UTC
Could you please use 'make -k' to continue after errors and post a summary of all errors?
Comment 8 Sergei Gureev 2018-07-10 12:24:06 UTC
Thank you. I've added -k option and the process continued to 100%.
Previous "68%" error seems to be the last one. No more errors here.
Comment 9 Sergei Gureev 2018-07-10 12:26:17 UTC
Here'is the log:

[ 68%] Building CXX object src/CMakeFiles/ring-kde.dir/ringapplication.cpp.o
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp: In member function ‘void RingApplication::initCollections()’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp:317:43: error: too few arguments to function ‘void HistoryImporter::importHistory(LocalHistoryCollection*, std::function<void(const QVector<Calendar*>&)>)’
       HistoryImporter::importHistory(histo);
                                           ^
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp:71:
/usr/include/libringqt/libcard/historyimporter.h:40:17: note: declared here
 void LIB_EXPORT importHistory(LocalHistoryCollection* col, std::function<void(const QVector<Calendar*>&)> callback);
                 ^~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp: In static member function ‘static QQmlApplicationEngine* RingApplication::engine()’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp:504:37: warning: ‘void KDeclarative::KDeclarative::setupBindings()’ is deprecated [-Wdeprecated-declarations]
       m_pDeclarative->setupBindings();
                                     ^
In file included from /usr/include/KF5/KDeclarative/KDeclarative/KDeclarative:1,
                 from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/ringapplication.cpp:39:
/usr/include/KF5/KDeclarative/kdeclarative/kdeclarative.h:57:34: note: declared here
     KDECLARATIVE_DEPRECATED void setupBindings();
                                  ^~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/ring-kde.dir/build.make:240: src/CMakeFiles/ring-kde.dir/ringapplication.cpp.o] Error 1
[ 69%] Building CXX object src/CMakeFiles/ring-kde.dir/errormessage.cpp.o
[ 69%] Building CXX object src/CMakeFiles/ring-kde.dir/actioncollection.cpp.o
[ 70%] Building CXX object src/CMakeFiles/ring-kde.dir/implementation.cpp.o
[ 70%] Building CXX object src/CMakeFiles/ring-kde.dir/model/extendedprotocolmodel.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/model/extendedprotocolmodel.cpp:18:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/model/extendedprotocolmodel.h:26:7: warning: Declaring type ‘class ExtendedProtocolModel’ final would enable devirtualization of 3 calls [-Wsuggest-final-types]
 class ExtendedProtocolModel : public QIdentityProxyModel
       ^~~~~~~~~~~~~~~~~~~~~
[ 71%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/autocompletiondelegate.cpp.o
[ 71%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/autocompletiondelegate2.cpp.o
[ 72%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/toolbardelegate.cpp.o
[ 72%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/accountinfodelegate.cpp.o
[ 73%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/kdepixmapmanipulation.cpp.o
[ 73%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/categorizeddelegate.cpp.o
[ 74%] Building CXX object src/CMakeFiles/ring-kde.dir/delegates/righticondelegate.cpp.o
[ 74%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/simplerotateproxy.cpp.o
[ 75%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/deduplicateproxy.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/proxies/deduplicateproxy.cpp:18:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/proxies/deduplicateproxy.h:57:7: warning: Declaring type ‘class DeduplicateProxy’ final would enable devirtualization of 5 calls [-Wsuggest-final-types]
 class DeduplicateProxy : public QSortFilterProxyModel
       ^~~~~~~~~~~~~~~~
[ 75%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/filtertoplevelproxy.cpp.o
[ 76%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/roletransformationproxy.cpp.o
[ 76%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/flagsfilterproxy.cpp.o
[ 77%] Building CXX object src/CMakeFiles/ring-kde.dir/proxies/pollingproxy.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/proxies/pollingproxy.cpp:18:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/proxies/pollingproxy.h:35:7: warning: Declaring type ‘class PollingProxy’ final would enable devirtualization of 4 calls [-Wsuggest-final-types]
 class PollingProxy : public QIdentityProxyModel
       ^~~~~~~~~~~~
[ 77%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountserializationadapter.cpp.o
[ 78%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/configurationdialog.cpp.o
[ 78%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlggeneral.cpp.o
[ 79%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgdisplay.cpp.o
[ 79%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgaudio.cpp.o
[ 80%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgaddressbook.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/build/src/ui_dlgaddressbookbase.h:24,
                 from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/dlgaddressbook.h:29,
                 from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/dlgaddressbook.cpp:20:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/categorizedtreeview.h:30:7: warning: Declaring type ‘class CategorizedTreeView’ final would enable devirtualization of 1 call [-Wsuggest-final-types]
 class CategorizedTreeView : public CategorizedTree
       ^~~~~~~~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/categorizedtreeview.h:52:17: warning: Declaring method ‘virtual void CategorizedTreeView::setModel(QAbstractItemModel*)’ final would enable devirtualization of 1 call [-Wsuggest-final-methods]
    virtual void setModel ( QAbstractItemModel * model ) override;
                 ^~~~~~~~
[ 80%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgaccessibility.cpp.o
[ 81%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgpresence.cpp.o
[ 81%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgaccount.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/dlgaccount.cpp:43:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/model/extendedprotocolmodel.h:26:7: warning: Declaring type ‘class ExtendedProtocolModel’ final would enable devirtualization of 1 call [-Wsuggest-final-types]
 class ExtendedProtocolModel : public QIdentityProxyModel
       ^~~~~~~~~~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/model/extendedprotocolmodel.h:41:24: warning: Declaring method ‘virtual QVariant ExtendedProtocolModel::data(const QModelIndex&, int) const’ final would enable devirtualization of 1 call [-Wsuggest-final-methods]
    virtual QVariant    data     ( const QModelIndex& index, int role = Qt::DisplayRole ) const override;
                        ^~~~
[ 82%] Building CXX object src/CMakeFiles/ring-kde.dir/configurator/localhistoryconfigurator.cpp.o
[ 82%] Building CXX object src/CMakeFiles/ring-kde.dir/configurator/peerprofileconfigurator.cpp.o
[ 83%] Building CXX object src/CMakeFiles/ring-kde.dir/configurator/bookmarkconfigurator.cpp.o
[ 83%] Building CXX object src/CMakeFiles/ring-kde.dir/configurator/audiorecordingconfigurator.cpp.o
[ 84%] Building CXX object src/CMakeFiles/ring-kde.dir/configurator/fallbackpersonconfigurator.cpp.o
[ 84%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/systray.cpp.o
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/systray.cpp: In constructor ‘SysTray::SysTray(const QIcon&, QWidget*)’:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/systray.cpp:37:31: warning: unused parameter ‘icon’ [-Wunused-parameter]
 SysTray::SysTray(const QIcon &icon, QWidget *parent)
                  ~~~~~~~~~~~~~^~~~
[ 85%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/categorizedtreeview.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/categorizedtreeview.cpp:17:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/categorizedtreeview.h:30:7: warning: Declaring type ‘class CategorizedTreeView’ final would enable devirtualization of 5 calls [-Wsuggest-final-types]
 class CategorizedTreeView : public CategorizedTree
       ^~~~~~~~~~~~~~~~~~~
[ 85%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/fileselector.cpp.o
[ 86%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/filterlineedit.cpp.o
[ 86%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/kphonenumberselector.cpp.o
[ 87%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/directoryview.cpp.o
[ 87%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/menumodelview.cpp.o
[ 88%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/accountstatusviewer.cpp.o
[ 88%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/autocombobox.cpp.o
[ 89%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/categorizedtree.cpp.o
[ 89%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/certificateviewer.cpp.o
[ 90%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/contextlistview.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/contextlistview.cpp:18:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/widgets/contextlistview.h:23:7: warning: Declaring type ‘class ContextListView’ final would enable devirtualization of 1 call [-Wsuggest-final-types]
 class ContextListView : public QListView
       ^~~~~~~~~~~~~~~
[ 90%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/groupedtoolbutton.cpp.o
[ 91%] Building CXX object src/CMakeFiles/ring-kde.dir/widgets/securityprogress.cpp.o
[ 91%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/advanced.cpp.o
[ 92%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/credentials.cpp.o
[ 92%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/basic.cpp.o
[ 93%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/network.cpp.o
[ 93%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/codecs.cpp.o
[ 94%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/ringtone.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/accountpages/ringtone.cpp:18:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/accountpages/ringtone.h:27:7: warning: Declaring type ‘class Pages::RingTone’ final would enable devirtualization of 1 call [-Wsuggest-final-types]
 class RingTone : public PageBase, public Ui_RingtonePage
       ^~~~~~~~
[ 94%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/security.cpp.o
[ 95%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/pagebase.cpp.o
[ 95%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/account.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/accountpages/account.cpp:33:
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/accountserializationadapter.h:38:18: warning: Declaring type ‘class AccountSerializationAdapter’ final would enable devirtualization of 1 call [-Wsuggest-final-types]
 class LIB_EXPORT AccountSerializationAdapter : public QObject
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/yaytmp-1000/ring-kde-git/src/ring-kde/src/conf/accountserializationadapter.h:43:12: warning: Declaring virtual destructor of ‘class AccountSerializationAdapter’ final would enable devirtualization of 1 call [-Wsuggest-final-methods]
    virtual ~AccountSerializationAdapter();
            ^
[ 96%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/devices.cpp.o
[ 96%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/accountpages/dlgprofiles.cpp.o
[ 97%] Building CXX object src/CMakeFiles/ring-kde.dir/conf/dlgvideo.cpp.o
[ 97%] Building CXX object src/CMakeFiles/ring-kde.dir/qrc_resources.cpp.o
[ 98%] Building CXX object src/CMakeFiles/ring-kde.dir/qrc_confresources.cpp.o
[ 98%] Building CXX object src/CMakeFiles/ring-kde.dir/qrc_appicon.cpp.o
[100%] Building CXX object src/CMakeFiles/ring-kde.dir/ring-kde_autogen/mocs_compilation.cpp.o
In file included from /tmp/yaytmp-1000/ring-kde-git/src/build/src/ring-kde_autogen/KADFE7Q5JN/../../../../ring-kde/src/conf/accountpages/account.h:22,
                 from /tmp/yaytmp-1000/ring-kde-git/src/build/src/ring-kde_autogen/KADFE7Q5JN/moc_account.cpp:9,
                 from /tmp/yaytmp-1000/ring-kde-git/src/build/src/ring-kde_autogen/mocs_compilation.cpp:25:
/tmp/yaytmp-1000/ring-kde-git/src/build/src/ring-kde_autogen/KADFE7Q5JN/../../../../ring-kde/src/conf/accountpages/pagebase.h:54:17: warning: Declaring method ‘virtual void Pages::PageBase::setChanged()’ final would enable devirtualization of 1 call [-Wsuggest-final-methods]
    virtual void setChanged();
                 ^~~~~~~~~~
make[2]: Target 'src/CMakeFiles/ring-kde.dir/build' not remade because of errors.
make[1]: *** [CMakeFiles/Makefile2:1044: src/CMakeFiles/ring-kde.dir/all] Error 2
make[1]: Target 'all' not remade because of errors.
make: *** [Makefile:141: all] Error 2
make: Target 'default_target' not remade because of errors.
Comment 10 Emmanuel Lepage Vallée 2018-07-10 13:45:33 UTC
Please remove the build directory and the libringqt directory so the cache get refreshed and try again
Comment 11 Sergei Gureev 2018-07-10 14:00:43 UTC
Thank you, everything is fine now!
Comment 12 Emmanuel Lepage Vallée 2018-07-10 16:14:13 UTC
Thanks for reporting that. Is there any other bug you see with Ring-KDE? I plan to do a release tomorrow?

To fix your issue, I just tested with GCC 5.4, 6, 7, 8, Clang++ 4, 5, 6. I also used proprietary stuff like Coverity compiler. I also added -Werror on my laptop to catch the issue you had earlier to it doesn't happen again. Finally, I modified the CMakeLists.txt to enable all warnings from all GCC version so if they add new ones to -Wall (and no, "all" isn't even 35% of the possible warnings), then it will appear on my CI system before it gets pushed to git.
Comment 13 Sergei Gureev 2018-07-10 17:04:37 UTC
I don't see any other issues, just some warnings. Guess it's ready for release!