Improve unused warning logic

Only warn when changing the definition of an initialized variable.
This commit is contained in:
Ben Boeckel 2010-09-15 11:41:27 -04:00
parent e01e40cb87
commit e49a935c20
1 changed files with 4 additions and 4 deletions

View File

@ -1649,12 +1649,12 @@ void cmMakefile::AddDefinition(const char* name, const char* value)
#endif #endif
this->Internal->VarStack.top().Set(name, value); this->Internal->VarStack.top().Set(name, value);
this->Internal->VarInitStack.top().insert(name); if ((this->Internal->VarUsageStack.size() > 1) && this->VariableInitialized(name))
if (this->Internal->VarUsageStack.size() > 1)
{ {
this->CheckForUnused("changing definition", name); this->CheckForUnused("changing definition", name);
this->Internal->VarUsageStack.top().erase(name); this->Internal->VarUsageStack.top().erase(name);
} }
this->Internal->VarInitStack.top().insert(name);
#ifdef CMAKE_BUILD_WITH_CMAKE #ifdef CMAKE_BUILD_WITH_CMAKE
cmVariableWatch* vv = this->GetVariableWatch(); 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) void cmMakefile::AddDefinition(const char* name, bool value)
{ {
this->Internal->VarStack.top().Set(name, value? "ON" : "OFF"); this->Internal->VarStack.top().Set(name, value? "ON" : "OFF");
this->Internal->VarInitStack.top().insert(name); if ((this->Internal->VarUsageStack.size() > 1) && this->VariableInitialized(name))
if (this->Internal->VarUsageStack.size() > 1)
{ {
this->CheckForUnused("changing definition", name); this->CheckForUnused("changing definition", name);
this->Internal->VarUsageStack.top().erase(name); this->Internal->VarUsageStack.top().erase(name);
} }
this->Internal->VarInitStack.top().insert(name);
#ifdef CMAKE_BUILD_WITH_CMAKE #ifdef CMAKE_BUILD_WITH_CMAKE
cmVariableWatch* vv = this->GetVariableWatch(); cmVariableWatch* vv = this->GetVariableWatch();
if ( vv ) if ( vv )