From c6e7fabc0f3563a258b8b3e10757e1916d680db0 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 22 Sep 2010 12:40:43 -0400 Subject: Factor out the checks for unused variables --- Source/cmMakefile.cxx | 26 +++++++++++++++++--------- Source/cmMakefile.h | 2 ++ 2 files changed, 19 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 usage = this->Internal->VarUsageStack.top(); - std::set::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::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& locals = defs.LocalKeys(); + std::set::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); diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 9d9606d..240a9cf 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -61,6 +61,8 @@ public: unsigned int GetCacheMajorVersion(); unsigned int GetCacheMinorVersion(); + /* Check for unused variables in this scope */ + void CheckForUnusedVariables() const; /* Mark a variable as used */ void MarkVariableAsUsed(const char* var); /* return true if a variable has been initialized */ -- cgit v0.12