summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ThreadSafety.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Thread-safety analysis: ignore edges from throw expressions in CFG.DeLesley Hutchins2013-01-181-2/+16
| | | | llvm-svn: 172858
* Remove useless 'llvm::' qualifier from names like StringRef and others that areDmitri Gribenko2013-01-121-1/+1
| | | | | | brought into 'clang' namespace by clang/Basic/LLVM.h llvm-svn: 172323
* Thread-safety analysis: check member access on guarded non-primitive types.DeLesley Hutchins2012-12-081-0/+9
| | | | llvm-svn: 169669
* Thread-safety analysis: check locks on method calls, operator=, andDeLesley Hutchins2012-12-051-0/+44
| | | | | | copy constructors. llvm-svn: 169350
* Thread Safety Analysis: refactor to make more methods accept const pointers,DeLesley Hutchins2012-12-051-86/+94
| | | | | | adjust checkAccess. No change in functionality. llvm-svn: 169348
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-4/+4
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't ↵Benjamin Kramer2012-12-011-2/+3
| | | | | | | | | pull in all the generated Attr code. Required to pull some functions out of line, but this shouldn't have a perf impact. No functionality change. llvm-svn: 169092
* Thread-safety analysis: allow attributes on constructors to refer to 'this'.DeLesley Hutchins2012-10-051-16/+31
| | | | llvm-svn: 165339
* Thread-safety analysis: better handling of unreachable blocks. Fixes a bugDeLesley Hutchins2012-09-211-17/+20
| | | | | | | where a call to function marked 'noreturn' is followed by unreachable implicit destructor calls. llvm-svn: 164394
* Thread-safety analysis: fix bug where shared trylock was treatedDeLesley Hutchins2012-09-201-1/+1
| | | | | | as exclusive. llvm-svn: 164332
* Thread safety analysis: properly canonicalize calls to virtual methods withinDeLesley Hutchins2012-09-201-4/+16
| | | | | | lock expressions. llvm-svn: 164324
* Thread-safety analysis: Fix warning when EXCLUSIVE_LOCKS_REQUIREDDeLesley Hutchins2012-09-191-0/+14
| | | | | | is placed on a function that has no path to the exit block. llvm-svn: 164244
* Thread-safety analysis: fix ICE when EXCLUSIVE_LOCKS_REQUIRED orDeLesley Hutchins2012-09-191-2/+5
| | | | | | | LOCKS_EXCLUDED is used on a method with a name that is is not a simple identifier. llvm-svn: 164242
* Thread-safety analysis: fix bug in expression matching code.DeLesley Hutchins2012-09-111-2/+3
| | | | llvm-svn: 163656
* Thread-safety analysis: differentiate between two forms of analysis; a preciseDeLesley Hutchins2012-09-101-3/+39
| | | | | | | | | analysis that may give false positives because it is confused by aliasing, and a less precise analysis that has fewer false positives, but may have false negatives. The more precise warnings are enabled by -Wthread-safety-precise. An additional note clarify the warnings in the precise case. llvm-svn: 163537
* Ampersand goes with identifier.Chad Rosier2012-09-071-2/+2
| | | | llvm-svn: 163410
* Bring buildbots back. Fix scoping issue and coding style from r163397.Chad Rosier2012-09-071-6/+8
| | | | llvm-svn: 163403
* Thread-safety analysis: Add support for selectively turning off warningsDeLesley Hutchins2012-09-071-70/+93
| | | | | | within part of a particular method. llvm-svn: 163397
* Dont cast away const needlessly. Found by gcc48 -Wcast-qual.Roman Divacky2012-09-061-1/+1
| | | | llvm-svn: 163325
* Thread-safety analysis: bugfix for case where a trylock occurs in anDeLesley Hutchins2012-09-051-0/+3
| | | | | | expression involving temporaries. llvm-svn: 163237
* Thread-safety analysis: fix handling of LOCK_RETURNED attribute so that theDeLesley Hutchins2012-08-311-4/+6
| | | | | | latest definition of a function is always used when computing lock expressions. llvm-svn: 163028
* Thread-safety analysis: fix handling of string constants in mutexDeLesley Hutchins2012-08-311-0/+20
| | | | | | expressions, which should be ignored right now. llvm-svn: 163026
* Fix an assortment of doxygen comment issues found by -Wdocumentation.Ted Kremenek2012-08-221-19/+19
| | | | llvm-svn: 162412
* Thread-safety-analysis: adds existential quantification over lockDeLesley Hutchins2012-08-101-14/+61
| | | | | | | expressions. The syntax &MyClass::mutex is interpreted as a pattern that matches m->mutex for any object m of type MyClass. llvm-svn: 161691
* Thread safety analysis: refactor to support more sophisticated handlingDeLesley Hutchins2012-08-101-170/+404
| | | | | | of expressions, and better error messages. llvm-svn: 161690
* Refactor thread safety analysis to use a different data structureDeLesley Hutchins2012-08-101-117/+213
| | | | | | to track locksets. This is in preparation for further changes. llvm-svn: 161680
* Fix a typo (the the => the)Sylvestre Ledru2012-07-231-1/+1
| | | | llvm-svn: 160622
* Thread safety analysis: impove handling of trylock expressions.DeLesley Hutchins2012-07-101-1/+40
| | | | llvm-svn: 160018
* Thread-safety analysis: eliminate false positives in case where the definitionDeLesley Hutchins2012-07-051-183/+188
| | | | | | | duplicates attributes on the declaration. Also eliminates a false negative in ReleasableMutexLock. Fixing this bug required some refactoring. llvm-svn: 159780
* Thread safety analysis: improve handling of smart pointers.DeLesley Hutchins2012-07-031-0/+19
| | | | llvm-svn: 159679
* Thread Safety Analysis: handle expressions involving temporaries,DeLesley Hutchins2012-07-031-8/+14
| | | | | | e.g. ExprWithCleanups. llvm-svn: 159674
* Thread safety analysis: fixed bug that occurs when very silly peopleDeLesley Hutchins2012-07-021-14/+33
| | | | | | | use scoped_lockable without putting unlock_function on the destructor. llvm-svn: 159609
* Thread safety analysis: fixed incorrect error message at the end of a ↵DeLesley Hutchins2012-07-021-6/+15
| | | | | | locks_required function. llvm-svn: 159607
* Thread safety analysis: don't warn in case of duplicate annotation.DeLesley Hutchins2012-07-021-8/+11
| | | | llvm-svn: 159606
* Thread Safety Analysis: turn off checking within trylock functions.DeLesley Hutchins2012-07-021-0/+6
| | | | llvm-svn: 159601
* Thread safety analysis: support release() function on scopedDeLesley Hutchins2012-06-281-20/+44
| | | | | | lockable objects. llvm-svn: 159387
* Thread safety analysis: implement lock_returned attribute.DeLesley Hutchins2012-06-251-46/+88
| | | | llvm-svn: 159152
* Thread safety analysis: fixes a bug in which locksets are not handledDeLesley Hutchins2012-06-221-44/+50
| | | | | | | | properly if there is a join point in the control flow graph that involves a trylock. Also changes the source locations of some warnings to be more consistent. llvm-svn: 159008
* Refactor the thread safety analysis so that it is easier to doDeLesley Hutchins2012-04-191-272/+318
| | | | | | path-sensitive analysis like handling of trylock expressions. llvm-svn: 155137
* Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr toJohn McCall2012-03-101-2/+2
| | | | | | | | track whether the referenced declaration comes from an enclosing local context. I'm amenable to suggestions about the exact meaning of this bit. llvm-svn: 152491
* Thread safety analysis: expand set of expressions that can be used to denote ↵DeLesley Hutchins2012-03-021-6/+50
| | | | | | locks. llvm-svn: 151956
* Thread safety analysis: handle CFG blocks which call functions marked as ↵DeLesley Hutchins2012-03-021-0/+4
| | | | | | noreturn. llvm-svn: 151944
* Thread-safety analysis: Disable checking inside constructors, destructors, ↵DeLesley Hutchins2012-02-161-6/+24
| | | | | | lock, and unlock functions llvm-svn: 150701
* Thread-Safety: added support for 'this' as a lock expression.DeLesley Hutchins2012-02-161-3/+7
| | | | llvm-svn: 150700
* Thread safety analysis:Richard Smith2012-02-031-13/+83
| | | | | | | | | | | | * 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. llvm-svn: 149669
* Thread safety analysis: at a CFG join point between a block terminating in aRichard Smith2012-02-031-0/+39
| | | | | | | 'continue' and another block, prefer the lockset from the other block, and diagnose the 'continue' block as being the end of a loop. llvm-svn: 149666
* Handle thread safety attributes on functions with separate definitions and ↵DeLesley Hutchins2012-01-201-24/+25
| | | | | | declarations. llvm-svn: 148599
* Thread safety analysis: added support for trylock attribute.DeLesley Hutchins2012-01-061-3/+123
| | | | llvm-svn: 147672
* Added LocalVariableMapDeLesley Hutchins2012-01-061-44/+536
| | | | llvm-svn: 147670
* Support for thread safety attributes on functionsDeLesley Hutchins2011-12-291-2/+5
| | | | llvm-svn: 147331
OpenPOWER on IntegriCloud