I came down to this , i think this FixPathSeparators was called when it shouldn't be called!!. May be after compiler-->forceFwdSlashes was set to true for some reason.
Maybe C/C++ developers here can help!.
void CompilerCommandGenerator::FixPathSeparators(Compiler* compiler, wxString& inAndOut)
{
// replace path separators with forward slashes if needed by this compiler
if (!compiler || !compiler->GetSwitches().forceFwdSlashes)
return;
size_t i = 0;
while (i < inAndOut.Length())
{
if (inAndOut.GetChar(i) == _T('\\') &&
(i == inAndOut.Length() - 1 || inAndOut.GetChar(i + 1) != _T(' ')))
{
inAndOut.SetChar(i, _T('/'));
}
++i;
}
}