Bug 326266 - KDevelop crashes in KDevelop::AbstractType::makeDynamic while parsing specific c++ syntax
Summary: KDevelop crashes in KDevelop::AbstractType::makeDynamic while parsing specifi...
Status: RESOLVED DUPLICATE of bug 318972
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (old) (show other bugs)
Version: 4.5.1
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-19 15:26 UTC by Andrzej Rybczak
Modified: 2013-10-19 21:06 UTC (History)
0 users

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 Andrzej Rybczak 2013-10-19 15:26:33 UTC
KDevelop-4.5.1 crashes while trying to parse file https://github.com/arybczak/ncmpcpp/blob/955d308bca9ff24ba56dd0669bb3608b3f29ca07/src/helpers.cpp#L32 - after line 32 is changed to "NC::Menu<MPD::Song> &w = myPlaylist->main();" it no longer crashes.

Here's the backtrace:

kdevelop(14481)/kdevelop (cpp support) CPPParseJob::mergeDefines: DEFINES: QHash()
kdevelop(14481)/kdevelop (cpp support) CPPInternalParseJob::run: ===-- PARSING --===>  "/home/unknown/Programowanie/ncmpcpp/src/helpers.cpp"
kdevelop(14481)/kdevelop (cpp support) CPPInternalParseJob::run: updating duchain for "/home/unknown/Programowanie/ncmpcpp/src/helpers.cpp"
kdevelop(14481)/kdevelop (cpp support) ContextBuilder::buildContexts: ContextBuilder::buildContexts: recompiling

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3edee700 (LWP 14701)]
0x00007ffff1d2603c in KDevelop::AbstractType::makeDynamic (this=0x0)
    at /var/tmp/portage/dev-util/kdevplatform-1.5.1/work/kdevplatform-1.5.1/language/duchain/types/abstracttype.cpp:35
35	/var/tmp/portage/dev-util/kdevplatform-1.5.1/work/kdevplatform-1.5.1/language/duchain/types/abstracttype.cpp: No such file or directory.
(gdb) bt
#0  0x00007ffff1d2603c in KDevelop::AbstractType::makeDynamic (this=0x0)
    at /var/tmp/portage/dev-util/kdevplatform-1.5.1/work/kdevplatform-1.5.1/language/duchain/types/abstracttype.cpp:35
#1  0x00007ffff1d26728 in KDevelop::AbstractType::d_func_dynamic (this=0x0)
    at /var/tmp/portage/dev-util/kdevplatform-1.5.1/work/kdevplatform-1.5.1/language/duchain/types/abstracttype.h:284
#2  0x00007ffff1d261b6 in KDevelop::AbstractType::setModifiers (this=0x0, modifiers=0)
    at /var/tmp/portage/dev-util/kdevplatform-1.5.1/work/kdevplatform-1.5.1/language/duchain/types/abstracttype.cpp:57
#3  0x00007fffd1c89a95 in TypeBuilder::createIntegralTypeForExpression (this=0x7fff3eded000,
    expression=0x7ffef01f75e8)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/typebuilder.cpp:469
#4  0x00007fffd1c89db2 in TypeBuilder::createTypeForInitializer (this=0x7fff3eded000,
    node=0x7ffef01f7458)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/typebuilder.cpp:508
#5  0x00007fffd1c4827f in ContextBuilder::visitDeclarator (this=0x7fff3eded000,
    node=0x7ffef01f7268)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:937
#6  0x00007fffd1c5c26a in DeclarationBuilder::visitDeclarator (this=0x7fff3eded000,
    node=0x7ffef01f7268)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/declarationbuilder.cpp:532
#7  0x00007fffd1c480ff in ContextBuilder::visitInitDeclarator (this=0x7fff3eded000,
    node=0x7ffef01f7638)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:912
#8  0x00007fffd1c5a488 in DeclarationBuilder::visitInitDeclarator (this=0x7fff3eded000,
    node=0x7ffef01f7638)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/declarationbuilder.cpp:256
#9  0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f7638)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#10 0x00007fffd1c8a7f1 in TypeBuilder::visitSimpleDeclaration (this=0x7fff3eded000,
    node=0x7ffef01f7678)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/typebuilder.cpp:672
#11 0x00007fffd1c5b65c in DeclarationBuilder::visitSimpleDeclaration (this=0x7fff3eded000,
    node=0x7ffef01f7678)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/declarationbuilder.cpp:422
#12 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f7678)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#13 0x00007fffd197421a in DefaultVisitor::visitDeclarationStatement (this=0x7fff3eded060,
    node=0x7ffef01f76c0)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/default_visitor.cpp:104
#14 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f76c0)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#15 0x00007fffd1975b70 in visitNodes<StatementAST*> (v=0x7fff3eded060, nodes=0x7ffef01faa48)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.h:139
#16 0x00007fffd197405d in DefaultVisitor::visitCompoundStatement (this=0x7fff3eded060,
    node=0x7ffef01f71f0)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/default_visitor.cpp:73
#17 0x00007fffd1c47942 in ContextBuilder::visitCompoundStatement (this=0x7fff3eded000,
    node=0x7ffef01f71f0)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:674
#18 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f71f0)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#19 0x00007fffd1c48894 in ContextBuilder::visitIfStatement (this=0x7fff3eded000,
    node=0x7ffef01f6c70)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/c---Type <return> to continue, or q <return> to quit---
ontextbuilder.cpp:1007
#20 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f6c70)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#21 0x00007fffd1975b70 in visitNodes<StatementAST*> (v=0x7fff3eded060, nodes=0x7ffef01fc668)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.h:139
#22 0x00007fffd197405d in DefaultVisitor::visitCompoundStatement (this=0x7fff3eded060,
    node=0x7ffef01f68c8)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/default_visitor.cpp:73
#23 0x00007fffd1c47942 in ContextBuilder::visitCompoundStatement (this=0x7fff3eded000,
    node=0x7ffef01f68c8)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:674
#24 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f68c8)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#25 0x00007fffd1c475e9 in ContextBuilder::visitFunctionDefinition (this=0x7fff3eded000,
    node=0x7ffef01fc680)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:592
#26 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01fc680)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#27 0x00007fffd1975b06 in visitNodes<DeclarationAST*> (v=0x7fff3eded060,
    nodes=0x7ffef0126f90)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.h:139
#28 0x00007fffd1975295 in DefaultVisitor::visitTranslationUnit (this=0x7fff3eded060,
    node=0x7ffef01f5e90)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/default_visitor.cpp:425
#29 0x00007fffd19784e2 in Visitor::visit (this=0x7fff3eded060, node=0x7ffef01f5e90)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/parser/visitor.cpp:124
#30 0x00007fffd1c44eeb in ContextBuilder::startVisiting (this=0x7fff3eded000,
    node=0x7ffef01f5e90)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:187
#31 0x00007fffd1c4b975 in KDevelop::AbstractContextBuilder<AST, NameAST>::supportBuild (
    this=0x7fff3eded000, node=0x7ffef01f5e90, context=0x7ffef692a840)
    at /usr/include/kdevplatform/language/duchain/builders/abstractcontextbuilder.h:133
#32 0x00007fffd1c467a9 in ContextBuilder::buildContexts (this=0x7fff3eded000, file=...,
    node=0x7ffef01f5e90, includes=0x7fff3eded3e0, updateContext=..., removeOldImports=false)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/contextbuilder.cpp:422
#33 0x00007fffd1c59843 in DeclarationBuilder::buildDeclarations (this=0x7fff3eded000,
    file=..., node=0x7ffef01f5e90, includes=0x7fff3eded3e0, updateContext=...,
    removeOldImports=false)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppduchain/declarationbuilder.cpp:96
#34 0x00007fffd21c807f in CPPInternalParseJob::run (this=0x8484a40)
    at /var/tmp/portage/dev-util/kdevelop-4.5.1/work/kdevelop-4.5.1/languages/cpp/cppparsejob.cpp:644
#35 0x00007fffec386a9a in ?? () from /usr/lib64/libthreadweaver.so.4
#36 0x00007fffec386c11 in ThreadWeaver::Job::execute(ThreadWeaver::Thread*) ()
   from /usr/lib64/libthreadweaver.so.4
#37 0x00007fffec388a63 in ?? () from /usr/lib64/libthreadweaver.so.4
#38 0x00007fffec38627f in ?? () from /usr/lib64/libthreadweaver.so.4
#39 0x00007fffec38633b in ThreadWeaver::Thread::run() () from /usr/lib64/libthreadweaver.so.4
#40 0x00007ffff5c1638f in ?? () from /usr/lib64/qt4/libQtCore.so.4
#41 0x00007ffff4647e03 in start_thread () from /lib64/libpthread.so.0
#42 0x00007ffff494406d in clone () from /lib64/libc.so.6



Reproducible: Always

Steps to Reproduce:
1. Import ncmpcpp into KDevelop (using its own build system)
2. Open helpers.cpp
3. Observe the crash as KDevelop tries to parse the file
Actual Results:  
Crash.

Expected Results:  
Proper parsing.

Sorry for bringing ncmpcpp into the scope, but I had trouble with minimizing the testcase (I thought it was auto &... that was triggering the crash, but apparently it's not).
Comment 1 Milian Wolff 2013-10-19 21:06:03 UTC

*** This bug has been marked as a duplicate of bug 318972 ***