summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDebugInfo.h
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2018-09-10 16:14:28 +0000
committerAdrian Prantl <aprantl@apple.com>2018-09-10 16:14:28 +0000
commit05a623eb874b68e1f58cbb8b7f3ef1d8d5e1a0ab (patch)
treedf94a0cadf03f78ae74deba2c9ab456283cc5275 /clang/lib/CodeGen/CGDebugInfo.h
parent5660bd460b0f8250be31ee470e669f57557130c9 (diff)
downloadbcm5719-llvm-05a623eb874b68e1f58cbb8b7f3ef1d8d5e1a0ab.tar.gz
bcm5719-llvm-05a623eb874b68e1f58cbb8b7f3ef1d8d5e1a0ab.zip
Remove all uses of DIFlagBlockByrefStruct
This patch removes the last reason why DIFlagBlockByrefStruct from Clang by directly implementing the drilling into the member type done in DwarfDebug::DbgVariable::getType() into the frontend. rdar://problem/31629055 Differential Revision: https://reviews.llvm.org/D51807 llvm-svn: 341842
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.h')
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h
index 95cba9d3ba7..8641c2d8969 100644
--- a/clang/lib/CodeGen/CGDebugInfo.h
+++ b/clang/lib/CodeGen/CGDebugInfo.h
@@ -491,9 +491,16 @@ private:
llvm::Optional<unsigned> ArgNo,
CGBuilderTy &Builder);
+ struct BlockByRefType {
+ /// The wrapper struct used inside the __block_literal struct.
+ llvm::DIType *BlockByRefWrapper;
+ /// The type as it appears in the source code.
+ llvm::DIType *WrappedType;
+ };
+
/// Build up structure info for the byref. See \a BuildByRefType.
- llvm::DIType *EmitTypeForVarWithBlocksAttr(const VarDecl *VD,
- uint64_t *OffSet);
+ BlockByRefType EmitTypeForVarWithBlocksAttr(const VarDecl *VD,
+ uint64_t *OffSet);
/// Get context info for the DeclContext of \p Decl.
llvm::DIScope *getDeclContextDescriptor(const Decl *D);
OpenPOWER on IntegriCloud