summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixup object layout when we have a primary base (it goes first). Start ↵Mike Stump2009-08-061-7/+11
| | | | | | | | preping for virtual base layout. llvm-svn: 78265
* Calculate the primary base class better and use that when laying downMike Stump2009-08-051-8/+112
| | | | | | the vtable. Still a work in progress. llvm-svn: 78252
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-311-1/+1
| | | | llvm-svn: 77699
* Update based upon comments. Explain why we have an assert.Mike Stump2009-07-301-2/+2
| | | | llvm-svn: 77612
* We'll also need a vtable pointer if we have virtual bases.Mike Stump2009-07-301-1/+1
| | | | llvm-svn: 77610
* Add ability to layout the vtable pointer in trivial cases. I noticedMike Stump2009-07-301-6/+20
| | | | | | | | that we would silently do bad things with virtual bases in the layout code, so, we just turn them off. When people do better things with them, we can turn them back on. llvm-svn: 77556
* Change uses of:Ted Kremenek2009-07-291-2/+2
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* No longer need to keep base class offsets in the offsetFariborz Jahanian2009-07-291-3/+0
| | | | | | table as it has its own place now. llvm-svn: 77491
* Add a field for C++ specific data to ASTRecordLayout. Use it to store the ↵Anders Carlsson2009-07-281-16/+31
| | | | | | non-virtual size and alignment + base offsets. llvm-svn: 77352
* ir-gen for non-virtual base class initializationFariborz Jahanian2009-07-251-0/+3
| | | | | | in constructors. llvm-svn: 77087
* Handle layout of non-virtual base classes.Anders Carlsson2009-07-191-4/+60
| | | | llvm-svn: 76348
* Refactor field layout into a separate function.Anders Carlsson2009-07-181-5/+9
| | | | llvm-svn: 76343
* Rename NextOffset to DataSize, which better matches the Itanium C++ ABIAnders Carlsson2009-07-181-1/+1
| | | | llvm-svn: 76339
* More layout builder work.Anders Carlsson2009-07-181-0/+46
| | | | llvm-svn: 76333
* Add a new ASTRecordLayoutBuilder class. Not used yet.Anders Carlsson2009-07-181-0/+162
llvm-svn: 76330
OpenPOWER on IntegriCloud