mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141729 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -851,6 +851,18 @@ DINameSpace DIBuilder::createNameSpace(DIDescriptor Scope, StringRef Name,
|
||||
return DINameSpace(MDNode::get(VMContext, Elts));
|
||||
}
|
||||
|
||||
/// createLexicalBlockFile - This creates a new MDNode that encapsulates
|
||||
/// an existing scope with a new filename.
|
||||
DILexicalBlockFile DIBuilder::createLexicalBlockFile(DIDescriptor Scope,
|
||||
DIFile File) {
|
||||
Value *Elts[] = {
|
||||
GetTagConstant(VMContext, dwarf::DW_TAG_lexical_block),
|
||||
Scope,
|
||||
File
|
||||
};
|
||||
return DILexicalBlockFile(MDNode::get(VMContext, Elts));
|
||||
}
|
||||
|
||||
DILexicalBlock DIBuilder::createLexicalBlock(DIDescriptor Scope, DIFile File,
|
||||
unsigned Line, unsigned Col) {
|
||||
// Defeat MDNode uniqing for lexical blocks by using unique id.
|
||||
|
Reference in New Issue
Block a user