[cfe-commits] r46524 - in /cfe/trunk: AST/Stmt.cpp AST/StmtSerialization.cpp Parse/ParseObjc.cpp Sema/Sema.h Sema/SemaStmt.cpp include/clang/AST/Stmt.h include/clang/Parse/Action.h

Fariborz Jahanian fjahanian at apple.com
Tue Jan 29 13:38:39 PST 2008


On Jan 29, 2008, at 1:24 PM, Ted Kremenek wrote:

>
> On Jan 29, 2008, at 11:14 AM, Fariborz Jahanian wrote:
>
>> Modified: cfe/trunk/AST/StmtSerialization.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/AST/StmtSerialization.cpp?rev=46524&r1=46523&r2=46524&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- cfe/trunk/AST/StmtSerialization.cpp (original)
>> +++ cfe/trunk/AST/StmtSerialization.cpp Tue Jan 29 13:14:59 2008
>> @@ -893,6 +893,20 @@
>>   Stmt* Throw = D.ReadOwnedPtr<Stmt>();
>>   return new ObjCAtThrowStmt(L,Throw);
>> }
>> +
>> +void ObjCAtSynchronizedStmt::EmitImpl(Serializer& S) const {
>> +  S.Emit(AtSynchronizedLoc);
>> +  S.EmitOwnedPtr(SynchExpr);
>> +  S.EmitOwnedPtr(SynchBody);
>> +}
>> +
>> +ObjCAtSynchronizedStmt*  
>> ObjCAtSynchronizedStmt::CreateImpl(Deserializer& D) {
>> +  SourceLocation L = SourceLocation::ReadVal(D);
>> +  Expr *syncExpr = D.ReadOwnedPtr<Expr>();
>> +  Stmt *synchBody = D.ReadOwnedPtr<Stmt>();
>> +  ObjCAtSynchronizedStmt* stmt = new  
>> ObjCAtSynchronizedStmt(L,syncExpr,synchBody);
>> +  return stmt;
>> +}
>>
>> void ObjCAtTryStmt::EmitImpl(Serializer& S) const {
>>   S.Emit(AtTryLoc);
>
> Hi Fariborz,
>
> Thanks for putting in the serialization code as more Objective-C  
> features are implemented in clang.  I have a few small comments:
>
> 1) Please keep the serialization methods ordered by class name  
> (roughly alphabetically, with Objective-C specific classes at the  
> end).  That way it is easy to tell what ASTs have serialization  
> implemented.
>
> 2) Try and use BatchEmitOwnedPtrs/BatchReadOwnedPtrs instead of  
> emitting multiple owned pointers separately.  It results in a more  
> efficient encoding on disk.  There are examples of this throughout  
> StmtSerialization.cpp.
>
> 3) Don't forget to update the switch statement (in Stmt::Create())  
> at the top of the file to do the dispatch during Stmt  
> deserialization (something has to call the XXXCreateImpl() methods).
>
> There is nothing for you to do now; I have already made these  
> changes in r46529; it's just something I thought I would point out  
> when/if you implement the serialization of other Objective C  
> constructs.
>

Thanks for the pointers. I just did enough to get clang built.

- Fariborz

> Thanks!
>
> Ted

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20080129/4344a3c0/attachment.html>


More information about the cfe-commits mailing list