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.

Reply via email to