122 lines · plain
1! REQUIRES: openmp_runtime2 3! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags 4! Semantic checks on hint clauses, as they appear on critical construct5 6program sample7 use omp_lib8 integer :: y9 logical :: z10 real :: k11 integer :: p(1)12 13 !$omp critical (name) hint(1)14 y = 215 !$omp end critical (name)16 17 !$omp critical (name) hint(2)18 y = 219 !$omp end critical (name)20 21 !ERROR: The synchronization hint is not valid22 !$omp critical (name) hint(3)23 y = 224 !$omp end critical (name)25 26 !$omp critical (name) hint(5)27 y = 228 !$omp end critical (name)29 30 !ERROR: The synchronization hint is not valid31 !$omp critical (name) hint(7)32 y = 233 !$omp end critical (name)34 35 !ERROR: Synchronization hint must be a constant integer value36 !ERROR: Must be a constant value37 !$omp critical (name) hint(x)38 y = 239 !$omp end critical (name)40 41 !$omp critical (name) hint(4)42 y = 243 !$omp end critical (name)44 45 !$omp critical (name) hint(8)46 y = 247 !$omp end critical (name)48 49 !$omp critical (name) hint(omp_sync_hint_uncontended)50 y = 251 !$omp end critical (name)52 53 !$omp critical (name) hint(omp_lock_hint_speculative)54 y = 255 !$omp end critical (name)56 57 !ERROR: Synchronization hint must be a constant integer value58 !ERROR: Must be a constant value59 !$omp critical (name) hint(omp_sync_hint_uncontended + omp_sync_hint) 60 y = 261 !$omp end critical (name)62 63 !$omp critical (name) hint(omp_sync_hint_nonspeculative)64 y = 265 !$omp end critical (name)66 67 !$omp critical (name) hint(omp_sync_hint_none)68 y = 269 !$omp end critical (name)70 71 !$omp critical (name) hint(omp_sync_hint_uncontended + omp_lock_hint_speculative)72 y = 273 !$omp end critical (name)74 75 !$omp critical (name) hint(omp_lock_hint_nonspeculative + omp_lock_hint_uncontended)76 y = 277 !$omp end critical (name)78 79 !$omp critical (name) hint(omp_lock_hint_contended + omp_sync_hint_speculative)80 y = 281 !$omp end critical (name)82 83 !$omp critical (name) hint(omp_lock_hint_contended + omp_sync_hint_nonspeculative)84 y = 285 !$omp end critical (name)86 87 !ERROR: The synchronization hint is not valid88 !$omp critical (name) hint(omp_sync_hint_uncontended + omp_sync_hint_contended)89 y = 290 !$omp end critical (name)91 92 !ERROR: The synchronization hint is not valid93 !$omp critical (name) hint(omp_sync_hint_nonspeculative + omp_lock_hint_speculative)94 y = 295 !$omp end critical (name)96 97 !ERROR: Synchronization hint must be a constant integer value98 !ERROR: Must have INTEGER type, but is REAL(4)99 !$omp critical (name) hint(1.0) 100 y = 2101 !$omp end critical (name)102 103 !ERROR: Synchronization hint must be a constant integer value104 !ERROR: Operands of + must be numeric; have LOGICAL(4) and INTEGER(4)105 !$omp critical (name) hint(z + omp_sync_hint_nonspeculative)106 y = 2107 !$omp end critical (name)108 109 !ERROR: Synchronization hint must be a constant integer value110 !ERROR: Must be a constant value111 !$omp critical (name) hint(k + omp_sync_hint_speculative)112 y = 2113 !$omp end critical (name)114 115 !ERROR: Synchronization hint must be a constant integer value116 !ERROR: Must be a constant value117 !$omp critical (name) hint(p(1) + omp_sync_hint_uncontended)118 y = 2119 !$omp end critical (name)120end program121 122