objc_NumQuals
};
IdentifierInfo *ObjCTypeQuals[objc_NumQuals];
- // Definitions for ObjC2's @property attributes.
- enum ObjCPropertyAttr {
- objc_readonly=0, objc_getter, objc_setter, objc_assign,
- objc_readwrite, objc_retain, objc_copy, objc_nonatomic, objc_NumAttrs
- };
- IdentifierInfo *ObjCPropertyAttrs[objc_NumAttrs];
bool isTokIdentifier_in() const;
SourceLocation AttrName = ConsumeToken(); // consume last attribute name
- if (II == ObjCPropertyAttrs[objc_readonly])
+ if (!strcmp(II->getName(), "readonly"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_readonly);
- else if (II == ObjCPropertyAttrs[objc_assign])
+ else if (!strcmp(II->getName(), "assign"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_assign);
- else if (II == ObjCPropertyAttrs[objc_readwrite])
+ else if (!strcmp(II->getName(), "readwrite"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_readwrite);
- else if (II == ObjCPropertyAttrs[objc_retain])
+ else if (!strcmp(II->getName(), "retain"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_retain);
- else if (II == ObjCPropertyAttrs[objc_copy])
+ else if (!strcmp(II->getName(), "copy"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_copy);
- else if (II == ObjCPropertyAttrs[objc_nonatomic])
+ else if (!strcmp(II->getName(), "nonatomic"))
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nonatomic);
- else if (II == ObjCPropertyAttrs[objc_getter] ||
- II == ObjCPropertyAttrs[objc_setter]) {
+ else if (!strcmp(II->getName(), "getter") ||
+ !strcmp(II->getName(), "setter")) {
// getter/setter require extra treatment.
if (ExpectAndConsume(tok::equal, diag::err_objc_expected_equal, "",
tok::r_paren))
return;
}
- if (II == ObjCPropertyAttrs[objc_setter]) {
+ if (II->getName()[0] == 's') {
DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_setter);
DS.setSetterName(Tok.getIdentifierInfo());
ConsumeToken(); // consume method name
ObjCTypeQuals[objc_bycopy] = &PP.getIdentifierTable().get("bycopy");
ObjCTypeQuals[objc_byref] = &PP.getIdentifierTable().get("byref");
}
- if (getLang().ObjC2) {
- ObjCPropertyAttrs[objc_readonly] = &PP.getIdentifierTable().get("readonly");
- ObjCPropertyAttrs[objc_getter] = &PP.getIdentifierTable().get("getter");
- ObjCPropertyAttrs[objc_setter] = &PP.getIdentifierTable().get("setter");
- ObjCPropertyAttrs[objc_assign] = &PP.getIdentifierTable().get("assign");
- ObjCPropertyAttrs[objc_readwrite] =
- &PP.getIdentifierTable().get("readwrite");
- ObjCPropertyAttrs[objc_retain] = &PP.getIdentifierTable().get("retain");
- ObjCPropertyAttrs[objc_copy] = &PP.getIdentifierTable().get("copy");
- ObjCPropertyAttrs[objc_nonatomic] =
- &PP.getIdentifierTable().get("nonatomic");
- }
Ident_super = &PP.getIdentifierTable().get("super");
}