[bugfix]Cpp::TemplateDeclaration::setSpecializedFrom

Artur Bać artur at ebasoft.com.pl
Mon Feb 18 10:45:25 UTC 2013


On 2013-02-10 12:15, Milian Wolff wrote:

> Can you reliably reproduce this bug? If so, with what project?
Yes, project is not opensource.

(gdb) back
#0  0x00007ffff4728425 in __GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff472bb8b in __GI_abort () at abort.c:91
#2  0x00007ffff4d28e2d in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff4d26f26 in ?? () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff4d26f53 in std::terminate() () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff4d2717e in __cxa_throw () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007fffbebfcfec in Cpp::TemplateDeclaration::setSpecializedFrom
(this=<optimized out>, other=0x7fff58105a08)
    at
/home/artur/projects/packages/kdevelop/languages/cpp/cppduchain/templatedeclaration.cpp:389

void TemplateDeclaration::setSpecializedFrom(TemplateDeclaration* other) {

  if(other && other->instantiatedFrom()) {
    setSpecializedFrom(other->instantiatedFrom());
    return;
  }
  if(other && other->specializedFrom().data()) {
    Declaration* data_ptr = other->specializedFrom().data();
    TemplateDeclaration* tdecl =
dynamic_cast<TemplateDeclaration*>(data_ptr);
    if( tdecl != this )
      setSpecializedFrom(tdecl);
    else
      throw std::exception(); <<<<<<<<<<<<<<< Line 389
    return;
  }


More information about the KDevelop-devel mailing list