- Feb 06, 2010
-
-
Ted Kremenek authored
llvm-svn: 95459
-
- Feb 05, 2010
-
-
Zhongxing Xu authored
llvm-svn: 95365
-
Zhongxing Xu authored
llvm-svn: 95364
-
Zhongxing Xu authored
llvm-svn: 95362
-
Zhongxing Xu authored
llvm-svn: 95360
-
Zhongxing Xu authored
llvm-svn: 95357
-
Zhongxing Xu authored
spread GRState* everywhere. llvm-svn: 95354
-
- Feb 04, 2010
-
-
Zhongxing Xu authored
llvm-svn: 95290
-
Ted Kremenek authored
llvm-svn: 95287
-
Ted Kremenek authored
llvm-svn: 95286
-
Zhongxing Xu authored
llvm-svn: 95279
-
Ted Kremenek authored
a different return type. While we don't emit any errors (yet), at least we avoid cases where we might crash because of an assertion failure later on (when the return type differs from what is expected). llvm-svn: 95268
-
- Feb 03, 2010
-
-
Chandler Carruth authored
llvm-svn: 95215
-
Zhongxing Xu authored
llvm-svn: 95214
-
Ted Kremenek authored
RegionStoreManager::InvalidateRegions() by adjusting the worklist to iterate over BindingKeys instead of MemRegions. We also only need to do the actual invalidation work on base regions, and for non-base regions just blow away their bindings. llvm-svn: 95200
-
Ted Kremenek authored
not build a subregion map and instead do a single scan of the store. This is done by building "region clusters" that represent the collection of regions that have the same base region. Invalidating any region in a cluster means that they all should get invalidated. This change brought out a point that Zhongxing mentioned to me offline: the flattened memory binding has issues distinguishing between direct and default bindings. For example, setting the default value for an entire struct is the same as binding to the first element. To address this problem, I moved the binding "tag" (Direct or Default) from BindingVal to BdingKey (and removed BindingVal entirely). This requires us to do double lookups in some cases; and there is still much more cleanup that can be done. This change produced a noticeable speedup when analyzing sqlite3 (a reduction of 4% in running time). llvm-svn: 95193
-
- Feb 02, 2010
-
-
Ted Kremenek authored
Remove RegionStoreSubRegionMap::iterator and RegionStoreSubRegionMap::begin_end(). This is a precursor to using DenseSet to represent region sets instead of ImmutableSet. llvm-svn: 95151
-
Ted Kremenek authored
llvm-svn: 95128
-
Ted Kremenek authored
'Pred' to 'Dst' for cases we currently don't handle. This fixes <rdar://problem/7593875>. llvm-svn: 95048
-
Ted Kremenek authored
Hoist diagnostic generation in ReturnStackAddressChecker into a separate method. No functionality change. llvm-svn: 95037
-
- Jan 27, 2010
-
-
Ted Kremenek authored
llvm-svn: 94682
-
Ted Kremenek authored
llvm-svn: 94678
-
Ken Dyck authored
llvm-svn: 94677
-
Ted Kremenek authored
llvm-svn: 94665
-
Ted Kremenek authored
llvm-svn: 94663
-
Ted Kremenek authored
reusable and modular API pieces. Start by pulling the logic for deriving the Cocoa naming convention into a separate API, header, and source file. llvm-svn: 94662
-
Ted Kremenek authored
Teach RegionStore to handle initialization of incomplete arrays in structures using a compound value. Fixes <rdar://problem/7515938>. llvm-svn: 94622
-
- Jan 26, 2010
-
-
Ted Kremenek authored
llvm-svn: 94609
-
Ted Kremenek authored
llvm-svn: 94608
-
- Jan 25, 2010
-
-
Ted Kremenek authored
llvm-svn: 94428
-
Ted Kremenek authored
llvm-svn: 94407
-
Ted Kremenek authored
(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
-