https://github.com/epiqc/ScaffCC
Revision 801b6f99805aa2112d529bca5a608bbe104d4055 authored by ali@mingzhe-1.cs.uchicago.edu on 26 January 2017, 07:14:30 UTC, committed by ali@mingzhe-1.cs.uchicago.edu on 26 January 2017, 07:14:30 UTC
2 parent s 7aceb7c + 294ade4
Raw File
Tip revision: 801b6f99805aa2112d529bca5a608bbe104d4055 authored by ali@mingzhe-1.cs.uchicago.edu on 26 January 2017, 07:14:30 UTC
Merge branch 'master' of https://github.com/epiqc/ScaffCC
Tip revision: 801b6f9
related-result-type.m
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s

@interface NSObject
+ (id)alloc;
- (id)init;
- (id)retain;
@end

@interface NSString : NSObject
@end

// CHECK: define void @test1()
void test1() {
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: bitcast i8*
  NSString *str1 = [[[NSString alloc] init] retain];
}

// CHECK: define void @test2()
void test2() {
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: {{call.*@objc_msgSend}}
  // CHECK: bitcast i8*
  NSString *str1 = NSString.alloc.init.retain;
}

@interface Test2 : NSString
- (id)init;
@end

@implementation Test2
// CHECK: define internal i8* @"\01-[Test2 init]"
- (id)init {
  // CHECK: {{call.*@objc_msgSendSuper}}
  // CHECK-NEXT: bitcast i8*
  return [super init];
}
@end

@interface Test3 : NSString
- (id)init;
@end

@implementation Test3
// CHECK: define internal i8* @"\01-[Test3 init]"
- (id)init {
  // CHECK: {{call.*@objc_msgSendSuper}}
  // CHECK-NEXT: bitcast i8*
  return [super init];
}
@end
back to top