[Lldb-commits] [PATCH] D42892: DWZ 02/11: Move the codebase to use: DWARFCompileUnit -> DWARFUnit
Jan Kratochvil via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sun Mar 18 12:14:12 PDT 2018
jankratochvil added inline comments.
================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.h:34
class DWARFUnit {
+ friend class DWARFCompileUnit;
+
----------------
clayborg wrote:
> DWARFCompileUnit inherits from this class. This isn't needed right?
It is needed now as `DWARFCompileUnit::GetFunctionAranges()` calls `m_dwo_symbol_file->GetCompileUnit()->DIEPtr();`:
```llvm-git/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp: In member function ‘const DWARFDebugAranges& DWARFCompileUnit::GetFunctionAranges()’:
llvm-git/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp:504:59: error: ‘const DWARFDebugInfoEntry* DWARFUnit::DIEPtr()’ is protected within this context
const DWARFDebugInfoEntry *dwo_die = dwo_cu->DIEPtr();
^
In file included from llvm-git/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h:13:0,
from llvm-git/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp:10:
llvm-git/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h:173:30: note: declared protected here
const DWARFDebugInfoEntry *DIEPtr();
^~~~~~
```
`DIEPtr()` cannot be even `protected`, it would need to be `public`. I do not like moving `DWARFCompileUnit::GetFunctionAranges()` implementation to `DWARFUnit` to access it as `private` as after such move it needs to access members by the `Data()` indirection and there is no need of `GetFunctionAranges()` for DWZ `DWARFPartialUnit` (as those units cannot contain code).
Going to check in the split now when it is approved, I can fix up the friend class upon request later, thanks.
https://reviews.llvm.org/D42892
More information about the lldb-commits
mailing list