brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 20e26af Raw
31 lines · plain
1// RUN: %clang_cc1 -fblocks -triple arm64-apple-darwin %s -emit-llvm -o - | FileCheck %s2 3struct stret { int x[100]; };4struct stret one = {{1}};5 6@interface Test  @end7 8@implementation Test9+(struct stret) method { return one; }10@end11 12int main(int argc, const char **argv)13{14    struct stret s;15    s = [(id)(argc&~255) method];16    // CHECK: call void @objc_msgSend(ptr dead_on_unwind writable sret(%struct.stret) align 4 [[T0:%[^,]+]]17    // CHECK: call void @llvm.memset.p0.i64(ptr align 4 [[T0]], i8 0, i64 400, i1 false)18 19    s = [Test method];20    // CHECK: call void @objc_msgSend(ptr dead_on_unwind writable sret(%struct.stret) align 4 [[T1:%[^,]+]]21    // CHECK-NOT: call void @llvm.memset.p0.i64(22 23    [(id)(argc&~255) method];24    // CHECK: call void @objc_msgSend(ptr dead_on_unwind writable sret(%struct.stret) align 4 [[T1:%[^,]+]]25    // CHECK-NOT: call void @llvm.memset.p0.i64(26 27    [Test method];28    // CHECK: call void @objc_msgSend(ptr dead_on_unwind writable sret(%struct.stret) align 4 [[T1:%[^,]+]]29    // CHECK-NOT: call void @llvm.memset.p0.i64(30}31