From: Michal Sojka Date: Mon, 3 Sep 2012 07:23:37 +0000 (+0200) Subject: Add more warnings X-Git-Url: http://rtime.felk.cvut.cz/gitweb/boost-statechart-viewer.git/commitdiff_plain/72cf4322f409f8ef1095f2d6ecd428ca02c047c5 Add more warnings --- diff --git a/src/visualizer.cpp b/src/visualizer.cpp index ea39148..8a41710 100644 --- a/src/visualizer.cpp +++ b/src/visualizer.cpp @@ -308,14 +308,20 @@ public: // TODO: Lookup for react even in base classes - probably by using Sema::LookupQualifiedName() for (DeclContext::lookup_const_result ReactRes = SrcState->lookup(DeclarationName(&II)); ReactRes.first != ReactRes.second; ++ReactRes.first) { - if (CXXMethodDecl *React = dyn_cast(*ReactRes.first)) - if (const ParmVarDecl *p = React->getParamDecl(0)) { + if (CXXMethodDecl *React = dyn_cast(*ReactRes.first)) { + if (React->getNumParams() >= 1) { + const ParmVarDecl *p = React->getParamDecl(0); const Type *ParmType = p->getType().getTypePtr(); if (ParmType->isLValueReferenceType()) ParmType = dyn_cast(ParmType)->getPointeeType().getTypePtr(); if (ParmType == EventType) FindTransitVisitor(model, SrcState, EventType).TraverseStmt(React->getBody()); - } + } else + Diag(React->getLocStart(), diag_warning) + << React << "has not a parameter"; + } else + Diag((*ReactRes.first)->getSourceRange().getBegin(), diag_warning) + << (*ReactRes.first)->getDeclKindName() << "is not supported as react method"; } }