#include "clang/Sema/SemaOpenCL.h"
#include "clang/AST/Attr.h"
#include "clang/AST/DeclBase.h"
#include "clang/Basic/DiagnosticSema.h"
#include "clang/Sema/ParsedAttr.h"
#include "clang/Sema/Sema.h"
namespace clang {
SemaOpenCL::SemaOpenCL(Sema &S) : … { … }
void SemaOpenCL::handleNoSVMAttr(Decl *D, const ParsedAttr &AL) { … }
void SemaOpenCL::handleAccessAttr(Decl *D, const ParsedAttr &AL) { … }
void SemaOpenCL::handleSubGroupSize(Decl *D, const ParsedAttr &AL) { … }
static inline bool isBlockPointer(Expr *Arg) { … }
static bool checkBlockArgs(Sema &S, Expr *BlockArg) { … }
bool SemaOpenCL::checkSubgroupExt(CallExpr *Call) { … }
bool SemaOpenCL::checkBuiltinNDRangeAndBlock(CallExpr *TheCall) { … }
bool SemaOpenCL::checkBuiltinKernelWorkGroupSize(CallExpr *TheCall) { … }
static bool checkOpenCLEnqueueIntType(Sema &S, Expr *E, const QualType &IntT) { … }
static bool checkOpenCLEnqueueLocalSizeArgs(Sema &S, CallExpr *TheCall,
unsigned Start, unsigned End) { … }
static bool checkOpenCLEnqueueVariadicArgs(Sema &S, CallExpr *TheCall,
Expr *BlockArg,
unsigned NumNonVarArgs) { … }
bool SemaOpenCL::checkBuiltinEnqueueKernel(CallExpr *TheCall) { … }
static OpenCLAccessAttr *getOpenCLArgAccess(const Decl *D) { … }
static bool checkPipeArg(Sema &S, CallExpr *Call) { … }
static bool checkPipePacketType(Sema &S, CallExpr *Call, unsigned Idx) { … }
bool SemaOpenCL::checkBuiltinRWPipe(CallExpr *Call) { … }
bool SemaOpenCL::checkBuiltinReserveRWPipe(CallExpr *Call) { … }
bool SemaOpenCL::checkBuiltinCommitRWPipe(CallExpr *Call) { … }
bool SemaOpenCL::checkBuiltinPipePackets(CallExpr *Call) { … }
bool SemaOpenCL::checkBuiltinToAddr(unsigned BuiltinID, CallExpr *Call) { … }
}