Lines Matching full:clang
17 #include "clang/AST/Attr.h"
29 void RSCheckAST::VisitStmt(clang::Stmt *S) {
33 for (clang::Stmt::child_iterator I = S->child_begin(), E = S->child_end();
36 if (clang::Stmt *Child = *I) {
42 void RSCheckAST::WarnOnSetElementAt(clang::CallExpr *E) {
43 clang::FunctionDecl *Decl;
44 Decl = clang::dyn_cast_or_null<clang::FunctionDecl>(E->getCalleeDecl());
50 clang::Expr *Expr;
51 clang::ImplicitCastExpr *ImplCast;
53 ImplCast = clang::dyn_cast_or_null<clang::ImplicitCastExpr>(Expr);
59 const clang::Type *Ty;
60 const clang::VectorType *VectorTy;
61 const clang::BuiltinType *ElementTy;
64 VectorTy = clang::dyn_cast_or_null<clang::VectorType>(Ty);
67 ElementTy = clang::dyn_cast_or_null<clang::BuiltinType>(
70 ElementTy = clang::dyn_cast_or_null<clang::BuiltinType>(
93 case clang::BuiltinType::Float:
96 case clang::BuiltinType::Double:
99 case clang::BuiltinType::Char_S:
102 case clang::BuiltinType::Short:
105 case clang::BuiltinType::Int:
108 case clang::BuiltinType::Long:
111 case clang::BuiltinType::UChar:
114 case clang::BuiltinType::UShort:
117 case clang::BuiltinType::UInt:
120 case clang::BuiltinType::ULong:
127 clang::DiagnosticBuilder DiagBuilder =
140 void RSCheckAST::VisitCallExpr(clang::CallExpr *E) {
143 for (clang::CallExpr::arg_iterator AI = E->arg_begin(), AE = E->arg_end();
149 void RSCheckAST::ValidateFunctionDecl(clang::FunctionDecl *FD) {
155 if (FD->hasAttr<clang::RenderScriptKernelAttr>() &&
156 FD->getStorageClass() == clang::SC_Static) {
164 clang::QualType resultType = FD->getReturnType().getCanonicalType();
165 bool isExtern = (FD->getFormalLinkage() == clang::ExternalLinkage);
176 clang::ParmVarDecl *PVD = FD->getParamDecl(i);
177 clang::QualType QT = PVD->getType().getCanonicalType();
187 if (clang::Stmt *Body = FD->getBody()) {
195 void RSCheckAST::ValidateVarDecl(clang::VarDecl *VD) {
200 clang::QualType QT = VD->getType();
202 if (VD->getFormalLinkage() == clang::ExternalLinkage) {
204 const clang::Type *T = QT.getTypePtr();
224 } else if (clang::Expr *Init = VD->getInit()) {
231 void RSCheckAST::VisitDeclStmt(clang::DeclStmt *DS) {
233 for (clang::DeclStmt::decl_iterator I = DS->decl_begin(),
237 if (clang::VarDecl *VD = llvm::dyn_cast<clang::VarDecl>(*I)) {
239 } else if (clang::FunctionDecl *FD =
240 llvm::dyn_cast<clang::FunctionDecl>(*I)) {
248 void RSCheckAST::VisitCastExpr(clang::CastExpr *CE) {
249 if (CE->getCastKind() == clang::CK_BitCast) {
250 clang::QualType QT = CE->getType();
251 const clang::Type *T = QT.getTypePtr();
253 if (llvm::isa<clang::ImplicitCastExpr>(CE)) {
265 void RSCheckAST::VisitExpr(clang::Expr *E) {
289 clang::TranslationUnitDecl *TUDecl = C.getTranslationUnitDecl();
290 for (clang::DeclContext::decl_iterator DI = TUDecl->decls_begin(),
300 if (clang::VarDecl *VD = llvm::dyn_cast<clang::VarDecl>(*DI)) {
302 } else if (clang::FunctionDecl *FD =
303 llvm::dyn_cast<clang::FunctionDecl>(*DI)) {
305 } else if (clang::Stmt *Body = (*DI)->getBody()) {