Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Field

38 ///   llvm::Type with correct size.  We choose a field via a specific heuristic
54 /// fields. The existing asserts suggest that LLVM assumes that *every* field
80 enum InfoKind { VFPtr, VBPtr, Field, Base, VBase, Scissor } Kind;
100 return MemberInfo(Offset, MemberInfo::Field, Data);
104 /// units of the field's formal type and only combines adjacent
133 /// \brief Gets the storage type for a field decl and handles storage
175 void accumulateBitFields(RecordDecl::field_iterator Field,
248 // used by another field or base. The clipping process uses the capstone
292 // storage type isn't necessary, the first (non-0-length-bitfield) field's
295 for (const auto *Field : D->fields()) {
296 if (Field->isBitField()) {
298 if (Field->getBitWidthValue(Context) == 0)
300 llvm::Type *FieldType = getStorageType(Field);
303 setBitFieldInfo(Field, CharUnits::Zero(), FieldType);
305 Fields[Field->getCanonicalDecl()] = 0;
306 llvm::Type *FieldType = getStorageType(Field);
314 SeenNamedMember = Field->getIdentifier();
317 dyn_cast_or_null<RecordDecl>(Field->getType()->getAsTagDecl()))
319 if (SeenNamedMember && !isZeroInitializable(Field)) {
350 for (RecordDecl::field_iterator Field = D->field_begin(),
352 Field != FieldEnd;)
353 if (Field
354 RecordDecl::field_iterator Start = Field;
356 for (++Field; Field != FieldEnd && Field->isBitField(); ++Field);
357 accumulateBitFields(Start, Field);
360 bitsToCharUnits(getFieldBitOffset(*Field)), MemberInfo::Field,
361 getStorageType(*Field), *Field));
362 ++Field;
367 CGRecordLowering::accumulateBitFields(RecordDecl::field_iterator Field,
380 for (; Field != FieldEnd; ++Field) {
381 uint64_t BitOffset = getFieldBitOffset(*Field);
383 if (Field->getBitWidthValue(Context) == 0) {
387 llvm::Type *Type = Types.ConvertTypeForMem(Field->getType());
391 Run = Field;
402 MemberInfo::Field, nullptr, *Field));
410 if (Field == FieldEnd)
413 if (Field->getBitWidthValue(Context) != 0) {
414 Run = Field;
415 StartBitOffset = getFieldBitOffset(*Field);
416 Tail = StartBitOffset + Field->getBitWidthValue(Context);
418 ++Field;
422 if (Field != FieldEnd && Field->getBitWidthValue(Context) != 0 &&
423 Tail == getFieldBitOffset(*Field)) {
424 Tail += Field->getBitWidthValue(Context);
425 ++Field;
428 // We've hit a break-point in the run and need to emit a storage field.
434 for (; Run != Field; ++Run)
436 MemberInfo::Field, nullptr, *Run));
531 if (Member->Kind == MemberInfo::Field) {
556 assert(Prior->Kind == MemberInfo::Field && !Prior->FD &&
633 if (Member->Kind == MemberInfo::Field) {
636 // A field without storage must be a bitfield.
662 // We have a wide bit-field. The extra bits are only used for padding, so
720 // Add all the field numbers.
754 // Verify that the LLVM and AST field offsets agree.
769 "Invalid field offset!");
823 // Print bit-field infos in declaration order.