diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-04-28 22:25:46 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-04-28 22:25:46 +0000 |
commit | fed4f399d3a9b8381d9d32e7aa928855b11d7485 (patch) | |
tree | 6b842659a0d73b8c897febc016f92df12d4304b8 /llvm/lib/IR/DIBuilder.cpp | |
parent | c20ccd2c0209fdaae7f7efe066c4b59b4ca46842 (diff) | |
download | bcm5719-llvm-fed4f399d3a9b8381d9d32e7aa928855b11d7485.tar.gz bcm5719-llvm-fed4f399d3a9b8381d9d32e7aa928855b11d7485.zip |
Remove line and file from DINamespace.
Fixes the issue highlighted in
http://lists.llvm.org/pipermail/cfe-dev/2014-June/037500.html.
The DW_AT_decl_file and DW_AT_decl_line attributes on namespaces can
prevent LLVM from uniquing types that are in the same namespace. They
also don't carry any meaningful information.
rdar://problem/17484998
Differential Revision: https://reviews.llvm.org/D32648
llvm-svn: 301706
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
-rw-r--r-- | llvm/lib/IR/DIBuilder.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp index 24f75e8b3a4..7e6f9a7804b 100644 --- a/llvm/lib/IR/DIBuilder.cpp +++ b/llvm/lib/IR/DIBuilder.cpp @@ -728,10 +728,15 @@ DISubprogram *DIBuilder::createMethod( } DINamespace *DIBuilder::createNameSpace(DIScope *Scope, StringRef Name, - DIFile *File, unsigned LineNo, bool ExportSymbols) { - return DINamespace::get(VMContext, getNonCompileUnitScope(Scope), File, Name, - LineNo, ExportSymbols); + + // It is okay to *not* make anonymous top-level namespaces distinct, because + // all nodes that have an anonymous namespace as their parent scope are + // guaranteed to be unique and/or are linked to their containing + // DICompileUnit. This decision is an explicit tradeoff of link time versus + // memory usage versus code simplicity and may get revisited in the future. + return DINamespace::get(VMContext, getNonCompileUnitScope(Scope), Name, + ExportSymbols); } DIModule *DIBuilder::createModule(DIScope *Scope, StringRef Name, |