lqt icon indicating copy to clipboard operation
lqt copied to clipboard

cpptoxml crash on Qt 4.8.1's QStringBuilder

Open starwing opened this issue 12 years ago • 1 comments

This is a small crash case, from Qt 4.8.1

template <typename T> struct QConcatenable {};
template <typename A, typename B>
class QStringBuilder
{
private:
    typedef QConcatenable<QStringBuilder<A, B> > Concatenable;
    typedef typename Concatenable::ConvertTo ConvertTo;
};

It seems that codemodel.cpp in parser has some issue in findItem, when it find a typedef in middle of a qualified name, it don't resolve it, but ignore it. so typedef ...::ConvertTo ConvertTo cause a dead loop in resolveType func, makes stack overflow :-(

starwing avatar Jun 30 '12 14:06 starwing

Something similar was done to make it possible to parse Qt 4.8 headers (see this commit), but since lqt does not work with 4.8 (multithreading issues), no attempt was made to parse 4.8.1 headers. I will look at this when I handle the threading issues with 4.8. Any pointers on how to solve this are welcome.

(besides, I will be trying to create a Clang-based tool to do the parsing instead of cpptoxml)

mkottman avatar Jun 30 '12 18:06 mkottman