diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2011-10-03 17:58:21 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-10-03 17:58:21 +0000 |
| commit | 082a6a14a5c3fdfb4905f3d47a1b2d62863527b7 (patch) | |
| tree | 2a24c1440ecaebfe520edcc48c9c6caf215ca2af /clang/test | |
| parent | 794c205e526a00a5e9bc20760bcf1b018918a9eb (diff) | |
| download | bcm5719-llvm-082a6a14a5c3fdfb4905f3d47a1b2d62863527b7.tar.gz bcm5719-llvm-082a6a14a5c3fdfb4905f3d47a1b2d62863527b7.zip | |
objc++: Accessing explicit property of reference type need
not bind to a temporary. Fixes //rdar://10188258
llvm-svn: 141009
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGenObjCXX/property-object-reference.mm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjCXX/property-object-reference.mm b/clang/test/CodeGenObjCXX/property-object-reference.mm new file mode 100644 index 00000000000..b87ce2303b5 --- /dev/null +++ b/clang/test/CodeGenObjCXX/property-object-reference.mm @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 %s -triple x86_64-apple-darwin10 -fobjc-fragile-abi -emit-llvm -o - | FileCheck %s +// rdar://10188258 + +struct Foo {int i;}; + +@interface ObjCTest { } +@property (nonatomic, readonly) Foo& FooRefProperty; +@end + + +@implementation ObjCTest +@dynamic FooRefProperty; + +-(void) test { + Foo& f = self.FooRefProperty; +} +@end + +// CHECK: [[T0:%.*]] = load {{%.*}} [[S0:%.*]] +// CHECK: load i8** @"\01L_OBJC_SELECTOR_REFERENCES_ +// CHECK: [[T2:%.*]] = bitcast {{%.*}} [[T0]] to i8* +// CHECK: @objc_msgSend + |

