[OPENMP50]Multiple vendors in vendor context must be treated as logical
authorAlexey Bataev <a.bataev@hotmail.com>
Tue, 8 Oct 2019 19:44:16 +0000 (19:44 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Tue, 8 Oct 2019 19:44:16 +0000 (19:44 +0000)
commit303657a6c6f440f1855f6680c8bb1c8a7b815535
tree96160f0aad0f872949c70622344b899530166d86
parent07c5f2a9b0add36974250cd9ab9152458e8b3361
[OPENMP50]Multiple vendors in vendor context must be treated as logical
and of vendors, not or.

If several vendors are provided in the same vendor context trait, the
context shall match only if all vendors are matching, not one of them.
This is per OpenMP 5.0, 2.3.3 Matching and Scoring Context Selectors,
all selectors in the construct, device, and implementation sets of the
context selector appear in the corresponding trait set of the OpenMP
context.

llvm-svn: 374107
clang/include/clang/Basic/Attr.td
clang/include/clang/Sema/Sema.h
clang/lib/CodeGen/CGOpenMPRuntime.cpp
clang/lib/Parse/ParseOpenMP.cpp
clang/lib/Sema/SemaOpenMP.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/test/OpenMP/declare_variant_ast_print.c
clang/test/OpenMP/declare_variant_ast_print.cpp
clang/test/OpenMP/declare_variant_implementation_vendor_codegen.cpp