Merge topic 'fix-compiler-warnings'

737534c Remove references to ancient and removed parts of the code.
21e8a08 Resolve ambiguity warning regarding use of && and ||.
5f6432f Resolve warnings about shadowing parameters and local variables.
9f16d42 Resolve warnings about used enum values in switch blocks.
bd8bdb6 Resolve warnings about unused variables.
This commit is contained in:
Brad King 2012-11-13 14:31:45 -05:00 committed by CMake Topic Stage
commit 9d10ae5e52
11 changed files with 28 additions and 77 deletions

View File

@ -200,7 +200,6 @@ void cmGlobalVisualStudio6Generator
tt != orderedProjectTargets.end(); ++tt) tt != orderedProjectTargets.end(); ++tt)
{ {
cmTarget* target = *tt; cmTarget* target = *tt;
cmMakefile* mf = target->GetMakefile();
// Write the project into the DSW file // Write the project into the DSW file
const char* expath = target->GetProperty("EXTERNAL_MSPROJECT"); const char* expath = target->GetProperty("EXTERNAL_MSPROJECT");
if(expath) if(expath)

View File

@ -204,7 +204,6 @@ void cmGlobalVisualStudio8Generator::AddCheckTarget()
// overwritten by the CreateVCProjBuildRule. // overwritten by the CreateVCProjBuildRule.
// (this could be avoided with per-target source files) // (this could be avoided with per-target source files)
const char* no_main_dependency = 0; const char* no_main_dependency = 0;
const char* no_working_directory = 0;
if(cmSourceFile* file = if(cmSourceFile* file =
mf->AddCustomCommandToOutput( mf->AddCustomCommandToOutput(
stamps, listFiles, stamps, listFiles,

View File

@ -75,7 +75,6 @@ void cmGlobalVisualStudioGenerator::Generate()
#endif #endif
// Now make all targets depend on the ALL_BUILD target // Now make all targets depend on the ALL_BUILD target
cmTargets targets;
for(std::vector<cmLocalGenerator*>::iterator i = gen.begin(); for(std::vector<cmLocalGenerator*>::iterator i = gen.begin();
i != gen.end(); ++i) i != gen.end(); ++i)
{ {

View File

@ -326,18 +326,18 @@ void cmLocalVisualStudio6Generator::WriteDSPFile(std::ostream& fout,
{ {
cmSystemTools::ReplaceString(source, "$(IntDir)/", ""); cmSystemTools::ReplaceString(source, "$(IntDir)/", "");
#if defined(_WIN32) || defined(__CYGWIN__) #if defined(_WIN32) || defined(__CYGWIN__)
std::ofstream fout(source.c_str(), std::ofstream sourceFout(source.c_str(),
std::ios::binary | std::ios::out std::ios::binary | std::ios::out
| std::ios::trunc); | std::ios::trunc);
#else #else
std::ofstream fout(source.c_str(), std::ofstream sourceFout(source.c_str(),
std::ios::out | std::ios::trunc); std::ios::out | std::ios::trunc);
#endif #endif
if(fout) if(sourceFout)
{ {
fout.write("# generated from CMake",22); sourceFout.write("# generated from CMake",22);
fout.flush(); sourceFout.flush();
fout.close(); sourceFout.close();
} }
} }
} }
@ -710,6 +710,8 @@ void cmLocalVisualStudio6Generator::SetBuildType(BuildType b,
switch(b) switch(b)
{ {
case WIN32_EXECUTABLE:
break;
case STATIC_LIBRARY: case STATIC_LIBRARY:
this->DSPHeaderTemplate = root; this->DSPHeaderTemplate = root;
this->DSPHeaderTemplate += "/staticLibHeader.dsptemplate"; this->DSPHeaderTemplate += "/staticLibHeader.dsptemplate";

View File

@ -914,12 +914,12 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
// for FAT32 file systems, which can cause an empty manifest // for FAT32 file systems, which can cause an empty manifest
// to be embedded into the resulting executable. See CMake // to be embedded into the resulting executable. See CMake
// bug #2617. // bug #2617.
const char* tool = "VCManifestTool"; const char* manifestTool = "VCManifestTool";
if(this->FortranProject) if(this->FortranProject)
{ {
tool = "VFManifestTool"; manifestTool = "VFManifestTool";
} }
fout << "\t\t\t<Tool\n\t\t\t\tName=\"" << tool << "\"\n" fout << "\t\t\t<Tool\n\t\t\t\tName=\"" << manifestTool << "\"\n"
<< "\t\t\t\tUseFAT32Workaround=\"true\"\n" << "\t\t\t\tUseFAT32Workaround=\"true\"\n"
<< "\t\t\t/>\n"; << "\t\t\t/>\n";
} }
@ -1003,6 +1003,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
} }
switch(target.GetType()) switch(target.GetType())
{ {
case cmTarget::UNKNOWN_LIBRARY:
break;
case cmTarget::OBJECT_LIBRARY: case cmTarget::OBJECT_LIBRARY:
{ {
std::string libpath = this->GetTargetDirectory(target); std::string libpath = this->GetTargetDirectory(target);

View File

@ -84,7 +84,6 @@ cmLocalVisualStudioGenerator
const char* newline_text) const char* newline_text)
{ {
bool useLocal = this->CustomCommandUseLocal(); bool useLocal = this->CustomCommandUseLocal();
const cmCustomCommandLines& commandLines = cc.GetCommandLines();
const char* workingDirectory = cc.GetWorkingDirectory(); const char* workingDirectory = cc.GetWorkingDirectory();
cmCustomCommandGenerator ccg(cc, configName, this->Makefile); cmCustomCommandGenerator ccg(cc, configName, this->Makefile);
RelativeRoot relativeRoot = workingDirectory? NONE : START_OUTPUT; RelativeRoot relativeRoot = workingDirectory? NONE : START_OUTPUT;

View File

@ -564,6 +564,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
// for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac
commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))-linkRuleLength-1000; commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))-linkRuleLength-1000;
#else #else
(void)linkRuleLength;
commandLineLengthLimit = -1; commandLineLengthLimit = -1;
#endif #endif
} }

View File

@ -404,6 +404,9 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
case cmTarget::UTILITY: case cmTarget::UTILITY:
configType += "Utility"; configType += "Utility";
break; break;
case cmTarget::GLOBAL_TARGET:
case cmTarget::UNKNOWN_LIBRARY:
break;
} }
configType += "</ConfigurationType>\n"; configType += "</ConfigurationType>\n";
this->WriteString(configType.c_str(), 2); this->WriteString(configType.c_str(), 2);
@ -425,8 +428,8 @@ void cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues()
mfcLine += useOfMfcValue + "</UseOfMfc>\n"; mfcLine += useOfMfcValue + "</UseOfMfc>\n";
this->WriteString(mfcLine.c_str(), 2); this->WriteString(mfcLine.c_str(), 2);
if(this->Target->GetType() <= cmTarget::OBJECT_LIBRARY && if((this->Target->GetType() <= cmTarget::OBJECT_LIBRARY &&
this->ClOptions[*i]->UsingUnicode() || this->ClOptions[*i]->UsingUnicode()) ||
this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS")) this->Target->GetPropertyAsBool("VS_WINRT_EXTENSIONS"))
{ {
this->WriteString("<CharacterSet>Unicode</CharacterSet>\n", 2); this->WriteString("<CharacterSet>Unicode</CharacterSet>\n", 2);
@ -907,7 +910,6 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
cmSourceFile* source) cmSourceFile* source)
{ {
cmSourceFile& sf = *source; cmSourceFile& sf = *source;
cmLocalVisualStudio7Generator* lg = this->LocalGenerator;
std::string objectName; std::string objectName;
if(this->GeneratorTarget->ExplicitObjectName.find(&sf) if(this->GeneratorTarget->ExplicitObjectName.find(&sf)

View File

@ -271,13 +271,6 @@ bool cmWin32ProcessExecution::Wait(int timeout)
return this->PrivateClose(timeout); return this->PrivateClose(timeout);
} }
/*
* Internal dictionary mapping popen* file pointers to process handles,
* for use when retrieving the process exit code. See _PyPclose() below
* for more information on this dictionary's use.
*/
static void *_PyPopenProcs = NULL;
static BOOL RealPopenCreateProcess(const char *cmdstring, static BOOL RealPopenCreateProcess(const char *cmdstring,
const char *path, const char *path,
const char *szConsoleSpawn, const char *szConsoleSpawn,
@ -679,18 +672,6 @@ bool cmWin32ProcessExecution::PrivateOpen(const char *cmdstring,
} }
} }
/*
* Insert the files we've created into the process dictionary
* all referencing the list with the process handle and the
* initial number of files (see description below in _PyPclose).
* Since if _PyPclose later tried to wait on a process when all
* handles weren't closed, it could create a deadlock with the
* child, we spend some energy here to try to ensure that we
* either insert all file handles into the dictionary or none
* at all. It's a little clumsy with the various popen modes
* and variable number of files involved.
*/
/* Child is launched. Close the parents copy of those pipe /* Child is launched. Close the parents copy of those pipe
* handles that only the child should have open. You need to * handles that only the child should have open. You need to
* make sure that no handles to the write end of the output pipe * make sure that no handles to the write end of the output pipe
@ -761,43 +742,6 @@ cmWin32ProcessExecution::~cmWin32ProcessExecution()
this->CloseHandles(); this->CloseHandles();
} }
/*
* Wrapper for fclose() to use for popen* files, so we can retrieve the
* exit code for the child process and return as a result of the close.
*
* This function uses the _PyPopenProcs dictionary in order to map the
* input file pointer to information about the process that was
* originally created by the popen* call that created the file pointer.
* The dictionary uses the file pointer as a key (with one entry
* inserted for each file returned by the original popen* call) and a
* single list object as the value for all files from a single call.
* The list object contains the Win32 process handle at [0], and a file
* count at [1], which is initialized to the total number of file
* handles using that list.
*
* This function closes whichever handle it is passed, and decrements
* the file count in the dictionary for the process handle pointed to
* by this file. On the last close (when the file count reaches zero),
* this function will wait for the child process and then return its
* exit code as the result of the close() operation. This permits the
* files to be closed in any order - it is always the close() of the
* final handle that will return the exit code.
*/
/* RED_FLAG 31-Aug-2000 Tim
* This is always called (today!) between a pair of
* Py_BEGIN_ALLOW_THREADS/ Py_END_ALLOW_THREADS
* macros. So the thread running this has no valid thread state, as
* far as Python is concerned. However, this calls some Python API
* functions that cannot be called safely without a valid thread
* state, in particular PyDict_GetItem.
* As a temporary hack (although it may last for years ...), we
* *rely* on not having a valid thread state in this function, in
* order to create our own "from scratch".
* This will deadlock if _PyPclose is ever called by a thread
* holding the global lock.
*/
bool cmWin32ProcessExecution::PrivateClose(int /* timeout */) bool cmWin32ProcessExecution::PrivateClose(int /* timeout */)
{ {
HANDLE hProcess = this->ProcessHandle; HANDLE hProcess = this->ProcessHandle;

View File

@ -237,12 +237,14 @@ int main() {
// needed to suppress filename output of msvc tools // needed to suppress filename output of msvc tools
std::string srcfilename; std::string srcfilename;
{
std::string::size_type pos = srcfile.rfind("\\"); std::string::size_type pos = srcfile.rfind("\\");
if (pos == std::string::npos) { if (pos == std::string::npos) {
srcfilename = srcfile; srcfilename = srcfile;
} else { } else {
srcfilename = srcfile.substr(pos + 1); srcfilename = srcfile.substr(pos + 1);
} }
}
std::string nol = " /nologo "; std::string nol = " /nologo ";
std::string show = " /showIncludes "; std::string show = " /showIncludes ";
@ -266,10 +268,12 @@ int main() {
// call cl in object dir so the .i is generated there // call cl in object dir so the .i is generated there
std::string objdir; std::string objdir;
{
std::string::size_type pos = objfile.rfind("\\"); std::string::size_type pos = objfile.rfind("\\");
if (pos != std::string::npos) { if (pos != std::string::npos) {
objdir = objfile.substr(0, pos); objdir = objfile.substr(0, pos);
} }
}
// extract dependencies with cl.exe // extract dependencies with cl.exe
int exit_code = process(srcfilename, dfile, objfile, int exit_code = process(srcfilename, dfile, objfile,

View File

@ -31,14 +31,14 @@ int main (int argc, char *argv[])
int cc; int cc;
for ( cc = 2; cc < argc; cc ++ ) for ( cc = 2; cc < argc; cc ++ )
{ {
std::string arg = argv[cc]; std::string nextArg = argv[cc];
if ( (arg.find_first_of(" ") != arg.npos) && if ( (nextArg.find_first_of(" ") != nextArg.npos) &&
(arg.find_first_of("\"") == arg.npos) ) (nextArg.find_first_of("\"") == nextArg.npos) )
{ {
arg = "\"" + arg + "\""; nextArg = "\"" + nextArg + "\"";
} }
command += " "; command += " ";
command += arg; command += nextArg;
} }
return cmWin32ProcessExecution::Windows9xHack(command.c_str()); return cmWin32ProcessExecution::Windows9xHack(command.c_str());