Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => CodeCompletion redesign => Topic started by: hongruiqi on March 01, 2010, 10:43:30 am

Title: CC doesn't work inside case
Post by: hongruiqi on March 01, 2010, 10:43:30 am
CC doesn't work inside case
code:
typedef struct _me
{
    int X;
   int Y;
}me;
------------------------
int i=0;
switch(i)
{
    case 0:
    {
          me temp;
          temp.   //here it doesn't work
    }
.......
}
Title: Re: CC doesn't work inside case
Post by: blueshake on March 01, 2010, 12:52:44 pm
of course it don't work because it is not parsed.And it is not easy to do this.
Title: Re: CC doesn't work inside case
Post by: Loaden on March 01, 2010, 02:47:05 pm
Wow, Eclipse CDT work fine. :lol:
Title: Re: CC doesn't work inside case
Post by: ollydbg on March 02, 2010, 03:21:05 am
See the code snippets in parserthread.cpp
Code
        else if (   (token==ParserConsts::kw_while)
                 || (token==ParserConsts::kw_if)
                 || (token==ParserConsts::kw_do)
                 || (token==ParserConsts::kw_else)
                 || (token==ParserConsts::kw_for)
                 || (token==ParserConsts::kw_switch) )
        {
            if (!m_Options.useBuffer || m_Options.bufferSkipBlocks)
                SkipToOneOfChars(ParserConsts::semicolonclbrace, true);
            else
                m_Tokenizer.GetToken(); //skip args
            m_Str.Clear();
        }
So, you know, all the statement under "switch" clause was skipped.