-
- Downloads
OpenMP: Fixes for omp critical + hint
gcc/c-family/ChangeLog: * c-omp.c (c_finish_omp_critical): Check for no name but nonzero hint provided. gcc/c/ChangeLog: * c-parser.c (c_parser_omp_clause_hint): Require nonnegative hint clause. (c_parser_omp_critical): Permit hint(0) clause without named critical. (c_parser_omp_construct): Don't assert if error_mark_node is returned. gcc/cp/ChangeLog: * parser.c (cp_parser_omp_clause_hint): Require nonnegative hint. (cp_parser_omp_critical): Permit hint(0) clause without named critical. * pt.c (tsubst_expr): Re-check the latter for templates. gcc/fortran/ChangeLog: * openmp.c (gfc_match_omp_critical): Fix handling hints; permit hint clause without named critical. (resolve_omp_clauses): Require nonnegative constant integer for the hint clause. (gfc_resolve_omp_directive): Check for no name but nonzero value for hint clause. * parse.c (parse_omp_structured_block): Fix same-name check for critical. * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly. libgomp/ChangeLog: * omp_lib.f90.in: Add omp_sync_hint_* and omp_sync_hint_kind. * omp_lib.h.in: Likewise. gcc/testsuite/ChangeLog: * g++.dg/gomp/critical-3.C: Add nameless critical with hint testcase. * c-c++-common/gomp/critical-hint-1.c: New test. * c-c++-common/gomp/critical-hint-2.c: New test. * gfortran.dg/gomp/critical-hint-1.f90: New test. * gfortran.dg/gomp/critical-hint-2.f90: New test.
Showing
- gcc/c-family/c-omp.c 11 additions, 0 deletionsgcc/c-family/c-omp.c
- gcc/c/c-parser.c 8 additions, 18 deletionsgcc/c/c-parser.c
- gcc/cp/parser.c 13 additions, 7 deletionsgcc/cp/parser.c
- gcc/cp/pt.c 9 additions, 0 deletionsgcc/cp/pt.c
- gcc/fortran/openmp.c 23 additions, 10 deletionsgcc/fortran/openmp.c
- gcc/fortran/parse.c 2 additions, 1 deletiongcc/fortran/parse.c
- gcc/fortran/trans-openmp.c 13 additions, 5 deletionsgcc/fortran/trans-openmp.c
- gcc/testsuite/c-c++-common/gomp/critical-hint-1.c 47 additions, 0 deletionsgcc/testsuite/c-c++-common/gomp/critical-hint-1.c
- gcc/testsuite/c-c++-common/gomp/critical-hint-2.c 36 additions, 0 deletionsgcc/testsuite/c-c++-common/gomp/critical-hint-2.c
- gcc/testsuite/g++.dg/gomp/critical-3.C 29 additions, 2 deletionsgcc/testsuite/g++.dg/gomp/critical-3.C
- gcc/testsuite/gfortran.dg/gomp/critical-hint-1.f90 94 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/critical-hint-1.f90
- gcc/testsuite/gfortran.dg/gomp/critical-hint-2.f90 65 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/critical-hint-2.f90
- libgomp/omp_lib.f90.in 21 additions, 6 deletionslibgomp/omp_lib.f90.in
- libgomp/omp_lib.h.in 14 additions, 2 deletionslibgomp/omp_lib.h.in
Loading
Please register or sign in to comment