@@ -877,10 +877,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitPresentClause(
877877
878878OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyClause (
879879 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 ()))
884885 return isNotImplemented ();
885886 // ActOnVar ensured that everything is a valid variable reference, so there
886887 // really isn't anything to do here. GCC does some duplicate-finding, though
@@ -893,10 +894,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyClause(
893894
894895OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyInClause (
895896 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 ()))
900902 return isNotImplemented ();
901903 // ActOnVar ensured that everything is a valid variable reference, so there
902904 // really isn't anything to do here. GCC does some duplicate-finding, though
@@ -909,10 +911,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyInClause(
909911
910912OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyOutClause (
911913 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 ()))
916919 return isNotImplemented ();
917920 // ActOnVar ensured that everything is a valid variable reference, so there
918921 // really isn't anything to do here. GCC does some duplicate-finding, though
@@ -925,10 +928,11 @@ OpenACCClause *SemaOpenACCClauseVisitor::VisitCopyOutClause(
925928
926929OpenACCClause *SemaOpenACCClauseVisitor::VisitCreateClause (
927930 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 ()))
932936 return isNotImplemented ();
933937 // ActOnVar ensured that everything is a valid variable reference, so there
934938 // really isn't anything to do here. GCC does some duplicate-finding, though
0 commit comments