[Bug middle-end/66133] Wrong-code with noreturn #pragma omp task body

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 13 16:59:00 GMT 2015


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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May 13 16:59:20 2015
New Revision: 223171

URL: https://gcc.gnu.org/viewcvs?rev=223171&root=gcc&view=rev
Log:
        PR middle-end/66133
        * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
        make sure it is never noreturn, even when the task body does not
        return.
        (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
        right before GIMPLE_OMP_RETURN.
        (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
        for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
        GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.

        * testsuite/libgomp.c/pr66133.c: New test.

Added:
    trunk/libgomp/testsuite/libgomp.c/pr66133.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/omp-low.c
    trunk/libgomp/ChangeLog



More information about the Gcc-bugs mailing list