openacc: Use class_pointer instead of pointer attribute for class types

Elsewhere in the Fortran front-end, the class_pointer attribute is
used for BT_CLASS entities instead of the pointer attribute. This patch
follows suit for OpenACC. I couldn't actually come up with a test case
where this makes a difference (i.e., where "class_pointer" and "pointer"
have different values at this point in the code), but this may nonetheless
fix a latent bug.

gcc/fortran/
	* trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute
	for BT_CLASS.
This commit is contained in:
Julian Brown 2021-01-29 17:18:07 -08:00
parent cff6e8db88
commit f743fe2316

View file

@ -2997,7 +2997,10 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (lastcomp->u.c.component->ts.type == BT_DERIVED
|| lastcomp->u.c.component->ts.type == BT_CLASS)
{
if (sym_attr.pointer || (openacc && sym_attr.allocatable))
bool pointer
= (lastcomp->u.c.component->ts.type == BT_CLASS
? sym_attr.class_pointer : sym_attr.pointer);
if (pointer || (openacc && sym_attr.allocatable))
{
tree data, size;