reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/clang/include/clang/Sema/DeclSpec.h
   46   class ObjCDeclSpec;

References

tools/clang/include/clang/Parse/Parser.h
 1620   ParsedType ParseObjCTypeName(ObjCDeclSpec &DS, DeclaratorContext Ctx,
 1629   void ParseObjCPropertyAttribute(ObjCDeclSpec &DS);
 2172   void ParseObjCTypeQualifierList(ObjCDeclSpec &DS,
tools/clang/include/clang/Sema/DeclSpec.h
  407   ObjCDeclSpec *ObjCQualifiers;
  788   ObjCDeclSpec *getObjCQualifiers() const { return ObjCQualifiers; }
  789   void setObjCQualifiers(ObjCDeclSpec *quals) { ObjCQualifiers = quals; }
tools/clang/include/clang/Sema/Sema.h
 8702                       FieldDeclarator &FD, ObjCDeclSpec &ODS,
 8731     ObjCDeclSpec DeclSpec;
 8741       tok::TokenKind MethodType, ObjCDeclSpec &ReturnQT, ParsedType ReturnType,
11161   void CodeCompleteObjCPropertyFlags(Scope *S, ObjCDeclSpec &ODS);
11164   void CodeCompleteObjCPassingType(Scope *S, ObjCDeclSpec &DS,
tools/clang/lib/Parse/ParseObjc.cpp
  720       ObjCDeclSpec OCDS;
  743         if (OCDS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_nullability)
  800                                                  ObjCDeclSpec &DS,
  841 void Parser::ParseObjCPropertyAttribute(ObjCDeclSpec &DS) {
  862       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_readonly);
  864       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_assign);
  866       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_unsafe_unretained);
  868       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_readwrite);
  870       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_retain);
  872       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_strong);
  874       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_copy);
  876       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nonatomic);
  878       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_atomic);
  880       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_weak);
  912         DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_setter);
  921         DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_getter);
  925       if (DS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_nullability)
  929       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nullability);
  932       if (DS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_nullability)
  936       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nullability);
  939       if (DS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_nullability)
  943       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nullability);
  946       if (DS.getPropertyAttributes() & ObjCDeclSpec::DQ_PR_nullability)
  950       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_nullability);
  954       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_null_resettable);
  956       DS.setPropertyAttributes(ObjCDeclSpec::DQ_PR_class);
 1138 void Parser::ParseObjCTypeQualifierList(ObjCDeclSpec &DS,
 1160       ObjCDeclSpec::ObjCDeclQualifier Qual;
 1164       case objc_in:     Qual = ObjCDeclSpec::DQ_In; break;
 1165       case objc_out:    Qual = ObjCDeclSpec::DQ_Out; break;
 1166       case objc_inout:  Qual = ObjCDeclSpec::DQ_Inout; break;
 1167       case objc_oneway: Qual = ObjCDeclSpec::DQ_Oneway; break;
 1168       case objc_bycopy: Qual = ObjCDeclSpec::DQ_Bycopy; break;
 1169       case objc_byref:  Qual = ObjCDeclSpec::DQ_Byref; break;
 1172         Qual = ObjCDeclSpec::DQ_CSNullability;
 1177         Qual = ObjCDeclSpec::DQ_CSNullability;
 1182         Qual = ObjCDeclSpec::DQ_CSNullability;
 1189       if (Qual == ObjCDeclSpec::DQ_CSNullability)
 1233 ParsedType Parser::ParseObjCTypeName(ObjCDeclSpec &DS,
 1268       if (DS.getObjCDeclQualifier() & ObjCDeclSpec::DQ_CSNullability)
 1342   ObjCDeclSpec DSRet;
tools/clang/lib/Sema/SemaCodeComplete.cpp
 6039   if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
 6040       (Attributes & ObjCDeclSpec::DQ_PR_readwrite))
 6046       (ObjCDeclSpec::DQ_PR_assign | ObjCDeclSpec::DQ_PR_unsafe_unretained |
 6046       (ObjCDeclSpec::DQ_PR_assign | ObjCDeclSpec::DQ_PR_unsafe_unretained |
 6047        ObjCDeclSpec::DQ_PR_copy | ObjCDeclSpec::DQ_PR_retain |
 6047        ObjCDeclSpec::DQ_PR_copy | ObjCDeclSpec::DQ_PR_retain |
 6048        ObjCDeclSpec::DQ_PR_strong | ObjCDeclSpec::DQ_PR_weak);
 6048        ObjCDeclSpec::DQ_PR_strong | ObjCDeclSpec::DQ_PR_weak);
 6049   if (AssignCopyRetMask && AssignCopyRetMask != ObjCDeclSpec::DQ_PR_assign &&
 6050       AssignCopyRetMask != ObjCDeclSpec::DQ_PR_unsafe_unretained &&
 6051       AssignCopyRetMask != ObjCDeclSpec::DQ_PR_copy &&
 6052       AssignCopyRetMask != ObjCDeclSpec::DQ_PR_retain &&
 6053       AssignCopyRetMask != ObjCDeclSpec::DQ_PR_strong &&
 6054       AssignCopyRetMask != ObjCDeclSpec::DQ_PR_weak)
 6060 void Sema::CodeCompleteObjCPropertyFlags(Scope *S, ObjCDeclSpec &ODS) {
 6070   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_readonly))
 6072   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_assign))
 6075                                  ObjCDeclSpec::DQ_PR_unsafe_unretained))
 6077   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_readwrite))
 6079   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_retain))
 6081   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_strong))
 6083   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_copy))
 6085   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_nonatomic))
 6087   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_atomic))
 6092     if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_weak))
 6095   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_setter)) {
 6103   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_getter)) {
 6111   if (!ObjCPropertyFlagConflicts(Attributes, ObjCDeclSpec::DQ_PR_nullability)) {
 6331 void Sema::CodeCompleteObjCPassingType(Scope *S, ObjCDeclSpec &DS,
 6341        (ObjCDeclSpec::DQ_In | ObjCDeclSpec::DQ_Inout)) == 0) {
 6341        (ObjCDeclSpec::DQ_In | ObjCDeclSpec::DQ_Inout)) == 0) {
 6347        (ObjCDeclSpec::DQ_Out | ObjCDeclSpec::DQ_Inout)) == 0) {
 6347        (ObjCDeclSpec::DQ_Out | ObjCDeclSpec::DQ_Inout)) == 0) {
 6353        (ObjCDeclSpec::DQ_Bycopy | ObjCDeclSpec::DQ_Byref |
 6353        (ObjCDeclSpec::DQ_Bycopy | ObjCDeclSpec::DQ_Byref |
 6354         ObjCDeclSpec::DQ_Oneway)) == 0) {
 6359   if ((DS.getObjCDeclQualifier() & ObjCDeclSpec::DQ_CSNullability) == 0) {
tools/clang/lib/Sema/SemaDeclObjC.cpp
 4126 CvtQTToAstBitMask(ObjCDeclSpec::ObjCDeclQualifier PQTVal) {
 4541     tok::TokenKind MethodType, ObjCDeclSpec &ReturnQT, ParsedType ReturnType,
tools/clang/lib/Sema/SemaObjCProperty.cpp
  133     if (T.isObjCGCWeak()) return ObjCDeclSpec::DQ_PR_weak;
  140       return ObjCDeclSpec::DQ_PR_weak;
  142       return ObjCDeclSpec::DQ_PR_strong;
  144       return ObjCDeclSpec::DQ_PR_unsafe_unretained;
  180                           ObjCDeclSpec &ODS,
  186   FD.D.setObjCWeakProperty((Attributes & ObjCDeclSpec::DQ_PR_weak) != 0);
  192   bool isReadWrite = ((Attributes & ObjCDeclSpec::DQ_PR_readwrite) ||
  194                       !(Attributes & ObjCDeclSpec::DQ_PR_readonly));
  283   if (Attributes & ObjCDeclSpec::DQ_PR_readonly)
  285   if (Attributes & ObjCDeclSpec::DQ_PR_readwrite)
  287   if (Attributes & ObjCDeclSpec::DQ_PR_getter)
  289   if (Attributes & ObjCDeclSpec::DQ_PR_setter)
  291   if (Attributes & ObjCDeclSpec::DQ_PR_assign)
  293   if (Attributes & ObjCDeclSpec::DQ_PR_retain)
  295   if (Attributes & ObjCDeclSpec::DQ_PR_strong)
  297   if (Attributes & ObjCDeclSpec::DQ_PR_weak)
  299   if (Attributes & ObjCDeclSpec::DQ_PR_copy)
  301   if (Attributes & ObjCDeclSpec::DQ_PR_unsafe_unretained)
  303   if (Attributes & ObjCDeclSpec::DQ_PR_nonatomic)
  305   if (Attributes & ObjCDeclSpec::DQ_PR_atomic)
  307   if (Attributes & ObjCDeclSpec::DQ_PR_class)
  439   bool isClassProperty = (AttributesAsWritten & ObjCDeclSpec::DQ_PR_class) ||
  440                          (Attributes & ObjCDeclSpec::DQ_PR_class);
  465         (Attributes & ObjCDeclSpec::DQ_PR_readwrite) &&
  479       if (AttributesAsWritten & ObjCDeclSpec::DQ_PR_getter) {
  487       Attributes |= ObjCDeclSpec::DQ_PR_getter;
  585   if (Attributes & (ObjCDeclSpec::DQ_PR_assign |
  586                     ObjCDeclSpec::DQ_PR_unsafe_unretained)) {
  598       isAssign && !(Attributes & ObjCDeclSpec::DQ_PR_assign)) {
  626   bool isClassProperty = (AttributesAsWritten & ObjCDeclSpec::DQ_PR_class) ||
  627                          (Attributes & ObjCDeclSpec::DQ_PR_class);
  655   if (Attributes & ObjCDeclSpec::DQ_PR_readonly)
  658   if (Attributes & ObjCDeclSpec::DQ_PR_getter)
  661   if (Attributes & ObjCDeclSpec::DQ_PR_setter)
  667   if (Attributes & ObjCDeclSpec::DQ_PR_retain)
  670   if (Attributes & ObjCDeclSpec::DQ_PR_strong)
  673   if (Attributes & ObjCDeclSpec::DQ_PR_weak)
  676   if (Attributes & ObjCDeclSpec::DQ_PR_copy)
  679   if (Attributes & ObjCDeclSpec::DQ_PR_unsafe_unretained)
  686   if (Attributes & ObjCDeclSpec::DQ_PR_nonatomic)
  692   if (Attributes & ObjCDeclSpec::DQ_PR_unsafe_unretained)
  702   if (Attributes & ObjCDeclSpec::DQ_PR_nullability)
  705   if (Attributes & ObjCDeclSpec::DQ_PR_null_resettable)
  708  if (Attributes & ObjCDeclSpec::DQ_PR_class)
 2546   if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
 2547       (Attributes & ObjCDeclSpec::DQ_PR_readwrite))
 2555   if ((Attributes & (ObjCDeclSpec::DQ_PR_weak | ObjCDeclSpec::DQ_PR_copy |
 2555   if ((Attributes & (ObjCDeclSpec::DQ_PR_weak | ObjCDeclSpec::DQ_PR_copy |
 2556                     ObjCDeclSpec::DQ_PR_retain | ObjCDeclSpec::DQ_PR_strong)) &&
 2556                     ObjCDeclSpec::DQ_PR_retain | ObjCDeclSpec::DQ_PR_strong)) &&
 2560       << (Attributes & ObjCDeclSpec::DQ_PR_weak ? "weak" :
 2561           Attributes & ObjCDeclSpec::DQ_PR_copy ? "copy" : "retain (or strong)");
 2562     Attributes &= ~(ObjCDeclSpec::DQ_PR_weak   | ObjCDeclSpec::DQ_PR_copy |
 2562     Attributes &= ~(ObjCDeclSpec::DQ_PR_weak   | ObjCDeclSpec::DQ_PR_copy |
 2563                     ObjCDeclSpec::DQ_PR_retain | ObjCDeclSpec::DQ_PR_strong);
 2563                     ObjCDeclSpec::DQ_PR_retain | ObjCDeclSpec::DQ_PR_strong);
 2568   if ((Attributes & ObjCDeclSpec::DQ_PR_assign) &&
 2569       !(Attributes & ObjCDeclSpec::DQ_PR_unsafe_unretained) &&
 2576   if (Attributes & ObjCDeclSpec::DQ_PR_assign) {
 2577     if (Attributes & ObjCDeclSpec::DQ_PR_copy) {
 2580       Attributes &= ~ObjCDeclSpec::DQ_PR_copy;
 2582     if (Attributes & ObjCDeclSpec::DQ_PR_retain) {
 2585       Attributes &= ~ObjCDeclSpec::DQ_PR_retain;
 2587     if (Attributes & ObjCDeclSpec::DQ_PR_strong) {
 2590       Attributes &= ~ObjCDeclSpec::DQ_PR_strong;
 2593         (Attributes & ObjCDeclSpec::DQ_PR_weak)) {
 2596       Attributes &= ~ObjCDeclSpec::DQ_PR_weak;
 2600   } else if (Attributes & ObjCDeclSpec::DQ_PR_unsafe_unretained) {
 2601     if (Attributes & ObjCDeclSpec::DQ_PR_copy) {
 2604       Attributes &= ~ObjCDeclSpec::DQ_PR_copy;
 2606     if (Attributes & ObjCDeclSpec::DQ_PR_retain) {
 2609       Attributes &= ~ObjCDeclSpec::DQ_PR_retain;
 2611     if (Attributes & ObjCDeclSpec::DQ_PR_strong) {
 2614       Attributes &= ~ObjCDeclSpec::DQ_PR_strong;
 2617         (Attributes & ObjCDeclSpec::DQ_PR_weak)) {
 2620       Attributes &= ~ObjCDeclSpec::DQ_PR_weak;
 2622   } else if (Attributes & ObjCDeclSpec::DQ_PR_copy) {
 2623     if (Attributes & ObjCDeclSpec::DQ_PR_retain) {
 2626       Attributes &= ~ObjCDeclSpec::DQ_PR_retain;
 2628     if (Attributes & ObjCDeclSpec::DQ_PR_strong) {
 2631       Attributes &= ~ObjCDeclSpec::DQ_PR_strong;
 2633     if (Attributes & ObjCDeclSpec::DQ_PR_weak) {
 2636       Attributes &= ~ObjCDeclSpec::DQ_PR_weak;
 2639   else if ((Attributes & ObjCDeclSpec::DQ_PR_retain) &&
 2640            (Attributes & ObjCDeclSpec::DQ_PR_weak)) {
 2643       Attributes &= ~ObjCDeclSpec::DQ_PR_retain;
 2645   else if ((Attributes & ObjCDeclSpec::DQ_PR_strong) &&
 2646            (Attributes & ObjCDeclSpec::DQ_PR_weak)) {
 2649       Attributes &= ~ObjCDeclSpec::DQ_PR_weak;
 2652   if (Attributes & ObjCDeclSpec::DQ_PR_weak) {
 2661   if ((Attributes & ObjCDeclSpec::DQ_PR_atomic) &&
 2662       (Attributes & ObjCDeclSpec::DQ_PR_nonatomic)) {
 2665       Attributes &= ~ObjCDeclSpec::DQ_PR_atomic;
 2671     if (Attributes & ObjCDeclSpec::DQ_PR_readonly) {
 2704   if (!(Attributes & ObjCDeclSpec::DQ_PR_copy)
 2705       &&!(Attributes & ObjCDeclSpec::DQ_PR_readonly)
 2709   else if ((Attributes & ObjCDeclSpec::DQ_PR_retain) &&
 2710            !(Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
 2711            !(Attributes & ObjCDeclSpec::DQ_PR_strong) &&
 2715   if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
 2716       (Attributes & ObjCDeclSpec::DQ_PR_setter))
tools/clang/lib/Sema/SemaType.cpp
 4308           ->setObjCDeclQualifier(ObjCDeclSpec::DQ_CSNullability);