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

            Bug ID: 412410
           Summary: Segfault when mouse over on a typedef
           Product: kdevelop
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Language Support: CPP (Clang-based)
          Assignee: kdevelop-bugs-n...@kde.org
          Reporter: alex.mur...@gmx.ch
  Target Milestone: ---

SUMMARY
KDevelop will crash when hovering the mouse over a typedef'd forward declared
struct.


STEPS TO REPRODUCE
1) Add foo.h header file to project with following content:

typedef struct foo foo;
void bar(foo* bla);

2) hover your mouse over the type "foo".

OBSERVED RESULT
KDevelop segfaults. GDB backtrace:

#0  0x00007ffff6edf7fe in
KDevelop::PersistentSymbolTable::declarations(KDevelop::IndexedQualifiedIdentifier
const&) const () from /usr/lib64/libKDevPlatformLanguage.so.54
#1  0x00007ffff6ee17f4 in
KDevelop::PersistentSymbolTable::filteredDeclarations(KDevelop::IndexedQualifiedIdentifier
const&, Utils::StorableSet<KDevelop::IndexedTopDUContext,
KDevelop::IndexedTopDUContextIndexConversion,
KDevelop::RecursiveImportRepository, true, Utils::DummyLocker> const&) const ()
   from /usr/lib64/libKDevPlatformLanguage.so.54
#2  0x00007ffff6ef32c7 in
KDevelop::DeclarationId::declaration(KDevelop::TopDUContext const*, bool) const
() from /usr/lib64/libKDevPlatformLanguage.so.54
#3  0x00007ffff6e58da0 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#4  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#5  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#6  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#7  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#8  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#9  0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#10 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#11 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#12 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#13 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#14 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#15 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#16 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#17 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#18 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#19 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#20 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#21 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#22 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#23 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
#24 0x00007ffff6e58db9 in
KDevelop::AbstractDeclarationNavigationContext::declarationSizeInformation(KDevelop::DUChainPointer<KDevelop::Declaration>
const&, KDevelop::TopDUContext const*) () from
/usr/lib64/libKDevPlatformLanguage.so.54
etc...

Looks like a stack overflow, as there are tens of thousands of the same
function.


EXPECTED RESULT
It shouldn't crash!


SOFTWARE/OS VERSIONS
I'm using dev-util/kdevelop-5.4.1 from Gentoo's package manager.

4.19.66-gentoo #1 SMP Mon Aug 26 14:56:58 CEST 2019 x86_64 AMD Ryzen
Threadripper 1950X 16-Core Processor AuthenticAMD GNU/Linux

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

Reply via email to