[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