Improve C compatibility of LoadCommand tests The previous code used char ** and const char ** types as if they were the same. But they are distinct types in C, so when passing these pointers as function arguments, their types have to match. Future C compilers will treat this as an error, similar to what C++ compilers do today. Submitted upstream: diff --git a/Tests/LoadCommand/CMakeCommands/cmTestCommand.c b/Tests/LoadCommand/CMakeCommands/cmTestCommand.c index 7176ebe9d4bd3c4e..ba13727d2b83a051 100644 --- a/Tests/LoadCommand/CMakeCommands/cmTestCommand.c +++ b/Tests/LoadCommand/CMakeCommands/cmTestCommand.c @@ -16,14 +16,14 @@ static int CCONV InitialPass(void* inf, void* mf, int argc, char* argv[]) { char* file; char* str; - char* srcs; + const char* srcs; const char* cstr; char buffer[1024]; void* source_file; char* args[2]; - char* ccArgs[4]; - char* ccDep[1]; - char* ccOut[1]; + const char* ccArgs[4]; + const char* ccDep[1]; + const char* ccOut[1]; cmLoadedCommandInfo* info = (cmLoadedCommandInfo*)inf; cmVTKWrapTclData* cdata = @@ -148,7 +148,10 @@ static int CCONV InitialPass(void* inf, void* mf, int argc, char* argv[]) if (info->CAPI->GetTotalArgumentSize(2, args) != 13) { return 0; } - info->CAPI->ExecuteCommand(mf, "SET", 2, args); + + ccArgs[0] = "TEST_EXEC"; + ccArgs[1] = "TRUE"; + info->CAPI->ExecuteCommand(mf, "SET", 2, ccArgs); /* make sure we can find the source file */ if (!info->CAPI->GetSource(mf, argv[1])) { diff --git a/Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c b/Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c index 7176ebe9d4bd3c4e..e3b332c1aa9d9108 100644 --- a/Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c +++ b/Tests/LoadCommandOneConfig/CMakeCommands/cmTestCommand.c @@ -16,14 +16,14 @@ static int CCONV InitialPass(void* inf, void* mf, int argc, char* argv[]) { char* file; char* str; - char* srcs; - const char* cstr; + const char* srcs; + char* cstr; char buffer[1024]; void* source_file; char* args[2]; - char* ccArgs[4]; - char* ccDep[1]; - char* ccOut[1]; + const char* ccArgs[4]; + const char* ccDep[1]; + const char* ccOut[1]; cmLoadedCommandInfo* info = (cmLoadedCommandInfo*)inf; cmVTKWrapTclData* cdata = @@ -148,7 +148,10 @@ static int CCONV InitialPass(void* inf, void* mf, int argc, char* argv[]) if (info->CAPI->GetTotalArgumentSize(2, args) != 13) { return 0; } - info->CAPI->ExecuteCommand(mf, "SET", 2, args); + + ccArgs[0] = "TEST_EXEC"; + ccArgs[1] = "TRUE"; + info->CAPI->ExecuteCommand(mf, "SET", 2, ccArgs); /* make sure we can find the source file */ if (!info->CAPI->GetSource(mf, argv[1])) {