#
e302792b |
| 25-Aug-2010 |
John McCall <rjmccall@apple.com> |
GCC didn't care for my attempt at API compatibility, so brute-force everything to the new constants.
llvm-svn: 112047
|
#
2e222689 |
| 04-Jun-2010 |
Jordy Rose <jediknil@belkadan.com> |
Assignments to reference variables shouldn't kill the variable.
llvm-svn: 105452
|
Revision tags: llvmorg-2.7.0 |
|
#
0f0883b9 |
| 03-Mar-2010 |
Ted Kremenek <kremenek@apple.com> |
Fix an algorithmic bug in LiveVariables pointed out by Zhongxing. If an initializer in a DeclStmt references the declared variable, that extends the liveness of that variable.
llvm-svn: 97624
|
#
d497e126 |
| 02-Mar-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Register all parameters even if they didn't occur in the function body. We may query their liveness because they are added to store when passing argument values.
llvm-svn: 97562
|
#
d6b87086 |
| 25-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Split libAnalysis into two libraries: libAnalysis and libChecker.
(1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives,
Split libAnalysis into two libraries: libAnalysis and libChecker.
(1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables).
(2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks.
Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer.
This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :)
This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty.
llvm-svn: 94406
show more ...
|
#
7b8b4d70 |
| 30-Dec-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Simplify code by using an equivalent template class.
llvm-svn: 92305
|
#
9c951ab4 |
| 24-Dec-2009 |
Ted Kremenek <kremenek@apple.com> |
Enhance dataflow analyses to recognize branch statements in the CFG used as hooks for the initialization of condition variables.
llvm-svn: 92119
|
#
65c6566b |
| 28-Nov-2009 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
lib/Analysis: Remove VISIBILITY_HIDDEN from definitions in anonymous namespace
llvm-svn: 90028
|
#
0f5e6f88 |
| 26-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr.
This required two changes:
1) Added 'getReferencedgetReferencedBlockVars()'
Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr.
This required two changes:
1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so that clients can iterate over the "captured" variables in a block.
2) Modified LiveVariables to take an AnalysisContext& in its constructor and to call getReferencedgetReferencedBlockVars() when it processes a BlockExpr*.
llvm-svn: 89924
show more ...
|
#
612e3802 |
| 10-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix clang's use of DenseMap iterators after r86636 fixed their constness. Patch by Victor Zverovich!
llvm-svn: 86638
|
#
975a119f |
| 07-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Use SaveAndRestore to simplify logic in LiveVariables::runOnAllBlocks(). Patch by Kovarththanan Rajaratnam!
llvm-svn: 86343
|
#
45540e91 |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
add some const qualifiers, patch by Kovarththanan Rajaratnam!
llvm-svn: 86260
|
Revision tags: llvmorg-2.6.0 |
|
#
07d0785d |
| 18-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients are updated.
llvm-svn: 84447
|
#
e81a5531 |
| 17-Oct-2009 |
Daniel Dunbar <daniel@zuster.org> |
Use raw_ostream instead of C stdio.
llvm-svn: 84340
|
#
11289f42 |
| 09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups.
llvm-svn: 81346
|
#
6796fbd2 |
| 16-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Move the source-level CFG from libAST to libAnalysis.
llvm-svn: 76092
|
#
703db197 |
| 30-Jun-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Instead of r74522, use another approach to fix xfail_regionstore_wine_crash.c. Mark the super region of the binding of block level expr in the Environment as live.
llvm-svn: 74525
|
#
d29e74e6 |
| 30-Jun-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Block level expr should be visited. Otherwise variables in init expr of DeclStmt would be dead before the DeclStmt. For example: int x = 0; int y = x; 'x' would be dead before 'int y = x'.
llvm-svn:
Block level expr should be visited. Otherwise variables in init expr of DeclStmt would be dead before the DeclStmt. For example: int x = 0; int y = x; 'x' would be dead before 'int y = x'.
llvm-svn: 74522
show more ...
|
#
4d947fac |
| 07-Apr-2009 |
Ted Kremenek <kremenek@apple.com> |
Remove hack from LiveVariables analysis where variables whose address are taken are considered 'live'. This hack isn't needed anymore because we have a separation in the path-sensitive analyzer betwe
Remove hack from LiveVariables analysis where variables whose address are taken are considered 'live'. This hack isn't needed anymore because we have a separation in the path-sensitive analyzer between variable names and bindings; the analyzer can continue to reason about the storage of a variable after its name is no longer directly referenced. Now the live variables analysis literally means "is this name live".
Along this line, update the dead stores checker to explicitly look for variables whose values have escaped.
llvm-svn: 68504
show more ...
|
#
529efc74 |
| 28-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
rename some methods.
llvm-svn: 67923
|
Revision tags: llvmorg-2.5.0 |
|
#
378e7fd3 |
| 30-Jan-2009 |
Ted Kremenek <kremenek@apple.com> |
Fix horrible non-termination bug in LiveVariables. The issue was that the liveness state of block-level expressions could oscillate because of two issues: - The initial value before a merge was not
Fix horrible non-termination bug in LiveVariables. The issue was that the liveness state of block-level expressions could oscillate because of two issues: - The initial value before a merge was not always set to "Top" - The set of live block-level expressions is a union, not an intersection
This fixes <rdar://problem/650084>.
llvm-svn: 63421
show more ...
|
#
f1ca7d3e |
| 27-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Introduce a new PresumedLoc class to represent the concept of a location as reported to the user and as manipulated by #line. This is what __FILE__, __INCLUDE_LEVEL__, diagnostics and other things s
Introduce a new PresumedLoc class to represent the concept of a location as reported to the user and as manipulated by #line. This is what __FILE__, __INCLUDE_LEVEL__, diagnostics and other things should follow (but not dependency generation!).
This patch also includes several cleanups along the way:
- SourceLocation now has a dump method, and several other places that did similar things now use it. - I cleaned up some code in AnalysisConsumer, but it should probably be simplified further now that NamedDecl is better. - TextDiagnosticPrinter is now simplified and cleaned up a bit.
This patch is a prerequisite for #line, but does not actually provide any #line functionality.
llvm-svn: 63098
show more ...
|
#
53e384f6 |
| 16-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Change some terminology in SourceLocation: instead of referring to the "physical" location of tokens, refer to the "spelling" location. This is more concrete and useful, tokens aren't really physica
Change some terminology in SourceLocation: instead of referring to the "physical" location of tokens, refer to the "spelling" location. This is more concrete and useful, tokens aren't really physical objects!
llvm-svn: 62309
show more ...
|
#
6ee0a118 |
| 09-Dec-2008 |
Ted Kremenek <kremenek@apple.com> |
Fixed LiveVariables bug where we didn't consider block-level expressions that functioned as the size of a VLA to be live.
llvm-svn: 60730
|
#
fc419a03 |
| 14-Nov-2008 |
Ted Kremenek <kremenek@apple.com> |
Minor tweaks to liveness analysis: - Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs - Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for
Minor tweaks to liveness analysis: - Block-expression for 'ObjCForCollectionStmt' is not alive before it occurs - Recursively visit 'element' expression for ObjCForCollectionStmt to get liveness for referenced block-level expressions and variables.
llvm-svn: 59316
show more ...
|