| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 99114
|
|
|
|
| |
llvm-svn: 99064
|
|
|
|
|
|
| |
This avoids redundant diagnostics.
llvm-svn: 99063
|
|
|
|
|
|
| |
expression", statistical evidence indicates it has some kind of memory error.
llvm-svn: 99040
|
|
|
|
|
|
| |
is not evaluated because the receiver is nil.
llvm-svn: 99024
|
|
|
|
|
|
| |
for both CallExprs and ObjCMessageExprs.
llvm-svn: 98800
|
|
|
|
|
|
| |
uninitialized data.
llvm-svn: 98796
|
|
|
|
|
|
|
|
| |
a scalar variable with a scalar parameter. This is a
form of defensive programming. If the variable is unused,
it will be caused by -Wunused-variable.
llvm-svn: 98795
|
|
|
|
|
|
| |
their bindings are not removed.
llvm-svn: 98705
|
|
|
|
|
|
| |
since RemoveDeadBinding mistakenly remove the binding to CXXThisRegion.
llvm-svn: 98629
|
|
|
|
|
| |
Tested: make CPPFLAGS=-m64 CXXFLAGS=-m64 -j8 && (cd tools/clang;make test)
llvm-svn: 98399
|
|
|
|
| |
llvm-svn: 98176
|
|
|
|
| |
llvm-svn: 98175
|
|
|
|
| |
llvm-svn: 98161
|
|
|
|
| |
llvm-svn: 98160
|
|
|
|
|
|
|
|
|
|
|
| |
RegionStore::RemoveDeadBindings to use the same core cluster analysis algorithm as RegionStore::InvalidateRegions().
Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings(). This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.
llvm-svn: 98159
|
|
|
|
|
|
|
|
|
|
|
| |
cluster analysis algorithm as RegionStore::InvalidateRegions().
Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings(). This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.
llvm-svn: 98144
|
|
|
|
|
|
|
| |
into a 'ClusterAnalysis' parent class. The idea is
to potentially reuse this for reworking RemoveDeadBindings.
llvm-svn: 98143
|
|
|
|
| |
llvm-svn: 98136
|
|
|
|
|
|
| |
with an 'unknown' memory space.
llvm-svn: 98110
|
|
|
|
|
|
| |
of the class name.
llvm-svn: 97943
|
|
|
|
| |
llvm-svn: 97941
|
|
|
|
|
|
|
|
| |
LocationContext
information in ExplodedNode.
llvm-svn: 97785
|
|
|
|
|
|
|
|
|
|
| |
we now may have identical states with different analysis context.
Set the right AnalysisContext in state when entering and leaving a callee.
With both of the above changes, we can pass the test case.
llvm-svn: 97724
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After discussion with Zhongxing, don't force the initializer of DeclStmts to be
block-level expressions.
This led to some interesting fallout:
[UninitializedValues]
Always visit the initializer of DeclStmts (do not assume they are block-level expressions).
[BasicStore]
With initializers of DeclStmts no longer block-level expressions, this causes self-referencing initializers (e.g. 'int x = x') to no longer cause the initialized variable to be live before the DeclStmt. While this is correct, it caused BasicStore::RemoveDeadBindings() to prune off the values of these variables from the initial store (where they are set to uninitialized). The fix is to back-port some (and only some) of the lazy-binding logic from RegionStore to
BasicStore. Now the default values of local variables are determined lazily as opposed
to explicitly initialized.
llvm-svn: 97591
|
|
|
|
| |
llvm-svn: 97590
|
|
|
|
|
|
| |
no need to store a type with SymbolRegionValue.
llvm-svn: 97437
|
|
|
|
|
|
| |
silently.
llvm-svn: 97436
|
|
|
|
|
|
| |
definition.
llvm-svn: 97373
|
|
|
|
|
|
|
|
|
|
|
| |
Use this information to find the returned value and bind it to CallExpr in
ProcessCallExit.
And there is no need to remove dead bindings in ProcessCallExit, because
a. it would clean up the return value bound to CallExpr
b. we still would do it in the next ProcessStmt(), where we would not misclean
up the return value.
llvm-svn: 97225
|
|
|
|
| |
llvm-svn: 97207
|
|
|
|
|
|
| |
due to a Clang-on-Clang failure
llvm-svn: 97162
|
|
|
|
|
|
| |
They were breaking clang-x86_64-darwin10-selfhost
llvm-svn: 97138
|
|
|
|
| |
llvm-svn: 97131
|
|
|
|
|
|
| |
GRExprEngine::ProcessCallExit().
llvm-svn: 97129
|
|
|
|
| |
llvm-svn: 97127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the CallEnter/CallExit idea of Ted.
Add two interfaces to GRSubEngine: ProcessCallEnter, ProcessCallExit.
The CallEnter program point uses caller's location context. The
CallExit program point uses callee's location context.
CallEnter is built by GRStmtNodeBuilder. CallExit is built by
GREndPathNodeBuilder.
llvm-svn: 97122
|
|
|
|
|
|
|
|
|
|
|
|
| |
for calls
to various MacOS X functions. The checks in BasicObjCFoundationChecks.cpp will
gradually be migrated here.
As a first check, check that when 'dispatch_once()' is passed a predicate value
that has non-local storage.
llvm-svn: 97116
|
|
|
|
| |
llvm-svn: 97115
|
|
|
|
|
|
|
|
| |
unused
when it is explicitly marked as unused via __attribute__((unused)).
llvm-svn: 97104
|
|
|
|
|
|
|
|
|
|
|
| |
for calls
to various unix/posix functions, e.g. 'open()'.
As a first check, check that when 'open()' is passed 'O_CREAT' that it has
a third argument.
llvm-svn: 97086
|
|
|
|
| |
llvm-svn: 97085
|
|
|
|
| |
llvm-svn: 97084
|
|
|
|
|
|
| |
trim whitespace.
llvm-svn: 97083
|
|
|
|
| |
llvm-svn: 97082
|
|
|
|
|
|
|
| |
pointer (for defensive programming). This matches the behavior with
assigning NULL to a regular pointer. Fixes <rdar://problem/7631278>.
llvm-svn: 96985
|
|
|
|
|
|
| |
in the static analyzer.
llvm-svn: 96539
|
|
|
|
| |
llvm-svn: 96537
|
|
|
|
|
|
|
|
| |
current stack frame.
When leaving a callee, remove all bindings belonging to that callee.
llvm-svn: 96473
|
|
|
|
|
|
| |
space regions. Use a dense map to store them.
llvm-svn: 96472
|