Skip to content

[flang][OpenMP] Add a semantic check to prevent atomic operations on character variables #112918

Closed
@tblah

Description

@tblah
program o30_301
  character(2) hi
  !$omp atomic write
    hi = 'hi'
  !$omp end atomic
end program

Fails with not yet implemented: Unsupported atomic type. The wording of the standard is that atomic operations should operate on "scalar variables of intrinsic type" (OpenMP 5.2 section 4.3.1.3).

In Fortran 2023, a scalar variable is defined (3.119) as "data entity that can be represented by a single value of the type and that is not an array". I think that means that a the character variable in the above example is scalar and of intrinsic type.

gfortran and classic flang do not allow character variables in atomic types.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions