summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/DIBuilder.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2014-12-23 19:11:47 +0000
committerAdrian Prantl <aprantl@apple.com>2014-12-23 19:11:47 +0000
commit48af2ef40feba3cccfd5cf951b7937c1f5f11947 (patch)
treeb2fe0482466b16d32509175fbb33e2ca1c0bd46b /llvm/lib/IR/DIBuilder.cpp
parentd38920891ed2a29bc8fed5f802e44106f1099fde (diff)
downloadbcm5719-llvm-48af2ef40feba3cccfd5cf951b7937c1f5f11947.tar.gz
bcm5719-llvm-48af2ef40feba3cccfd5cf951b7937c1f5f11947.zip
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. llvm-svn: 224780
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
-rw-r--r--llvm/lib/IR/DIBuilder.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp
index 1874d31e0a5..6485ca5a003 100644
--- a/llvm/lib/IR/DIBuilder.cpp
+++ b/llvm/lib/IR/DIBuilder.cpp
@@ -328,14 +328,15 @@ DIBuilder::createPointerType(DIType PointeeTy, uint64_t SizeInBits,
return DIDerivedType(MDNode::get(VMContext, Elts));
}
-DIDerivedType DIBuilder::createMemberPointerType(DIType PointeeTy,
- DIType Base) {
+DIDerivedType
+DIBuilder::createMemberPointerType(DIType PointeeTy, DIType Base,
+ uint64_t SizeInBits, uint64_t AlignInBits) {
// Pointer types are encoded in DIDerivedType format.
Metadata *Elts[] = {HeaderBuilder::get(dwarf::DW_TAG_ptr_to_member_type)
.concat(StringRef())
.concat(0) // Line
- .concat(0) // Size
- .concat(0) // Align
+ .concat(SizeInBits) // Size
+ .concat(AlignInBits) // Align
.concat(0) // Offset
.concat(0) // Flags
.get(VMContext),
OpenPOWER on IntegriCloud