File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -1138,13 +1138,15 @@ void IRGenFunction::emitNativeSetDeallocating(llvm::Value *value) {
1138
1138
1139
1139
void IRGenFunction::emitNativeUnownedInit (llvm::Value *value,
1140
1140
Address dest) {
1141
+ value = Builder.CreateBitCast (value, IGM.RefCountedPtrTy );
1141
1142
dest = Builder.CreateStructGEP (dest, 0 , Size (0 ));
1142
1143
Builder.CreateStore (value, dest);
1143
1144
emitNativeUnownedRetain (value);
1144
1145
}
1145
1146
1146
1147
void IRGenFunction::emitNativeUnownedAssign (llvm::Value *value,
1147
1148
Address dest) {
1149
+ value = Builder.CreateBitCast (value, IGM.RefCountedPtrTy );
1148
1150
dest = Builder.CreateStructGEP (dest, 0 , Size (0 ));
1149
1151
auto oldValue = Builder.CreateLoad (dest);
1150
1152
Builder.CreateStore (value, dest);
Original file line number Diff line number Diff line change
1
+ // RUN: %target-swift-frontend -emit-ir -verify %s
2
+
3
+ import Swift
4
+
5
+ class C {}
6
+
7
+ sil @foo : $@convention(thin) (@inout @sil_unowned C, @owned C) -> () {
8
+ entry(%0 : $*@sil_unowned C, %1 : $C):
9
+ store_unowned %1 to [initialization] %0 : $*@sil_unowned C
10
+ store_unowned %1 to %0 : $*@sil_unowned C
11
+ return undef : $()
12
+ }
13
+
14
+ sil_vtable C {}
You can’t perform that action at this time.
0 commit comments