Home | History | Annotate | Download | only in AST

Lines Matching refs:Field

69   /// \brief Record field offsets in bits.
78 /// Get the offset of the given field. The external source must provide
82 "Field does not have an external offset");
145 "Field offset not at char boundary!");
181 /// CanPlaceFieldAtOffset - Return whether a field can be placed at the given
484 // field subobjects are subobjects of empty bases that can be placed at offset
485 // zero. Because of this, we only need to keep track of empty field
552 // field subobjects are subobjects of empty bases that can be placed at
553 // offset zero. Because of this, we only need to keep track of empty field
604 /// UnfilledBitsInLastUnit - If the last field laid out was a bitfield,
610 /// of the previous field if it was a bitfield.
613 /// MaxFieldAlignment - The maximum allowed field alignment. This is set by
749 /// \brief Retrieve the externally-supplied field offset for the given
750 /// field.
752 /// \param Field The field whose offset is being queried.
753 /// \param ComputedOffset The offset that we've computed for this field.
754 uint64_t updateExternalFieldOffset(const FieldDecl *Field,
969 // The maximum field alignment overrides base align.
1189 // The maximum field alignment overrides base align.
1242 // mac68k alignment supersedes maximum field alignment and attribute aligned,
1333 // structure, but at the next byte following the last field.
1350 // Layout each field, for now, just sequentially, respecting alignment. In
1424 // Place this field at the current location.
1478 // place a non-bitfield of the field's formal type. Usually this
1484 // A field alignment restriction (e.g. from #pragma pack) or
1486 // formal alignment of the field. For System V, this alters the
1492 // On System V, a packed field (e.g. from #pragma pack or
1503 // The field alignment for integer types is always the size.
1506 // If the previous field was not a bitfield, or was a bitfield
1519 // If the field is wider than its declared type, it follows
1535 // The alignment to round up to is the max of the field's natural
1541 // If that doesn't apply, just ignore the field alignment.
1547 // Remember the alignment we would have used if the field were not packed.
1550 // Ignore the field alignment if the field is packed unless it has zero-size.
1554 // But, if there's an 'aligned' attribute on the field, honor that.
1575 // compute the field offsets that we would have used if we weren't
1576 // adding any alignment padding or if the field weren't packed.
1730 // laid out and align the field to the width of that type.
1732 // Resolve all typedefs down to their base type and round up the field
1743 // The align if the field is not packed. This is to check if the attribute
1755 // The maximum field alignment overrides the aligned attribute.
1761 // Round up the current record size to the field's alignment boundary.
1771 // Record the fact that we're placing a field at this offset.
1774 assert(Allowed && "Externally-placed field cannot be placed here");
1778 // Check if we can place the field at this offset.
1780 // We couldn't place the field at the offset. Try again at a new offset.
1786 // Place this field at the current location.
1803 // Reserve space for this field.
1902 ItaniumRecordLayoutBuilder::updateExternalFieldOffset(const FieldDecl *Field,
1904 uint64_t ExternalFieldOffset = External.getExternalFieldOffset(Field);
1907 // The externally-supplied field offset is before the field offset we
1913 // Use the externally-supplied field offset.
1918 /// field padding diagnostic message.
1927 default: llvm_unreachable("Invalid tag kind for field padding diagnostic!");
2125 // * Virtual bases sometimes require a 'vtordisp' field that is laid out before
2148 // field, even if they are of the same type.
2155 // trails with a zero sized base or field (sharing of vfptrs can reorder the
2158 // will occur even if the last field is, e.g. an int. The padding added for
2173 // when used as a field or base, will not be aligned if #pragma pack is
2178 // * 2010 and back: If the last field
2187 // suffers from the "last field is a bitfield" bug in 2010 and results in
2188 // _every_ field getting padding put in front of it, potentially including the
2228 /// \brief Lays out a single zero-width bit-field in the record and handles
2236 /// \brief Gets the size and alignment of a field taking pragma pack and
2240 /// \brief Places a field at an offset in CharUnits.
2261 /// \brief The maximum allowed field alignment. This is set by #pragma pack.
2280 /// \brief The collection of field offsets.
2291 /// \brief True if the last field laid out was a bitfield and was not 0
2338 // Get the alignment of the field type's natural alignment, ignore any
2343 // Respect align attributes on the field.
2350 // Respect attributes applied to subobjects of the field.
2413 // checks the RequiredAlignment field and performs alignment if it isn't 0.
2417 // Compute the maximum field alignment.
2429 // Packed attribute forces max field alignment to be 1.
2563 for (const FieldDecl *Field : RD->fields())
2564 layoutField(Field);
2583 assert(FieldOffset >= Size && "field offset already allocated");
2645 // Round up the current record size to the field's alignment boundary.
2664 // Determine where the first field should be laid out after the vbptr.
2877 /// specified record (struct/union/class), which indicates its size and field
3185 const FieldDecl &Field = **I;
3191 if (auto RT = Field.getType()->getAs<RecordType>()) {
3193 Field.getName().data(),
3199 if (Field.isBitField()) {
3202 unsigned Width = Field.getBitWidthValue(C);
3207 OS << Field.getType().getAsString() << ' ' << Field << '\n';