- Oct 26, 2011
-
-
Anna Zaks authored
The path sensitive checkers should use EmitBasicReport, which provides the node information. llvm-svn: 143060
-
Anna Zaks authored
Also document addTransition methods. llvm-svn: 143059
-
Anna Zaks authored
Remove GenericNodeBuilder and use a class inherited from NodeBuilder instead. llvm-svn: 143057
-
- Oct 25, 2011
-
-
Anna Zaks authored
A step toward making sure that diagnostics report should only be generated though the CheckerContext and not though BugReporter or ExprEngine directly. llvm-svn: 142947
-
Anna Zaks authored
Remove dead members/parameters: ProgramState, respondsToCallback, autoTransition. Remove addTransition method since it's the same as generateNode. Maybe we should rename generateNode to genTransition (since a transition is always automatically generated)? llvm-svn: 142946
-
Anna Zaks authored
llvm-svn: 142945
-
Anna Zaks authored
Now, all the path sensitive checkers use CheckerContext! llvm-svn: 142944
-
Anna Zaks authored
Get rid of the EndOfPathBuilder completely. Use the generic NodeBuilder to generate nodes. Enqueue the end of path frontier explicitly. llvm-svn: 142943
-
Douglas Gregor authored
statements. As noted in the documentation for the AST node, the semantics of __if_exists/__if_not_exists are somewhat different from the way Visual C++ implements them, because our parsed-template representation can't accommodate VC++ semantics without serious contortions. Hopefully this implementation is "good enough". llvm-svn: 142901
-
Ted Kremenek authored
llvm-svn: 142885
-
- Oct 24, 2011
-
-
Anna Zaks authored
Renamed PureNodeBuilder->StmtNodeBuilder. llvm-svn: 142849
-
Anna Zaks authored
llvm-svn: 142848
-
Anna Zaks authored
llvm-svn: 142847
-
Anna Zaks authored
- OSAtomicChecker - ExprEngine::processStmt llvm-svn: 142846
-
Anna Zaks authored
This commit removes the major functional dependency on the ExprEngine::Builder member variable. In some cases the code became more verbose. Particularly, we call takeNodes() and addNodes() to move responsibility for the nodes from one builder to another. This will get simplified later on. llvm-svn: 142831
-
Anna Zaks authored
llvm-svn: 142830
-
Anna Zaks authored
llvm-svn: 142829
-
Anna Zaks authored
To convert iteratively, we take the nodes the local builder will process from the from the global builder and add the generated nodes after the short lived builder is done. PureStmtNodeBuilder is the one we should eventually use everywhere. Added Stmt index and Builder context as ExprEngine globals. To avoid passing them around. llvm-svn: 142828
-
Anna Zaks authored
First step toward removing the global Stmt builder. Added several transitional methods (like takeNodes/addNodes). + Stop early if the set of exploded nodes for the next iteration is empty. llvm-svn: 142827
-
Anna Zaks authored
This moves the responsibility for storing the output node set from the builder to the clients. The builder is just responsible for transforming an input set into the output set: {SrcSet/SrcNode} -> {Frontier}. llvm-svn: 142826
-
Ted Kremenek authored
Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. llvm-svn: 142782
-
- Oct 23, 2011
-
-
Ted Kremenek authored
[analyzer] Remove LocationContext creation methods from AnalysisManager, and change clients to use AnalysisContext instead. WIP to remove/reduce ExprEngine's usage of AnalysisManager. llvm-svn: 142739
-
- Oct 19, 2011
-
-
Anna Zaks authored
llvm-svn: 142454
-
Anna Zaks authored
NodeBuilder should not assume it's dealing with a single predecessor. Remove predecessor getters. Modify the BranchNodeBuilder to not be responsible for doing auto-transitions (which depend on a predecessor). llvm-svn: 142453
-
Anna Zaks authored
It now only depends on a generic NodeBuilder instead. As part of this change, make the generic node builder results finalized by default. llvm-svn: 142452
-
Anna Zaks authored
llvm-svn: 142451
-
Anna Zaks authored
ExprEngineBuilders is not used. llvm-svn: 142450
-
Anna Zaks authored
Take advantage of the new builders for branch processing. As part of this change pass generic NodeBuilder (instead of BranchNodeBuilder) to the BranchCondition callback and remove the unused methods form BranchBuilder. llvm-svn: 142448
-
Anna Zaks authored
Each builder will have a different one, so it doesn't make sense to keep it in the context. llvm-svn: 142447
-
Anna Zaks authored
llvm-svn: 142444
-
Anna Zaks authored
[analyzer] Node Builder refactoring: Introduce a simple Node Builder responsible for generating the node frontier. Currently we have a bunch of different node builders which provide some common functionality but are difficult to refactor. Each builder generates nodes of different kinds and calculates the frontier nodes, which should be propagated to the next step (after the builder dies). Introduce a new NodeBuilder which provides very basic node generation facilities but takes care of the second problem. The idea is that all the other builders will eventually use it. Use this builder in CheckerContext instead of StmtNodeBuilder (the way the frontier is propagated to the StmtBuilder is a hack and will be removed later on). llvm-svn: 142443
-
- Oct 14, 2011
-
-
Richard Smith authored
llvm-svn: 141983
-
Benjamin Kramer authored
Passing a pointer was a bad idea as it collides with the overload for void*. llvm-svn: 141971
-
- Oct 11, 2011
-
-
Anna Zaks authored
llvm-svn: 141690
-
Anna Zaks authored
[analyzer] CheckerContext updates checkDst in it's destructor, so make sure the object is destructed before checkDst is used. llvm-svn: 141683
-
Anna Zaks authored
llvm-svn: 141678
-
Anna Zaks authored
[analyzer] Warn about the use of insecure, deprecated vfork() function PR11053 (http://llvm.org/bugs/show_bug.cgi?id=11053). A patch by Graham Lee! llvm-svn: 141643
-
Eli Friedman authored
llvm-svn: 141632
-
Ted Kremenek authored
llvm-svn: 141587
-
- Oct 10, 2011
-
-
Richard Smith authored
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value. llvm-svn: 141561
-