1*67e74705SXin Li// RUN: %clang_cc1 -emit-llvm -fobjc-arc -debug-info-kind=limited -triple x86_64-apple-darwin10 %s -o - | FileCheck %s 2*67e74705SXin Li// Ensure that the line info is making sense: 3*67e74705SXin Li// ARC cleanups should be at the closing '}'. 4*67e74705SXin Li@protocol NSObject 5*67e74705SXin Li@end 6*67e74705SXin Li 7*67e74705SXin Li@interface NSObject <NSObject> {} 8*67e74705SXin Li@end 9*67e74705SXin Li 10*67e74705SXin Li@protocol NSCopying 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@protocol NSCoding 14*67e74705SXin Li@end 15*67e74705SXin Li 16*67e74705SXin Litypedef double CGFloat; 17*67e74705SXin Listruct CGRect {}; 18*67e74705SXin Litypedef struct CGRect CGRect; 19*67e74705SXin Litypedef CGRect NSRect; 20*67e74705SXin LiNSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h); 21*67e74705SXin Li@interface NSBezierPath : NSObject <NSCopying, NSCoding> 22*67e74705SXin Li+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius; 23*67e74705SXin Li@end 24*67e74705SXin Li@implementation AppDelegate : NSObject {} 25*67e74705SXin Li- (NSBezierPath *)_createBezierPathWithWidth:(CGFloat)width height:(CGFloat)height radius:(CGFloat)radius lineWidth:(CGFloat)lineWidth 26*67e74705SXin Li{ 27*67e74705SXin Li NSRect rect = NSMakeRect(0, 0, width, height); 28*67e74705SXin Li NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:radius yRadius:radius]; 29*67e74705SXin Li CGFloat pattern[2]; 30*67e74705SXin Li // CHECK: define {{.*}}_createBezierPathWithWidth 31*67e74705SXin Li // CHECK: load {{.*}} %path, align {{.*}}, !dbg ![[RET:[0-9]+]] 32*67e74705SXin Li // CHECK: call void @objc_storeStrong{{.*}} !dbg ![[ARC:[0-9]+]] 33*67e74705SXin Li // CHECK: call {{.*}} @objc_autoreleaseReturnValue{{.*}} !dbg ![[ARC]] 34*67e74705SXin Li // CHECK: ret {{.*}} !dbg ![[ARC]] 35*67e74705SXin Li // CHECK: ![[RET]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}}) 36*67e74705SXin Li return path; 37*67e74705SXin Li // CHECK: ![[ARC]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}}) 38*67e74705SXin Li} 39*67e74705SXin Li@end 40