summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Edit/RewriteObjCFoundationAPI.cpp2
-rw-r--r--clang/test/ARCMT/objcmt-subscripting-literals.m5
-rw-r--r--clang/test/ARCMT/objcmt-subscripting-literals.m.result5
3 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Edit/RewriteObjCFoundationAPI.cpp b/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
index 846d58fc2cb..7445700cc49 100644
--- a/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
+++ b/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
@@ -624,6 +624,7 @@ static bool subscriptOperatorNeedsParens(const Expr *FullExpr) {
isa<ObjCPropertyRefExpr>(Expr) ||
isa<ObjCProtocolExpr>(Expr) ||
isa<MemberExpr>(Expr) ||
+ isa<ObjCIvarRefExpr>(Expr) ||
isa<ParenExpr>(FullExpr) ||
isa<ParenListExpr>(Expr) ||
isa<SizeOfPackExpr>(Expr))
@@ -650,6 +651,7 @@ static bool castOperatorNeedsParens(const Expr *FullExpr) {
isa<ObjCPropertyRefExpr>(Expr) ||
isa<ObjCProtocolExpr>(Expr) ||
isa<MemberExpr>(Expr) ||
+ isa<ObjCIvarRefExpr>(Expr) ||
isa<ParenExpr>(FullExpr) ||
isa<ParenListExpr>(Expr) ||
isa<SizeOfPackExpr>(Expr) ||
diff --git a/clang/test/ARCMT/objcmt-subscripting-literals.m b/clang/test/ARCMT/objcmt-subscripting-literals.m
index 0371e2e2ca6..6d626c4683d 100644
--- a/clang/test/ARCMT/objcmt-subscripting-literals.m
+++ b/clang/test/ARCMT/objcmt-subscripting-literals.m
@@ -77,7 +77,9 @@ typedef const struct __CFString * CFStringRef;
#define PAIR(x) @#x, [NSNumber numberWithInt:(x)]
#define TWO(x) ((x), (x))
-@interface I
+@interface I {
+ NSArray *ivarArr;
+}
@end
@implementation I
-(void) foo {
@@ -138,6 +140,7 @@ typedef const struct __CFString * CFStringRef;
o = [*parr objectAtIndex:2];
void *hd;
o = [(NSArray*)hd objectAtIndex:2];
+ o = [ivarArr objectAtIndex:2];
}
@end
diff --git a/clang/test/ARCMT/objcmt-subscripting-literals.m.result b/clang/test/ARCMT/objcmt-subscripting-literals.m.result
index 333d0b4c388..a4eca6a447d 100644
--- a/clang/test/ARCMT/objcmt-subscripting-literals.m.result
+++ b/clang/test/ARCMT/objcmt-subscripting-literals.m.result
@@ -77,7 +77,9 @@ typedef const struct __CFString * CFStringRef;
#define PAIR(x) @#x, [NSNumber numberWithInt:(x)]
#define TWO(x) ((x), (x))
-@interface I
+@interface I {
+ NSArray *ivarArr;
+}
@end
@implementation I
-(void) foo {
@@ -138,6 +140,7 @@ typedef const struct __CFString * CFStringRef;
o = (*parr)[2];
void *hd;
o = ((NSArray*)hd)[2];
+ o = ivarArr[2];
}
@end
OpenPOWER on IntegriCloud