diff options
author | Sandra Loosemore <sloosemore@baylibre.com> | 2025-02-09 21:34:36 +0000 |
---|---|---|
committer | Sandra Loosemore <sloosemore@baylibre.com> | 2025-05-15 20:25:51 +0000 |
commit | d5a1822a5ccaa2ce7c35f04fcdcedfe92e209d84 (patch) | |
tree | fcbe8a463e986d5b9654d3952a620ceaa670d43c /gcc/c/c-lang.h | |
parent | 295dd6f754aaccacfe1708d962373ed8be3717dc (diff) | |
download | gcc-d5a1822a5ccaa2ce7c35f04fcdcedfe92e209d84.zip gcc-d5a1822a5ccaa2ce7c35f04fcdcedfe92e209d84.tar.gz gcc-d5a1822a5ccaa2ce7c35f04fcdcedfe92e209d84.tar.bz2 |
OpenMP: C front end support for "begin declare variant"
gcc/c/ChangeLog
* c-decl.cc (current_omp_declare_variant_attribute): Define.
* c-lang.h (struct c_omp_declare_variant_attr): Declare.
(current_omp_declare_variant_attribute): Declare.
* c-parser.cc (c_parser_skip_to_pragma_omp_end_declare_variant): New.
(c_parser_translation_unit): Check for "omp begin declare variant"
with no matching "end".
(c_parser_declaration_or_fndef): Handle functions in "omp begin
declare variant" block.
(c_finish_omp_declare_variant): Merge context selectors with
surrounding "omp begin declare variant".
(JOIN_STR): Define.
(omp_start_variant_function): New.
(omp_finish_variant_function): New.
(c_parser_omp_begin): Handle "omp begin declare variant".
(c_parser_omp_end): Likewise.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Diffstat (limited to 'gcc/c/c-lang.h')
-rw-r--r-- | gcc/c/c-lang.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/c/c-lang.h b/gcc/c/c-lang.h index 4b93d18..cd68fc0 100644 --- a/gcc/c/c-lang.h +++ b/gcc/c/c-lang.h @@ -72,6 +72,11 @@ struct GTY(()) c_omp_begin_assumes_data { bool attr_syntax; }; +struct GTY(()) c_omp_declare_variant_attr { + bool attr_syntax; + tree selector; +}; + /* If non-empty, implicit "omp declare target" attribute is added into the attribute lists. */ extern GTY(()) vec<c_omp_declare_target_attr, va_gc> @@ -80,5 +85,8 @@ extern GTY(()) vec<c_omp_declare_target_attr, va_gc> #pragma omp end assumes (and how many times when nested). */ extern GTY(()) vec<c_omp_begin_assumes_data, va_gc> *current_omp_begin_assumes; +/* And similarly for #pragma omp begin/end declare variant. */ +extern GTY(()) vec<c_omp_declare_variant_attr, va_gc> + *current_omp_declare_variant_attribute; #endif /* ! GCC_C_LANG_H */ |