Bug 360928 - UBSan: util/embeddedfreetree.h:748:24: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int'
Summary: UBSan: util/embeddedfreetree.h:748:24: runtime error: shift exponent 32 is to...
Status: CONFIRMED
Alias: None
Product: kdevplatform
Classification: Developer tools
Component: util (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-24 01:28 UTC by Kevin Funk
Modified: 2017-01-16 18:08 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Funk 2016-03-24 01:28:22 UTC
Looks dangerous enough to report.

/home/kfunk/devel/src/kf5/kdevplatform-stable/util/embeddedfreetree.h:748:24: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int'
    #0 0x7fc8a9ac28a3 in KDevelop::EmbeddedTreeRemoveItem<KDevelop::CodeModelItem, KDevelop::CodeModelItemHandler, 5>::newItemCount() const /home/kfunk/devel/src/kf5/kdevplatform-stable/util/embeddedfreetree.h:748:24
    #1 0x7fc8a9ab2267 in KDevelop::CodeModel::removeItem(KDevelop::IndexedString const&, KDevelop::IndexedQualifiedIdentifier const&) /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/codemodel.cpp:336:25
    #2 0x7fc8a9f0172f in KDevelop::Declaration::setInSymbolTable(bool) /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/declaration.cpp:630:7
    #3 0x7fc8a9ef1d4f in KDevelop::Declaration::~Declaration() /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/declaration.cpp:178:5
    #4 0x7fc8a9ef4176 in KDevelop::Declaration::~Declaration() /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/declaration.cpp:165:1
    #5 0x7fc8a9caf886 in KDevelop::DUContext::deleteLocalDeclarations() /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/ducontext.cpp:1018:5
    #6 0x7fc8a9cac80b in KDevelop::DUContext::~DUContext() /home/kfunk/devel/src/kf5/kdevplatform-stable/language/duchain/ducontext.cpp:442:3
    #7 0x7fc87c9c6360 in ClangDUContext<KDevelop::DUContext, 141>::~ClangDUContext() /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clangducontext.h:29:7
    #8 0x7fc87c9cb5bf in void qDeleteAll<QTypedArrayData<KDevelop::DUContext*>::const_iterator>(QTypedArrayData<KDevelop::DUContext*>::const_iterator, QTypedArrayData<KDevelop::DUContext*>::const_iterator) /usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:317:9
    #9 0x7fc87c9cb1c0 in void qDeleteAll<QVector<KDevelop::DUContext*> >(QVector<KDevelop::DUContext*> const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:325:5
    #10 0x7fc87c942ba9 in (anonymous namespace)::CurrentContext::~CurrentContext() /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:260:9
    #11 0x7fc87c9379aa in CXChildVisitResult (anonymous namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration, true>(CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1123:5
    #12 0x7fc87c9379aa in CXChildVisitResult (anonymous namespace)::Visitor::dispatchCursor<(CXCursorKind)22, (Decision)1, (Decision)0, (detail::enabler)0>(CXCursor, CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:881
    #13 0x7fc87c9379aa in (anonymous namespace)::visitCursor(CXCursor, CXCursor, void*) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1411
    #14 0x7fc87c40355a in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:208:11
    #15 0x7fc87c4057b4 in clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:654:9
    #16 0x7fc87c404e12 in clang::cxcursor::CursorVisitor::VisitLinkageSpecDecl(clang::LinkageSpecDecl*) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:1439:10
    #17 0x7fc87c404e12 in clang::declvisitor::Base<clang::declvisitor::make_ptr, clang::cxcursor::CursorVisitor, bool>::Visit(clang::Decl*) /home/kfunk/devel/build/llvm/tools/clang/include/clang/AST/DeclNodes.inc:83
    #18 0x7fc87c403c66 in clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:497:34
    #19 0x7fc87c40e6b4 in clang_visitChildren /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:4008:10
    #20 0x7fc87c937996 in CXChildVisitResult (anonymous namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration, true>(CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1121:9
    #21 0x7fc87c937996 in CXChildVisitResult (anonymous namespace)::Visitor::dispatchCursor<(CXCursorKind)22, (Decision)1, (Decision)0, (detail::enabler)0>(CXCursor, CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:881
    #22 0x7fc87c937996 in (anonymous namespace)::visitCursor(CXCursor, CXCursor, void*) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1411
    #23 0x7fc87c40355a in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:208:11
    #24 0x7fc87c4057b4 in clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:654:9
    #25 0x7fc87c404e12 in clang::cxcursor::CursorVisitor::VisitLinkageSpecDecl(clang::LinkageSpecDecl*) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:1439:10
    #26 0x7fc87c404e12 in clang::declvisitor::Base<clang::declvisitor::make_ptr, clang::cxcursor::CursorVisitor, bool>::Visit(clang::Decl*) /home/kfunk/devel/build/llvm/tools/clang/include/clang/AST/DeclNodes.inc:83
    #27 0x7fc87c403c66 in clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:497:34
    #28 0x7fc87c40e6b4 in clang_visitChildren /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:4008:10
    #29 0x7fc87c937996 in CXChildVisitResult (anonymous namespace)::Visitor::buildDeclaration<(CXCursorKind)22, KDevelop::Declaration, true>(CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1121:9
    #30 0x7fc87c937996 in CXChildVisitResult (anonymous namespace)::Visitor::dispatchCursor<(CXCursorKind)22, (Decision)1, (Decision)0, (detail::enabler)0>(CXCursor, CXCursor) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:881
    #31 0x7fc87c937996 in (anonymous namespace)::visitCursor(CXCursor, CXCursor, void*) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1411
    #32 0x7fc87c40355a in clang::cxcursor::CursorVisitor::Visit(CXCursor, bool) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:208:11
    #33 0x7fc87c4057b4 in clang::cxcursor::CursorVisitor::VisitDeclContext(clang::DeclContext*) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:654:9
    #34 0x7fc87c403fd5 in clang::cxcursor::CursorVisitor::VisitChildren(CXCursor) /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:529:20
    #35 0x7fc87c40e6b4 in clang_visitChildren /home/kfunk/devel/src/llvm/tools/clang/tools/libclang/CIndex.cpp:4008:10
    #36 0x7fc87c927420 in (anonymous namespace)::Visitor::Visitor(CXTranslationUnitImpl*, void*, QHash<void*, KDevelop::ReferencedTopDUContext> const&, bool) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1325:5
    #37 0x7fc87c927420 in Builder::visit(CXTranslationUnitImpl*, void*, QHash<void*, KDevelop::ReferencedTopDUContext> const&, bool) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/builder.cpp:1463
    #38 0x7fc87c9fa8d4 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:182:5
    #39 0x7fc87c9f97a9 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:113:9
    #40 0x7fc87c9f97a9 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:113:9
    #41 0x7fc87c9f97a9 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:113:9
    #42 0x7fc87c9f97a9 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:113:9
    #43 0x7fc87c9f97a9 in ClangHelpers::buildDUChain(void*, QMultiHash<void*, Import> const&, ParseSession const&, KDevelop::TopDUContext::Features, QHash<void*, KDevelop::ReferencedTopDUContext>&, ClangIndex*, std::function<bool ()> const&) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/duchain/clanghelpers.cpp:113:9
    #44 0x7fc87ce48e9e in ClangParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/clangparsejob.cpp:316:20
    #45 0x7fc87ce4b91c in non-virtual thunk to ClangParseJob::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) /home/kfunk/devel/src/kf5/kdevelop-stable/languages/clang/clangparsejob.cpp:215:21
    #46 0x7fc8a7ff364f in ThreadWeaver::IdDecorator::run(QSharedPointer<ThreadWeaver::JobInterface>, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x1664f)
    #47 0x7fc8a7ff3c8f in ThreadWeaver::Executor::run(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x16c8f)
    #48 0x7fc8a7ff27df in ThreadWeaver::Job::execute(QSharedPointer<ThreadWeaver::JobInterface> const&, ThreadWeaver::Thread*) (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x157df)
    #49 0x7fc8a7ff2289 in ThreadWeaver::Thread::run() (/usr/lib/x86_64-linux-gnu/libKF5ThreadWeaver.so.5+0x15289)
    #50 0x7fc8aeb0a7fd  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa57fd)
    #51 0x7fc8ae1bc6f9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76f9)
    #52 0x7fc8ad8cf2dc in clone /build/glibc-ALbY7_/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109

SUMMARY: AddressSanitizer: undefined-behavior /home/kfunk/devel/src/kf5/kdevplatform-stable/util/embeddedfreetree.h:748:24 in

Reproducible: Always

Steps to Reproduce:
Import heaptrack.git
Comment 1 Kevin Funk 2016-03-24 13:25:26 UTC
@David: Care to have a look at this one?