[Bug middle-end/100400] ICE in visit_loops_in_gang_single_region

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 20 18:15:22 GMT 2022


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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Thomas Schwinge
<tschwinge@gcc.gnu.org>:

https://gcc.gnu.org/g:d3bdc33784c857668503b30368ae50a8d2fca274

commit r12-8853-gd3bdc33784c857668503b30368ae50a8d2fca274
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Mon May 2 15:15:26 2022 +0200

    Make 'c-c++-common/goacc/kernels-decompose-pr100400-1-*.c' behave
consistently, regardless of checking level

    Fix-up for commit c14ea6a72fb1ae66e3d32ac8329558497c6e4403
    "Catch 'GIMPLE_DEBUG' misbehavior in OpenACC 'kernels' decomposition
    [PR100400, PR103836, PR104061]".

    For C++ compilation of
'c-c++-common/goacc/kernels-decompose-pr100400-1-2.c',
    we first emit a 'sorry' diagnostic, and then a 'gcc_unreachable' (or
    'internal_error', see below) diagnostic, but for example, for
    '--enable-checking=release' (thus, '!CHECKING_P'), the second one may
actually
    be turned into a 'confused by earlier errors, bailing out' diagnostic. 
(See
    'gcc/diagnostic.cc:diagnostic_report_diagnostic': "When not checking, ICEs
are
    converted to fatal errors when an error has already occurred.")  Thus, make
    'c-c++-common/goacc/kernels-decompose-pr100400-1-2.c' behave consistently
via
    '-Wfatal-errors', and thus only matching the 'sorry' diagnostic.

    For example, for '--enable-checking=no' (thus, '!ENABLE_ASSERT_CHECKING'),
a
    call to 'gcc_unreachable' cannot be assumed emit an 'internal_error'-like
    diagnostic, so explicitly call 'internal_error' in
    'gcc/omp-oacc-kernels-decompose.cc:visit_loops_in_gang_single_region', in
the
    'GIMPLE_OMP_FOR' case, to avoid regressing
    'c-c++-common/goacc/kernels-decompose-pr100400-1-3.c', and
    'c-c++-common/goacc/kernels-decompose-pr100400-1-4.c'.

            PR middle-end/100400
            gcc/
            * omp-oacc-kernels-decompose.cc
            (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
            call 'internal_error'.
            gcc/testsuite/
            * c-c++-common/goacc/kernels-decompose-pr100400-1-2.c: Specify
            '-Wfatal-errors'.

    (cherry picked from commit da6305558bab9e24943848e4fc5bd8738d7e8f9b)


More information about the Gcc-bugs mailing list