// RUN: %clang_cc1 -emit-llvm -fobjc-arc -debug-info-kind=limited -triple x86_64-apple-darwin10 %s -o - | FileCheck %s
// Ensure that the line info is making sense:
// ARC cleanups should be at the closing '}'.
@protocol NSObject
@end

@interface NSObject <NSObject> {}
@end

@protocol NSCopying
@end

@protocol NSCoding
@end

typedef double CGFloat;
struct CGRect {};
typedef struct CGRect CGRect;
typedef CGRect NSRect;
NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h);
@interface NSBezierPath : NSObject <NSCopying, NSCoding>
+ (NSBezierPath *)bezierPathWithRoundedRect:(NSRect)rect xRadius:(CGFloat)xRadius yRadius:(CGFloat)yRadius;
@end
@implementation AppDelegate : NSObject {}
- (NSBezierPath *)_createBezierPathWithWidth:(CGFloat)width height:(CGFloat)height radius:(CGFloat)radius lineWidth:(CGFloat)lineWidth
{
  NSRect rect = NSMakeRect(0, 0, width, height);
  NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:rect xRadius:radius yRadius:radius];
  CGFloat pattern[2];
  // CHECK: define {{.*}}_createBezierPathWithWidth
  // CHECK: load {{.*}} %path, align {{.*}}, !dbg ![[RET:[0-9]+]]
  // CHECK: call void @objc_storeStrong{{.*}} !dbg ![[ARC:[0-9]+]]
  // CHECK: call {{.*}} @objc_autoreleaseReturnValue{{.*}} !dbg ![[ARC1:[0-9]+]]
  // CHECK: ret {{.*}} !dbg ![[ARC]]
  // CHECK: ![[RET]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}})
  return path;
  // CHECK: ![[ARC]] = !DILocation(line: [[@LINE+2]], scope: !{{.*}})
  // CHECK: ![[ARC1]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}})
}
@end
