Opened 11 months ago

Closed 5 weeks ago

#9686 closed defect (wontfix)

Two lines in one particular method crash compiler (msvc14 , Release configuration)

Reported by: Gufino2 Owned by: csnover
Priority: normal Component: --Unset--
Keywords: Cc:
Game:

Description

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.

Change History (1)

comment:1 Changed 5 weeks ago by csnover

Keywords: compiler crash msvc14 removed
Owner: set to csnover
Resolution: wontfix
Status: newclosed

Thanks for your report! Since this is a compiler error for an unreleased engine, it will not affect current releases, so I am going to close this ticket for the moment in the interest of trying to keep the list of bugs in the bug tracker manageable. In the meantime, if this problem still occurs in the latest VS2017, please make sure to report it to Microsoft so they can fix the compiler.

Note: See TracTickets for help on using tickets.