Angel Garcia Gomez
637d1e6694
Roll-back r250822.
...
Summary: It breaks the build for the ASTMatchers
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13893
llvm-svn: 250827
2015-10-20 13:23:58 +00:00
Angel Garcia Gomez
b5250d3448
Apply modernize-use-default to clang.
...
Summary: Replace empty bodies of default constructors and destructors with '= default'.
Reviewers: bkramer, klimek
Subscribers: klimek, alexfh, cfe-commits
Differential Revision: http://reviews.llvm.org/D13890
llvm-svn: 250822
2015-10-20 12:52:55 +00:00
Yaron Keren
ed1fe5d093
Replace double-negated !SourceLocation.isInvalid() with SourceLocation.isValid().
...
llvm-svn: 249228
2015-10-03 05:15:57 +00:00
DeLesley Hutchins
445a31cd4b
Thread safety analysis: the NO_THREAD_SAFETY_ANALYSIS attribute will now
...
disable checking of arguments to the function, which is done by
-Wthread-safety-reference.
llvm-svn: 246806
2015-09-03 21:14:22 +00:00
Richard Trieu
a1877598aa
Take the non-reference type when constructing a dummy expression.
...
Otherwise, Expr will assert during construction with a reference type.
llvm-svn: 232425
2015-03-16 21:49:43 +00:00
Benjamin Kramer
66a97ee957
Hide away implementation details of the ThreadSafetyAnalysis in anonymous namespaces
...
NFC.
llvm-svn: 231653
2015-03-09 14:19:54 +00:00
DeLesley Hutchins
3c355aa24d
Thread Safety Analysis: support adopting of locks, as implemented in
...
std::lock_guard. If EXCLUSIVE_LOCKS_REQUIRED is placed on the constructor of
a SCOPED_LOCKABLE class, then that constructor is assumed to adopt the lock;
e.g. the lock must be held on construction, and will be released on destruction.
llvm-svn: 228194
2015-02-04 21:16:17 +00:00
DeLesley Hutchins
dfa9032f64
Thread Safety Analysis: remove minor piece of unused code. No change in
...
functionality.
llvm-svn: 228176
2015-02-04 19:28:17 +00:00
DeLesley Hutchins
ab1dc2d54d
Thread Safety Analysis: add support for before/after annotations on mutexes.
...
These checks detect potential deadlocks caused by inconsistent lock
ordering. The checks are implemented under the -Wthread-safety-beta flag.
This patch also replaces calls to getAttrs() with calls to attrs() throughout
ThreadSafety.cpp, which fixes the earlier issue that cause assert failures.
llvm-svn: 228051
2015-02-03 22:11:04 +00:00
Reid Kleckner
6c5e36ae3b
Revert "Thread Safety Analysis: add support for before/after annotations on mutexes."
...
This reverts r227997, as well as r228009. It does not pass check-clang
for me locally on Linux.
llvm-svn: 228020
2015-02-03 19:51:16 +00:00
Reid Kleckner
e675575d1b
thread safety: Add move ctor to BeforeInfo to fix MSVC build
...
MSVC cannot infer move ctors yet.
llvm-svn: 228009
2015-02-03 19:04:26 +00:00
DeLesley Hutchins
4980df623f
Thread Safety Analysis: add support for before/after annotations on mutexes.
...
These checks detect potential deadlocks caused by inconsistent lock
ordering. The checks are implemented under the -Wthread-safety-beta flag.
llvm-svn: 227997
2015-02-03 18:17:48 +00:00
Chandler Carruth
0d9593ddec
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
...
Sorry for the noise, I managed to miss a bunch of recent regressions of
include orderings here. This should actually sort all the includes for
Clang. Again, no functionality changed, this is just a mechanical
cleanup that I try to run periodically to keep the #include lines as
regular as possible across the project.
llvm-svn: 225979
2015-01-14 11:29:14 +00:00
DeLesley Hutchins
6d41f38c74
Thread Safety Analysis: move warnings on range-based for loops out of beta
...
and into -Wthread-safety.
llvm-svn: 221410
2014-11-05 23:09:28 +00:00
DeLesley Hutchins
c60dc2cfb9
Thread Safety Analysis: add new warning flag, -Wthread-safety-reference, which
...
warns when a guarded variable is passed by reference as a function argument.
This is released as a separate warning flag, because it could potentially
break existing code that uses thread safety analysis.
llvm-svn: 218087
2014-09-18 23:02:26 +00:00
Ed Schouten
ca98874943
Allow a scoped lockable object to acquire/release multiple locks.
...
Scoped lockable objects (mutex guards) are implemented as if it is a
lock itself that is acquired upon construction and unlocked upon
destruction. As it if course needs to be used to actually lock down
something else (a mutex), it keeps track of this knowledge through its
underlying mutex field in its FactEntry.
The problem with this approach is that this only allows us to lock down
a single mutex, so extend the code to use a vector of underlying
mutexes. This, however, makes the code a bit more complex than
necessary, so subclass FactEntry into LockableFactEntry and
ScopedLockableFactEntry and move all the logic that differs between
regular locks and scoped lockables into member functions.
llvm-svn: 217016
2014-09-03 06:00:11 +00:00
Aaron Ballman
b00885898e
Adding const-qualifiers to auto declarations. NFC.
...
llvm-svn: 215704
2014-08-15 12:29:39 +00:00
DeLesley Hutchins
eb0ea5f40a
Thread safety analysis: add -Wthread-safety-verbose flag, which adds additional notes that are helpful when compiling statistics on thread safety warnings.
...
llvm-svn: 215677
2014-08-14 21:40:15 +00:00
DeLesley Hutchins
4133b13bd2
Thread Safety Analysis: fix to improve handling of references to guarded
...
data members and range based for loops.
llvm-svn: 215671
2014-08-14 19:17:06 +00:00
NAKAMURA Takumi
13a4f76d51
ThreadSafety.cpp: Prune bogus \param(s). [-Wdocumentation]
...
llvm-svn: 214796
2014-08-04 22:48:46 +00:00
NAKAMURA Takumi
e9882cf315
ThreadSafetyAnalysis: Fix annotations in class members. [-Wdocumentation]
...
llvm-svn: 214795
2014-08-04 22:48:36 +00:00
DeLesley Hutchins
3efd0495a0
Thread Safety Analysis: add a -Wthread-safety-negative flag that warns whenever
...
a mutex is acquired, but corresponding mutex is not provably not-held. This
is based on the earlier negative requirements patch.
llvm-svn: 214789
2014-08-04 22:13:06 +00:00
DeLesley Hutchins
4266522ab9
Thread safety analysis: Add support for negative requirements, which are
...
capability expressions of the form !expr, and denote a capability that must
not be held.
llvm-svn: 214725
2014-08-04 16:10:59 +00:00
DeLesley Hutchins
ea1f83385f
Thread Safety Analysis: Replace the old and broken SExpr with the new
...
til::SExpr. This is a large patch, with many small changes to pretty printing
and expression lowering to make the new SExpr representation equivalent in
functionality to the old.
llvm-svn: 214089
2014-07-28 15:57:27 +00:00
Craig Topper
2554294321
[C++11] Use 'nullptr'. Analysis edition.
...
llvm-svn: 209191
2014-05-20 04:30:07 +00:00
Aaron Ballman
9ee54d119c
Converting some for loops to use range-based for loops. No functional changes intended.
...
llvm-svn: 208810
2014-05-14 20:42:13 +00:00
Aaron Ballman
59a72b93a2
Amending r208783 based on a suggestion by David Blaikie.
...
llvm-svn: 208800
2014-05-14 18:32:59 +00:00
Aaron Ballman
42f9a8a7f9
Replacing some manual iterations with standard algorithms. No functional changes intended.
...
llvm-svn: 208783
2014-05-14 15:01:43 +00:00
Aaron Ballman
2f3fc6badd
Formatting and style changes; no functional changes intended.
...
llvm-svn: 208774
2014-05-14 13:03:55 +00:00
Aaron Ballman
0c6a14ca82
Amending r208439 to remove buildLExpr; this code isn't strictly required yet, and fixes a dead code warning.
...
llvm-svn: 208440
2014-05-09 18:44:48 +00:00
Aaron Ballman
7c192b452f
Add the ability to use logical expressions for capability attributes. This is to allow requirements to be expressed not just in terms of lists, but in terms of logical expressions. Eg)
...
void foo(void) __attribute__((requires_capability((FlightControl || Worker) && !Logger)));
This is WIP code.
llvm-svn: 208439
2014-05-09 18:26:23 +00:00
Nico Weber
b0f9e4ace7
Remove unused typedef found by gcc's -Wunused-local-typedefs.
...
llvm-svn: 207870
2014-05-02 21:22:21 +00:00
Aaron Ballman
a82eaa70f1
Updated the attribute tablegen emitter for variadic arguments to emit a range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
...
llvm-svn: 207837
2014-05-02 13:35:42 +00:00
Aaron Ballman
0491afaf5f
Updating to use more range-based for loops, nullptr and auto. No functional changes.
...
llvm-svn: 206590
2014-04-18 13:13:15 +00:00
Aaron Ballman
e80bfcd048
Making some public members into private members. This also introduces a bit more const-correctness, and now uses some range-based for loops. No functional changes intended.
...
llvm-svn: 206503
2014-04-17 21:44:08 +00:00
DeLesley Hutchins
7e615c2f65
Thread Safety Analysis: reorganized SExpr header files. No change in
...
functionality.
llvm-svn: 205936
2014-04-09 22:39:43 +00:00
DeLesley Hutchins
b2213910de
Thread Safety Analysis: update to internal SExpr handling.
...
This patch is the first part of a significant refactoring that seeks to restore
sanity to way thread safety analysis deals with capability expressions. The
current patch merely provides an outline of the structure of the new system.
It's not yet connected to the actual analysis, so there's no change in
functionality.
llvm-svn: 205728
2014-04-07 18:09:54 +00:00
Aaron Ballman
e044904301
Updating the capability attribute diagnostics to be more capability-neutral. Instead of using terminology such as "lock", "unlock" and "locked", the new terminology is "acquire", "release" and "held". Additionally, the capability attribute's name argument is now reported as part of the diagnostic, instead of hard coding as "mutex."
...
llvm-svn: 205359
2014-04-01 21:43:23 +00:00
Aaron Ballman
df115d9bf3
The release_capability, release_shared_capability and release_generic_capability functions are now functionally distinct for capability analysis. The unlock_function attribute maps directly to release_generic_capability.
...
llvm-svn: 204469
2014-03-21 14:48:48 +00:00
Aaron Ballman
18d85aed39
Replacing the exclusive_lock_function, shared_lock_function and unlock_function attributes with the acquire_capability and release_capability attributes. The old spellings will continue to work, but the underlying semantic attributes have been replaced.
...
Downgraded the capability diagnostics from error to warning to match the desired behavior, and updated the existing test cases.
llvm-svn: 204350
2014-03-20 16:02:49 +00:00
DeLesley Hutchins
d1c9b37db9
Thread safety analysis: move smart pointer checks from -Wthread-safety-beta
...
to -Wthread-safety.
llvm-svn: 203510
2014-03-10 23:03:49 +00:00
Aaron Ballman
be22bcb180
[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203474
2014-03-10 17:08:28 +00:00
Aaron Ballman
69bb592ad1
Based on usage, the NamedDecl is always set when constructing a CallingContext, but none of the other optional parameters are. Removing the optional parameters, and making the NamedDecl required.
...
No functional changes intended.
llvm-svn: 203149
2014-03-06 19:37:24 +00:00
Aaron Ballman
19842c437a
Refactored to use a simple helper function that wraps the logic of creating an SExprNode and returning the position in which it was inserted.
...
No functional change intended.
llvm-svn: 203148
2014-03-06 19:25:11 +00:00
Aaron Ballman
cea2609b59
Very minor simplification and typo correction; no functional changes intended.
...
llvm-svn: 203144
2014-03-06 19:10:16 +00:00
Aaron Ballman
efe348ec44
DeLesley Hutchins (who wrote the original thread-safety attribute functionality) and I have agreed to start migrating from lock-specific terminology to "capability"-specific terminology. This opens the door for future threading-related analysis passes so that a common nomenclature can be used.
...
The following attributes have been (silently) deprecated, with their replacements listed:
lockable => capability
exclusive_locks_required => requires_capability
shared_locks_required => requires_shared_capability
locks_excluded => requires_capability
There are no functional changes intended.
llvm-svn: 201585
2014-02-18 17:36:50 +00:00
Aaron Ballman
ee58e6d6d2
Switching getAttrs calls over to using a specific_attr_iterator. No functional changes intended.
...
llvm-svn: 197681
2013-12-19 15:35:31 +00:00
Aaron Ballman
9ead1243a5
Replacing calls to getAttr with calls to hasAttr for clarity. No functional change intended -- this only replaces Boolean uses of getAttr.
...
llvm-svn: 197648
2013-12-19 02:39:40 +00:00
Alp Toker
f6a24ce40f
Fix a tranche of comment, test and doc typos
...
llvm-svn: 196510
2013-12-05 16:25:25 +00:00
Alp Toker
d473363876
Correct hyphenations in comments and assert messages
...
This patch tries to avoid unrelated changes other than fixing a few
hyphen-related ambiguities in nearby lines.
llvm-svn: 196466
2013-12-05 04:47:09 +00:00
DeLesley Hutchins
39b804f8a4
Thread safety analysis: fix ICE due to missing null check on dyn_cast.
...
llvm-svn: 195777
2013-11-26 19:45:21 +00:00
DeLesley Hutchins
e73d6b605c
Thread-safety analysis: check guarded_by and pt_guarded_by on array access.
...
Currently supported only with -Wthread-safety-beta.
llvm-svn: 194275
2013-11-08 19:42:01 +00:00
DeLesley Hutchins
05b7b37021
Thread safety analysis: minor bugfix to smart pointer handling, and expanded
...
test case.
llvm-svn: 194157
2013-11-06 18:40:01 +00:00
DeLesley Hutchins
5ede5cc9ba
Thread safety analysis: check pt_guarded_by attribute when calling -> and *
...
on smart pointers. -Wthread-safety-beta only.
llvm-svn: 194103
2013-11-05 23:09:56 +00:00
Rafael Espindola
7b56f6c3c2
Simplify some implementations of get*Decl.
...
* NamedDecl and CXXMethodDecl were missing getMostRecentDecl.
* The const version can just forward to the non const.
* getMostRecentDecl can use cast instead of cast_or_null.
This then removes some casts from the callers.
llvm-svn: 193039
2013-10-19 16:55:03 +00:00
DeLesley Hutchins
9f5193cf61
Thread Safety Analysis: fix bug when using TryLock with && and || expressions.
...
llvm-svn: 188505
2013-08-15 23:06:33 +00:00
DeLesley Hutchins
16b4ff5c4d
Thread safety analysis: move warnings within lock/unlock functions out of beta.
...
llvm-svn: 188465
2013-08-15 15:31:25 +00:00
Aaron Ballman
fcd5b7e76e
Updating a link in the comments; no functional change.
...
llvm-svn: 185013
2013-06-26 19:17:19 +00:00
DeLesley Hutchins
3b2c66bbda
Thread safety analysis: fix use after free bug reported by Evgeniy Stepanov.
...
llvm-svn: 182305
2013-05-20 17:57:55 +00:00
DeLesley Hutchins
b682431775
Thread safety analysis: add two new attributes to the thread safety analysis:
...
assert_exclusive_lock and assert_shared_lock. These attributes are used to
mark functions that dynamically check (i.e. assert) that a lock is held.
llvm-svn: 182170
2013-05-17 23:02:59 +00:00
DeLesley Hutchins
fd374bb3dd
Thread safety analysis: turn on checking within lock and unlock functions.
...
These checks are enabled with the -Wthread-safety-beta flag.
llvm-svn: 179046
2013-04-08 20:11:11 +00:00
DeLesley Hutchins
c105ba19e9
Thread safety analysis: Turn on checking for non-scalar types by default.
...
These were previously enabled as a "beta" feature, but they have now been
extensively tested.
llvm-svn: 178478
2013-04-01 17:47:37 +00:00
David Blaikie
00be69ab5c
Remove the CFGElement "Invalid" state.
...
Use Optional<CFG*> where invalid states were needed previously. In the one case
where that's not possible (beginAutomaticObjDtorsInsert) just use a dummy
CFGAutomaticObjDtor.
Thanks for the help from Jordan Rose & discussion/feedback from Ted Kremenek
and Doug Gregor.
Post commit code review feedback on r175796 by Ted Kremenek.
llvm-svn: 175938
2013-02-23 00:29:34 +00:00
David Blaikie
2a01f5d426
Replace CFGElement llvm::cast support to be well-defined.
...
See r175462 for another example/more details.
llvm-svn: 175796
2013-02-21 20:58:29 +00:00
DeLesley Hutchins
9fa426a666
Thread-safety analysis: ignore edges from throw expressions in CFG.
...
llvm-svn: 172858
2013-01-18 22:15:45 +00:00
Dmitri Gribenko
f857950d39
Remove useless 'llvm::' qualifier from names like StringRef and others that are
...
brought into 'clang' namespace by clang/Basic/LLVM.h
llvm-svn: 172323
2013-01-12 19:30:44 +00:00
DeLesley Hutchins
0cfa1a5a1d
Thread-safety analysis: check member access on guarded non-primitive types.
...
llvm-svn: 169669
2012-12-08 03:46:30 +00:00
DeLesley Hutchins
f489d2b86c
Thread-safety analysis: check locks on method calls, operator=, and
...
copy constructors.
llvm-svn: 169350
2012-12-05 01:20:45 +00:00
DeLesley Hutchins
5df82f2155
Thread Safety Analysis: refactor to make more methods accept const pointers,
...
adjust checkAccess. No change in functionality.
llvm-svn: 169348
2012-12-05 00:52:33 +00:00
Chandler Carruth
3a02247dc9
Sort all of Clang's files under 'lib', and fix up the broken headers
...
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
2012-12-04 09:13:33 +00:00
Benjamin Kramer
ea70eb30a0
Pull the Attr iteration parts out of Attr.h, so including DeclBase.h doesn't 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
2012-12-01 15:09:41 +00:00
DeLesley Hutchins
1fe885614d
Thread-safety analysis: allow attributes on constructors to refer to 'this'.
...
llvm-svn: 165339
2012-10-05 22:38:19 +00:00
DeLesley Hutchins
10958cae09
Thread-safety analysis: better handling of unreachable blocks. Fixes a bug
...
where a call to function marked 'noreturn' is followed by unreachable
implicit destructor calls.
llvm-svn: 164394
2012-09-21 17:57:00 +00:00
DeLesley Hutchins
fcb0ffa622
Thread-safety analysis: fix bug where shared trylock was treated
...
as exclusive.
llvm-svn: 164332
2012-09-20 23:14:43 +00:00
DeLesley Hutchins
b78aeed26e
Thread safety analysis: properly canonicalize calls to virtual methods within
...
lock expressions.
llvm-svn: 164324
2012-09-20 22:18:02 +00:00
DeLesley Hutchins
132f8f6959
Thread-safety analysis: Fix warning when EXCLUSIVE_LOCKS_REQUIRED
...
is placed on a function that has no path to the exit block.
llvm-svn: 164244
2012-09-19 19:49:40 +00:00
DeLesley Hutchins
a15e1b4f63
Thread-safety analysis: fix ICE when EXCLUSIVE_LOCKS_REQUIRED or
...
LOCKS_EXCLUDED is used on a method with a name that is is not a simple
identifier.
llvm-svn: 164242
2012-09-19 19:18:29 +00:00
DeLesley Hutchins
138568b60a
Thread-safety analysis: fix bug in expression matching code.
...
llvm-svn: 163656
2012-09-11 23:04:49 +00:00
DeLesley Hutchins
5ff1644e62
Thread-safety analysis: differentiate between two forms of analysis; a precise
...
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
2012-09-10 19:58:23 +00:00
Chad Rosier
37a8563f36
Ampersand goes with identifier.
...
llvm-svn: 163410
2012-09-07 19:49:55 +00:00
Chad Rosier
78af00f675
Bring buildbots back. Fix scoping issue and coding style from r163397.
...
llvm-svn: 163403
2012-09-07 18:44:15 +00:00
DeLesley Hutchins
a5a00e830a
Thread-safety analysis: Add support for selectively turning off warnings
...
within part of a particular method.
llvm-svn: 163397
2012-09-07 17:34:53 +00:00
Roman Divacky
e637711ae0
Dont cast away const needlessly. Found by gcc48 -Wcast-qual.
...
llvm-svn: 163325
2012-09-06 15:59:27 +00:00
DeLesley Hutchins
93b1b031c1
Thread-safety analysis: bugfix for case where a trylock occurs in an
...
expression involving temporaries.
llvm-svn: 163237
2012-09-05 20:01:16 +00:00
DeLesley Hutchins
f5cf7903d9
Thread-safety analysis: fix handling of LOCK_RETURNED attribute so that the
...
latest definition of a function is always used when computing lock expressions.
llvm-svn: 163028
2012-08-31 22:09:53 +00:00
DeLesley Hutchins
3c3d57bc16
Thread-safety analysis: fix handling of string constants in mutex
...
expressions, which should be ignored right now.
llvm-svn: 163026
2012-08-31 21:57:32 +00:00
Ted Kremenek
78094caa56
Fix an assortment of doxygen comment issues found by -Wdocumentation.
...
llvm-svn: 162412
2012-08-22 23:50:41 +00:00
DeLesley Hutchins
0c90c2bc4b
Thread-safety-analysis: adds existential quantification over lock
...
expressions. The syntax &MyClass::mutex is interpreted as a
pattern that matches m->mutex for any object m of type MyClass.
llvm-svn: 161691
2012-08-10 20:29:46 +00:00
DeLesley Hutchins
9b1d72f3e3
Thread safety analysis: refactor to support more sophisticated handling
...
of expressions, and better error messages.
llvm-svn: 161690
2012-08-10 20:19:55 +00:00
DeLesley Hutchins
c9776faa4f
Refactor thread safety analysis to use a different data structure
...
to track locksets. This is in preparation for further changes.
llvm-svn: 161680
2012-08-10 18:39:05 +00:00
Sylvestre Ledru
830885ca64
Fix a typo (the the => the)
...
llvm-svn: 160622
2012-07-23 08:59:39 +00:00
DeLesley Hutchins
868830f727
Thread safety analysis: impove handling of trylock expressions.
...
llvm-svn: 160018
2012-07-10 21:47:55 +00:00
DeLesley Hutchins
09bcefcb6d
Thread-safety analysis: eliminate false positives in case where the definition
...
duplicates attributes on the declaration. Also eliminates a false negative in
ReleasableMutexLock. Fixing this bug required some refactoring.
llvm-svn: 159780
2012-07-05 21:16:29 +00:00
DeLesley Hutchins
3a8d6cff14
Thread safety analysis: improve handling of smart pointers.
...
llvm-svn: 159679
2012-07-03 19:47:18 +00:00
DeLesley Hutchins
0c1da20bf8
Thread Safety Analysis: handle expressions involving temporaries,
...
e.g. ExprWithCleanups.
llvm-svn: 159674
2012-07-03 18:25:56 +00:00
DeLesley Hutchins
ab0d4e6cd8
Thread safety analysis: fixed bug that occurs when very silly people
...
use scoped_lockable without putting unlock_function on the
destructor.
llvm-svn: 159609
2012-07-02 22:26:29 +00:00
DeLesley Hutchins
6e6dbb7618
Thread safety analysis: fixed incorrect error message at the end of a locks_required function.
...
llvm-svn: 159607
2012-07-02 22:16:54 +00:00
DeLesley Hutchins
2a15baf968
Thread safety analysis: don't warn in case of duplicate annotation.
...
llvm-svn: 159606
2012-07-02 22:12:12 +00:00
DeLesley Hutchins
c4a6e51596
Thread Safety Analysis: turn off checking within trylock functions.
...
llvm-svn: 159601
2012-07-02 21:59:24 +00:00
DeLesley Hutchins
d162c91b1a
Thread safety analysis: support release() function on scoped
...
lockable objects.
llvm-svn: 159387
2012-06-28 22:42:48 +00:00