[cfe-commits] r43534 - in /cfe/trunk: Sema/SemaDecl.cpp clang.xcodeproj/project.pbxproj include/clang/AST/Decl.h include/clang/AST/DeclObjC.h

Fariborz Jahanian fjahanian at apple.com
Wed Dec 12 09:21:04 PST 2007


On Dec 11, 2007, at 10:05 PM, Chris Lattner wrote:

> On Oct 30, 2007, at 5:12 PM, Fariborz Jahanian wrote:
>> Author: fjahanian
>> Date: Tue Oct 30 19:12:35 2007
>> New Revision: 43534
>>
>> Added new type and bitfield fields in some decl types in  
>> preparation for objective-c's type qualifiers.
>> Added initialization of Class/SEMA types.
>
> Hi Fariborz,
>
> This patch adds ObjcDeclQualifier to VarDecl.  Doesn't it make more  
> sense for them to be on ParmVarDecl?

Yes it does. I will make the change later today.

- Fariborz


>
>
> -Chris
>
>> +  /// ObjcDeclQualifier - Qualifier used on types in method  
>> declarations
>> +  /// for remote messaging. They are meant for the arguments  
>> though and
>> +  /// applied to the Decls (ObjcMethodDecl and ParmVarDecl).
>> +  enum ObjcDeclQualifier {
>> +    OBJC_TQ_None = 0x0,
>> +    OBJC_TQ_In = 0x1,
>> +    OBJC_TQ_Inout = 0x2,
>> +    OBJC_TQ_Out = 0x4,
>> +    OBJC_TQ_Bycopy = 0x8,
>> +    OBJC_TQ_Byref = 0x10,
>> +    OBJC_TQ_Oneway = 0x20
>> +  };
>> +
>> private:
>>  /// Loc - The location that this decl.
>>  SourceLocation Loc;
>> @@ -280,6 +293,8 @@
>>  //  as static variables declared within a function.
>>  bool hasGlobalStorage() const { return !hasAutoStorage(); }
>>
>> +  ObjcDeclQualifier getObjcDeclQualifier() const { return  
>> objcDeclQualifier; }
>> +
>>  // Implement isa/cast/dyncast/etc.
>>  static bool classof(const Decl *D) {
>>    return D->getKind() >= VarFirst && D->getKind() <= VarLast;
>> @@ -288,11 +303,16 @@
>> protected:
>>  VarDecl(Kind DK, SourceLocation L, IdentifierInfo *Id, QualType T,
>>          StorageClass SC, ScopedDecl *PrevDecl)
>> -    : ValueDecl(DK, L, Id, T, PrevDecl), Init(0) { SClass = SC; }
>> +    : ValueDecl(DK, L, Id, T, PrevDecl), Init(0),
>> +      objcDeclQualifier(OBJC_TQ_None) { SClass = SC; }
>> private:
>>  Expr *Init;
>>  // FIXME: This can be packed into the bitfields in Decl.
>>  unsigned SClass : 3;
>> +  /// FIXME: Also can be paced into the bitfields in Decl.
>> +  /// in, inout, etc.
>> +  ObjcDeclQualifier objcDeclQualifier : 6;
>> +
>>  friend class StmtIteratorBase;
>> };
>>
>>
>> Modified: cfe/trunk/include/clang/AST/DeclObjC.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclObjC.h?rev=43534&r1=43533&r2=43534&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- cfe/trunk/include/clang/AST/DeclObjC.h (original)
>> +++ cfe/trunk/include/clang/AST/DeclObjC.h Tue Oct 30 19:12:35 2007
>> @@ -218,6 +218,9 @@
>>  /// @required/@optional
>>  ImplementationControl DeclImplementation : 2;
>>
>> +  /// in, inout, etc.
>> +  ObjcDeclQualifier objcDeclQualifier : 6;
>> +
>>  // A unigue name for this method.
>>  Selector SelName;
>>
>> @@ -241,11 +244,14 @@
>>                 Decl *PrevDecl = 0)
>>    : Decl(ObjcMethod, beginLoc),
>>      IsInstance(isInstance), DeclImplementation(impControl),
>> +      objcDeclQualifier(OBJC_TQ_None),
>>      SelName(SelInfo), MethodDeclType(T),
>>      ParamInfo(paramInfo), NumMethodParams(numParams),
>>      MethodAttrs(M), EndLoc(endLoc) {}
>>  virtual ~ObjcMethodDecl();
>>
>> +  ObjcDeclQualifier getObjcDeclQualifier() const { return  
>> objcDeclQualifier; }
>> +
>>  // Location information, modeled after the Stmt API.
>>  SourceLocation getLocStart() const { return getLocation(); }
>>  SourceLocation getLocEnd() const { return EndLoc; }
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list