| // 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 ![[ARC]] | 
 |   // CHECK: ret {{.*}} !dbg ![[ARC]] | 
 |   // CHECK: ![[RET]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}}) | 
 |   return path; | 
 |   // CHECK: ![[ARC]] = !DILocation(line: [[@LINE+1]], scope: !{{.*}}) | 
 | } | 
 | @end |