summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Baby steps towards fixing PR5589. If a class needs a vtable pointer, add one.Anders Carlsson2009-12-161-0/+16
| | | | llvm-svn: 91545
* No need to add tail padding if the resulting LLVM struct type will have the ↵Anders Carlsson2009-12-081-2/+8
| | | | | | same size as the final record size. llvm-svn: 90820
* Have ASTRecordLayout keep track of the key function, in preparation of ↵Anders Carlsson2009-11-301-29/+1
| | | | | | fixing a synthetic ctor/dtor bug. llvm-svn: 90168
* Fixup key function calculations.Mike Stump2009-11-201-6/+2
| | | | llvm-svn: 89412
* This doesn't work yet.Mike Stump2009-11-191-0/+5
| | | | llvm-svn: 89307
* Prevent a code gen. crash on empty unions - pr5408.Fariborz Jahanian2009-11-061-1/+5
| | | | llvm-svn: 86287
* Store the key function of a record decl inside CGRecordLayout.Anders Carlsson2009-10-121-1/+28
| | | | llvm-svn: 83900
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-61/+61
| | | | llvm-svn: 81346
* If the alignment of the chosen field in a union is greater than the ↵Anders Carlsson2009-09-031-1/+8
| | | | | | alignment of the union, we need to use a packed LLVM struct. Fixes <rdar://problem/7184250>. llvm-svn: 80964
* Packed unions should be packed. Fixes an assert Daniel reported.Anders Carlsson2009-09-021-2/+1
| | | | llvm-svn: 80808
* More work towards zero-initializing structs that contain member pointers in ↵Anders Carlsson2009-08-231-1/+20
| | | | | | constant expressions. llvm-svn: 79805
* Remove the PaddingFields member from CGRecordLayout, it wasn't used anyway.Anders Carlsson2009-08-231-1/+1
| | | | llvm-svn: 79799
* Update for LLVM API change.Owen Anderson2009-08-131-1/+1
| | | | llvm-svn: 78946
* Take #pragma pack into account when laying out structs. Fixes ↵Anders Carlsson2009-08-081-1/+19
| | | | | | rdar://problem/7095436. llvm-svn: 78490
* Introduce a new PragmaPack attribute, and use it for #pragma pack. The ↵Anders Carlsson2009-08-081-11/+3
| | | | | | | | PackedAttr now only represents __attribute__((packed)). This is necessary because #pragma pack and __attribute__((packed)) have different semantics. No functionality change yet, but this lays the groundwork for fixing a record layout bug. llvm-svn: 78483
* Assert that the LLVM type has the same size as the RecordDecl size.Anders Carlsson2009-08-081-0/+3
| | | | llvm-svn: 78481
* Update for LLVM API change.Owen Anderson2009-08-051-1/+2
| | | | llvm-svn: 78259
* Simplify alignment handling in the record builder.Anders Carlsson2009-08-041-12/+18
| | | | llvm-svn: 78069
* 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
* More CGRecordLayoutBuilder cleanup.Anders Carlsson2009-07-281-18/+8
| | | | llvm-svn: 77335
* Some minor changes toward support of dataFariborz Jahanian2009-07-271-0/+4
| | | | | | member access in the presense of non-virtual bases. llvm-svn: 77246
* Enable the new struct type builder now that the constant struct builder ↵Anders Carlsson2009-07-271-3/+0
| | | | | | works. (The old code will still be there until we know that everything works well. llvm-svn: 77190
* Fix a tail padding bug in the record layout builder code. The bug was found ↵Anders Carlsson2009-07-271-6/+15
| | | | | | by an existing test. llvm-svn: 77189
* Check in a half finished new constant struct builder (Obviously not used yet).Anders Carlsson2009-07-241-2/+2
| | | | llvm-svn: 76969
* Get rid of the size parameter to AppendField. No functionality change.Anders Carlsson2009-07-241-7/+6
| | | | llvm-svn: 76931
* Don't just store the field/bit field info one field, do it for all fields in ↵Anders Carlsson2009-07-231-12/+6
| | | | | | the union. llvm-svn: 76907
* Fix another thinko.Anders Carlsson2009-07-231-2/+2
| | | | llvm-svn: 76903
* Correct a thinko in bitfield layout code. Fixes PR4611.Anders Carlsson2009-07-231-4/+2
| | | | llvm-svn: 76898
* We don't need to keep track of the packed alignment, just whether the struct ↵Anders Carlsson2009-07-231-15/+10
| | | | | | is packed or not. Fixes PR4610. llvm-svn: 76884
* Move the LLVM field number for bit fields into the BitFieldInfo structure, ↵Anders Carlsson2009-07-231-6/+6
| | | | | | since it's meaning is completely different than for non-bit fields. llvm-svn: 76882
* Set field info for unions.Anders Carlsson2009-07-231-1/+11
| | | | llvm-svn: 76856
* Handle zero width bit fields in unions correctly (by ignoring them).Anders Carlsson2009-07-231-0/+9
| | | | llvm-svn: 76847
* Implement union layout support.Anders Carlsson2009-07-231-5/+45
| | | | llvm-svn: 76846
* Check in CGRecordLayoutBuilder which is a reimplementation of the record ↵Anders Carlsson2009-07-231-0/+272
layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :) llvm-svn: 76845
OpenPOWER on IntegriCloud