Bug 364156

Summary: knewstuff-9999 fail to compile (in gcc 6.1.0, gcc 5.3.0, gcc 4.93, and clang 3.9)
Product: [Frameworks and Libraries] frameworks-knewstuff Reporter: myopetz
Component: generalAssignee: Jeremy Whiting <jpwhiting>
Status: RESOLVED FIXED    
Severity: normal CC: herzenschein, kdelibs-bugs-null
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description myopetz 2016-06-09 20:45:27 UTC
The compiler reports the error "field has incomplete type 'Attica::Content' whenever it compiles entryinternal.cpp. I tried three versions of gcc (4.9.3, 5.3.0, and 6.1.0) and clang 3.9 and got the same error.

Reproducible: Always

Steps to Reproduce:
1. build kde-frameworks/knewstuff-9999
2.
3.

Actual Results:  
[ 36%] Building CXX object src/CMakeFiles/KF5NewStuff.dir/core/entryinternal.cpp.o
cd /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999_build/src && /usr/bin/clang++  -DKCOREADDONS_LIB -DKDE_DEFAULT_DEBUG_AREA=550 -DKF5NewStuff_EXPORTS -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"knewstuff5\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999_build/src -I/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src -isystem /usr/include/KF5/Attica -isystem /usr/include/KF5 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/KF5/KXmlGui -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/KF5/KConfigWidgets -isystem /usr/include/KF5/KCodecs -isystem /usr/include/KF5/KWidgetsAddons -isystem /usr/include/KF5/KConfigGui -isystem /usr/include/KF5/KAuth -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5/KService -isystem /usr/include/KF5/KIOCore -isystem /usr/include/KF5/KIOWidgets -isystem /usr/include/KF5/KJobWidgets -isystem /usr/include/KF5/KCompletion -isystem /usr/include/KF5/KArchive -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5/KItemViews -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi   -DQT_NO_DEBUG -DNDEBUG -march=sandybridge -g -Ofast -pipe -fstack-protector-strong  -std=c++0x -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -pedantic -Wno-gnu-zero-variadic-macro-arguments -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++11 -o CMakeFiles/KF5NewStuff.dir/core/entryinternal.cpp.o -c /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/entryinternal.cpp
In file included from /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine.cpp:22:
In file included from /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine_p.h:27:
In file included from /usr/include/qt5/QtCore/QSharedPointer:1:
In file included from /usr/include/qt5/QtCore/qsharedpointer.h:45:
In file included from /usr/include/qt5/QtCore/qshareddata.h:46:
/usr/include/qt5/QtCore/qhash.h:152:7: error: field has incomplete type 'Attica::Content'
    T value;
      ^
/usr/include/qt5/QtCore/qhash.h:533:19: note: in instantiation of template class 'QHashNode<QString, Attica::Content>' requested here
    concrete(node)->~Node();
                  ^
/usr/include/qt5/QtCore/qhash.h:573:20: note: in instantiation of member function 'QHash<QString, Attica::Content>::deleteNode2' requested here
    x->free_helper(deleteNode2);
                   ^
/usr/include/qt5/QtCore/qhash.h:252:37: note: in instantiation of member function 'QHash<QString, Attica::Content>::freeData' requested here
    ~QHash() { if (!d->ref.deref()) freeData(d); }
                                    ^
/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/attica/atticaprovider_p.h:47:7: note: in instantiation of member function
      'QHash<QString, Attica::Content>::~QHash' requested here
class AtticaProvider: public Provider
      ^
/usr/include/qt5/QtCore/qsharedpointer_impl.h:217:29: note: in instantiation of member function 'QtSharedPointer::CustomDeleter<KNS3::AtticaProvider,
      QtSharedPointer::NormalDeleter>::execute' requested here
            realself->extra.execute();
                            ^
/usr/include/qt5/QtCore/qsharedpointer_impl.h:532:65: note: in instantiation of member function
      'QtSharedPointer::ExternalRefCountWithCustomDeleter<KNS3::AtticaProvider, QtSharedPointer::NormalDeleter>::deleter' requested here
        typename Private::DestroyerFn actualDeleter = &Private::deleter;
                                                                ^
/usr/include/qt5/QtCore/qsharedpointer_impl.h:322:7: note: in instantiation of function template specialization
      'QSharedPointer<KNS3::Provider>::internalConstruct<KNS3::AtticaProvider, QtSharedPointer::NormalDeleter>' requested here
    { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); }
      ^
/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine.cpp:193:24: note: in instantiation of function template specialization
      'QSharedPointer<KNS3::Provider>::QSharedPointer<KNS3::AtticaProvider>' requested here
            provider = QSharedPointer<KNS3::Provider> (new AtticaProvider(m_categories));
                       ^
/usr/include/KF5/Attica/attica/provider.h:62:7: note: forward declaration of 'Attica::Content'
class Content;
      ^
1 error generated.
Comment 1 Thiago Sueto 2020-11-13 03:53:23 UTC
Hello myopetz, I assume that knewstuff-9999 was the current master version from when you attempted to compile it on Gentoo. Please retest with the current version from upstream, and if you find any compilation issues, please make a new report. Build issues are very noticeable and quick to fix and this report is from 4 years ago. With the redesign of knewstuff the code probably differs significantly too. If you still experience the exact same issue somehow you can reopen this report.