blob: 93cb4071b8e176a952e1f7fc92ee4f73456fca8c [file] [log] [blame]
// RUN: %swift -target x86_64-apple-macosx10.9 -module-name main %s -emit-ir -o - | FileCheck %s
// RUN: %swift -target i386-apple-ios7.0 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target x86_64-apple-ios7.0 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target armv7-apple-ios7.0 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target arm64-apple-ios7.0 %s -module-name main -emit-ir -o - | FileCheck %s
// RUN: %swift -target x86_64-unknown-linux-gnu %s -disable-objc-interop -module-name main -emit-ir -o - | FileCheck %s
// REQUIRES: X86
// REQUIRES: ARM
import Builtin
struct Pair<T> {
var fst: T, snd: T
}
struct Huge {
var pairs: Pair<Pair<Pair<Pair<Pair<Pair<Pair<Pair<Pair<Builtin.Int64>>>>>>>>>
var unalign: Builtin.Int8
}
// CHECK: @_swift_slowAlloc = external global i8* ([[SIZE_T:i(32|64)]],
// CHECK: define linkonce_odr hidden i8* @rt_swift_slowAlloc([[SIZE_T:i(32|64)]],
// CHECK: define linkonce_odr hidden void @_TwdeV4main4Huge(
// CHECK: [[T0:%.*]] = bitcast [[BUFFER:.[0-9]+ x i8.]]* {{%.*}} to i8**
// CHECK-NEXT: [[T1:%.*]] = load i8*, i8** [[T0]]
// CHECK-NEXT: call void @rt_swift_slowDealloc(i8* [[T1]], [[SIZE_T]] 4097, [[SIZE_T]] 7)
// CHECK-NEXT: ret void
// CHECK: define linkonce_odr hidden [[OPAQUE:%swift.opaque]]* @_TwalV4main4Huge(
// CHECK: [[T0:%.*]] = call noalias i8* @rt_swift_slowAlloc([[SIZE_T]] 4097, [[SIZE_T]] 7)
// CHECK-NEXT: [[T1:%.*]] = bitcast [[BUFFER]]* {{%.*}} to i8**
// CHECK-NEXT: store i8* [[T0]], i8** [[T1]]