Do not crash on unknown source language (#13323)

If a source file extension is not recognized as any language then
src.GetLanguage() may return NULL.  Check the result before
dereferencing in cmLocalGenerator::GetObjectFileNameWithoutTarget.
This commit is contained in:
Mariusz Plucinski 2012-06-20 08:02:00 -04:00 committed by Brad King
parent d17c58c853
commit 2c2fbaf0e5
1 changed files with 7 additions and 4 deletions

View File

@ -2764,10 +2764,13 @@ cmLocalGenerator
bool replaceExt = this->NeedBackwardsCompatibility(2, 4);
if(!replaceExt)
{
std::string repVar = "CMAKE_";
repVar += source.GetLanguage();
repVar += "_OUTPUT_EXTENSION_REPLACE";
replaceExt = this->Makefile->IsOn(repVar.c_str());
if(const char* lang = source.GetLanguage())
{
std::string repVar = "CMAKE_";
repVar += lang;
repVar += "_OUTPUT_EXTENSION_REPLACE";
replaceExt = this->Makefile->IsOn(repVar.c_str());
}
}
// Remove the source extension if it is to be replaced.