diff options
author | Adrian Prantl <aprantl@apple.com> | 2018-09-10 16:14:28 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2018-09-10 16:14:28 +0000 |
commit | 05a623eb874b68e1f58cbb8b7f3ef1d8d5e1a0ab (patch) | |
tree | df94a0cadf03f78ae74deba2c9ab456283cc5275 /clang/lib/CodeGen/CGDebugInfo.h | |
parent | 5660bd460b0f8250be31ee470e669f57557130c9 (diff) | |
download | bcm5719-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.h | 11 |
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); |