cmListFileBacktrace: Clarify call sites that only push a file path
This removes the last part of the `cmListFileBacktrace` interface that needs to know the type of data in its stack.
This commit is contained in:
parent
6e1be5dbef
commit
9123193758
@ -470,17 +470,6 @@ cmListFileBacktrace::cmListFileBacktrace(std::shared_ptr<Entry const> top)
|
||||
{
|
||||
}
|
||||
|
||||
cmListFileBacktrace cmListFileBacktrace::Push(std::string const& file) const
|
||||
{
|
||||
// We are entering a file-level scope but have not yet reached
|
||||
// any specific line or command invocation within it. This context
|
||||
// is useful to print when it is at the top but otherwise can be
|
||||
// skipped during call stack printing.
|
||||
cmListFileContext lfc;
|
||||
lfc.FilePath = file;
|
||||
return this->Push(lfc);
|
||||
}
|
||||
|
||||
cmListFileBacktrace cmListFileBacktrace::Push(
|
||||
cmListFileContext const& lfc) const
|
||||
{
|
||||
|
@ -128,6 +128,17 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
static cmListFileContext FromListFilePath(std::string const& filePath)
|
||||
{
|
||||
// We are entering a file-level scope but have not yet reached
|
||||
// any specific line or command invocation within it. This context
|
||||
// is useful to print when it is at the top but otherwise can be
|
||||
// skipped during call stack printing.
|
||||
cmListFileContext lfc;
|
||||
lfc.FilePath = filePath;
|
||||
return lfc;
|
||||
}
|
||||
|
||||
static cmListFileContext FromListFileFunction(
|
||||
cmListFileFunction const& lff, std::string const& fileName,
|
||||
cm::optional<std::string> deferId = {})
|
||||
@ -154,9 +165,6 @@ public:
|
||||
// Default-constructed backtrace is empty.
|
||||
cmListFileBacktrace() = default;
|
||||
|
||||
// Get a backtrace with the given file scope added to the top.
|
||||
cmListFileBacktrace Push(std::string const& file) const;
|
||||
|
||||
// Get a backtrace with the given call context added to the top.
|
||||
cmListFileBacktrace Push(cmListFileContext const& lfc) const;
|
||||
|
||||
|
@ -491,7 +491,8 @@ cmMakefile::IncludeScope::IncludeScope(cmMakefile* mf,
|
||||
, CheckCMP0011(false)
|
||||
, ReportError(true)
|
||||
{
|
||||
this->Makefile->Backtrace = this->Makefile->Backtrace.Push(filenametoread);
|
||||
this->Makefile->Backtrace = this->Makefile->Backtrace.Push(
|
||||
cmListFileContext::FromListFilePath(filenametoread));
|
||||
|
||||
this->Makefile->PushFunctionBlockerBarrier();
|
||||
|
||||
@ -624,7 +625,8 @@ public:
|
||||
: Makefile(mf)
|
||||
, ReportError(true)
|
||||
{
|
||||
this->Makefile->Backtrace = this->Makefile->Backtrace.Push(filenametoread);
|
||||
this->Makefile->Backtrace = this->Makefile->Backtrace.Push(
|
||||
cmListFileContext::FromListFilePath(filenametoread));
|
||||
|
||||
this->Makefile->StateSnapshot =
|
||||
this->Makefile->GetState()->CreateInlineListFileSnapshot(
|
||||
@ -1587,7 +1589,8 @@ void cmMakefile::Configure()
|
||||
// Add the bottom of all backtraces within this directory.
|
||||
// We will never pop this scope because it should be available
|
||||
// for messages during the generate step too.
|
||||
this->Backtrace = this->Backtrace.Push(currentStart);
|
||||
this->Backtrace =
|
||||
this->Backtrace.Push(cmListFileContext::FromListFilePath(currentStart));
|
||||
|
||||
BuildsystemFileScope scope(this);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user