Merge remote-tracking branch 'origin/swift-4.0-branch' into stable
* origin/swift-4.0-branch:
Merging r294800: ------------------------------------------------------------------------ r294800 | gbiv | 2017-02-10 14:52:29 -0800 (Fri, 10 Feb 2017) | 10 lines
Merging r294855: ------------------------------------------------------------------------ r294855 | compnerd | 2017-02-11 09:24:09 -0800 (Sat, 11 Feb 2017) | 3 lines
diff --git a/docs/AutomaticReferenceCounting.rst b/docs/AutomaticReferenceCounting.rst
index aa2a283..fbd1ba4 100644
--- a/docs/AutomaticReferenceCounting.rst
+++ b/docs/AutomaticReferenceCounting.rst
@@ -2258,16 +2258,13 @@
.. code-block:: objc
- id objc_storeStrong(id *object, id value) {
- value = [value retain];
+ void objc_storeStrong(id *object, id value) {
id oldValue = *object;
+ value = [value retain];
*object = value;
[oldValue release];
- return value;
}
-Always returns ``value``.
-
.. [*] This does not imply that a ``__strong`` object of block type is an
invalid argument to this function. Rather it implies that an ``objc_retain``
and not an ``objc_retainBlock`` operation will be emitted if the argument is
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 07d2086..2c0fce9 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -605,11 +605,10 @@
EM_PotentialConstantExpressionUnevaluated,
/// Evaluate as a constant expression. In certain scenarios, if:
- /// - We find a MemberExpr with a base that can't be evaluated, or
- /// - We find a variable initialized with a call to a function that has
+ /// - we find a MemberExpr with a base that can't be evaluated, or
+ /// - we find a variable initialized with a call to a function that has
/// the alloc_size attribute on it
- ///
- /// Then we may consider evaluation to have succeeded.
+ /// then we may consider evaluation to have succeeded.
///
/// In either case, the LValue returned shall have an invalid base; in the
/// former, the base will be the invalid MemberExpr, in the latter, the
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index 1d72b4e..36f6785 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -166,7 +166,7 @@
/// void objc_release(id);
llvm::Constant *objc_release;
- /// id objc_storeStrong(id*, id);
+ /// void objc_storeStrong(id*, id);
llvm::Constant *objc_storeStrong;
/// id objc_storeWeak(id*, id);