]> granicus.if.org Git - clang/commit
[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)
commit6b41e0a3104cbc911323f5349bbc39ca8988e1b4
tree6cc033a27ee64a1eaa8e57130e556ef16681a970
parent4efb19c4af7f5f5674d00b3f5f0ed4ca9305fa95
[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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265530 91177308-0d34-0410-b5e6-96231b3b80d8
23 files changed:
include/clang/AST/ASTMutationListener.h
include/clang/Basic/Attr.td
include/clang/Basic/AttrDocs.td
include/clang/Basic/DiagnosticGroups.td
include/clang/Basic/DiagnosticParseKinds.td
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Basic/OpenMPKinds.def
include/clang/Sema/Sema.h
include/clang/Serialization/ASTWriter.h
lib/AST/ASTContext.cpp
lib/AST/DeclPrinter.cpp
lib/Basic/OpenMPKinds.cpp
lib/Frontend/MultiplexConsumer.cpp
lib/Parse/ParseOpenMP.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOpenMP.cpp
lib/Serialization/ASTCommon.h
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriter.cpp
lib/Serialization/ASTWriterDecl.cpp
test/OpenMP/declare_target_ast_print.cpp [new file with mode: 0644]
test/OpenMP/declare_target_messages.cpp [new file with mode: 0644]