c-common.h (c_omp_mark_declare_variant, [...]): Declare.
authorJakub Jelinek <jakub@redhat.com>
Sat, 12 Oct 2019 08:27:36 +0000 (10:27 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 12 Oct 2019 08:27:36 +0000 (10:27 +0200)
commit20de9568b49e663be848a35ce0bb08f63f14b5b2
tree302f44f3d609ab83db0ef9a7e4ec5aeb4287965e
parent47370f050940a2e140e89fc0d46e808fab206f04
c-common.h (c_omp_mark_declare_variant, [...]): Declare.

c-family/
* c-common.h (c_omp_mark_declare_variant,
c_omp_context_selector_matches): Declare.
* c-omp.c: Include attribs.h, gimplify.h, cgraph.h, symbol-summary.h
and hsa-common.h.
(c_omp_get_context_selector): Support second argument NULL.
(c_omp_mark_declare_variant, c_omp_context_selector_matches): New
functions.
* c-attribs.c (c_common_attribute_table): Remove "omp declare variant"
attribute, add "omp declare variant base" and
"omp declare variant variant" attributes.
c/
* c-parser.c (c_parser_omp_context_selector): Improve error recovery.
For simd properties, put them directly into TREE_VALUE.
(c_finish_omp_declare_variant): Call c_omp_mark_declare_variant.
If c_omp_context_selector_matches is 0, don't add attribute, otherwise
add "omp declare variant base" attribute rather than
"omp declare variant".
cp/
* parser.c (cp_parser_omp_context_selector): Improve error recovery.
For simd properties, put them directly into TREE_VALUE.
(cp_finish_omp_declare_variant): Add "omp declare variant base"
attribute rather than "omp declare variant".
testsuite/
* c-c++-common/gomp/declare-variant-2.c: Adjust for error recovery
improvements.  Add new tests.
* c-c++-common/gomp/declare-variant-4.c: New test.
* c-c++-common/gomp/declare-variant-5.c: New test.
* c-c++-common/gomp/declare-variant-6.c: New test.
* c-c++-common/gomp/declare-variant-7.c: New test.

From-SVN: r276914
14 files changed:
gcc/c-family/ChangeLog
gcc/c-family/c-attribs.c
gcc/c-family/c-common.h
gcc/c-family/c-omp.c
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/declare-variant-2.c
gcc/testsuite/c-c++-common/gomp/declare-variant-4.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/gomp/declare-variant-5.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/gomp/declare-variant-6.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/gomp/declare-variant-7.c [new file with mode: 0644]