brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1014 B · dc5cf6a Raw
43 lines · plain
1// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s2 3@interface SomeClass  @end4 5int fn1(SomeClass *obj) {6        obj->privateIvar = 1; // expected-error {{'SomeClass' does not have a member named 'privateIvar}}7        return obj->publicIvar;     // expected-error {{'SomeClass' does not have a member named 'publicIvar'}}8}9 10@interface SomeClass () {11// @private by default12        int privateIvar;13@public14        int publicIvar;15}16@end17 18int fn2(SomeClass *obj) {19	obj->publicIvar = 1;20        return obj->publicIvar    // ok21             + obj->privateIvar;  // expected-error {{instance variable 'privateIvar' is private}}22}23 24@implementation SomeClass25 26int fn3(SomeClass *obj) {27	obj->privateIvar = 2;28        return obj->publicIvar    // ok29             + obj->privateIvar;  // ok30    }31@end32 33@interface SomeClass (Category)34    {	35        int categoryIvar; // expected-error {{instance variables may not be placed in categories}}36    }37@end38 39@interface SomeClass (Category1)40    {	41    }42@end43