[OPENMP] Parsing and Sema support for 'omp declare target' directive
authorDmitry Polukhin <dmitry.polukhin@gmail.com>
Wed, 6 Apr 2016 11:38:59 +0000 (11:38 +0000)
committerDmitry Polukhin <dmitry.polukhin@gmail.com>
Wed, 6 Apr 2016 11:38:59 +0000 (11:38 +0000)
commit0b0da296e6de09610621467279a99eb290522a88
tree1658d323a4f2382dfdfdb387db998bfde5095e9d
parentb1f7d4d79cbc720bba2c0f82cfe0a0e0c6077896
[OPENMP] Parsing and Sema support for 'omp declare target' directive

Add parsing, sema analysis for 'declare target' construct for OpenMP 4.0
(4.5 support will be added in separate patch).

The declare target directive specifies that variables, functions (C, C++
and Fortran), and subroutines (Fortran) are mapped to a device. The declare
target directive is a declarative directive. In Clang declare target is
implemented as implicit attribute for the declaration.

The syntax of the declare target directive is as follows:

 #pragma omp declare target
 declarations-definition-seq
 #pragma omp end declare target

Based on patch from Michael Wong http://reviews.llvm.org/D15321

llvm-svn: 265530
23 files changed:
clang/include/clang/AST/ASTMutationListener.h
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticParseKinds.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Basic/OpenMPKinds.def
clang/include/clang/Sema/Sema.h
clang/include/clang/Serialization/ASTWriter.h
clang/lib/AST/ASTContext.cpp
clang/lib/AST/DeclPrinter.cpp
clang/lib/Basic/OpenMPKinds.cpp
clang/lib/Frontend/MultiplexConsumer.cpp
clang/lib/Parse/ParseOpenMP.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaExpr.cpp
clang/lib/Sema/SemaOpenMP.cpp
clang/lib/Serialization/ASTCommon.h
clang/lib/Serialization/ASTReaderDecl.cpp
clang/lib/Serialization/ASTWriter.cpp
clang/lib/Serialization/ASTWriterDecl.cpp
clang/test/OpenMP/declare_target_ast_print.cpp [new file with mode: 0644]
clang/test/OpenMP/declare_target_messages.cpp [new file with mode: 0644]