aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
authorCesar Philippidis <cesar@codesourcery.com>2015-12-01 06:27:11 -0800
committerCesar Philippidis <cesar@gcc.gnu.org>2015-12-01 06:27:11 -0800
commit2a70708e0bf8389e7f7566f39ef2e3891ecc839d (patch)
tree9c6035c5b4ecd42e5ff36d1590932fb6e64bd6e3 /gcc/fortran/dump-parse-tree.c
parent4f0a0218d6df34ec612a61aef50b95d79cd8d17f (diff)
downloadgcc-2a70708e0bf8389e7f7566f39ef2e3891ecc839d.zip
gcc-2a70708e0bf8389e7f7566f39ef2e3891ecc839d.tar.gz
gcc-2a70708e0bf8389e7f7566f39ef2e3891ecc839d.tar.bz2
dump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for the gang clause.
gcc/fortran/ * dump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for the gang clause. * gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr. Add gang_static_expr. * openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and gang_static_expr. (match_oacc_clause_gang): Update to support both num and static in the same clause. (resolve_omp_clauses): Formatting. Also handle gang_num_expr and gang_static_expr. (resolve_oacc_params_in_parallel): New const char arg argument. Use it to report more accurate gang, worker and vector clause errors. (resolve_oacc_loop_blocks): Update calls to resolve_oacc_params_in_parallel. * trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of the gang clause. (gfc_trans_oacc_combined_directive): Make use of gang_num_expr and gang_static_expr. Remove OMP_LIST_REDUCTION from construct_clauses. gcc/testsuite/ * gfortran.dg/goacc/gang-static.f95: Add tests for gang num arguments. * gfortran.dg/goacc/loop-2.f95: Update expected diagnostics. * gfortran.dg/goacc/loop-6.f95: Likewise. * gfortran.dg/goacc/loop-7.f95: New test. * gfortran.dg/goacc/reduction-2.f95: New test. From-SVN: r231112
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r--gcc/fortran/dump-parse-tree.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 48476af..f9abf40 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -1146,10 +1146,24 @@ show_omp_clauses (gfc_omp_clauses *omp_clauses)
if (omp_clauses->gang)
{
fputs (" GANG", dumpfile);
- if (omp_clauses->gang_expr)
+ if (omp_clauses->gang_num_expr || omp_clauses->gang_static_expr)
{
fputc ('(', dumpfile);
- show_expr (omp_clauses->gang_expr);
+ if (omp_clauses->gang_num_expr)
+ {
+ fprintf (dumpfile, "num:");
+ show_expr (omp_clauses->gang_num_expr);
+ }
+ if (omp_clauses->gang_num_expr && omp_clauses->gang_static)
+ fputc (',', dumpfile);
+ if (omp_clauses->gang_static)
+ {
+ fprintf (dumpfile, "static:");
+ if (omp_clauses->gang_static_expr)
+ show_expr (omp_clauses->gang_static_expr);
+ else
+ fputc ('*', dumpfile);
+ }
fputc (')', dumpfile);
}
}