Browse Source

windows: fix(workaround) illegal instruction in release build

win64
nillerusr 2 years ago
parent
commit
ff2211f0ad
  1. 2
      .github/workflows/build.yml
  2. 11
      engine/tmessage.cpp

2
.github/workflows/build.yml

@ -46,7 +46,7 @@ jobs: @@ -46,7 +46,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Build windows-i386
- name: Build windows-amd64
run: |
git submodule init && git submodule update
./waf.bat configure -T debug -8

11
engine/tmessage.cpp

@ -322,10 +322,17 @@ int ParseDirective( const char *pText ) @@ -322,10 +322,17 @@ int ParseDirective( const char *pText )
{
if ( ParseFloats( pText, tempFloat, 4 ) )
{
for ( int i = 0; i < 4; ++i )
// that's original code, msvc2015 generates illegal instruction on amd64 architecture
/*for ( int i = 0; i < 4; ++i )
{
gMessageParms.boxcolor[ i ] = (byte)(int)tempFloat[ i ];
}
}*/
// workaround
gMessageParms.boxcolor[0] = (int)tempFloat[0];
gMessageParms.boxcolor[1] = (int)tempFloat[1];
gMessageParms.boxcolor[2] = (int)tempFloat[2];
gMessageParms.boxcolor[3] = (int)tempFloat[3];
}
}
else if ( IsToken( pText, "clearmessage" ) )

Loading…
Cancel
Save