OmpStructureChecker is supposed to work only with parser::OmpClause
after tablegen changes for OpenMP and OpenACC were introduced.
Hence OmpMemoryOrderClause, OmpAtomicMemoryOrderClause and similar ones were failing
to catch semantic errors, inspite of having code for semantic checks.
This patch tries to change parser for OmpMemoryOrderClause and similar dependent ones
and use OmpClauseList which resides/comes from common tablegen for OpenMP/OpenACC eventually using parser::OmpClause.
This patch also tries to :
- Change OmpCriticalDirective in openmp-parsers.cpp to support OmpClauseList.
- Check-flang regresses when changes were introduced due to missing semantic checks in OmpCritical, patch implements them at the minimal level to pass the regression.
- Change tablegen to support Hint clause.
- Adds missing source locations CharBlock Source in each atomic construct.
- Remove dead code realted to memory-order-clauses after moving to OmpClauseList.
Can your remove the optional? Empty list should do the work ...