summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmLocalGenerator.cxx18
1 files changed, 9 insertions, 9 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index af4c950..81e37f6 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2209,7 +2209,7 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
}
const char* defaultStd
= this->Makefile->GetDefinition("CMAKE_" + lang + "_STANDARD_DEFAULT");
- if (defaultStd && !*defaultStd)
+ if (!defaultStd || !*defaultStd)
{
// This compiler has no notion of language standard levels.
return;
@@ -2276,15 +2276,15 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
std::find(stds.begin(), stds.end(), standard);
assert(stdIt != stds.end());
- std::vector<std::string>::const_iterator defaultStdIt;
- if (defaultStd)
+ std::vector<std::string>::const_iterator defaultStdIt =
+ std::find(stds.begin(), stds.end(), defaultStd);
+ if (defaultStdIt == stds.end())
{
- defaultStdIt = std::find(stds.begin(), stds.end(), defaultStd);
- assert(defaultStdIt != stds.end());
- }
- else
- {
- defaultStdIt = stds.end() - 1;
+ std::string e =
+ "CMAKE_" + lang + "_STANDARD_DEFAULT is set to invalid value '" +
+ std::string(defaultStd) + "'";
+ this->Makefile->IssueMessage(cmake::INTERNAL_ERROR, e);
+ return;
}
for ( ; stdIt <= defaultStdIt; ++stdIt)