https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88390
Bug ID: 88390 Summary: [9 regression] g++.dg/tree-prof/pr57451.C FAILs Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: ebotcazou at gcc dot gnu.org, hubicka at gcc dot gnu.org Target Milestone: --- Target: sparc*-sun-solaris2.* Created attachment 45170 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45170&action=edit pr57451.s @ r266583, ok Between 20181203 (r266766) and 20181204 (r266798), the g++.dg/tree-prof/pr57451.C test started to FAIL on Solaris/SPARC (32 and 64-bit): +UNRESOLVED: g++.dg/tree-prof/pr57451.C compilation, -fprofile-use -D_PROFILE_USE +FAIL: g++.dg/tree-prof/pr57451.C execution, -fprofile-generate -D_PROFILE_GENERATE +UNRESOLVED: g++.dg/tree-prof/pr57451.C execution, -fprofile-use -D_PROFILE_USE Thread 2 received signal SIGILL, Illegal instruction. [Switching to Thread 1 (LWP 1)] 0x00012014 in main () at /vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/tree-prof/pr57451.C:21 21 data = getData(1); 1: x/i $pc => 0x12014 <main(int, char**)+164>: illtrap 0x4 This happens only at -O1 and above. 0x12000 <main(int, char**)+144>: add %fp, -4, %g1 0x12004 <main(int, char**)+148>: mov 1, %o0 0x12008 <main(int, char**)+152>: st %g1, [ %sp + 0x40 ] 0x1200c <main(int, char**)+156>: call 0x11e14 <getData(int)> 0x12010 <main(int, char**)+160>: nop => 0x12014 <main(int, char**)+164>: illtrap 0x4 This was previously hidden and only recently uncovered by 2018-12-04 Iain Sandoe <i...@sandoe.co.uk> PR testsuite/88310 * lib/target-supports.exp (check_effective_target_freorder): Suppress warnings for missing profile. A reghunt reveals that the regression was caused by 2018-11-28 Jan Hubicka <hubi...@ucw.cz> * except.c (do_allocate_exception): Annotate __cxa_allocate_exception as COLD. I'm attaching the assembler output before and after that patch.