sizeof(MCFragment) does not change, but some if its subclasses do, e.g.
on a 64-bit platform,
sizeof(MCEncodedFragment) decreases from 64 to 56,
sizeof(MCDataFragment) decreases from 224 to 216.
};
private:
- FragmentType Kind;
-
-protected:
- bool HasInstructions;
-
-private:
- /// The layout order of this fragment.
- unsigned LayoutOrder;
-
/// The data for the section this fragment is in.
MCSection *Parent;
/// The atom this fragment is in, as represented by its defining symbol.
const MCSymbol *Atom;
- /// \name Assembler Backend Data
- /// @{
- //
- // FIXME: This could all be kept private to the assembler implementation.
-
/// The offset of this fragment in its section. This is ~0 until
/// initialized.
uint64_t Offset;
- /// @}
+ /// The layout order of this fragment.
+ unsigned LayoutOrder;
+
+ FragmentType Kind;
protected:
+ bool HasInstructions;
+
MCFragment(FragmentType Kind, bool HasInstructions,
MCSection *Parent = nullptr);
MCFragment::MCFragment(FragmentType Kind, bool HasInstructions,
MCSection *Parent)
- : Kind(Kind), HasInstructions(HasInstructions), LayoutOrder(0),
- Parent(Parent), Atom(nullptr), Offset(~UINT64_C(0)) {
+ : Parent(Parent), Atom(nullptr), Offset(~UINT64_C(0)), LayoutOrder(0),
+ Kind(Kind), HasInstructions(HasInstructions) {
if (Parent && !isa<MCDummyFragment>(*this))
Parent->getFragmentList().push_back(this);
}