#ifndef LLVM_CLANG_AST_OPENACCCLAUSE_H
#define LLVM_CLANG_AST_OPENACCCLAUSE_H
#include "clang/AST/ASTContext.h"
#include "clang/AST/StmtIterator.h"
#include "clang/Basic/OpenACCKinds.h"
#include <utility>
namespace clang {
class OpenACCClause { … };
class OpenACCAutoClause : public OpenACCClause { … };
class OpenACCIndependentClause : public OpenACCClause { … };
class OpenACCSeqClause : public OpenACCClause { … };
class OpenACCGangClause : public OpenACCClause { … };
class OpenACCVectorClause : public OpenACCClause { … };
class OpenACCWorkerClause : public OpenACCClause { … };
class OpenACCClauseWithParams : public OpenACCClause { … };
DeviceTypeArgument;
class OpenACCDeviceTypeClause final
: public OpenACCClauseWithParams,
public llvm::TrailingObjects<OpenACCDeviceTypeClause,
DeviceTypeArgument> { … };
class OpenACCDefaultClause : public OpenACCClauseWithParams { … };
class OpenACCClauseWithCondition : public OpenACCClauseWithParams { … };
class OpenACCIfClause : public OpenACCClauseWithCondition { … };
class OpenACCSelfClause : public OpenACCClauseWithCondition { … };
class OpenACCClauseWithExprs : public OpenACCClauseWithParams { … };
class OpenACCWaitClause final
: public OpenACCClauseWithExprs,
public llvm::TrailingObjects<OpenACCWaitClause, Expr *> { … };
class OpenACCNumGangsClause final
: public OpenACCClauseWithExprs,
public llvm::TrailingObjects<OpenACCNumGangsClause, Expr *> { … };
class OpenACCClauseWithSingleIntExpr : public OpenACCClauseWithExprs { … };
class OpenACCNumWorkersClause : public OpenACCClauseWithSingleIntExpr { … };
class OpenACCVectorLengthClause : public OpenACCClauseWithSingleIntExpr { … };
class OpenACCAsyncClause : public OpenACCClauseWithSingleIntExpr { … };
class OpenACCClauseWithVarList : public OpenACCClauseWithExprs { … };
class OpenACCPrivateClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCPrivateClause, Expr *> { … };
class OpenACCFirstPrivateClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCFirstPrivateClause, Expr *> { … };
class OpenACCDevicePtrClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCDevicePtrClause, Expr *> { … };
class OpenACCAttachClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCAttachClause, Expr *> { … };
class OpenACCNoCreateClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCNoCreateClause, Expr *> { … };
class OpenACCPresentClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCPresentClause, Expr *> { … };
class OpenACCCopyClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCCopyClause, Expr *> { … };
class OpenACCCopyInClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCCopyInClause, Expr *> { … };
class OpenACCCopyOutClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCCopyOutClause, Expr *> { … };
class OpenACCCreateClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCCreateClause, Expr *> { … };
class OpenACCReductionClause final
: public OpenACCClauseWithVarList,
public llvm::TrailingObjects<OpenACCReductionClause, Expr *> { … };
template <class Impl> class OpenACCClauseVisitor { … };
class OpenACCClausePrinter final
: public OpenACCClauseVisitor<OpenACCClausePrinter> { … };
}
#endif