New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compile Issues: 32-Bit Windows w/SSE2 active #2936
Comments
|
This works for me. |
|
Maybe some things to consider related with optimization. |
|
That's got to be a compiler bug. This is the line in question: If you look for the declaration of The question is whether it's just a warning going screwy or it's actually miscompiling things. If you add |
|
Similar to #2866 which was closed. |
|
Is this still a problem with later GCC? |
|
This was fixed in later GCC versions. |
Using:
make -j9 -k OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 STRIP_SYMBOLS=1 PTR64=0 NOWERROR=1 ARCHOPTS="-msse2 -mfpmath=sse"
Results:
GCC 7.2.0 detected
Compiling 3rdparty/sqlite3/sqlite3.c...
Compiling src/devices/cpu/saturn/saturn.cpp...
In function 'vdbePmaReadBlob.part.308',
inlined from 'vdbePmaReadBlob',
inlined from 'vdbePmaReadVarint.part.309' at ../../../../../3rdparty/sqlite3/sqlite3.c:85435:12,
inlined from 'vdbePmaReadVarint',
inlined from 'vdbePmaReaderNext' at ../../../../../3rdparty/sqlite3/sqlite3.c:85546:8:
../../../../../3rdparty/sqlite3/sqlite3.c:85392:5: error: 'memcpy': specified size between 2147483648 and 4294967295 exceeds maximum object size 2147483647 [-Werror=stringop-overflow=]
memcpy(p->aAlloc, &p->aBuffer[iBuf], nAvail);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'vdbePmaReadBlob.part.308',
inlined from 'vdbePmaReadBlob',
inlined from 'vdbePmaReadVarint.part.309' at ../../../../../3rdparty/sqlite3/sqlite3.c:85435:12,
inlined from 'vdbePmaReadVarint',
inlined from 'vdbePmaReaderInit.constprop' at ../../../../../3rdparty/sqlite3/sqlite3.c:85583:8,
inlined from 'vdbeMergeEngineLevel0' at ../../../../../3rdparty/sqlite3/sqlite3.c:87159:8:
../../../../../3rdparty/sqlite3/sqlite3.c:85392:5: error: 'memcpy': specified size between 2147483648 and 4294967295 exceeds maximum object size 2147483647 [-Werror=stringop-overflow=]
memcpy(p->aAlloc, &p->aBuffer[iBuf], nAvail);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../../../src/devices/cpu/saturn/saturn.cpp:84:0:
../../../../../src/devices/cpu/saturn/satops.hxx: In member function 'void saturn_device::saturn_exchange(int, int, int, int)':
../../../../../src/devices/cpu/saturn/satops.hxx:806:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
void saturn_device::saturn_exchange(int left, int begin, int count, int right)
^~~~~~~~~~~~~
../../../../../src/devices/cpu/saturn/satops.hxx:806:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
../../../../../src/devices/cpu/saturn/satops.hxx: In member function 'void saturn_device::saturn_copy(int, int, int, int)':
../../../../../src/devices/cpu/saturn/satops.hxx:824:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
void saturn_device::saturn_copy(int dest, int begin, int count, int src)
^~~~~~~~~~~~~
../../../../../src/devices/cpu/saturn/satops.hxx:824:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
../../../../../src/devices/cpu/saturn/satops.hxx: In member function 'void saturn_device::saturn_or(int, int, int, int)':
../../../../../src/devices/cpu/saturn/satops.hxx:1040:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
void saturn_device::saturn_or(int dest, int begin, int count, int src)
^~~~~~~~~~~~~
../../../../../src/devices/cpu/saturn/satops.hxx:1040:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
../../../../../src/devices/cpu/saturn/satops.hxx: In member function 'void saturn_device::saturn_and(int, int, int, int)':
../../../../../src/devices/cpu/saturn/satops.hxx:1055:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
void saturn_device::saturn_and(int dest, int begin, int count, int src)
^~~~~~~~~~~~~
../../../../../src/devices/cpu/saturn/satops.hxx:1055:6: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Werror=strict-overflow]
cc1plus.exe: all warnings being treated as errors
optional.make:16209: recipe for target '../../../../mingw-gcc/obj/x32/Release/src/devices/cpu/saturn/saturn.o' failed
make[2]: *** [../../../../mingw-gcc/obj/x32/Release/src/devices/cpu/saturn/saturn.o] Error 1
make[2]: Target 'all' not remade because of errors.
makefile:91: recipe for target 'optional' failed
make[1]: *** [optional] Error 2
cc1.exe: all warnings being treated as errors
sqlite3.make:277: recipe for target '../../../../mingw-gcc/obj/x32/Release/3rdparty/sqlite3/sqlite3.o' failed
make[2]: *** [../../../../mingw-gcc/obj/x32/Release/3rdparty/sqlite3/sqlite3.o] Error 1
make[2]: Target 'all' not remade because of errors.
makefile:58: recipe for target 'sqlite3' failed
make[1]: *** [sqlite3] Error 2
make[1]: Target 'all' not remade because of errors.
makefile:1015: recipe for target 'windows_x86' failed
make: *** [windows_x86] Error 2
make: Target 'all' not remade because of errors.
The text was updated successfully, but these errors were encountered: