diff options
author | Mike Stump <mrs@apple.com> | 2009-09-30 02:43:10 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-09-30 02:43:10 +0000 |
commit | 2e722b915c8903e2c3c02e0895f554d2702bb158 (patch) | |
tree | 6f287bd358b301d66a07bfd719632368f5dc5b60 /clang/lib/CodeGen/CGDebugInfo.h | |
parent | 882f4c11edfff236f5fd1c23f195182e1ffbf683 (diff) | |
download | bcm5719-llvm-2e722b915c8903e2c3c02e0895f554d2702bb158.tar.gz bcm5719-llvm-2e722b915c8903e2c3c02e0895f554d2702bb158.zip |
Improve debugging information for BlockDeclRefExpr. WIP. Given this
scheme, we can switch the previous scheme over to using this code
path. There's a bit of simplifications yet to do as well.
llvm-svn: 83138
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.h')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h index dc256003f61..17237ddfc65 100644 --- a/clang/lib/CodeGen/CGDebugInfo.h +++ b/clang/lib/CodeGen/CGDebugInfo.h @@ -15,6 +15,7 @@ #define CLANG_CODEGEN_CGDEBUGINFO_H #include "clang/AST/Type.h" +#include "clang/AST/Expr.h" #include "clang/Basic/SourceLocation.h" #include "llvm/ADT/DenseMap.h" #include "llvm/Analysis/DebugInfo.h" @@ -33,6 +34,7 @@ namespace clang { namespace CodeGen { class CodeGenModule; + class CodeGenFunction; /// CGDebugInfo - This class gathers all debug information during compilation /// and is responsible for emitting to llvm globals or pass directly to @@ -102,6 +104,13 @@ public: void EmitDeclareOfAutoVariable(const VarDecl *Decl, llvm::Value *AI, CGBuilderTy &Builder); + /// EmitDeclareOfBlockDeclRefVariable - Emit call to llvm.dbg.declare for an + /// imported variable declaration in a block. + void EmitDeclareOfBlockDeclRefVariable(const BlockDeclRefExpr *BDRE, + llvm::Value *AI, + CGBuilderTy &Builder, + CodeGenFunction *CGF); + /// EmitDeclareOfArgVariable - Emit call to llvm.dbg.declare for an argument /// variable declaration. void EmitDeclareOfArgVariable(const VarDecl *Decl, llvm::Value *AI, @@ -118,6 +127,9 @@ private: void EmitDeclare(const VarDecl *decl, unsigned Tag, llvm::Value *AI, CGBuilderTy &Builder); + /// EmitDeclare - Emit call to llvm.dbg.declare for a variable declaration. + void EmitDeclare(const BlockDeclRefExpr *BDRE, unsigned Tag, llvm::Value *AI, + CGBuilderTy &Builder, CodeGenFunction *CGF); /// getOrCreateCompileUnit - Get the compile unit from the cache or create a /// new one if necessary. |