- Oct 13, 2011
-
-
Ted Kremenek authored
Tweak -Wuninitialized's handling of 'int x = x' to report that as the root cause of an uninitialized variable IFF there are other uses of that uninitialized variable. Fixes <rdar://problem/9259237>. llvm-svn: 141881
-
- Oct 10, 2011
-
-
Douglas Gregor authored
it might be wrong for other instantiations of the same function template. Fixes PR10801. llvm-svn: 141559
-
- Sep 26, 2011
-
-
David Blaikie authored
llvm-svn: 140478
-
- Sep 15, 2011
-
-
Caitlin Sadowski authored
Thread safety: refactoring various out of scope warnings to use the same inteface. This eliminates a lot of unnecessary duplicated code. llvm-svn: 139801
-
- Sep 14, 2011
-
-
Caitlin Sadowski authored
llvm-svn: 139723
-
- Sep 13, 2011
-
-
Caitlin Sadowski authored
Thread safety: Initializing var before exhaustive switch statement to deal with extraneous warning produced by gcc but not clang llvm-svn: 139611
-
Chandler Carruth authored
This deletes a bunch of crufty code, and allows more logic sharing between the analyzer and the warnings. llvm-svn: 139594
-
- Sep 10, 2011
-
-
David Blaikie authored
llvm-svn: 139463
-
Douglas Gregor authored
methods, and improve the diagnostic slightly along the way. Fixes <rdar://problem/10098695>. llvm-svn: 139446
-
- Sep 09, 2011
-
-
Caitlin Sadowski authored
Thread safety: This patch deals with previously unhandled cases when building lock expressions. We now resolve this expressions, avoid crashing when encountering cast expressions, and have a diagnostic for unresolved lock expressions llvm-svn: 139370
-
Caitlin Sadowski authored
llvm-svn: 139369
-
Caitlin Sadowski authored
llvm-svn: 139368
-
Caitlin Sadowski authored
llvm-svn: 139367
-
Caitlin Sadowski authored
llvm-svn: 139331
-
- Sep 08, 2011
-
-
Caitlin Sadowski authored
Thread Safety: In C++0x Mutexes are the objects that control access to shared variables, while Locks are the objects that acquire and release Mutexes. We switch to this new terminology. llvm-svn: 139321
-
Caitlin Sadowski authored
llvm-svn: 139310
-
Caitlin Sadowski authored
llvm-svn: 139308
-
Caitlin Sadowski authored
llvm-svn: 139307
-
Caitlin Sadowski authored
class scope. This patch was also written by DeLesley Hutchins. llvm-svn: 139301
-
- Aug 31, 2011
-
-
Chandler Carruth authored
of the function in question when applicable (that is, not for blocks). Patch by Joerg Sonnenberger with some stylistic tweaks by me. When discussing this weth Joerg, streaming the decl directly into the diagnostic didn't work because we have a pointer-to-const, and the overload doesn't accept such. In order to make my style tweaks to the patch, I first changed the overload to accept a pointer-to-const, and then changed the diagnostic printing layer to also use a pointer-to-const, cleaning up a gross line of code along the way. llvm-svn: 138854
-
- Aug 30, 2011
-
-
Caitlin Sadowski authored
Thread safety: added basic handling for pt_guarded_by/var and guarded_by/var annotations. We identify situations where we are accessing (reading or writing) guarded variables, and report an error if the appropriate locks are not held. llvm-svn: 138774
-
- Aug 29, 2011
-
-
Caitlin Sadowski authored
This patch is by DeLesley Hutchins. llvm-svn: 138738
-
- Aug 27, 2011
-
-
Douglas Gregor authored
pointer variable. Patch by David Blaikie! llvm-svn: 138687
-
- Aug 24, 2011
-
-
Caitlin Sadowski authored
Thread safety: Fix a few typos in last commit -- use LockID instead of Lock in comments and start a couple methods with a lowercase letter llvm-svn: 138460
-
Ted Kremenek authored
handled SCC's of dead code, or simply having false negatives by overly suppressing warnings. WIP. llvm-svn: 138410
-
Ted Kremenek authored
llvm-svn: 138408
-
- Aug 23, 2011
-
-
Caitlin Sadowski authored
system flags an error when unlocking a lock which was not held, locking the same lock twice, having a different lockset on each iteration of a loop, or going out of scope while still holding a lock. In order to successfully use the lockset, this patch also makes sure that attribute arguments are attached correctly for later parsing. This patch was also worked on by DeLesley Hutchins. Note: This patch has been reviewed by Chandler Carruth and Jeffrey Yasskin. Feel free to provide post-commit review comments for a subsequent patch. llvm-svn: 138350
-
- Jul 23, 2011
-
-
Chris Lattner authored
them into the clang namespace. llvm-svn: 135852
-
- Jul 22, 2011
-
-
Chandler Carruth authored
AnalysisBasedWarnings Sema layer and out of the Analysis library itself. This returns the uninitialized values analysis to a more pure form, allowing its original logic to correctly detect some categories of definitely uninitialized values. Fixes PR10358 (again). Thanks to Ted for reviewing and updating this patch after his rewrite of several portions of this analysis. llvm-svn: 135748
-
- Jul 21, 2011
-
-
Ted Kremenek authored
llvm-svn: 135666
-
- Jul 19, 2011
-
-
Ted Kremenek authored
This is accomplished by forcing the needed expressions for -Wuninitialized to always be CFGElements in the CFG. This allows us to remove a fair amount of the code for -Wuninitialized. Some fallout: - AnalysisBasedWarnings.cpp now specifically toggles the CFGBuilder to create a CFG that is suitable for -Wuninitialized. This is a layering violation, since the logic for -Wuninitialized is in libAnalysis. This can be fixed with the proper refactoring. - Some of the source locations for -Wunreachable-code warnings have shifted. While not ideal, this is okay because that analysis already needs some serious reworking. llvm-svn: 135480
-
- Jul 16, 2011
-
-
Benjamin Kramer authored
Zero this struct in a way that neither depends on the size of the struct nor triggers warnings from GCC. llvm-svn: 135351
-
Fariborz Jahanian authored
llvm-svn: 135348
-
- Jul 08, 2011
-
-
Benjamin Kramer authored
Found by valgrind. llvm-svn: 134733
-
- Jul 07, 2011
-
-
Chandler Carruth authored
rather than a computed std::distance(). At some point I had convinced myself that these two were different; but as far as I can tell on re-exampination they aren't, and the number of block IDs is actually just a count of the blocks in the CFG. While this removes the primary motivation for guarding all of this with CollectStats, I have a patch coming up that will almost certainly make it important again. llvm-svn: 134552
-
- Jul 06, 2011
-
-
Chandler Carruth authored
Special detail is added for uninitialized variable analysis as this has serious performance problems than need to be tracked. Computing some of this data is expensive, for example walking the CFG to determine its size. To avoid doing that unless the stats data is going to be used, we thread a bit into the Sema object to track whether detailed stats should be collected or not. This bit is used to avoid computations whereever the computations are likely to be more expensive than checking the state of the flag. Thus, counters are in some cases unconditionally updated, but the more expensive (and less frequent) aggregation steps are skipped. With this patch, we're able to see that for 'gcc.c': *** Analysis Based Warnings Stats: 232 functions analyzed (0 w/o CFGs). 7151 CFG blocks built. 30 average CFG blocks per function. 1167 max CFG blocks per function. 163 functions analyzed for uninitialiazed variables 640 variables analyzed. 3 average variables per function. 94 max variables per function. 96409 block visits. 591 average block visits per function. 61546 max block visits per function. And for the reduced testcase in PR10183: *** Analysis Based Warnings Stats: 98 functions analyzed (0 w/o CFGs). 8526 CFG blocks built. 87 average CFG blocks per function. 7277 max CFG blocks per function. 68 functions analyzed for uninitialiazed variables 1359 variables analyzed. 19 average variables per function. 1196 max variables per function. 2540494 block visits. 37360 average block visits per function. 2536495 max block visits per function. That last number is the somewhat scary one that indicates the problem in PR10183. llvm-svn: 134494
-
- Jul 02, 2011
-
-
Douglas Gregor authored
over "= 0". Fixes <rdar://problem/9714386>. llvm-svn: 134302
-
- May 11, 2011
-
-
John McCall authored
then teach -Wreturn-type to handle the same. Net effect: we now correctly handle noreturn attributes on member calls in the CFG. llvm-svn: 131178
-
- Apr 05, 2011
-
-
Chandler Carruth authored
function more clear and obvious in behavior. Add some comments documenting the behavior of the primary diagnostic helper. llvm-svn: 128901
-
Chandler Carruth authored
diagnostic emission. The fixit hint, when suggested, typically has nothing to do with the nature or form of the reference. llvm-svn: 128899
-