Skip to content
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

Test failure on x86 #1584

Open
DarthGandalf opened this issue Feb 23, 2024 · 1 comment
Open

Test failure on x86 #1584

DarthGandalf opened this issue Feb 23, 2024 · 1 comment

Comments

@DarthGandalf
Copy link
Contributor

DarthGandalf commented Feb 23, 2024

[389/403] /usr/bin/i686-pc-linux-gnu-g++ -DSOL_ALL_SAFETIES_ON=1 -DSOL_PRINT_ERRORS=1 -DSOL_TESTS_SIZEOF_VOID_P=4 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -isystem /usr/include/lua5.1 -isystem /var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/include  -O2 -mar
ch=i686 -pipe -std=gnu++17 -ftemplate-backtrace-limit=0 -pedantic -Wall -Wpedantic -Wextra -fexec-charset=utf-8 -finput-charset=utf-8 -Wno-noexcept-type -Wno-unreachable-code -MD -MT tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_ALL_SAFETIES_ON.d
ir/source/1192_-_incorrect_alignment_calculation.cpp.o -MF tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_ALL_SAFETIES_ON.dir/source/1192_-_incorrect_alignment_calculation.cpp.o.d -o tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.s
imple.SOL_ALL_SAFETIES_ON.dir/source/1192_-_incorrect_alignment_calculation.cpp.o -c '/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp'                                                        
FAILED: tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_ALL_SAFETIES_ON.dir/source/1192_-_incorrect_alignment_calculation.cpp.o                                                                                                                         
/usr/bin/i686-pc-linux-gnu-g++ -DSOL_ALL_SAFETIES_ON=1 -DSOL_PRINT_ERRORS=1 -DSOL_TESTS_SIZEOF_VOID_P=4 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -isystem /usr/include/lua5.1 -isystem /var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/include  -O2 -march=i686 -p
ipe -std=gnu++17 -ftemplate-backtrace-limit=0 -pedantic -Wall -Wpedantic -Wextra -fexec-charset=utf-8 -finput-charset=utf-8 -Wno-noexcept-type -Wno-unreachable-code -MD -MT tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_ALL_SAFETIES_ON.dir/source/
1192_-_incorrect_alignment_calculation.cpp.o -MF tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_ALL_SAFETIES_ON.dir/source/1192_-_incorrect_alignment_calculation.cpp.o.d -o tests/regression_tests/simple/CMakeFiles/sol2.tests.regression.simple.SOL_
ALL_SAFETIES_ON.dir/source/1192_-_incorrect_alignment_calculation.cpp.o -c '/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp'                                                                  
/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp: In function ‘void CATCH2_INTERNAL_TEST_0()’:                                                                                                 
/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp:44:37: error: static assertion failed                                                                                                         
   44 |         static_assert(alignof(Test) == 8);                                                                                                                                                                                                                                
      |                       ~~~~~~~~~~~~~~^~~~                                                                                                                                                                                                                                  
/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp:44:37: note: the comparison reduces to ‘(4 == 8)’                                                                                             
/var/tmp/portage/dev-cpp/sol2-3.3.1/work/sol2-3.3.1/tests/regression_tests/simple/source/1192 - incorrect alignment calculation.cpp:56:16: error: return-statement with a value, in function returning ‘void’ [-fpermissive]                                                      
   56 |         return 0;                                                                                                                                                                                                                                                         
      |                ^                                                                                                                                                                                                                                                          

Related to #1192

Gentoo Linux

sol2 v3.3.1

# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/13/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-13.2.1_p20240113-r1/work/gcc-13-20240113/configure --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/13 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/13/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/13 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/13/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/13/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/13/include/g++-v13 --disable-silent-rules --disable-dependency-tracking --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/13/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 13.2.1_p20240113-r1 p12' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --with-arch=i686 --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --without-isl --enable-default-pie --enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.2.1 20240113 (Gentoo 13.2.1_p20240113-r1 p12)

https://bugs.gentoo.org/925076

@LinuxUser404
Copy link

Yeah, that implementation defined check fails on 32-bit targets not only with gcc, but also with clang. Looks like previously it was a UB failing on MSVC instead. The proper fix would require some expert to dig into, since it is not just the assert, but also a very real underlying alignment problem potentially leading to UB on some implementations. I think ASAN tests would catch this and provide more insight. It would be nice to have CI/CD which would check at least MSVC, clang and gcc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants