static const char *const kind_properties[] =
{ "host", "nohost", "cpu", "gpu", "fpga", "any", NULL };
static const char *const vendor_properties[] =
- { "amd", "arm", "bsc", "cray", "fujitsu", "gnu", "ibm", "intel",
+ { "amd", "arm", "bsc", "cray", "fujitsu", "gnu", "hpe", "ibm", "intel",
"llvm", "nvidia", "pgi", "ti", "unknown", NULL };
static const char *const extension_properties[] =
{ NULL };
static const char *const atomic_default_mem_order_properties[] =
- { "seq_cst", "relaxed", "acq_rel", NULL };
+ { "seq_cst", "relaxed", "acq_rel", "acquire", "release", NULL };
struct omp_ts_info omp_ts_map[] =
{
else if (!strcmp (prop, "acq_rel")
&& omo != OMP_MEMORY_ORDER_ACQ_REL)
return 0;
+ else if (!strcmp (prop, "acquire")
+ && omo != OMP_MEMORY_ORDER_ACQUIRE)
+ return 0;
+ else if (!strcmp (prop, "release")
+ && omo != OMP_MEMORY_ORDER_RELEASE)
+ return 0;
}
break;
case OMP_TRAIT_DEVICE_ARCH:
void f51 (void); /* { dg-error "expected '\\\}' before '\\(' token" "" { target c } .-1 } */
#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order}) /* { dg-error "expected '\\(' before '\\\}' token" } */
void f52 (void);
-#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order(acquire)}) /* { dg-error "incorrect property 'acquire' of 'atomic_default_mem_order' selector" } */
+#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order(acquire)})
void f53 (void);
-#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order(release)}) /* { dg-error "incorrect property 'release' of 'atomic_default_mem_order' selector" } */
+#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order(release)})
void f54 (void);
#pragma omp declare variant (f1) match(implementation={atomic_default_mem_order(foobar)}) /* { dg-error "incorrect property 'foobar' of 'atomic_default_mem_order' selector" } */
void f55 (void);
!$omp declare variant (f1) match(implementation={vendor("foobar")}) ! { dg-warning "unknown property '.foobar.' of 'vendor' selector" }
end subroutine
subroutine f53 ()
- !$omp declare variant (f1) match(implementation={atomic_default_mem_order(acquire)}) ! { dg-error "incorrect property 'acquire' of 'atomic_default_mem_order' selector" }
+ !$omp declare variant (f1) match(implementation={atomic_default_mem_order(acquire)})
end subroutine
subroutine f54 ()
- !$omp declare variant (f1) match(implementation={atomic_default_mem_order(release)}) ! { dg-error "incorrect property 'release' of 'atomic_default_mem_order' selector" }
+ !$omp declare variant (f1) match(implementation={atomic_default_mem_order(release)})
end subroutine
subroutine f55 ()
!$omp declare variant (f1) match(implementation={atomic_default_mem_order(foobar)}) ! { dg-error "incorrect property 'foobar' of 'atomic_default_mem_order' selector" }