[cfe-dev] Clang Static Analyzer - BugReporter::EmitBasicReport with Stmt

Gábor Kozár kozargabor at gmail.com
Wed May 8 01:24:55 PDT 2013

Hi Jordan,

Okay, so that Decl I need to specify is the parent for the Stmt I want to
report? That makes sense.
The reason I'm running my matchers in checkEndOfTranslationUnit, is because
a lot of matches are not actually inside function bodies, but are for
example data members of classes. I was under the impression that
checkASTCodeBody would only be called for functions (although I can't quite
remember why). Is that not the case?



2013/5/8 Jordan Rose <jordan_rose at apple.com>

> Hi, Gábor. The LocationContext/AnalysisDeclContext is used to find an
> appropriate location for the statement, which may be in an enclosing
> expression. You need a Decl for this because we don't want to build a
> parent map for the entire ASTContext.
> May I suggest running your matcher in checkASTCodeBody instead of
> checkEndOfTranslationUnit?
> Jordan
> On May 7, 2013, at 9:32 , Gábor Kozár <kozargabor at gmail.com> wrote:
> > Hi,
> >
> > In a Static Analyzer checker, using AST matchers, I located an
> IntegerLiteral that I want to report. I'm trying to do this with
> BugReporter::EmitBasicReport, which requires a PathDiagnosticLocation.
> >
> > There is PathDiagnosticLocation::createBegin that I've used before with
> previous checkers - unfortunately, the overload that accepts an Stmt* (as
> an IntegerLiteral is not a Decl, but it is an Stmt) also requires a
> mysterious third parameter, a LocationOrAnalysisDeclContext. I tried
> looking through the documentation, but apparently anything that returns a
> LocationDeclContext or AnalysisDeclContext either require a CheckerContext
> (which I don't have, because I'm in checkEndOfTranslationUnit: all I have
> is the TranslationUnitDecl, the AnalysisManager and the BugReporter), or a
> Decl*.
> >
> > Any clues on how could I do this? I'm using Clang 3.2.
> >
> > Note: I'm aware that the Clang Static Analyzer by default is not linked
> to libASTMatchers, but I solved that, that is NOT the issue here.
> >
> > Thanks!
> >
> > Gabor
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130508/87af08fd/attachment.html>

More information about the cfe-dev mailing list