@all.
I find the bug why the parser get stuck when parsing the VC 2005 header files:
Here is the detailed report.
I found that the parser in CC will loop infinitively in parsing these code:
in the header file: vc\include\crtdefs.h, around line: 2043.
typedef struct localeinfo_struct
{
pthreadlocinfo locinfo;
pthreadmbcinfo mbcinfo;
} _locale_tstruct, *_locale_t;
and the bug seems in the void ParserThread::HandleTypedef(), there is a while loop in this function.
void ParserThread::HandleTypedef(){
...
while(true)
{
token = m_Tokenizer.GetToken();
peek = m_Tokenizer.PeekToken();
......
}
}
Unluckily, this is a infinit loop, and we can't break the loop. each time, we will get the token = "_locale_tstruct" and peek = "," , So, this is the REASON why many C::B users who use VC compilers will get their IDE hangs.
So, there is a logic error in handling typedef statement....