From e49a935c20550482e9f92ceb05d1f2a0bc519c91 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 15 Sep 2010 11:41:27 -0400 Subject: [PATCH] Improve unused warning logic Only warn when changing the definition of an initialized variable. --- Source/cmMakefile.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 85a0ccc90..9d5c59e65 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -1649,12 +1649,12 @@ void cmMakefile::AddDefinition(const char* name, const char* value) #endif this->Internal->VarStack.top().Set(name, value); - this->Internal->VarInitStack.top().insert(name); - if (this->Internal->VarUsageStack.size() > 1) + if ((this->Internal->VarUsageStack.size() > 1) && this->VariableInitialized(name)) { this->CheckForUnused("changing definition", name); this->Internal->VarUsageStack.top().erase(name); } + this->Internal->VarInitStack.top().insert(name); #ifdef CMAKE_BUILD_WITH_CMAKE cmVariableWatch* vv = this->GetVariableWatch(); @@ -1719,12 +1719,12 @@ void cmMakefile::AddCacheDefinition(const char* name, const char* value, void cmMakefile::AddDefinition(const char* name, bool value) { this->Internal->VarStack.top().Set(name, value? "ON" : "OFF"); - this->Internal->VarInitStack.top().insert(name); - if (this->Internal->VarUsageStack.size() > 1) + if ((this->Internal->VarUsageStack.size() > 1) && this->VariableInitialized(name)) { this->CheckForUnused("changing definition", name); this->Internal->VarUsageStack.top().erase(name); } + this->Internal->VarInitStack.top().insert(name); #ifdef CMAKE_BUILD_WITH_CMAKE cmVariableWatch* vv = this->GetVariableWatch(); if ( vv )