https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114720
Bug ID: 114720 Summary: gcc.misc-tests/gcov-22.c loops Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: gcov-profile Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org Target Milestone: --- Target: sparc*-sun-solaris2.11, sparc64-unknown-linux-gnu The new gcc.misc-tests/gcov-22.c test loops on Solaris/SPARC (32 and 64-bit) and Linux/sparc64: WARNING: gcc.misc-tests/gcov-22.c execution test program timed out. +FAIL: gcc.misc-tests/gcov-22.c execution test +FAIL: gcc.misc-tests/gcov-22.c gcov: 0 failures in line counts, 0 in branch percentages, 32 in condition/decision, 0 in return percentages, 0 in intermediate format [...] truss -u reveals the test loops in longjmp like this: /1@1: -> libc:longjmp(0x25450, 0x1, 0xffbfe9e8, 0x12b04) /1@1: <- libc:longjmp() = 1 /1@1: -> libc:longjmp(0x25450, 0x1, 0xffbfe9e8, 0x12b04) /1@1: <- libc:longjmp() = 1 [...] I'm astonished the test works anywere, actually. AFAICS, the issue is this: setdest -> setjmp returns 0 setdest returns 2 -> jump -> longjmp make setdest return 1 -> jump -> longjmp ... continuing ad infinitum.