diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-25 20:50:02 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-25 20:50:02 +0000 |
commit | 5bfc5364405370c388450ede09e15e3e5aef819b (patch) | |
tree | 9eb42e5c22b10588a392845bf0b1a0162bd73e99 /test/Rewriter | |
parent | f7c00eda7f21ef89cfec48fa90b743a403b89d4b (diff) | |
download | clang-5bfc5364405370c388450ede09e15e3e5aef819b.tar.gz |
Fixes a rewriting bug of access ivar of a variable cast
to subclass. (Fixes radar 7575882).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94444 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Rewriter')
-rw-r--r-- | test/Rewriter/rewrite-cast-ivar-access.mm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Rewriter/rewrite-cast-ivar-access.mm b/test/Rewriter/rewrite-cast-ivar-access.mm new file mode 100644 index 0000000000..bdda689512 --- /dev/null +++ b/test/Rewriter/rewrite-cast-ivar-access.mm @@ -0,0 +1,24 @@ +// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp +// RUN: FileCheck -check-prefix LP --input-file=%t-rw.cpp %s +// radar 7575882 + +@interface F { + int supervar; +} +@end + +@interface G : F { +@public + int ivar; +} +@end + +@implementation G +- (void)foo:(F *)arg { + int q = arg->supervar; + int v = ((G *)arg)->ivar; +} +@end + +// CHECK-LP: ((struct G_IMPL *)arg)->ivar + |