xref: /llvm-project/flang/test/Semantics/synchronization03b.f90 (revision f770b1e9544967ce31b3c7eea3cfa87c00936ad2)
121dceb3cSKatherine Rasmussen! RUN: %python %S/test_errors.py %s %flang_fc1
221dceb3cSKatherine Rasmussen! This test checks for semantic errors in sync memory statements.
321dceb3cSKatherine Rasmussen! Some of the errors in this test would be hidden by the errors in
421dceb3cSKatherine Rasmussen! the test synchronization03a.f90 if they were included in that file,
521dceb3cSKatherine Rasmussen! and are thus tested here.
621dceb3cSKatherine Rasmussen
721dceb3cSKatherine Rasmussenprogram test_sync_memory
821dceb3cSKatherine Rasmussen  implicit none
921dceb3cSKatherine Rasmussen
1021dceb3cSKatherine Rasmussen  integer sync_status, co_indexed_integer[*], superfluous_stat, non_scalar(1)
1121dceb3cSKatherine Rasmussen  character(len=128) error_message, co_indexed_character[*], superfluous_errmsg
1221dceb3cSKatherine Rasmussen  logical invalid_type
1321dceb3cSKatherine Rasmussen
1421dceb3cSKatherine Rasmussen  !___ non-standard-conforming statements ___
1521dceb3cSKatherine Rasmussen
1621dceb3cSKatherine Rasmussen  !ERROR: Must have INTEGER type, but is LOGICAL(4)
1721dceb3cSKatherine Rasmussen  sync memory(stat=invalid_type)
1821dceb3cSKatherine Rasmussen
1921dceb3cSKatherine Rasmussen  !ERROR: Must be a scalar value, but is a rank-1 array
2021dceb3cSKatherine Rasmussen  sync memory(stat=non_scalar)
2121dceb3cSKatherine Rasmussen
2221dceb3cSKatherine Rasmussen  !ERROR: Must have CHARACTER type, but is LOGICAL(4)
2321dceb3cSKatherine Rasmussen  sync memory(errmsg=invalid_type)
2421dceb3cSKatherine Rasmussen
25*f770b1e9SKatherine Rasmussen  !ERROR: The stat-variable in a sync-stat-list may not be repeated
2621dceb3cSKatherine Rasmussen  sync memory(stat=sync_status, stat=superfluous_stat)
2721dceb3cSKatherine Rasmussen
28*f770b1e9SKatherine Rasmussen  !ERROR: The errmsg-variable in a sync-stat-list may not be repeated
2921dceb3cSKatherine Rasmussen  sync memory(errmsg=error_message, errmsg=superfluous_errmsg)
3021dceb3cSKatherine Rasmussen
31*f770b1e9SKatherine Rasmussen  !ERROR: The stat-variable in a sync-stat-list may not be repeated
32*f770b1e9SKatherine Rasmussen  sync memory(stat=sync_status, errmsg=error_message, stat=superfluous_stat)
33*f770b1e9SKatherine Rasmussen
34*f770b1e9SKatherine Rasmussen  !ERROR: The errmsg-variable in a sync-stat-list may not be repeated
35*f770b1e9SKatherine Rasmussen  sync memory(stat=sync_status, errmsg=error_message, errmsg=superfluous_errmsg)
36*f770b1e9SKatherine Rasmussen
37*f770b1e9SKatherine Rasmussen  !ERROR: The stat-variable or errmsg-variable in a sync-stat-list may not be a coindexed object
3821dceb3cSKatherine Rasmussen  sync memory(stat=co_indexed_integer[1])
3921dceb3cSKatherine Rasmussen
40*f770b1e9SKatherine Rasmussen  !ERROR: The stat-variable or errmsg-variable in a sync-stat-list may not be a coindexed object
4121dceb3cSKatherine Rasmussen  sync memory(errmsg=co_indexed_character[1])
4221dceb3cSKatherine Rasmussen
4321dceb3cSKatherine Rasmussenend program test_sync_memory
44