Lines Matching defs:layout

56 /// Externally provided layout. Typically used when the AST source, such
585 /// Size - The current size of the record layout.
588 /// Alignment - The current alignment of the record layout.
599 /// Whether the external AST source has provided a layout for this
604 /// externally-provided layout.
758 /// InitializeLayout - Initialize record layout for the given record decl.
761 /// FinishLayout - Finalize record layout. Adjust record size based on the
812 "Cannot layout class with dependent bases.");
1134 "Cannot layout class with dependent bases.");
1186 // Query the external layout to see if it provides an offset.
1477 // The struct-layout algorithm is dictated by the platform ABI,
1480 // in the System V generic ABI. The basic bitfield layout rule in
1490 // platform ABI's struct-layout algorithm, with the high-level goal
1491 // of duplicating MSVC's layout. For non-bitfields, this follows
1492 // the standard algorithm. The basic bitfield layout rule is to
1506 // e.g. ARM). In ms_struct layout, zero-width bitfields are
1657 // If we're using external layout, give the external layout a chance
1674 // Diagnose differences in layout due to padding or packing.
1791 // If MS bitfield layout is required, figure out what type is being
1805 // with the layout rules for MS structs. This isn't an issue in
1814 // need to be able to sidestep the ms_struct layout for these types.
1986 // we have an externally-supplied layout that also provides overall alignment.
2175 // layout if it is a POD type (in the sense of ISO C++
2179 // bitfield is not a POD for the purpose of layout. Similarly,
2180 // an array type is not a POD for the purpose of layout if the
2182 // layout.
2206 // This section contains an implementation of struct layout that is, up to the
2207 // included tests, compatible with cl.exe (2013). The layout produced is
2215 // * There is no explicit primary base for the purposes of layout. All bases
2223 // due to the two-pass layout scheme for non-virtual-bases.
2255 // layout of the so the leading base is not always the first one declared).
2284 // greater due to __declspec(align()) then a second layout phase occurs after
2285 // The locations of the vf and vb pointers are known. This layout phase
2289 // anything tries to read the vftbl. The second layout phase also treats
2308 void layout(const RecordDecl *RD);
2312 /// Initialized C++ layout, compute alignment and virtual alignment and
2355 /// The non-virtual size of the record layout.
2357 /// The data size of the record layout.
2359 /// The current alignment of the record layout.
2406 /// True if the external AST source provided a layout for this record.
2409 /// The layout provided by the external AST source. Only active if
2475 void MicrosoftRecordLayoutBuilder::layout(const RecordDecl *RD) {
2476 // For C record layout, zero-sized records always have size 4.
2535 // Try to respect the external layout if present.
2616 // If this is the first layout, check to see if it leads with a zero sized
2794 // layout.
2822 // regular fields by the offset only if not using external record layout.
2837 // If we're using an external layout, the fields offsets have already
3019 /// getASTRecordLayout - Get or compute information about the layout of the
3033 assert(D && "Cannot get layout of forward declarations!");
3034 assert(!D->isInvalidDecl() && "Cannot get layout of invalid decl!");
3035 assert(D->isCompleteDefinition() && "Cannot layout type before complete!");
3037 // Look up this layout, if already laid out, return what we have.
3059 Builder.layout(D);
3073 // FIXME: this should be stored in the record layout.
3188 // look up in the implementation layout.
3198 // implemented. This should be fixed to get the information from the layout
3208 assert(Index < RL->getFieldCount() && "Ivar is not inside record layout!");
3213 /// getObjCLayout - Get or compute information about the layout of the
3216 /// \param Impl - If given, also include the layout of the interface's
3227 // Look up this layout, if already laid out, return what we have.
3330 "Cannot layout class with dependent bases.");
3438 // layout-override testing code. There shouldn't be any external
3439 // uses of this format --- when LLDB overrides a layout, it sets up