Bug 68726 - crash on cpp namespace text completion
Summary: crash on cpp namespace text completion
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: Code completion (show other bugs)
Version: 3.0.0b1
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-21 12:00 UTC by Pau Estalella
Modified: 2003-11-25 13:29 UTC (History)
1 user (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 Pau Estalella 2003-11-21 12:00:47 UTC
Version:           3.0.0b1 (using KDE KDE 3.1.1)
Installed from:    Debian stable Packages
Compiler:          gcc (GCC) 3.3 20030226 (prerelease) (SuSE Linux) 
OS:          Linux

Given the following code in a .h project file:

class Triangle : public sir::Triangle
{

};

If I delete the ':Triangle' part in 'sir::Triangle', and then try to add ':', KDevelop crashes.
sir is a namespace containing many, many classes and function definitions. This namespace was imported using the Persistant Class Store facility in the Project Options dialog.

Backtrace follows:

[New Thread 16384 (LWP 29742)]
[New Thread 32769 (LWP 29748)]
[New Thread 16386 (LWP 29749)]
0x413cb3ba in waitpid () from /lib/libpthread.so.0
#0  0x413cb3ba in waitpid () from /lib/libpthread.so.0
#1  0x40ad2c89 in KCrash::defaultCrashHandler(int) ()
   from /opt/kde3/lib/libkdecore.so.4
#2  0x413ca1ec in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>
#4  0x410ea87e in QGList::QGList(QGList const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#5  0x424981fe in scopeOfNode(AST*, QStringList&) ()
   from /scratch/paue/local/lib/kde3/libkdevcppsupport.so
#6  0x424827db in CppCodeCompletion::completeText() ()
   from /scratch/paue/local/lib/kde3/libkdevcppsupport.so
#7  0x4247da18 in CppCodeCompletion::slotTimeout() ()
   from /scratch/paue/local/lib/kde3/libkdevcppsupport.so
#8  0x4248dd34 in CppCodeCompletion::qt_invoke(int, QUObject*) ()
   from /scratch/paue/local/lib/kde3/libkdevcppsupport.so
#9  0x40e708e7 in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#10 0x40e7078f in QObject::activate_signal(int) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#11 0x41169139 in QTimer::timeout() () from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0x40e92433 in QTimer::event(QEvent*) () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x40e0f5f8 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0x40e0eb50 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x40a5f929 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#16 0x40de6935 in QEventLoop::activateTimers() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0x40dc3974 in QEventLoop::processEvents(unsigned) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0x40e23b83 in QEventLoop::enterLoop() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x40e23a76 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x40e0f87f in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0x08062899 in main ()
#22 0x41529857 in __libc_start_main () from /lib/libc.so.6
Comment 1 Pau Estalella 2003-11-21 12:10:55 UTC
BTW, I'm on a Suse 8.2 platform, using a compiled from sources KDevelop.
Comment 2 Jens Dagerbo 2003-11-21 22:13:46 UTC
Confirmed. Exact same backtrace.
Comment 3 Jens Dagerbo 2003-11-22 00:01:08 UTC
OK.. I think I understand this one..

If you have:

class A
{
};

and then add a namespaced baseclass:

class A : public B:: <crash>
{
};

it crashes. The problem appears to be that the parser is convinced it has found a function definition, but when this is not the case it goes belly up.

I added a hotfix to avoid the crash, but I'm only changing the severity to normal instead of closing, as the parser is still wrong.

(Curiously though, the hotfix makes the code behave as if it was correct in my test case. I have no idea if it actually is correct though. )

Roberto? :)
Comment 4 Jens Dagerbo 2003-11-25 13:29:02 UTC
I just realized that the "cannot complete from namespace" problem is already reported, and since the crash is fixed...

Closing.

(in part a dupe of bug #58502)
Comment 5 Jens Dagerbo 2003-11-25 13:29:51 UTC
Change back to CRASH to be correct in the bug database.