Bug 441319 - reproducible libclang: crash detected during parsing on startup
Summary: reproducible libclang: crash detected during parsing on startup
Status: REPORTED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (Clang-based) (other bugs)
Version First Reported In: 5.6.2
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-21 18:36 UTC by ambersck
Modified: 2021-08-21 18:36 UTC (History)
0 users

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


Attachments
change causing kdevelop crash (1.09 KB, text/plain)
2021-08-21 18:36 UTC, ambersck
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ambersck 2021-08-21 18:36:37 UTC
Created attachment 140920 [details]
change causing kdevelop crash

SUMMARY
Short story long: saw that ECM 5.85.0 comes with optional stricter compiler settings so decided to turn them on and work through them (project is https://sourceforge.net/p/kuroo).  

STEPS TO REPRODUCE
1. Fetch revision #1657 of https://svn.code.sf.net/p/kuroo/code/kuroo4/trunk
2. Apply attached patch
3. Trigger clang reparse of the project

OBSERVED RESULT
KDevelop crashes, console output:
```
$ kdevelop
QSocketNotifier: Can only be used with threads started with QThread
kdevplatform.serialization: version mismatch or no version hint; expected version: 84279809
kdevplatform.serialization: "The data-repository at /home/andrew/.cache/kdevduchain/kdevelop-{83555a53-d447-4862-b0f6-024f33d6573b} has to be cleared."
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/desktop.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/desktop.so'"
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/applications.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/applications.so'"
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/desktop.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/desktop.so'"
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/applications.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/applications.so'"
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/desktop.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/desktop.so'"
kf.coreaddons: no metadata found in "/usr/lib64/qt5/plugins/kf5/kio/applications.so" "Failed to extract plugin meta data from '/usr/lib64/qt5/plugins/kf5/kio/applications.so'"
qrc:/qml/Develop.qml:139:21: QML Heading: Binding loop detected for property "font.pointSize"
qrc:/qml/area_code.qml:87:9: QML Heading: Binding loop detected for property "font.pointSize"
qrc:/qml/area_code.qml:63:9: QML Heading: Binding loop detected for property "font.pointSize"
qrc:/qml/storage.js:24: TypeError: Cannot call method 'openDatabaseSync' of undefined
qrc:/qml/storage.js:24: TypeError: Cannot call method 'openDatabaseSync' of undefined
libclang: crash detected during parsing: {
  'source_filename' : '/home/andrew/code/kuroo/trunk/src/core/global.cpp'
  'command_line_args' : ['clang', '-ferror-limit=100', '-fspell-checking', '', '-Wunused-parameter', '-Wunreachable-code', '-Wall', '-Wextra', '-Wcast-align', '-Wchar-subscripts', '-Wformat-security', '-Wno-long-long', '-Wpointer-arith', '-Wundef', '-Wnon-virtual-dtor', '-Woverloaded-virtual', '-Wreturn-type', '-Wvla', '-Wdate-time', '-Wsuggest-override', '-Wlogical-op', '-std=c++11', '-fno-operator-names', '-Wall', '-Wextra', '-Wcast-align', '-Wchar-subscripts', '-Wformat-security', '-Wno-long-long', '-Wpointer-arith', '-Wundef', '-Wnon-virtual-dtor', '-Woverloaded-virtual', '-Wreturn-type', '-Wvla', '-Wdate-time', '-Wsuggest-override', '-Wlogical-op', '-pedantic', '-Wzero-as-null-pointer-constant', '-Wmissing-include-dirs', '-fdiagnostics-color=always', '-fexceptions', '-fvisibility=hidden', '-fvisibility-inlines-hidden', '-fPIC', '-std=c++17', '-nostdinc', '-nostdinc++', '-xc++', '-isystem', '/usr/share/kdevclangsupport/wrappedQtHeaders', '-isystem', '/usr/share/kdevclangsupport/wrappedQtHeaders/QtCore', '-isystem/usr/include/qt5', '-isystem/usr/include/KF5/KItemViews', '-isystem/usr/include/KF5/kio', '-isystem/usr/include/KF5/KJobWidgets', '-isystem/usr/include/KF5/KNotifications', '-isystem/usr/include/KF5/KWidgetsAddons', '-isystem/usr/include/KF5/KConfigCore', '-isystem/usr/include/KF5/KCoreAddons', '-isystem/usr/include/KF5/KI18n', '-isystem/usr/include/KF5/KService', '-isystem/usr/include/KF5/KCompletion', '-isystem/usr/include/KF5/ThreadWeaver', '-isystem/usr/include/KF5/KTextWidgets', '-isystem/usr/include/KF5/Solid', '-isystem/usr/include/KF5/KDESu', '-isystem/usr/include/KF5/KWindowSystem', '-isystem/usr/include/KF5/KCoreAddons', '-isystem/usr/include/KF5/SonnetCore', '-isystem/usr/include/KF5/KPty', '-isystem/usr/include/KF5/KAuth', '-isystem/usr/include/KF5/KWidgetsAddons', '-isystem/usr/include/KF5/KConfigWidgets', '-isystem/usr/include/KF5/KXmlGui', '-isystem/usr/include/qt5/QtWidgets', '-isystem/usr/include/qt5/QtGui', '-isystem/usr/include/qt5/QtCore', '-isystem/usr/include/KF5/KCodecs', '-isystem/usr/include/KF5/KIconThemes', '-isystem/usr/include/KF5/KItemModels', '-isystem/usr/include/qt5', '-isystem/usr/include/qt5/QtCore', '-isystem/usr/lib64/qt5/mkspecs/linux-g++', '-isystem/usr/include/KF5/KAuth', '-isystem/usr/include/KF5', '-isystem/usr/include/KF5/KCoreAddons', '-isystem/usr/include/KF5/KConfigCore', '-isystem/usr/include/KF5/KConfigGui', '-isystem/usr/include/qt5/QtGui', '-isystem/usr/include/qt5/QtXml', '-isystem/usr/include/KF5/KI18n', '-isystem/usr/include/KF5/KItemViews', '-isystem/usr/include/qt5/QtWidgets', '-isystem/usr/include/KF5/KIOCore', '-isystem/usr/include/KF5/KService', '-isystem/usr/include/qt5/QtNetwork', '-isystem/usr/include/qt5/QtDBus', '-isystem/usr/include/KF5/KNotifications', '-isystem/usr/include/KF5/ThreadWeaver', '-isystem/usr/include/KF5/KTextWidgets', '-isystem/usr/include/KF5/SonnetUi', '-isystem/usr/include/KF5/KWidgetsAddons', '-isystem/usr/include/KF5/KWindowSystem', '-isystem/usr/include/KF5/KXmlGui', '-isystem/usr/include/KF5/KConfigWidgets', '-isystem/usr/include/KF5/KCodecs', '-isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11', '-isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/x86_64-pc-linux-gnu', '-isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/backward', '-isystem/usr/include', '-I/home/andrew/code/kuroo/trunk/src', '-I/home/andrew/code/kuroo/trunk/src/portage', '-I/home/andrew/code/kuroo/trunk/src/core', '-I/home/andrew/code/kuroo/trunk/src/queue', '-I/home/andrew/code/kuroo/trunk/src/history', '-I/home/andrew/code/kuroo/trunk/src/config', '-I/home/andrew/code/kuroo/trunk/src/logs', '-I/home/andrew/code/kuroo/trunk/build/src', '-I/home/andrew/code/kuroo/trunk/src', '-I/home/andrew/code/kuroo/trunk/build/src/kuroo_autogen/include', '-I/home/andrew/code/kuroo/trunk/src/config', '-I/home/andrew/code/kuroo/trunk/src/core', '-I/home/andrew/code/kuroo/trunk/src/history', '-I/home/andrew/code/kuroo/trunk/src/intro', '-I/home/andrew/code/kuroo/trunk/src/logs', '-I/home/andrew/code/kuroo/trunk/src/portage', '-I/home/andrew/code/kuroo/trunk/src/queue', '-isystem', '/usr/lib/clang/12.0.1/include', '-imacros', '/tmp/kdevelop.uOquwG', '-working-directory/home/andrew/code/kuroo/trunk/build'],
  'unsaved_files' : [],
  'options' : 781,
}
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = kdevelop path = /usr/bin pid = 11999
KCrash: Arguments: /usr/bin/kdevelop 
KCrash: Attempting to start /usr/lib64/libexec/drkonqi
QSocketNotifier: Invalid socket 3 and type 'Read', disabling...
QSocketNotifier: Invalid socket 14 and type 'Read', disabling...
QSocketNotifier: Invalid socket 65 and type 'Read', disabling...
QSocketNotifier: Invalid socket 75 and type 'Read', disabling...
QSocketNotifier: Invalid socket 67 and type 'Read', disabling...
QSocketNotifier: Invalid socket 70 and type 'Exception', disabling...
QSocketNotifier: Invalid socket 72 and type 'Read', disabling...
QSocketNotifier: Invalid socket 22 and type 'Read', disabling...
QSocketNotifier: Invalid socket 25 and type 'Read', disabling...
QSocketNotifier: Invalid socket 19 and type 'Read', disabling...
The Wayland connection experienced a fatal error: Invalid argument
Unable to start Dr. Konqi
QSocketNotifier: Can only be used with threads started with QThread
```

EXPECTED RESULT
KDevelop works as usual

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Gentoo kernel 5.12.19
(available in About System)
KDE Plasma Version: 5.85.0
KDE Frameworks Version: 5.22.4
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Output when running the clang command manually:
```
~/code/kuroo/trunk $ clang -ferror-limit=100 -fspell-checking  -Wunused-parameter -Wunreachable-code -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Wreturn-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -std=c++11 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Wreturn-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fdiagnostics-color=always -fexceptions -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=c++17 -nostdinc -nostdinc++ -xc++ -isystem /usr/share/kdevclangsupport/wrappedQtHeaders -isystem /usr/share/kdevclangsupport/wrappedQtHeaders/QtCore -isystem/usr/include/qt5 -isystem/usr/include/KF5/KItemViews -isystem/usr/include/KF5/kio -isystem/usr/include/KF5/KJobWidgets -isystem/usr/include/KF5/KNotifications -isystem/usr/include/KF5/KWidgetsAddons -isystem/usr/include/KF5/KConfigCore -isystem/usr/include/KF5/KCoreAddons -isystem/usr/include/KF5/KI18n -isystem/usr/include/KF5/KService -isystem/usr/include/KF5/KCompletion -isystem/usr/include/KF5/ThreadWeaver -isystem/usr/include/KF5/KTextWidgets -isystem/usr/include/KF5/Solid -isystem/usr/include/KF5/KDESu -isystem/usr/include/KF5/KWindowSystem -isystem/usr/include/KF5/KCoreAddons -isystem/usr/include/KF5/SonnetCore -isystem/usr/include/KF5/KPty -isystem/usr/include/KF5/KAuth -isystem/usr/include/KF5/KWidgetsAddons -isystem/usr/include/KF5/KConfigWidgets -isystem/usr/include/KF5/KXmlGui -isystem/usr/include/qt5/QtWidgets -isystem/usr/include/qt5/QtGui -isystem/usr/include/qt5/QtCore -isystem/usr/include/KF5/KCodecs -isystem/usr/include/KF5/KIconThemes -isystem/usr/include/KF5/KItemModels -isystem/usr/include/qt5 -isystem/usr/include/qt5/QtCore -isystem/usr/lib64/qt5/mkspecs/linux-g++ -isystem/usr/include/KF5/KAuth -isystem/usr/include/KF5 -isystem/usr/include/KF5/KCoreAddons -isystem/usr/include/KF5/KConfigCore -isystem/usr/include/KF5/KConfigGui -isystem/usr/include/qt5/QtGui -isystem/usr/include/qt5/QtXml -isystem/usr/include/KF5/KI18n -isystem/usr/include/KF5/KItemViews -isystem/usr/include/qt5/QtWidgets -isystem/usr/include/KF5/KIOCore -isystem/usr/include/KF5/KService -isystem/usr/include/qt5/QtNetwork -isystem/usr/include/qt5/QtDBus -isystem/usr/include/KF5/KNotifications -isystem/usr/include/KF5/ThreadWeaver -isystem/usr/include/KF5/KTextWidgets -isystem/usr/include/KF5/SonnetUi -isystem/usr/include/KF5/KWidgetsAddons -isystem/usr/include/KF5/KWindowSystem -isystem/usr/include/KF5/KXmlGui -isystem/usr/include/KF5/KConfigWidgets -isystem/usr/include/KF5/KCodecs -isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11 -isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/x86_64-pc-linux-gnu -isystem/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/backward -isystem/usr/include -I/home/andrew/code/kuroo/trunk/src -I/home/andrew/code/kuroo/trunk/src/portage -I/home/andrew/code/kuroo/trunk/src/core -I/home/andrew/code/kuroo/trunk/src/queue -I/home/andrew/code/kuroo/trunk/src/history -I/home/andrew/code/kuroo/trunk/src/config -I/home/andrew/code/kuroo/trunk/src/logs -I/home/andrew/code/kuroo/trunk/build/src -I/home/andrew/code/kuroo/trunk/src -I/home/andrew/code/kuroo/trunk/build/src/kuroo_autogen/include -I/home/andrew/code/kuroo/trunk/src/config -I/home/andrew/code/kuroo/trunk/src/core -I/home/andrew/code/kuroo/trunk/src/history -I/home/andrew/code/kuroo/trunk/src/intro -I/home/andrew/code/kuroo/trunk/src/logs -I/home/andrew/code/kuroo/trunk/src/portage -I/home/andrew/code/kuroo/trunk/src/queue -isystem /usr/lib/clang/12.0.1/include -imacros /tmp/kdevelop.uOquwG -working-directory/home/andrew/code/kuroo/trunk/build /home/andrew/code/kuroo/trunk/src/core/global.cpp 
warning: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Wunknown-warning-option]
warning: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Wunknown-warning-option]
In file included from /home/andrew/code/kuroo/trunk/src/core/global.cpp:24:
/home/andrew/code/kuroo/trunk/src/core/global.h:32:46: error: lambda expression in an unevaluated operand
Q_GLOBAL_STATIC_WITH_ARGS(QString, kurooDir, QStringLiteral("/var/cache/kuroo/")); //->KConfig
                                             ^
/usr/include/qt5/QtCore/qstringliteral.h:66:6: note: expanded from macro 'QStringLiteral'
    ([]() noexcept -> QString { \
     ^
In file included from /home/andrew/code/kuroo/trunk/src/core/global.cpp:24:
/home/andrew/code/kuroo/trunk/src/core/global.h:35:59: error: expected '(' or '{'
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, m_rxEmerge, QS("^\\[ebuild([\\s\\w~#*]*)\\]\\s+"  //Also allow * for merging hardmasked packages
                                                          ^
/home/andrew/code/kuroo/trunk/src/core/global.h:35:1: error: unexpected type name 'Type': expected expression
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, m_rxEmerge, QS("^\\[ebuild([\\s\\w~#*]*)\\]\\s+"  //Also allow * for merging hardmasked packages
^
/usr/include/qt5/QtCore/qglobalstatic.h:153:9: note: expanded from macro 'Q_GLOBAL_STATIC_WITH_ARGS'
        Q_GLOBAL_STATIC_INTERNAL(ARGS)                                      \
        ^
/usr/include/qt5/QtCore/qglobalstatic.h:89:35: note: expanded from macro 'Q_GLOBAL_STATIC_INTERNAL'
                noexcept(noexcept(Type ARGS))       \
                                  ^
In file included from /home/andrew/code/kuroo/trunk/src/core/global.cpp:24:
/home/andrew/code/kuroo/trunk/src/core/global.h:35:59: error: expected ')'
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, m_rxEmerge, QS("^\\[ebuild([\\s\\w~#*]*)\\]\\s+"  //Also allow * for merging hardmasked packages
                                                          ^
/home/andrew/code/kuroo/trunk/src/core/global.h:35:1: note: to match this '('
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, m_rxEmerge, QS("^\\[ebuild([\\s\\w~#*]*)\\]\\s+"  //Also allow * for merging hardmasked packages
^
/usr/include/qt5/QtCore/qglobalstatic.h:153:9: note: expanded from macro 'Q_GLOBAL_STATIC_WITH_ARGS'
        Q_GLOBAL_STATIC_INTERNAL(ARGS)                                      \
        ^
/usr/include/qt5/QtCore/qglobalstatic.h:89:34: note: expanded from macro 'Q_GLOBAL_STATIC_INTERNAL'
                noexcept(noexcept(Type ARGS))       \
                                 ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:27:63: error: calling a private constructor of class 'QString'
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, rxNameVersion, ("(?:[a-zA-Z0-9]|-)*"
                                                              ^
/usr/include/qt5/QtCore/qstring.h:973:5: note: declared private here
    QString(const char *ch);
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:27:63: error: calling a private constructor of class 'QString'
Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, rxNameVersion, ("(?:[a-zA-Z0-9]|-)*"
                                                              ^
/usr/include/qt5/QtCore/qstring.h:973:5: note: declared private here
    QString(const char *ch);
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:42:18: error: calling a private constructor of class 'QChar'
        package.remove( ' ' );
                        ^
/usr/include/qt5/QtCore/qchar.h:626:5: note: declared private here
    QChar(char c) noexcept;
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:45:25: error: calling a private constructor of class 'QChar'
        if ( package.contains( '/' ) ) {
                               ^
/usr/include/qt5/QtCore/qchar.h:626:5: note: declared private here
    QChar(char c) noexcept;
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:46:28: error: calling a private constructor of class 'QString'
                list << package.section( "/", 0, 0 );
                                         ^
/usr/include/qt5/QtCore/qstring.h:973:5: note: declared private here
    QString(const char *ch);
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:47:34: error: calling a private constructor of class 'QString'
                nameVersion = package.section( "/", 1, 1 );
                                               ^
/usr/include/qt5/QtCore/qstring.h:973:5: note: declared private here
    QString(const char *ch);
    ^
/home/andrew/code/kuroo/trunk/src/core/global.cpp:60:39: error: calling a private constructor of class 'QString'
                list << nameVersion.section( name + "-", 1 );
                                                    ^
/usr/include/qt5/QtCore/qstring.h:973:5: note: declared private here
    QString(const char *ch);
    ^
2 warnings and 11 errors generated.
```