]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenObjC/debug-info-property-accessors.m
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / CodeGenObjC / debug-info-property-accessors.m
1 // RUN: %clang_cc1 -emit-llvm -x objective-c -g -triple x86_64-apple-macosx10.8.0 %s -o - | FileCheck %s
2 //
3 // rdar://problem/14035789
4 //
5 // Ensure we emit the names of explicit/renamed accessors even if they
6 // are defined later in the implementation section.
7 //
8 // CHECK: metadata !{i32 {{.*}}, metadata !"blah", {{.*}} metadata !"isBlah", metadata !"", {{.*}}} ; [ DW_TAG_APPLE_property ] [blah]
9
10 @class NSString;
11 extern void NSLog(NSString *format, ...);
12 typedef signed char BOOL;
13
14 #define YES             ((BOOL)1)
15 #define NO              ((BOOL)0)
16
17 typedef unsigned int NSUInteger;
18
19 @protocol NSObject
20 @end
21
22 @interface NSObject <NSObject>
23 - (id)init;
24 + (id)alloc;
25 @end
26
27 @interface Bar : NSObject
28 @property int normal_property;
29 @property (getter=isBlah, setter=setBlah:) BOOL blah;
30 @end
31
32 @implementation Bar
33 @synthesize normal_property;
34
35 - (BOOL) isBlah
36 {
37   return YES;
38 }
39 - (void) setBlah: (BOOL) newBlah
40 {
41   NSLog (@"Speak up, I didn't catch that.");
42 }
43 @end
44
45 int
46 main ()
47 {
48   Bar *my_bar = [[Bar alloc] init];
49
50   if (my_bar.blah)
51     NSLog (@"It was true!!!");
52
53   my_bar.blah = NO;
54
55   return 0;
56 }