diff options
| author | Eric Christopher <echristo@apple.com> | 2011-10-11 22:59:11 +0000 |
|---|---|---|
| committer | Eric Christopher <echristo@apple.com> | 2011-10-11 22:59:11 +0000 |
| commit | 6647b830872363979f7e946cb5d7642b4a95d3d8 (patch) | |
| tree | 9c0f59f80b7b1fbd5c5be57748ec9b2d2ac95455 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
| parent | 57d16927504a90f2ae7f8781134190aba4eb29c2 (diff) | |
| download | bcm5719-llvm-6647b830872363979f7e946cb5d7642b4a95d3d8.tar.gz bcm5719-llvm-6647b830872363979f7e946cb5d7642b4a95d3d8.zip | |
Add a new wrapper node for a DILexicalBlock that encapsulates it and a
file. Since it should only be used when necessary propagate it through
the backend code generation and tweak testcases accordingly.
This helps with code like in clang's test/CodeGen/debug-info-line.c where
we have multiple #line directives within a single lexical block and want
to generate only a single block that contains each file change.
Part of rdar://10246360
llvm-svn: 141729
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index d7c702a5fc4..1b7e370fca0 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1371,6 +1371,10 @@ void DwarfDebug::recordSourceLine(unsigned Line, unsigned Col, const MDNode *S, DISubprogram SP(S); Fn = SP.getFilename(); Dir = SP.getDirectory(); + } else if (Scope.isLexicalBlockFile()) { + DILexicalBlockFile DBF(S); + Fn = DBF.getFilename(); + Dir = DBF.getDirectory(); } else if (Scope.isLexicalBlock()) { DILexicalBlock DB(S); Fn = DB.getFilename(); |

