@@ -877,10 +877,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitPresentClause(
877
877
878
878
OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyClause (
879
879
SemaOpenACC::OpenACCParsedClause &Clause) {
880
- // Restrictions only properly implemented on 'compute' constructs, and
881
- // 'compute' constructs are the only construct that can do anything with
882
- // this yet, so skip/treat as unimplemented in this case.
883
- if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()))
880
+ // Restrictions only properly implemented on 'compute'/'combined' constructs,
881
+ // and 'compute'/'combined' constructs are the only construct that can do
882
+ // anything with this yet, so skip/treat as unimplemented in this case.
883
+ if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()) &&
884
+ !isOpenACCCombinedDirectiveKind (Clause.getDirectiveKind ()))
884
885
return isNotImplemented ();
885
886
// ActOnVar ensured that everything is a valid variable reference, so there
886
887
// really isn't anything to do here. GCC does some duplicate-finding, though
@@ -893,10 +894,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyClause(
893
894
894
895
OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyInClause (
895
896
SemaOpenACC::OpenACCParsedClause &Clause) {
896
- // Restrictions only properly implemented on 'compute' constructs, and
897
- // 'compute' constructs are the only construct that can do anything with
898
- // this yet, so skip/treat as unimplemented in this case.
899
- if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()))
897
+ // Restrictions only properly implemented on 'compute'/'combined' constructs,
898
+ // and 'compute'/'combined' constructs are the only construct that can do
899
+ // anything with this yet, so skip/treat as unimplemented in this case.
900
+ if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()) &&
901
+ !isOpenACCCombinedDirectiveKind (Clause.getDirectiveKind ()))
900
902
return isNotImplemented ();
901
903
// ActOnVar ensured that everything is a valid variable reference, so there
902
904
// really isn't anything to do here. GCC does some duplicate-finding, though
@@ -909,10 +911,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyInClause(
909
911
910
912
OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyOutClause (
911
913
SemaOpenACC::OpenACCParsedClause &Clause) {
912
- // Restrictions only properly implemented on 'compute' constructs, and
913
- // 'compute' constructs are the only construct that can do anything with
914
- // this yet, so skip/treat as unimplemented in this case.
915
- if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()))
914
+ // Restrictions only properly implemented on 'compute'/'combined' constructs,
915
+ // and 'compute'/'combined' constructs are the only construct that can do
916
+ // anything with this yet, so skip/treat as unimplemented in this case.
917
+ if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()) &&
918
+ !isOpenACCCombinedDirectiveKind (Clause.getDirectiveKind ()))
916
919
return isNotImplemented ();
917
920
// ActOnVar ensured that everything is a valid variable reference, so there
918
921
// really isn't anything to do here. GCC does some duplicate-finding, though
@@ -925,10 +928,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyOutClause(
925
928
926
929
OpenACCClause *SemaOpenACCClauseVisitor::VisitCreateClause (
927
930
SemaOpenACC::OpenACCParsedClause &Clause) {
928
- // Restrictions only properly implemented on 'compute' constructs, and
929
- // 'compute' constructs are the only construct that can do anything with
930
- // this yet, so skip/treat as unimplemented in this case.
931
- if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()))
931
+ // Restrictions only properly implemented on 'compute'/'combined' constructs,
932
+ // and 'compute'/'combined' constructs are the only construct that can do
933
+ // anything with this yet, so skip/treat as unimplemented in this case.
934
+ if (!isOpenACCComputeDirectiveKind (Clause.getDirectiveKind ()) &&
935
+ !isOpenACCCombinedDirectiveKind (Clause.getDirectiveKind ()))
932
936
return isNotImplemented ();
933
937
// ActOnVar ensured that everything is a valid variable reference, so there
934
938
// really isn't anything to do here. GCC does some duplicate-finding, though
0 commit comments