summaryrefslogtreecommitdiff
path: root/test/CodeGenObjCXX/arc-move.mm
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2014-05-28 09:56:42 +0000
committerNick Lewycky <nicholas@mxc.ca>2014-05-28 09:56:42 +0000
commit9e97cc3391b446c8c4daefd0b955d7ae7dc67ed9 (patch)
tree7aba362fe9f1f331c63748a175818079d90caa6a /test/CodeGenObjCXX/arc-move.mm
parentd519dc975cf544718d9a46a63ec57cc7727cada2 (diff)
downloadclang-9e97cc3391b446c8c4daefd0b955d7ae7dc67ed9.tar.gz
Add 'nonnull' parameter or return attribute when producing an llvm pointer type in a function type where the C++ type is a reference. Update the tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209723 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenObjCXX/arc-move.mm')
-rw-r--r--test/CodeGenObjCXX/arc-move.mm6
1 files changed, 3 insertions, 3 deletions
diff --git a/test/CodeGenObjCXX/arc-move.mm b/test/CodeGenObjCXX/arc-move.mm
index 0a8286ded4..7e90388e4b 100644
--- a/test/CodeGenObjCXX/arc-move.mm
+++ b/test/CodeGenObjCXX/arc-move.mm
@@ -33,7 +33,7 @@ typename remove_reference<T>::type&& move(T &&x) {
// CHECK-LABEL: define void @_Z12library_moveRU8__strongP11objc_objectS2_
void library_move(__strong id &x, __strong id &y) {
- // CHECK: call i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
+ // CHECK: call nonnull i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
// CHECK: load i8**
// CHECK: store i8* null, i8**
// CHECK: load i8***
@@ -46,7 +46,7 @@ void library_move(__strong id &x, __strong id &y) {
// CHECK-LABEL: define void @_Z12library_moveRU8__strongP11objc_object
void library_move(__strong id &y) {
- // CHECK: [[Y:%[a-zA-Z0-9]+]] = call i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
+ // CHECK: [[Y:%[a-zA-Z0-9]+]] = call nonnull i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
// Load the object
// CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8** [[Y]]
// Null out y
@@ -65,7 +65,7 @@ void library_move(__strong id &y) {
// CHECK-LABEL: define void @_Z10const_moveRKU8__strongP11objc_object(
void const_move(const __strong id &x) {
// CHECK: [[Y:%.*]] = alloca i8*,
- // CHECK: [[X:%.*]] = call i8** @_Z4moveIRKU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_(
+ // CHECK: [[X:%.*]] = call nonnull i8** @_Z4moveIRKU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_(
// CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
// CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
// CHECK-NEXT: store i8* [[T1]], i8** [[Y]]