User forums > General (but related to Code::Blocks)
GCC 4.4.0-tdm-1 for MinGW (with installer)
thomas:
Hmm actually it turns out my my target-specific macros contain
#if(GCC_VERSION >= 440)
#define cold_func __attribute__ (( __cold__, optimize("Os") ))
and removing the optimize("Os") removes the ICE after a clean rebuild. So it's "optimize", not "cold".
Interestingly, it seems that anything other than "O1" gives an ICE... hmm...
thomas:
Ok, I've manually tried all options that the big-O options turn on one by one, and -fcaller-saves is the culprit.
If one writes __attribute__ (( __optimize__ ("Os,no-caller-saves") )) the ICE is gone.
TDragon:
Would you by any chance be able to post code for a testcase?
thomas:
Well, like I said, if I make a new project with just a main() function and the offending attribute declaration and a bogus function definition, the ICE does not occur, so that'll be no help. Posting the entire project is not an option, unluckily.
However, as described above, I found out that -fcaller-saves (which O2, O3, Os enable) is the culprit. Explicitely disabling caller saves makes the ICE go away. This might possibly give someone interested in the problem a clue where to look.
Alternatively, is there a way to tell gcc not to install signal handlers? Since it reports a segfault, this should actually kick off the just-in-time debugger if gcc didn't catch the exception, so I should be able to get a core dump.
ollydbg:
Excuse me, What does the ICE means?
Thanks.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version