summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/AnalysisConsumer.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Start to add a new transfer function that inlines callee. To be continued.Zhongxing Xu2009-09-111-0/+22
| | | | llvm-svn: 81501
* Make AnalysisManager stateless. Now other analyzer components only depends onZhongxing Xu2009-09-101-46/+55
| | | | | | local node information. llvm-svn: 81433
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-72/+72
| | | | llvm-svn: 81346
* Update clang for raw_fd_ostream no longer requiring F_Force.Dan Gohman2009-08-251-2/+1
| | | | llvm-svn: 79991
* Remove CodeDecl and CFG from GRExprEngine and GRStateManager.Zhongxing Xu2009-08-251-6/+3
| | | | | | | Now AnalysisManager is the only place we can get CodeDecl. This leads to an API change: GRState::bindExpr() now takes the CFG argument. llvm-svn: 79980
* API changes to match llvm ToT.Chris Lattner2009-08-231-3/+2
| | | | llvm-svn: 79868
* Replace cerr with errs().Benjamin Kramer2009-08-231-6/+5
| | | | llvm-svn: 79854
* adjust for raw_fd_ostream api change.Chris Lattner2009-08-231-2/+2
| | | | llvm-svn: 79809
* Tie the local check NSErrorCheck to a Decl to pave the wayZhongxing Xu2009-08-211-1/+1
| | | | | | to untie the ExplodedGraph from a specific Decl. llvm-svn: 79588
* Extend the ProgramPoint to include the context information LocationContext,Zhongxing Xu2009-08-151-2/+2
| | | | | | | which is either a stack frame context of the function or a local scope context. llvm-svn: 79072
* As GRState seems general enough, it is time to merge some template classes Zhongxing Xu2009-08-061-8/+8
| | | | | | | and their impl base classes. This can greatly simply some code of the core analysis engine. This patch merges ExplodedNodeImpl into ExplodedNode. llvm-svn: 78270
* now we can let AnalysisManager to own the PathDiagnosticClient.Zhongxing Xu2009-08-031-6/+8
| | | | llvm-svn: 77945
* Create only one AnalysisManager for each translation unit. In HandleCode(),Zhongxing Xu2009-08-031-14/+11
| | | | | | reset the current analysis context of the AnalysisManager. llvm-svn: 77943
* Fix regression caused by recent refactoring where HTML and plist files would ↵Ted Kremenek2009-08-021-0/+5
| | | | | | not get flushed out when using '-disable-free'. llvm-svn: 77882
* Fix use-after-release bug introduced in r77585 where the PathDiagnosticClientTed Kremenek2009-07-311-5/+4
| | | | | | | | | | | | | | | created by AnalysisConsumer would be released by an instance of AnalysisManager and then reused by later instances of AnalysisManager. Ownership of the PathDiagnosticClient now belongs (for now) in AnalysisConsumer. We also need this layering (for now) because the HTMLDiagnostiClient requires that the entire translation unit be processed before emitting diagnostics. This is done in its destructor (which should also be fixed, but that is another issue). This fixes PR 4653. llvm-svn: 77648
* Initialize an otherwise-wild pointer. Fixes a crashy analyzerDouglas Gregor2009-07-301-1/+1
| | | | llvm-svn: 77599
* simple fixes.Zhongxing Xu2009-07-301-4/+2
| | | | llvm-svn: 77587
* Make AnalysisManager into its own source file and a pure data management class. Zhongxing Xu2009-07-301-169/+57
| | | | | | Move all components creation code into AnalysisConsumer::DigestAnalyzerOptions(). llvm-svn: 77585
* This patch collects all analysis context data into a new class Zhongxing Xu2009-07-301-31/+17
| | | | | | AnalysisContext. llvm-svn: 77563
* (1) Enable PlistDiagnostics to take an option "PathDiagnosticClientFactory"Ted Kremenek2009-07-271-0/+13
| | | | | | | | | | | | | | | object that it can use to forward PathDiagnostics for further processing. Along with this feature, the PlistDiagnostics object logs which files are created by the forwarding of the PathDiagnostics. (2) Create a new PathDiagnosticClientFactory object for HTMLDiagnostics, allowing other PathDiagnosticClients to forward PathDiagnostics through an opaque interface. (3) Create a "plist-html" diagnostics option in AnalysisConsumer to allow the logging of HTML files created in a hybrid Plist+HTML diagnostic client. llvm-svn: 77264
* Add initial implementation of checking for uses of floating point as a loop ↵Ted Kremenek2009-07-231-0/+5
| | | | | | counter. llvm-svn: 76833
* Add yet more analysis for CFGs involving conditionals that are actually ↵Mike Stump2009-07-201-1/+1
| | | | | | constant. llvm-svn: 76500
* Move the source-level CFG from libAST to libAnalysis.Ted Kremenek2009-07-161-1/+1
| | | | llvm-svn: 76092
* Update for raw_fd_ostream API changes. raw_fd_ostream now has aDan Gohman2009-07-151-1/+2
| | | | | | | Force flag to control whether the case of opening an existing file is considered an error. llvm-svn: 75802
* De-ASTContext-ify DeclContext.Argyrios Kyrtzidis2009-06-301-2/+2
| | | | | | | Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating". Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit. llvm-svn: 74506
* Remove the ASTContext parameter from the getBody() methods of Decl and ↵Argyrios Kyrtzidis2009-06-301-1/+1
| | | | | | | | subclasses. Timings showed no significant difference before and after the commit. llvm-svn: 74504
* Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions.Chris Lattner2009-06-301-2/+4
| | | | | | | | | | | | This is simple enough, but then I thought it would be nice to make PrintingPolicy get a LangOptions so that various things can key off "bool" and "C++" independently. This spiraled out of control. There are many fixme's, but I think things are slightly better than they were before. One thing that can be improved: CFG should probably have an ASTContext pointer in it, which would simplify its clients. llvm-svn: 74493
* Introduce a new concept to the static analyzer: SValuator.Ted Kremenek2009-06-261-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | GRTransferFuncs had the conflated role of both constructing SVals (symbolic expressions) as well as handling checker-specific logic. Now SValuator has the role of constructing SVals from expressions and GRTransferFuncs just handles checker-specific logic. The motivation is by separating these two concepts we will be able to much more easily create richer constraint-generating logic without coupling it to the main checker transfer function logic. We now have one implementation of SValuator: SimpleSValuator. SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals (which is removed in this patch). This includes the logic for EvalBinOp, EvalCast, etc. Because SValuator has a narrower role than the old GRTransferFuncs, the interfaces are much simpler, and so is the implementation of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of SVal-related logic in GRSimpleVals and cleaned it up while moving it over to SimpleSValuator. As a consequence of removing GRSimpleVals, there is no longer a '-checker-simple' option. The '-checker-cfref' did everything that option did but also ran the retain/release checker. Of course a user may not always wish to run the retain/release checker, nor do we wish core analysis logic buried in the checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp to separate out these pieces into the core analysis engine. llvm-svn: 74229
* Build fixes for r72135.Eli Friedman2009-05-191-5/+5
| | | | llvm-svn: 72136
* Move AnalysisConsumer.h and Analyses.def from tools/clang-cc to Eli Friedman2009-05-191-0/+659
include/clang/Frontend, and move AnalysisConsumer.cpp from tools/clang-cc to lib/Frontend. llvm-svn: 72135
OpenPOWER on IntegriCloud