| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
RetainReleaseChecker. Tweak CFRefReport to reflect that fact that ReturnStmt checks are pre-statement, not post-statement. No intended functionality change.
llvm-svn: 138358
|
| |
|
|
|
|
| |
RetainReleaseChecker.
llvm-svn: 138353
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
output on darwin so is hard coded there.
As a note this will need a little bit of refactoring in the class
hierarchy to separate it out for different verifiers based on input type.
Fixes rdar://8256258.
llvm-svn: 138343
|
| |
|
|
|
|
|
| |
stmt expression, recursively walk down all substatements
of the stmt expression. // rdar://10001085
llvm-svn: 138334
|
| |
|
|
|
|
| |
This matches gcc's behavior.
llvm-svn: 138324
|
| |
|
|
|
|
| |
functions/messages. This is a minor saving of memory but doesn't seem to cost any performance.
llvm-svn: 138320
|
| |
|
|
|
|
|
|
| |
For the test case added to function-redecl.cpp, we were previously complaining
about a mismatch in the parameter types, since the definition used the
typedef'd type.
llvm-svn: 138318
|
| |
|
|
|
|
| |
is captured by a given statement expression. // rdar://10001085
llvm-svn: 138314
|
| |
|
|
|
|
| |
since it no longer, uh, evaluates call summaries.
llvm-svn: 138313
|
| |
|
|
|
|
| |
<rdar://problem/9973228>
llvm-svn: 138310
|
| |
|
|
|
|
| |
ArgEffects from CFRefCount to RetainReleaseChecker. No intended functionality change.
llvm-svn: 138309
|
| |
|
|
|
|
| |
to deallocate the password. Catch this error explicitly and generate the error message at the place where free() is called.
llvm-svn: 138296
|
| |
|
|
| |
llvm-svn: 138276
|
| |
|
|
|
|
| |
renamed into ExtraText, to the diagnostic without subclassing BugReport.
llvm-svn: 138272
|
| |
|
|
|
|
| |
objc's decl context.
llvm-svn: 138267
|
| |
|
|
|
|
| |
-dealloc is illegal in that mode.
llvm-svn: 138261
|
| |
|
|
|
|
| |
CFRefReportVisitors.
llvm-svn: 138259
|
| |
|
|
| |
llvm-svn: 138257
|
| |
|
|
| |
llvm-svn: 138253
|
| |
|
|
|
|
| |
a context switching object.
llvm-svn: 138248
|
| |
|
|
|
|
| |
This matches gcc's logic. Half of PR10661.
llvm-svn: 138240
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
const int &x = x;
This crashed by inifinetly recursing within the lvalue evaluation
routine. I've added a (somewhat) braindead way of preventing this
recursion. If folks have better suggestions for how to avoid it I'm all
ears.
That said, we have some work to do. This doesn't trigger a single
warning for uninitialized, self-initialized or otherwise completely
wrong code. In some senses, the crash was almost better.
llvm-svn: 138239
|
| |
|
|
| |
llvm-svn: 138235
|
| |
|
|
|
|
| |
failures are resolved.
llvm-svn: 138234
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently getMacroArgExpandedLocation is very inefficient and for the case
of a location pointing at the main file it will end up checking almost all of
the SLocEntries. Make it faster:
-Use a map of macro argument chunks to their expanded source location. The map
is for a single source file, it's stored in the file's ContentCache and lazily
computed, like the source lines cache.
-In SLocEntry's FileInfo add an 'unsigned NumCreatedFIDs' field that keeps track
of the number of FileIDs (files and macros) that were created during preprocessing
of that particular file SLocEntry. This is useful when computing the macro argument
map in skipping included files while scanning for macro arg FileIDs that lexed from
a specific source file. Due to padding, the new field does not increase the size
of SLocEntry.
llvm-svn: 138225
|
| |
|
|
|
|
| |
from CFRefCount to RetainReleaseChecker. No intended functionality change.
llvm-svn: 138223
|
| |
|
|
|
|
| |
return its receiver and pretending that it does won't actually buy us anything. (Comment change only.)
llvm-svn: 138221
|
| |
|
|
|
|
| |
seems to result in a minor performance hit, but I think that will go away again once we eliminate TransferFuncs from function calls entirely.
llvm-svn: 138220
|
| |
|
|
| |
llvm-svn: 138215
|
| |
|
|
| |
llvm-svn: 138214
|
| |
|
|
|
|
| |
no need for a flag, at least not right now.
llvm-svn: 138212
|
| |
|
|
| |
llvm-svn: 138211
|
| |
|
|
|
|
| |
CFRefCount to NoReturnFunctionChecker. No functionality change intended.
llvm-svn: 138210
|
| |
|
|
| |
llvm-svn: 138200
|
| |
|
|
|
|
| |
No need to bind an explicit value and create a new node.
llvm-svn: 138196
|
| |
|
|
|
|
| |
visit to subexpressions (which is no longer needed).
llvm-svn: 138195
|
| |
|
|
|
|
|
|
| |
different parts
of the analysis (e.g., analysis of C expressions, analysis of Objective-C expressions, and so on).
llvm-svn: 138194
|
| |
|
|
| |
llvm-svn: 138193
|
| |
|
|
|
|
|
|
|
|
| |
different modules) more robust. It already handled (simple) merges of
the set of declarations attached to that identifier, so add a test
case that shows us getting two different declarations for the same
identifier (one struct, one function) from different modules, and are
able to use both of them.
llvm-svn: 138189
|
| |
|
|
| |
llvm-svn: 138188
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
modules (those that no other module depends on) and performs a search
over all of the modules, visiting a new module only when all of the
modules that depend on it have already been visited. The visitor can
abort the search for all modules that a module depends on, which
allows us to minimize the number of lookups necessary when performing
a search.
Switch identifier lookup from a linear walk over the set of modules to
this module visitation operation. The behavior is the same for simple
PCH and chained PCH, but provides the proper search order for
modules. Verified with printf debugging, since we don't have enough in
place to actually test this.
llvm-svn: 138187
|
| |
|
|
|
|
| |
endOfPath diagnostic piece from BugReport to BugReporterVisitor. Switch CFRefCount to use visitors in order to generate the endOfPath piece.
llvm-svn: 138184
|
| |
|
|
| |
llvm-svn: 138183
|
| |
|
|
|
|
| |
BugReport no longer needs to inherit from BugReporterVisitor.
llvm-svn: 138142
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
for tokens that are lexed consecutively from the same FileID, instead of creating
a SLocEntry for each token. e.g for
assert(foo == bar);
there will be a single SLocEntry for the "foo == bar" chunk and locations
for the 'foo', '==', 'bar' tokens will point inside that chunk.
For parsing SemaExpr.cpp, this reduced the number of SLocEntries by 25%.
llvm-svn: 138129
|
| |
|
|
|
|
| |
getExpansionLocForMacroDefLoc, no functionality change.
llvm-svn: 138128
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 138127
|
| |
|
|
|
|
|
|
|
|
|
|
| |
API in favor of addVisitor(BugReporterVisitor*).
1) Create a header file to expose the predefined visitors. And move the parent(BugReporterVisitor) there as well.
2) Remove the registerXXXVisitor functions - the Visitor constructors/getters can be used now to create the object. One exception is registerVarDeclsLastStore(), which registers more then one visitor, so make it static member of FindLastStoreBRVisitor.
3) Modify all the checkers to use the new API.
llvm-svn: 138126
|
| |
|
|
| |
llvm-svn: 138079
|