LLVM fork for squiid.
https://github.com/llvm/llvm-project/
e59305d7ae
``` !$omp sections [clause[ [,] clause] ... ] [!$omp section] structured-block [!$omp section structured-block] ... !$omp end sections [nowait] ``` 1. Following parse tree node changes for Block constructs, changing the Sections/Parallel Sections to `{Begin, Section-Blocks, End}` 2. Handles `!$omp section` in the parser, do not create parse tree node for this directive because basically it is a delimiter to split the code into different `Block`s within the Sections/Parallel Sections constructs. So, the `Section-Blocks` here is a `std::list` of `Block`s. (thanks to Tim's suggestion) 3. Modify check-omp-structure.* to avoid breaking existing tests More tests will be added during Semantics. Also, similar to Block constructs, the `Begin` and `End` directive matching will be done in future PR. This commit also contains Peter's important fix for allowing "!$OMP END SECTION" as a legal statement following `Block` (daf5630: Modify execution part error recovery to not consume !$OMP SECTION). Original-commit: flang-compiler/f18@75d016f6d2 Reviewed-on: https://github.com/flang-compiler/f18/pull/652 |
||
---|---|---|
flang |