User forums > Using Code::Blocks

crash in code::blocks svn5844 apparently in code completion

<< < (3/4) > >>

MortenMacFly:

--- Quote from: jens on October 06, 2009, 01:09:59 pm ---I can confirm this issue with your test-project on debian 64-bit.

--- End quote ---
I can't reproduce, still (on Windows 32bit). :-(

Jenna:
C::B reliable bails out even on windows (if I use my fantastically step-by-step instruction).

It seems there must be exactly one typdef that starts with the same characters (case does not matter) than a (builtin ?) type and no other tokens, that make cc kick in at this time.

The same happens for double on linux if mathdef.h gets parsed (contains typedef double double_t;) and no other tokens start with dou.

blueshake:

--- Quote from: jens on October 06, 2009, 02:25:26 pm ---It's an endless-loop in FindAIMatches in nativeparser.cpp.
If I comment out the if-block starting with if (local_result.size() == 1) (lines 1720 - 1747) it works again, but most likely break other stuff.

The block was added in svn r5770 (merge with old cc-branch) and originally added in svn 5685 to cc-refactoring-branch.

To reproduce the crash (or better the endless-loop) on windows, you can do the following:


* find the definition of VOID (it is in winnt.h in my MinGW-install),
* comment it out
* add typedef void VOID; in a simple hello-world console-project
* save it
* and after typing vo it hangs (if cc kicks in after three characters).

This "works" at least for me.



--- End quote ---
Another simple way to solve this

--- Code: ---Token* tdef = DoAddToken(tkClass, components.front(), lineNr, 0, 0, args);
--- End code ---
In this thread,http://forums.codeblocks.org/index.php/topic,11187.msg76830.html#msg76830
maybe this is the reason why the suggestion list flashed.

MortenMacFly:

--- Quote from: jens on October 06, 2009, 02:25:26 pm ---The block was added in svn r5770 (merge with old cc-branch) and originally added in svn 5685 to cc-refactoring-branch.

--- End quote ---

--- Quote from: jens on October 06, 2009, 02:25:26 pm ---if (local_result.size() == 1) (lines 1720 - 1747)

--- End quote ---
Harhar! Now I know why it works for me: I have experimentally commented out that whole section as we were discussing about that. To be honest: I don't believe this section is necessary anymore. So far everything concerning typedefs (what this block was fort) works just fine here. I'll probably commit later. For now: Just remove that section in your local copy (all of you affected).

frithjofh:
Confirmed, commenting out those lines solves the issue here...

Many thanks, greetings from Asturias

nausea  :D

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version