[clang][OpenMP] Add AST nodes for opaque block/loop directives #118876
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add two new AST nodes:
OMPOpaqueBlockDirective
representing an executable directive not associated with a loop, andOMPOpaqueLoopDirective
representing an executable directive associated with a loop.This is an indermediate step towards treating compound directives as a sequece of either leaf or composite directives. The break-up of compound directives into these constituents may be impossible in a template, since the identity of objects referenced in clauses may be impossible to establish.
When an executable directive is encountered in a function template, it will be represented by one of the new AST nodes, depending on its association. When the template is instantiated, these AST nodes will replaced with the AST nodes used in non-templates.