From: Devang Patel Date: Wed, 15 Apr 2009 21:51:44 +0000 (+0000) Subject: Set DebugInfo at the beginning of GenerateBlockFunction(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=963dfbde17a28bc88ee1647bc85fd8407bfc9555;p=clang Set DebugInfo at the beginning of GenerateBlockFunction(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69228 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp index f1e7420681..5047f06bd2 100644 --- a/lib/CodeGen/CGBlocks.cpp +++ b/lib/CodeGen/CGBlocks.cpp @@ -600,6 +600,11 @@ CodeGenFunction::GenerateBlockFunction(const BlockExpr *BExpr, uint64_t &Align, llvm::SmallVector &subBlockDeclRefDecls, bool &subBlockHasCopyDispose) { + + // Check if we should generate debug info for this block. + if (CGM.getDebugInfo()) + DebugInfo = CGM.getDebugInfo(); + // Arrange for local static and local extern declarations to appear // to be local to this function as well, as they are directly referenced // in a block. diff --git a/test/CodeGen/blocks-2.c b/test/CodeGen/blocks-2.c new file mode 100644 index 0000000000..5ee2a73a82 --- /dev/null +++ b/test/CodeGen/blocks-2.c @@ -0,0 +1,13 @@ +// RUN: clang-cc -g %s -emit-llvm -o %t -fblocks +// RUN: grep "func.start" %t | count 4 +// 1 declaration, 1 bar, 1 test_block_dbg and 1 for the block. + +static __inline__ __attribute__((always_inline)) int bar(int va, int vb) { return (va == vb); } + +int test_block_dbg() { + extern int g; + static int i = 1; + ^(int j){ i = bar(3,4); }(0); + return i + g; +} +