You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ppc_fpu.cc: In function ‘void ppc_opc_frsqrtex(PPC_CPU_State&)’:
ppc_fpu.cc:1870:63: error: cannot bind packed field ‘aCPU.PPC_CPU_State::fpr[frD]’ to ‘uint64&’ {aka ‘long unsigned int&’}
1870 | aCPU.fpscr |= ppc_fpu_pack_double(aCPU.fpscr, D, aCPU.fpr[frD]);
| ~~~~~~~~~~~~^
Apparently, the C++ standards changed at some point, and referencing into a packed struct, means that you cannot guarantee alignment, which could cause issues on some architectures that do not permit unaligned accesses, so GCC decided that this dictates that the code should be prevented from compiling.
Confirmed and reproducable on EndeavourOS as well (Arch based) with GCC version 10.1.0
Ill try to compile out on a ubuntu18 docker image which still have both 7.1.0 and 8.0.0 GCC
Update:
docker build seems successful but yet to test it as i dont have a valid MacOSX disk file rn
I'll make a release in my fork if that doesn't breach GPLv2
Apparently, the C++ standards changed at some point, and referencing into a packed struct, means that you cannot guarantee alignment, which could cause issues on some architectures that do not permit unaligned accesses, so GCC decided that this dictates that the code should be prevented from compiling.
GCC version info:
The text was updated successfully, but these errors were encountered: