ENH: Enforce logical blocks in functions/macros

This teaches function() and macro() to enforce matching logical blocks
inside the recorded bodies.  This makes the error message more specific.
This commit is contained in:
Brad King
2009-01-21 09:49:31 -05:00
parent 1dcc5b4558
commit 919fdb7f27
2 changed files with 6 additions and 0 deletions

View File

@@ -104,6 +104,7 @@ bool cmFunctionHelperCommand::InvokeInitialPass
}
// we push a scope on the makefile
cmMakefile::LexicalPushPop lexScope(this->Makefile);
cmMakefile::ScopePushPop varScope(this->Makefile);
static_cast<void>(varScope);
@@ -163,6 +164,7 @@ bool cmFunctionHelperCommand::InvokeInitialPass
{
// The error message should have already included the call stack
// so we do not need to report an error here.
lexScope.Quiet();
inStatus.SetNestedError(true);
return false;
}