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 <[email protected]>
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 <[email protected]>
* except.c (do_allocate_exception): Annotate __cxa_allocate_exception
as COLD.
I'm attaching the assembler output before and after that patch.