[OPENMP50]Add support for relaxed clause in atomic directive.
Added full support for relaxed clause.
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 313c979..2a13f72 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -4990,6 +4990,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_depend:
case OMPC_threads:
case OMPC_simd:
@@ -8955,7 +8956,8 @@
if (C->getClauseKind() == OMPC_seq_cst ||
C->getClauseKind() == OMPC_acq_rel ||
C->getClauseKind() == OMPC_acquire ||
- C->getClauseKind() == OMPC_release) {
+ C->getClauseKind() == OMPC_release ||
+ C->getClauseKind() == OMPC_relaxed) {
if (MemOrderKind != OMPC_unknown) {
Diag(C->getBeginLoc(), diag::err_omp_several_mem_order_clauses)
<< getOpenMPDirectiveName(OMPD_atomic) << 0
@@ -10918,6 +10920,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_depend:
case OMPC_threads:
case OMPC_simd:
@@ -11633,6 +11636,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_depend:
case OMPC_threads:
case OMPC_simd:
@@ -12058,6 +12062,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_depend:
case OMPC_device:
case OMPC_threads:
@@ -12261,6 +12266,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_depend:
case OMPC_device:
case OMPC_threads:
@@ -12443,6 +12449,9 @@
case OMPC_release:
Res = ActOnOpenMPReleaseClause(StartLoc, EndLoc);
break;
+ case OMPC_relaxed:
+ Res = ActOnOpenMPRelaxedClause(StartLoc, EndLoc);
+ break;
case OMPC_threads:
Res = ActOnOpenMPThreadsClause(StartLoc, EndLoc);
break;
@@ -12571,6 +12580,11 @@
return new (Context) OMPReleaseClause(StartLoc, EndLoc);
}
+OMPClause *Sema::ActOnOpenMPRelaxedClause(SourceLocation StartLoc,
+ SourceLocation EndLoc) {
+ return new (Context) OMPRelaxedClause(StartLoc, EndLoc);
+}
+
OMPClause *Sema::ActOnOpenMPThreadsClause(SourceLocation StartLoc,
SourceLocation EndLoc) {
return new (Context) OMPThreadsClause(StartLoc, EndLoc);
@@ -12730,6 +12744,7 @@
case OMPC_acq_rel:
case OMPC_acquire:
case OMPC_release:
+ case OMPC_relaxed:
case OMPC_device:
case OMPC_threads:
case OMPC_simd: