diff options
author | Pavel Labath <pavel@labath.sk> | 2019-11-28 16:22:44 +0100 |
---|---|---|
committer | Pavel Labath <pavel@labath.sk> | 2019-11-29 11:44:45 +0100 |
commit | 38870af8594726edf32aa0fd8fd9e8916df333af (patch) | |
tree | 27bb38c3c832da4ca89ffa31688c1d1056c722bb /lldb/source/Core/Module.cpp | |
parent | e478385e7708d0bcef43559651e6d62e387a507a (diff) | |
download | bcm5719-llvm-38870af8594726edf32aa0fd8fd9e8916df333af.tar.gz bcm5719-llvm-38870af8594726edf32aa0fd8fd9e8916df333af.zip |
[lldb] Remove FileSpec->CompileUnit inheritance
Summary:
CompileUnit is a complicated class. Having it be implicitly convertible
to a FileSpec makes reasoning about it even harder.
This patch replaces the inheritance by a simple member and an accessor
function. This avoid the need for casting in places where one needed to
force a CompileUnit to be treated as a FileSpec, and does not add much
verbosity elsewhere.
It also fixes a bug where we were wrongly comparing CompileUnit& and a
CompileUnit*, which compiled due to a combination of this inheritance
and the FileSpec*->FileSpec implicit constructor.
Reviewers: teemperor, JDevlieghere, jdoerfert
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D70827
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r-- | lldb/source/Core/Module.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index a14bd3d370a..360c8c13454 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -617,7 +617,8 @@ void Module::FindCompileUnits(const FileSpec &path, for (size_t i = 0; i < num_compile_units; ++i) { sc.comp_unit = GetCompileUnitAtIndex(i).get(); if (sc.comp_unit) { - if (FileSpec::Equal(*sc.comp_unit, path, compare_directory)) + if (FileSpec::Equal(sc.comp_unit->GetPrimaryFile(), path, + compare_directory)) sc_list.Append(sc); } } |