[Bug libgomp/102838] New: [12 regression] Several tests SEGV in gomp_loop_ull_init

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Oct 19 13:03:08 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102838

            Bug ID: 102838
           Summary: [12 regression] Several tests SEGV in
                    gomp_loop_ull_init
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgomp
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---
            Target: i?86-pc-solaris2.11, x86_64-pc-solaris2.11

Between 20211007 (5c1838c01652a403498e27024cb0e5ea66376353) and 20211008
(db3d7270b42fe27fb05664c4fdf524ab7ad13a75),
quite a number of libgomp testcases began to FAIl on 32-bit Solaris/x86 only:

FAIL: libgomp.c++/../libgomp.c-c++-common/for-1.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-11.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-12.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-14.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-15.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-2.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-5.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-6.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-7.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/for-8.c execution test
FAIL: libgomp.c++/../libgomp.c-c++-common/task-reduction-11.c execution test
FAIL: libgomp.c++/loop-11.C execution test
FAIL: libgomp.c++/loop-8.C execution test

FAIL: libgomp.c/../libgomp.c-c++-common/for-1.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-16.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-2.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-3.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-7.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-8.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/for-9.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/lastprivate-conditional-1.c execution
test
FAIL: libgomp.c/../libgomp.c-c++-common/lastprivate-conditional-5.c execution
test
FAIL: libgomp.c/../libgomp.c-c++-common/monotonic-2.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/nonmonotonic-2.c execution test
FAIL: libgomp.c/../libgomp.c-c++-common/task-reduction-11.c execution test
FAIL: libgomp.c/loop-12.c execution test
FAIL: libgomp.c/loop-6.c execution test

FAIL: libgomp.fortran/pointer2.f90   -O2  execution test

I manually built the C version of for-1.c.  Running it works, but when
I add OMP_NUM_THREADS=8 as happens during a regular make check, the test
SEGVs:

Thread 9 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0xfe5d7fc8 in gomp_loop_ull_init (chunk_size=32, sched=GFS_GUIDED, incr=2,
end=2147486647, start=2147483647, up=true, ws=0x80774b8) at
/vol/gcc/src/hg/master/local/libgomp/loop_ull.c:48
48        ws->end_ull = ((up && start > end) || (!up && start < end))

=> 0xfe5d7fc8 <gomp_loop_ull_guided_start+424>: movaps %xmm0,0x10(%esi)

(gdb) p/x $esi
$1 = 0x80774b8

(gdb) where
#0  0xfe5d7fc8 in gomp_loop_ull_init (chunk_size=32, sched=GFS_GUIDED, incr=2,
end=2147486647, start=2147483647, up=true, ws=0x80774b8) at
/vol/gcc/src/hg/master/local/libgomp/loop_ull.c:48
#1  gomp_loop_ull_guided_start (up=true, start=2147483647, end=2147486647,
incr=2, chunk_size=32, istart=0xfeffd910, iend=0xfeffd918) at
/vol/gcc/src/hg/master/local/libgomp/loop_ull.c:157
#2  0x080600bd in f1_f_guided32 ()
#3  0x08061105 in test_f_guided32 ()
#4  0xfeffda80 in ?? ()
#5  0x08062c63 in main ()

Obviously %esi isn't properly aligned, which lets me suspect this is an i386
bug and not libgomp proper.


More information about the Gcc-bugs mailing list