aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/ThreadSafety.cpp
AgeCommit message (Collapse)Author
2012-04-19Refactor the thread safety analysis so that it is easier to doDeLesley Hutchins
path-sensitive analysis like handling of trylock expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155137 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr toJohn McCall
track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of this bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152491 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Thread safety analysis: expand set of expressions that can be used to denote ↵DeLesley Hutchins
locks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151956 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Thread safety analysis: handle CFG blocks which call functions marked as ↵DeLesley Hutchins
noreturn. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151944 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16Thread-safety analysis: Disable checking inside constructors, destructors, ↵DeLesley Hutchins
lock, and unlock functions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150701 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16Thread-Safety: added support for 'this' as a lock expression.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150700 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Thread safety analysis:Richard Smith
* When we detect that a CFG block has inconsistent lock sets, point the diagnostic at the location where we found the inconsistency, and point a note at somewhere the inconsistently-locked mutex was locked. * Fix the wording of the normal (non-loop, non-end-of-function) case of this diagnostic to not suggest that the mutex is going out of scope. * Fix the diagnostic emission code to keep a warning and its note together when sorting the diagnostics into source location order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149669 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Thread safety analysis: at a CFG join point between a block terminating in aRichard Smith
'continue' and another block, prefer the lockset from the other block, and diagnose the 'continue' block as being the end of a loop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149666 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-20Handle thread safety attributes on functions with separate definitions and ↵DeLesley Hutchins
declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148599 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06Thread safety analysis: added support for trylock attribute.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147672 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06Added LocalVariableMapDeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147670 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-29Support for thread safety attributes on functionsDeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147331 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-08This patch extends thread safety analysis with support for the ↵DeLesley Hutchins
scoped_lockable attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146174 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-24Rename AnalysisContext to AnalysisDeclContext. Not only is this name more ↵Ted Kremenek
accurate, but it frees up the name AnalysisContext for other uses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142782 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-22Refactor ThreadSafety to use PostOrderCFGView instead of its own copy (of ↵Ted Kremenek
TopologicallySortedCFG). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142714 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-21Added support for thread safety attributes on destructors.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142685 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-21Thread safety analysis refactoring: invalid lock expressions.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142666 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-21Thread safety analysis: add support for attributes on constructors.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142665 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-21Refactoring and code cleanup.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142654 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Substitute for arguments in method calls -- functionalityDeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142267 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Substitute for arguments in method calls -- refactoringDeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142260 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Test commitDeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140149 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16Thread safety: Adding FIXMEs and a couple cleanupsCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139894 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Thread safety: completeing the implementation of shared/exclusive locks ↵Caitlin Sadowski
required attributes git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139804 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-15Thread safety: refactoring various out of scope warnings to use the same ↵Caitlin Sadowski
inteface. This eliminates a lot of unnecessary duplicated code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139801 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14Thread safety: adding additional documentation to the main thread safety ↵Caitlin Sadowski
interface, and making the destructor for the thread safety handler pure virtual git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139722 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-14Thread safety: adding test cases for unparseable lock expressions and ↵Caitlin Sadowski
expanding the handling of these expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139720 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-12Thread safety: small formatting changeCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139548 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-10Silence "end of non-void function" warnings with llvm_unreachable and add an ↵Benjamin Kramer
assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139474 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-09Thread safety: removing unnecessary import and reordering import listCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139426 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-09Thread safety: removing unnecessary importCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139425 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-09Thread safety: This patch deals with previously unhandled cases when ↵Caitlin Sadowski
building lock expressions. We now resolve this expressions, avoid crashing when encountering cast expressions, and have a diagnostic for unresolved lock expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139370 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-09Thread Safety: Moving the analysis to a new fileCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139369 91177308-0d34-0410-b5e6-96231b3b80d8