This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Jun  3 21:36:26 2015
New Revision: 224105

URL: https://gcc.gnu.org/viewcvs?rev=224105&root=gcc&view=rev
Log:
        Backported from mainline
        2015-05-13  Jakub Jelinek  <jakub@redhat.com>

        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.
        * tree-cfg.c (make_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:
    branches/gcc-4_8-branch/libgomp/testsuite/libgomp.c/pr66133.c
Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/omp-low.c
    branches/gcc-4_8-branch/gcc/tree-cfg.c
    branches/gcc-4_8-branch/libgomp/ChangeLog


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]