15 #ifndef LLVM_CLANG_AST_DECLOPENMP_H
16 #define LLVM_CLANG_AST_DECLOPENMP_H
19 #include "llvm/ADT/ArrayRef.h"
40 virtual void anchor();
43 Decl(DK, DC, L), NumVars(0) { }
46 return llvm::makeArrayRef(reinterpret_cast<const Expr * const *>(
this + 1),
50 MutableArrayRef<Expr *> getVars() {
51 return MutableArrayRef<Expr *>(
52 reinterpret_cast<Expr **
>(
this + 1),
56 void setVars(ArrayRef<Expr *> VL);
63 unsigned ID,
unsigned N);
llvm::iterator_range< varlist_const_iterator > varlist_const_range
varlist_const_iterator varlist_end() const
static OMPThreadPrivateDecl * CreateDeserialized(ASTContext &C, unsigned ID, unsigned N)
bool varlist_empty() const
static bool classof(const Decl *D)
varlist_const_iterator varlist_begin() const
static OMPThreadPrivateDecl * Create(ASTContext &C, DeclContext *DC, SourceLocation L, ArrayRef< Expr * > VL)
MutableArrayRef< Expr * >::iterator varlist_iterator
ID
Defines the set of possible language-specific address spaces.
Encodes a location in the source. The SourceManager can decode this to get at the full include stack...
varlist_iterator varlist_begin()
unsigned varlist_size() const
varlist_const_range varlists() const
static bool classofKind(Kind K)
varlist_iterator varlist_end()
Kind
Lists the kind of concrete classes of Decl.
llvm::iterator_range< varlist_iterator > varlist_range
ArrayRef< const Expr * >::iterator varlist_const_iterator
This represents '#pragma omp threadprivate ...' directive. For example, in the following, both 'a' and 'A::b' are threadprivate: