[OPENMP] Add reverse_offload clause to requires directive
llvm-svn: 343711
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index fec8f8b..de78a1a 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -8012,6 +8012,7 @@
case OMPC_is_device_ptr:
case OMPC_unified_address:
case OMPC_unified_shared_memory:
+ case OMPC_reverse_offload:
llvm_unreachable("Clause is not allowed.");
}
return Res;
@@ -8535,6 +8536,7 @@
case OMPC_is_device_ptr:
case OMPC_unified_address:
case OMPC_unified_shared_memory:
+ case OMPC_reverse_offload:
llvm_unreachable("Unexpected OpenMP clause.");
}
return CaptureRegion;
@@ -8854,6 +8856,7 @@
case OMPC_is_device_ptr:
case OMPC_unified_address:
case OMPC_unified_shared_memory:
+ case OMPC_reverse_offload:
llvm_unreachable("Clause is not allowed.");
}
return Res;
@@ -9012,6 +9015,7 @@
case OMPC_is_device_ptr:
case OMPC_unified_address:
case OMPC_unified_shared_memory:
+ case OMPC_reverse_offload:
llvm_unreachable("Clause is not allowed.");
}
return Res;
@@ -9173,6 +9177,9 @@
case OMPC_unified_shared_memory:
Res = ActOnOpenMPUnifiedSharedMemoryClause(StartLoc, EndLoc);
break;
+ case OMPC_reverse_offload:
+ Res = ActOnOpenMPReverseOffloadClause(StartLoc, EndLoc);
+ break;
case OMPC_if:
case OMPC_final:
case OMPC_num_threads:
@@ -9283,6 +9290,11 @@
return new (Context) OMPUnifiedSharedMemoryClause(StartLoc, EndLoc);
}
+OMPClause *Sema::ActOnOpenMPReverseOffloadClause(SourceLocation StartLoc,
+ SourceLocation EndLoc) {
+ return new (Context) OMPReverseOffloadClause(StartLoc, EndLoc);
+}
+
OMPClause *Sema::ActOnOpenMPVarListClause(
OpenMPClauseKind Kind, ArrayRef<Expr *> VarList, Expr *TailExpr,
SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc,
@@ -9392,6 +9404,7 @@
case OMPC_uniform:
case OMPC_unified_address:
case OMPC_unified_shared_memory:
+ case OMPC_reverse_offload:
llvm_unreachable("Clause is not allowed.");
}
return Res;