[cfe-commits] r77351 - in /cfe/trunk: lib/CodeGen/CGCXX.cpp lib/CodeGen/CGExpr.cpp test/CodeGenCXX/constructor-init.cpp
Fariborz Jahanian
fjahanian at apple.com
Tue Jul 28 15:46:18 PDT 2009
On Jul 28, 2009, at 3:04 PM, Chris Lattner wrote:
> On Jul 28, 2009, at 11:54 AM, Fariborz Jahanian wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=77351&view=rev
>> Log:
>> More cleanup of data member access and then some.
>
> Ok
>
>> +++ cfe/trunk/lib/CodeGen/CGCXX.cpp Tue Jul 28 13:54:57 2009
>> @@ -168,16 +168,23 @@
>> getContext().getASTRecordLayout(ClassDecl);
>> llvm::Type *I8Ptr =
>> VMContext.getPointerTypeUnqual(llvm::Type::Int8Ty);
>> unsigned Idx = 0;
>> + bool DerivedToBaseConversion = false;
>> for (CXXRecordDecl::base_class_const_iterator i =
>> ClassDecl->bases_begin(),
>> e = ClassDecl->bases_end(); i != e; ++i, ++Idx) {
>> if (!i->isVirtual()) {
>> const CXXRecordDecl *Base =
>> cast<CXXRecordDecl>(i->getType()->getAsRecordType()-
>> >getDecl());
>> - if (Base == BaseClassDecl)
>> - break;
>> + if (Base == BaseClassDecl) {
>> + DerivedToBaseConversion = true;
>> + break;
>> + }
>> }
>> }
>
> Can you convert this loop to be a static function instead?
> Justification here:
> http://llvm.org/docs/CodingStandards.html#hl_predicateloops
This code will all likelihood change when Anders has the type layout
change done.
Base class offset calculation is based on the current layout and will
be replaced soon.
- fariborz
>
>
> Thanks,
>
> -Chris
>
More information about the cfe-commits
mailing list