Opened 2 weeks ago
Two lines in one particular method crash compiler (msvc14 , Release configuration)
|Reported by:||Gufino2||Owned by:|
|Keywords:||compiler crash msvc14||Cc:|
I cloned the repo (master, 8e303c77052bdd691d67855c0103e23b69ade3bb ), compiled the create_project solution with visual studio 2015, generated the scummvm solution using create_project.bat (option "a", all engines), then I tried to build scummvm solution in both Debug and Release configurations.
Debug builds fine, but if I try to build Release, in the final steps the linker tries to generate code (it uses LTCG for better optimization) but it crashes with a C1063: compiler limit: compiler stack overflow error.
I managed to find out the "culprit": it's the method "GroupMan::groupGetDamageCreatureOutcome" in file group.cpp in engines/dm
In depth, the compiler crash is caused by the following two lines of said method. If you try and comment out those line, Release builds fine:
groupDirections = getGroupValueUpdatedWithCreatureValue(groupDirections, curCreatureIndex, getCreatureValue(groupDirections, nextCreatureIndex));
groupCells = getGroupValueUpdatedWithCreatureValue(groupCells, curCreatureIndex, getCreatureValue(groupCells, nextCreatureIndex));
Last time I tried to clone the repo and build sources was about two months ago, and that old version did not have this problem.