https://bugs.kde.org/show_bug.cgi?id=438249

Igor Kushnir <igor...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|REPORTED                    |CONFIRMED

--- Comment #30 from Igor Kushnir <igor...@gmail.com> ---
Managed to reproduce the assertion failure in KDevelop master built against
fresh libclang version 17.0.0-git by opening the file
/usr/include/boost/container/string.hpp in a session containing a couple of
tiny projects and waiting for the background parser to parse this file. Found
the upstream bug https://github.com/llvm/llvm-project/issues/56644 and
mentioned this KDevelop crash in a comment to it.

The backtrace:
*** Program received signal SIGABRT (Aborted) ***
#0 0x00007f42848a08ec in () at /usr/lib/libc.so.6
#1 0x00007f4284851ea8 in raise () at /usr/lib/libc.so.6
#2 0x00007f428483b53d in abort () at /usr/lib/libc.so.6
#3 0x00007f428483b45c in () at /usr/lib/libc.so.6
#4 0x00007f428484a9f6 in () at /usr/lib/libc.so.6
#5 0x00007f421116303d in clang::Expr::EvaluateKnownConstInt(clang::ASTContext
const&, llvm::SmallVectorImpl<std::pair<clang::SourceLocation,
clang::PartialDiagnostic> >*) const (this=<optimized out>, Ctx=<optimized out>,
Diag=Diag@entry=0x0) at llvm-project/clang/lib/AST/ExprConstant.cpp:15473
#6 0x00007f421104e7a5 in clang::FieldDecl::getBitWidthValue(clang::ASTContext
const&) const (this=<optimized out>, Ctx=<optimized out>) at
llvm-project/clang/lib/AST/Decl.cpp:4309
#7 0x00007f421b0b972b in (anonymous
namespace)::Visitor::setDeclData<(CXCursorKind)6>(CXCursor,
KDevelop::ClassMemberDeclaration*) const (this=0x7f421a702ff0, cursor=...,
decl=0x7f420202d170) at kdevelop/plugins/clang/duchain/builder.cpp:1159
#8 0x00007f421b0a6d4a in (anonymous
namespace)::Visitor::createDeclarationCommon<(CXCursorKind)6,
KDevelop::ClassMemberDeclaration>(CXCursor, KDevelop::Identifier const&)
(this=0x7f421a702ff0, cursor=..., id=...) at
kdevelop/plugins/clang/duchain/builder.cpp:445
#9 0x00007f421b09a789 in (anonymous
namespace)::Visitor::createDeclaration<(CXCursorKind)6,
KDevelop::ClassMemberDeclaration>(CXCursor, KDevelop::Identifier const&,
KDevelop::DUContext*) (this=0x7f421a702ff0, cursor=..., id=..., context=0x0) at
kdevelop/plugins/clang/duchain/builder.cpp:456
#10 0x00007f421b093591 in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)6,
KDevelop::ClassMemberDeclaration, false>(CXCursor) (this=0x7f421a702ff0,
cursor=...) at kdevelop/plugins/clang/duchain/builder.cpp:1293
#11 0x00007f421b088e99 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)6>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1009
#12 0x00007f421b082309 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1675
#13 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a700ec0, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#14 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a700ec0, D=0x7f41e0443490) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#15 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a700ec0, DC=0x7f41e0443148) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#16 0x00007f4210f2aca8 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a700ec0,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:509
#17 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#18 0x00007f421b0a42f8 in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)2,
KDevelop::ClassDeclaration, true>(CXCursor) (this=0x7f421a702ff0, cursor=...)
at kdevelop/plugins/clang/duchain/builder.cpp:1290
#19 0x00007f421b0999dd in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)2, (Decision)0,
(Decision)0>(CXCursor, CXCursor) (this=0x7f421a702ff0, cursor=..., parent=...)
at kdevelop/plugins/clang/duchain/builder.cpp:1009
#20 0x00007f421b092ac7 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)2, (Decision)0,
(Decision)2>(CXCursor, CXCursor) (this=0x7f421a702ff0, cursor=..., parent=...)
at kdevelop/plugins/clang/duchain/builder.cpp:984
#21 0x00007f421b088a79 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)2>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:972
#22 0x00007f421b082185 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1671
#23 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a701540, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#24 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a701540, D=0x7f41e0443108) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#25 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a701540, DC=0x7f41e13ee650) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#26 0x00007f4210f2aca8 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a701540,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:509
#27 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#28 0x00007f421b0afcf2 in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)31,
KDevelop::ClassDeclaration, true>(CXCursor) (this=0x7f421a702ff0, cursor=...)
at kdevelop/plugins/clang/duchain/builder.cpp:1290
#29 0x00007f421b09f967 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)31, (Decision)1,
(Decision)0>(CXCursor, CXCursor) (this=0x7f421a702ff0, cursor=..., parent=...)
at kdevelop/plugins/clang/duchain/builder.cpp:1009
#30 0x00007f421b09591f in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)31, (Decision)1,
(Decision)2>(CXCursor, CXCursor) (this=0x7f421a702ff0, cursor=..., parent=...)
at kdevelop/plugins/clang/duchain/builder.cpp:984
#31 0x00007f421b089d9f in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)31>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:973
#32 0x00007f421b082919 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1691
#33 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a701bc0, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#34 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a701bc0, D=0x7f41e13ee6b8) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#35 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a701bc0, DC=0x7f41e13ee510) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#36 0x00007f4210f2aca8 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a701bc0,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:509
#37 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#38 0x00007f421b0942da in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration,
true>(CXCursor) (this=0x7f421a702ff0, cursor=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1290
#39 0x00007f421b089571 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)22>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1009
#40 0x00007f421b0825b0 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1682
#41 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a702160, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#42 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a702160, D=0x7f41e13ee4e0) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#43 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a702160, DC=0x7f41e13edba0) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#44 0x00007f4210f2aca8 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a702160,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:509
#45 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#46 0x00007f421b0942da in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration,
true>(CXCursor) (this=0x7f421a702ff0, cursor=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1290
#47 0x00007f421b089571 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)22>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1009
#48 0x00007f421b0825b0 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1682
#49 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a702700, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#50 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a702700, D=0x7f41e13edb70) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#51 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a702700, DC=0x7f41e09c8590) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#52 0x00007f4210f2aca8 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a702700,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:509
#53 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#54 0x00007f421b0942da in (anonymous
namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration,
true>(CXCursor) (this=0x7f421a702ff0, cursor=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1290
#55 0x00007f421b089571 in (anonymous
namespace)::Visitor::dispatchCursor<(CXCursorKind)22>(CXCursor, CXCursor)
(this=0x7f421a702ff0, cursor=..., parent=...) at
kdevelop/plugins/clang/duchain/builder.cpp:1009
#56 0x00007f421b0825b0 in (anonymous namespace)::visitCursor(CXCursor,
CXCursor, CXClientData) (cursor=..., parent=..., data=0x7f421a702ff0) at
kdevelop/plugins/clang/duchain/builder.cpp:1682
#57 0x00007f4210f2b400 in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool)
(this=0x7f421a702ca0, Cursor=..., CheckedRegionOfInterest=<optimized out>) at
llvm-project/clang/tools/libclang/CIndex.cpp:220
#58 0x00007f4210f31e66 in
clang::cxcursor::CursorVisitor::handleDeclForVisitation(clang::Decl const*)
(this=0x7f421a702ca0, D=0x7f41e09c8560) at
llvm-project/clang/tools/libclang/CIndex.cpp:682
#59 0x00007f4210f32021 in
clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*)
(this=0x7f421a702ca0, DC=0x7f41e0d42840) at
llvm-project/clang/tools/libclang/CIndex.cpp:643
#60 0x00007f4210f2b118 in
clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) (this=0x7f421a702ca0,
Cursor=...) at llvm-project/clang/tools/libclang/CIndex.cpp:543
#61 0x00007f4210f2b2c1 in clang_visitChildren(CXCursor, CXCursorVisitor,
CXClientData) (parent=..., visitor=0x7f421b081f0f <(anonymous
namespace)::visitCursor(CXCursor, CXCursor, CXClientData)>,
client_data=0x7f421a702ff0) at
llvm-project/clang/tools/libclang/CIndex.cpp:4827
#62 0x00007f421b0818b0 in (anonymous
namespace)::Visitor::Visitor(CXTranslationUnit, CXFile, IncludeFileContexts
const&, bool) (this=0x7f421a702ff0, tu=0x7f41e015b5f0, file=0x7f41e1364bf0,
includes=QHash<void *, KDevelop::ReferencedTopDUContext> (size = 319) = {...},
update=false) at kdevelop/plugins/clang/duchain/builder.cpp:1592
#63 0x00007f421b08301b in Builder::visit(CXTranslationUnitImpl*, void*,
QHash<void*, KDevelop::ReferencedTopDUContext> const&, bool)
(tu=0x7f41e015b5f0, file=0x7f41e1364bf0, includes=QHash<void *,
KDevelop::ReferencedTopDUContext> (size = 319) = {...}, update=false) at
kdevelop/plugins/clang/duchain/builder.cpp:1739
#64 0x00007f421b0f4895 in ClangHelpers::buildDUChain(void*, QMultiHash<void*,
Import> const&, ParseSession const&, QFlags<KDevelop::TopDUContext::Feature>,
QHash<void*, KDevelop::ReferencedTopDUContext>&, QHash<KDevelop::IndexedString,
KDevelop::ModificationRevision> const&, KDevelop::IndexedString const&,
ClangIndex*, std::function<bool ()> const&) (file=0x7f41e1364bf0,
imports=QMultiHash<void *, Import> (size = 830) = {...}, session=...,
features=..., includedFiles=QHash<void *, KDevelop::ReferencedTopDUContext>
(size = 319) = {...}, unsavedRevisions=QHash<KDevelop::IndexedString,
KDevelop::ModificationRevision> (size = 9) = {...}, parseDocument=...,
index=0x561e582afda0, abortFunction=...) at
kdevelop/plugins/clang/duchain/clanghelpers.cpp:209
#65 0x00007f421b4e82ce in
ClangParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>,
ThreadWeaver::Thread*) (this=0x561e59a36890) at
kdevelop/plugins/clang/clangparsejob.cpp:322
#66 0x00007f4287feb34c in
ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>,
ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#67 0x00007f4287feb12e in
ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&,
ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#68 0x00007f4287fec076 in
ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&,
ThreadWeaver::Thread*) () at /usr/lib/libKF5ThreadWeaver.so.5
#69 0x00007f4287fefdc2 in ThreadWeaver::Thread::run() () at
/usr/lib/libKF5ThreadWeaver.so.5
#70 0x00007f4284ee432a in () at /usr/lib/libQt5Core.so.5
#71 0x00007f428489ebb5 in () at /usr/lib/libc.so.6
#72 0x00007f4284920d90 in () at /usr/lib/libc.so.6

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to