The gm2/extensions/run/pass/vararg2.mod test FAILs on Solaris/SPARC (32 and 64-bit) since its introduction: FAIL: gm2/extensions/run/pass/vararg2.mod execution, -O FAIL: gm2/extensions/run/pass/vararg2.mod execution, -O -g FAIL: gm2/extensions/run/pass/vararg2.mod execution, -O3 -fomit-frame-pointer FAIL: gm2/extensions/run/pass/vararg2.mod execution, -O3 -fomit-frame-pointer -finline-functions FAIL: gm2/extensions/run/pass/vararg2.mod execution, -Os FAIL: gm2/extensions/run/pass/vararg2.mod execution, -g There are also gcc-testresults reports for Linus/s390x and Linux/m68k. On Solaris, the test prints parameter is hello world and length 0 executed /var/gcc/regression/master/11.4-gcc/build/gcc/testsuite/gm21/vararg2.x0 with result fail All affected targets are big-endian, though I don't yet see how this affects the test.
Thanks this is a duplicate of Bug 114133 (or visa versa).
GCC 14.1 is being released, retargeting bugs to GCC 14.2.
The releases/gcc-14 branch has been updated by Gaius Mulley <gaius@gcc.gnu.org>: https://gcc.gnu.org/g:07dab3f6b56c711dcd737d856cf01a597a2e1626 commit r14-10179-g07dab3f6b56c711dcd737d856cf01a597a2e1626 Author: Gaius Mulley <gaiusmod2@gmail.com> Date: Tue May 7 19:51:08 2024 +0100 [PR modula2/113768][PR modula2/114133] bugfix constants must be cast prior to vararg call This bug fix corrects the test codes below by converting the constant literals to the type required by C. In the testcases below the values, 1 etc were converted into the INTEGER type before being passed to a C vararg function. By default in modula2 constant literal ordinals are represented as the ZTYPE (the largest GCC integer type node). gcc/testsuite/ChangeLog: PR modula2/113768 PR modula2/114133 * gm2/extensions/run/pass/callingc10.mod: Convert constant literal numbers into INTEGER. * gm2/extensions/run/pass/callingc11.mod: Ditto. * gm2/extensions/run/pass/vararg2.mod: Ditto. * gm2/iso/run/pass/packed.mod: Emit a printf as a runtime diagnostic. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
Closing now that the patch has been applied.