lqt
lqt copied to clipboard
cpptoxml crash on Qt 4.8.1's QStringBuilder
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 :-(
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)