mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-05 09:24:28 +00:00
DIBuilder: Similar to createPointerType, make createMemberPointerType take
a size and alignment. Several assertions in DwarfDebug rely on all variable types to report back a size, or to be derived from a type with a size. Tested in CFE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224780 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -172,8 +172,12 @@ namespace llvm {
|
|||||||
|
|
||||||
/// \brief Create debugging information entry for a pointer to member.
|
/// \brief Create debugging information entry for a pointer to member.
|
||||||
/// @param PointeeTy Type pointed to by this pointer.
|
/// @param PointeeTy Type pointed to by this pointer.
|
||||||
|
/// @param SizeInBits Size.
|
||||||
|
/// @param AlignInBits Alignment. (optional)
|
||||||
/// @param Class Type for which this pointer points to members of.
|
/// @param Class Type for which this pointer points to members of.
|
||||||
DIDerivedType createMemberPointerType(DIType PointeeTy, DIType Class);
|
DIDerivedType createMemberPointerType(DIType PointeeTy, DIType Class,
|
||||||
|
uint64_t SizeInBits,
|
||||||
|
uint64_t AlignInBits = 0);
|
||||||
|
|
||||||
/// createReferenceType - Create debugging information entry for a c++
|
/// createReferenceType - Create debugging information entry for a c++
|
||||||
/// style reference or rvalue reference type.
|
/// style reference or rvalue reference type.
|
||||||
|
@ -328,14 +328,15 @@ DIBuilder::createPointerType(DIType PointeeTy, uint64_t SizeInBits,
|
|||||||
return DIDerivedType(MDNode::get(VMContext, Elts));
|
return DIDerivedType(MDNode::get(VMContext, Elts));
|
||||||
}
|
}
|
||||||
|
|
||||||
DIDerivedType DIBuilder::createMemberPointerType(DIType PointeeTy,
|
DIDerivedType
|
||||||
DIType Base) {
|
DIBuilder::createMemberPointerType(DIType PointeeTy, DIType Base,
|
||||||
|
uint64_t SizeInBits, uint64_t AlignInBits) {
|
||||||
// Pointer types are encoded in DIDerivedType format.
|
// Pointer types are encoded in DIDerivedType format.
|
||||||
Metadata *Elts[] = {HeaderBuilder::get(dwarf::DW_TAG_ptr_to_member_type)
|
Metadata *Elts[] = {HeaderBuilder::get(dwarf::DW_TAG_ptr_to_member_type)
|
||||||
.concat(StringRef())
|
.concat(StringRef())
|
||||||
.concat(0) // Line
|
.concat(0) // Line
|
||||||
.concat(0) // Size
|
.concat(SizeInBits) // Size
|
||||||
.concat(0) // Align
|
.concat(AlignInBits) // Align
|
||||||
.concat(0) // Offset
|
.concat(0) // Offset
|
||||||
.concat(0) // Flags
|
.concat(0) // Flags
|
||||||
.get(VMContext),
|
.get(VMContext),
|
||||||
|
Reference in New Issue
Block a user