diff options
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index a9faa6b..5aa643c 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -178,15 +178,9 @@ bool cmMakefile::NeedCacheCompatibility(int major, int minor) cmMakefile::~cmMakefile() { - std::set<cmStdString> usage = this->Internal->VarUsageStack.top(); - std::set<cmStdString>::const_iterator it = usage.begin(); - for (; it != usage.end(); ++it) - { - if (!this->VariableUsed(it->c_str())) - { - this->CheckForUnused("out of scope", it->c_str()); - } - } + // Check for unused variables + this->CheckForUnusedVariables(); + for(std::vector<cmInstallGenerator*>::iterator i = this->InstallGenerators.begin(); i != this->InstallGenerators.end(); ++i) @@ -713,6 +707,9 @@ bool cmMakefile::ReadListFile(const char* filename_in, // pop the listfile off the stack this->ListFileStack.pop_back(); + // Check for unused variables + this->CheckForUnusedVariables(); + return true; } @@ -1751,6 +1748,17 @@ void cmMakefile::AddDefinition(const char* name, bool value) #endif } +void cmMakefile::CheckForUnusedVariables() const +{ + const cmDefinitions& defs = this->Internal->VarStack.top(); + const std::set<cmStdString>& locals = defs.LocalKeys(); + std::set<cmStdString>::const_iterator it = locals.begin(); + for (; it != locals.end(); ++it) + { + this->CheckForUnused("out of scope", it->c_str()); + } +} + void cmMakefile::MarkVariableAsUsed(const char* var) { this->Internal->VarUsageStack.top().insert(var); |