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:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Build windows-i386 - name: Build windows-amd64
run: | run: |
git submodule init && git submodule update git submodule init && git submodule update
./waf.bat configure -T debug -8 ./waf.bat configure -T debug -8

11
engine/tmessage.cpp

@ -322,10 +322,17 @@ int ParseDirective( const char *pText )
{ {
if ( ParseFloats( pText, tempFloat, 4 ) ) 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 ]; 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" ) ) else if ( IsToken( pText, "clearmessage" ) )

Loading…
Cancel
Save