/* Do language specific checking on an implicitly determined clause. */
void (*omp_finish_clause) (tree clause, gimple_seq *pre_p, bool);
+ /* Return true if DECL is an allocatable variable (for the purpose of
+ implicit mapping). */
+ bool (*omp_allocatable_p) (tree decl);
+
/* Return true if DECL is a scalar variable (for the purpose of
- implicit firstprivatization). */
- bool (*omp_scalar_p) (tree decl);
+ implicit firstprivatization). If 'ptr_or', pointers and
+ allocatables are also permitted. */
+ bool (*omp_scalar_p) (tree decl, bool ptr_ok);
+
+ /* Return true if DECL is a scalar variable with Fortran target but not
+ allocatable or pointer attribute (for the purpose of implicit mapping). */
+ bool (*omp_scalar_target_p) (tree decl);
/* Return a pointer to the tree representing the initializer
expression for the non-local variable DECL. Return NULL if