40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| // 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
 |