I tried to build with the following *FLAGS to optimize the build: -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing
The -Werror=* flags are important to detect cases where the compiler can try to optimiaze based on assuming Undefined Behavior (UB) cannot happen, and miscompile code that has UB in it. strict-aliasing issues are always bad but LTO can make them even worse.
I got this error (5.1.0_beta12932):
[5/7] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -DLINUX -DOOREXX_COPY_YEAR=\"2005-2025\" -DOPSYS_LINUX -DORX_BLD=0 -DORX_MOD=0 -DORX_REL=1 -DORX_REXXPATH=\"\" -DORX_SHARED_LIBRARY_EXT=\".so\" -DORX_SYSTEM_PROCESSOR=\"x86_64\" -DORX_SYS_STR=\"LINUX\" -DORX_VER=5 -D_GNU_SOURCE -Drxunixsys_EXPORTS -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/api/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/api -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932_build -I/rxunixsys -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/lib -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/common/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/behaviour -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/execution -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/memory -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/package -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/concurrency -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/expression -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/instructions -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/classes -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/classes/support -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/runtime -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/parser -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/messages -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/streamLibrary -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/platform/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/client -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/client/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/common/platform/unix -pipe -ggdb -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -std=gnu++11 -fPIC -MD -MT CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o -MF CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o.d -o CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o -c /var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/extensions/platform/unix/rxunixsys/rxunixsys.cpp
FAILED: CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o
/usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -DLINUX -DOOREXX_COPY_YEAR=\"2005-2025\" -DOPSYS_LINUX -DORX_BLD=0 -DORX_MOD=0 -DORX_REL=1 -DORX_REXXPATH=\"\" -DORX_SHARED_LIBRARY_EXT=\".so\" -DORX_SYSTEM_PROCESSOR=\"x86_64\" -DORX_SYS_STR=\"LINUX\" -DORX_VER=5 -D_GNU_SOURCE -Drxunixsys_EXPORTS -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/api/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/api -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932_build -I/rxunixsys -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/lib -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/common/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/behaviour -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/execution -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/memory -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/package -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/concurrency -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/expression -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/instructions -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/classes -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/classes/support -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/runtime -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/parser -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/messages -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/streamLibrary -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/platform/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/interpreter/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/client -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/client/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/common -I/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/rexxapi/common/platform/unix -pipe -ggdb -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -std=gnu++11 -fPIC -MD -MT CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o -MF CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o.d -o CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o -c /var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/extensions/platform/unix/rxunixsys/rxunixsys.cpp
/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/extensions/platform/unix/rxunixsys/rxunixsys.cpp: In function ‘_RexxObjectPtr* SysGettid_impl(RexxCallContext*)’:
/var/tmp/portage/dev-lang/oorexx-5.1.0_beta12932/work/oorexx-5.1.0-12932/extensions/platform/unix/rxunixsys/rxunixsys.cpp:401:48: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
401 | return context->UnsignedInt32ToObject(*(uint32_t *)&tid);
| ^~~~~~~~~~~~~~~~
cc1plus: some warnings being treated as errors
ninja: build stopped: subcommand failed.
* ERROR: dev-lang/oorexx-5.1.0_beta12932::gentoo failed (compile phase):
I tried to update to the latest code -- this made it worse (5.2.0_beta13004):
[25/350] /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -DLINUX -DOOREXX_COPY_YEAR=\"2005-2025\" -DOPSYS_LINUX -DORX_BLD=0 -DORX_MOD=0 -DORX_REL=2 -DORX_REXXPATH=\"\" -DORX_SHARED_LIBRARY_EXT=\".so\" -DORX_SYSTEM_PROCESSOR=\"x86_64\" -DORX_SYS_STR=\"LINUX\" -DORX_VER=5 -D_GNU_SOURCE -Drexx_EXPORTS -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/api/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/api -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004_build -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/lib -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/common/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/behaviour -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/package -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/concurrency -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/expression -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/instructions -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/support -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/runtime -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/parser -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/messages -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/streamLibrary -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/platform/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/client -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/client/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/common/platform/unix -pipe -ggdb -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -std=gnu++11 -fPIC -MD -MT CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o -MF CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o.d -o CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o -c /var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp
FAILED: CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o
/usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -DLINUX -DOOREXX_COPY_YEAR=\"2005-2025\" -DOPSYS_LINUX -DORX_BLD=0 -DORX_MOD=0 -DORX_REL=2 -DORX_REXXPATH=\"\" -DORX_SHARED_LIBRARY_EXT=\".so\" -DORX_SYSTEM_PROCESSOR=\"x86_64\" -DORX_SYS_STR=\"LINUX\" -DORX_VER=5 -D_GNU_SOURCE -Drexx_EXPORTS -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/api/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/api -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004_build -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/lib -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/common/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/behaviour -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/package -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/concurrency -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/expression -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/instructions -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/support -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/runtime -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/parser -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/messages -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/streamLibrary -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/platform/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/client -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/client/platform/unix -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/common -I/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/rexxapi/common/platform/unix -pipe -ggdb -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -std=gnu++11 -fPIC -MD -MT CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o -MF CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o.d -o CMakeFiles/rexx.dir/interpreter/classes/ArrayClass.cpp.o -c /var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp
In file included from /var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/runtime/RexxCore.h:301,
from /var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp:52:
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution/RexxVariable.hpp: In member function ‘void RexxVariable::set(RexxObject*)’:
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution/RexxVariable.hpp:74:18: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
74 | setField(variableValue, value);
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory/RexxMemory.hpp:350:68: note: in definition of macro ‘setField’
350 | #define setField(r, v) OrefSet(this, (RexxInternalObject *&)this->r, v)
| ^
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution/RexxVariable.hpp: In member function ‘void RexxVariable::setName(RexxString*)’:
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/execution/RexxVariable.hpp:89:54: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
89 | inline void setName(RexxString *name) { setField(variableName, name); }
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory/RexxMemory.hpp:350:68: note: in definition of macro ‘setField’
350 | #define setField(r, v) OrefSet(this, (RexxInternalObject *&)this->r, v)
| ^
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp: In member function ‘void ArrayClass::extend(size_t)’:
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp:2071:14: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
2071 | setField(expansionArray, newArray);
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory/RexxMemory.hpp:350:68: note: in definition of macro ‘setField’
350 | #define setField(r, v) OrefSet(this, (RexxInternalObject *&)this->r, v)
| ^
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp: In member function ‘void ArrayClass::extendMulti(RexxObject**, size_t, size_t)’:
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp:2553:14: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
2553 | setField(dimensions, (NumberArray *)newDimArray);
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory/RexxMemory.hpp:350:68: note: in definition of macro ‘setField’
350 | #define setField(r, v) OrefSet(this, (RexxInternalObject *&)this->r, v)
| ^
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/classes/ArrayClass.cpp:2556:14: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
2556 | setField(expansionArray, newArray);
/var/tmp/portage/dev-lang/oorexx-5.2.0_beta13004/work/oorexx-5.2.0-13004/interpreter/memory/RexxMemory.hpp:350:68: note: in definition of macro ‘setField’
350 | #define setField(r, v) OrefSet(this, (RexxInternalObject *&)this->r, v)
| ^
cc1plus: some warnings being treated as errors
ninja: build stopped: subcommand failed.
* ERROR: dev-lang/oorexx-5.2.0_beta13004::gentoo failed (compile phase):
Originally reported downstream: https://bugs.gentoo.org/952966
Exhaustive build log attached.
Anonymous
5.2 build log