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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Thomas Schwinge <tschwi...@gcc.gnu.org>:

https://gcc.gnu.org/g:8168338684fc2bed576bb09202c63b3e9e678d92

commit r12-2408-g8168338684fc2bed576bb09202c63b3e9e678d92
Author: Thomas Schwinge <tho...@codesourcery.com>
Date:   Mon Jul 19 23:11:38 2021 +0200

    [gcn] Work-around libgomp 'error: array subscript 0 is outside array bounds
of â__lds struct gomp_thread * __lds[0]â [-Werror=array-bounds]' some more
[PR101484]

    With yesterday's commit 9f2bc5077debef2b046b6c10d38591ac324ad8b5 "[gcn]
    Work-around libgomp 'error: array subscript 0 is outside array bounds of
    â__lds struct gomp_thread * __lds[0]â [-Werror=array-bounds]'
[PR101484]",
    I did defuse the "unexpected" '-Werror=array-bounds' diagnostics that we
see
    as of commit a110855667782dac7b674d3e328b253b3b3c919b "Correct handling of
    variable offset minus constant in -Warray-bounds [PR100137]".  However,
these
    '#pragma GCC diagnostic [...]' directives cause some code generation
changes
    (that seems unexpected, problematic!), which results in a lot (ten
thousands)
    of 'GCN team arena exhausted' run-time diagnostics, also leading to a few
    FAILs:

        PASS: libgomp.c/../libgomp.c-c++-common/for-11.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-11.c execution
test

        PASS: libgomp.c/../libgomp.c-c++-common/for-12.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-12.c execution
test

        PASS: libgomp.c/../libgomp.c-c++-common/for-3.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-3.c execution
test

        PASS: libgomp.c/../libgomp.c-c++-common/for-5.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-5.c execution
test

        PASS: libgomp.c/../libgomp.c-c++-common/for-6.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-6.c execution
test

        PASS: libgomp.c/../libgomp.c-c++-common/for-9.c (test for excess
errors)
        [-PASS:-]{+FAIL:+} libgomp.c/../libgomp.c-c++-common/for-9.c execution
test

    Same for 'libgomp.c++'.

    It remains to be analyzed how '#pragma GCC diagnostic [...]' directives can
    cause code generation changes; for now I'm working around the "unexpected"
    '-Werror=array-bounds' diagnostics differently.

    Overall, still awaiting a different solution, of course.

            libgomp/
            PR target/101484
            * configure.tgt [amdgcn*-*-*] (XCFLAGS): Add
            '-Wno-error=array-bounds'.
            * config/gcn/team.c: Remove '-Werror=array-bounds' work-around.
            * libgomp.h [__AMDGCN__]: Likewise.

Reply via email to