@@ -380,14 +380,12 @@ CHECK_SIMPLE_CLAUSE(IfPresent, ACCC_if_present)
380380CHECK_SIMPLE_CLAUSE (Independent, ACCC_independent)
381381CHECK_SIMPLE_CLAUSE (NoCreate, ACCC_no_create)
382382CHECK_SIMPLE_CLAUSE (Nohost, ACCC_nohost)
383- CHECK_SIMPLE_CLAUSE (NumWorkers, ACCC_num_workers)
384383CHECK_SIMPLE_CLAUSE (Private, ACCC_private)
385384CHECK_SIMPLE_CLAUSE (Read, ACCC_read)
386385CHECK_SIMPLE_CLAUSE (Seq, ACCC_seq)
387386CHECK_SIMPLE_CLAUSE (Tile, ACCC_tile)
388387CHECK_SIMPLE_CLAUSE (UseDevice, ACCC_use_device)
389388CHECK_SIMPLE_CLAUSE (Vector, ACCC_vector)
390- CHECK_SIMPLE_CLAUSE (VectorLength, ACCC_vector_length)
391389CHECK_SIMPLE_CLAUSE (Wait, ACCC_wait)
392390CHECK_SIMPLE_CLAUSE (Worker, ACCC_worker)
393391CHECK_SIMPLE_CLAUSE (Write, ACCC_write)
@@ -541,13 +539,30 @@ void AccStructureChecker::Enter(const parser::AccClause::Gang &g) {
541539}
542540
543541void AccStructureChecker::Enter (const parser::AccClause::NumGangs &n) {
544- CheckAllowed (llvm::acc::Clause::ACCC_num_gangs);
542+ CheckAllowed (llvm::acc::Clause::ACCC_num_gangs,
543+ /* warnInsteadOfError=*/ GetContext ().directive ==
544+ llvm::acc::Directive::ACCD_serial ||
545+ GetContext ().directive == llvm::acc::Directive::ACCD_serial_loop);
545546
546547 if (n.v .size () > 3 )
547548 context_.Say (GetContext ().clauseSource ,
548549 " NUM_GANGS clause accepts a maximum of 3 arguments" _err_en_US);
549550}
550551
552+ void AccStructureChecker::Enter (const parser::AccClause::NumWorkers &n) {
553+ CheckAllowed (llvm::acc::Clause::ACCC_num_workers,
554+ /* warnInsteadOfError=*/ GetContext ().directive ==
555+ llvm::acc::Directive::ACCD_serial ||
556+ GetContext ().directive == llvm::acc::Directive::ACCD_serial_loop);
557+ }
558+
559+ void AccStructureChecker::Enter (const parser::AccClause::VectorLength &n) {
560+ CheckAllowed (llvm::acc::Clause::ACCC_vector_length,
561+ /* warnInsteadOfError=*/ GetContext ().directive ==
562+ llvm::acc::Directive::ACCD_serial ||
563+ GetContext ().directive == llvm::acc::Directive::ACCD_serial_loop);
564+ }
565+
551566void AccStructureChecker::Enter (const parser::AccClause::Reduction &reduction) {
552567 CheckAllowed (llvm::acc::Clause::ACCC_reduction);
553568
0 commit comments