summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2004-04-29 18:51:08 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2004-04-29 18:51:08 (GMT)
commitae50b4bc6afa62663317e630aef509a29c4f9021 (patch)
tree50efbefa74258f88387915282af26890f084e17b
parentd5763a8c98c9b37096b8ca6ff58a1996528c408c (diff)
downloadCMake-ae50b4bc6afa62663317e630aef509a29c4f9021.zip
CMake-ae50b4bc6afa62663317e630aef509a29c4f9021.tar.gz
CMake-ae50b4bc6afa62663317e630aef509a29c4f9021.tar.bz2
BUG: Add a safety check so that you cannot send cmOStringStream.str() to other stream and produce the funky hex number. This makes it impossible to compile such a code. Adding that exposed a whole bunch of places in CMake where streams were used wrongly
-rw-r--r--Source/cmCTest.cxx10
-rw-r--r--Source/cmStandardIncludes.h3
2 files changed, 8 insertions, 5 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index e7a03e4..6832204 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -4508,7 +4508,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
else
{
- std::cerr << out << "\n";
+ std::cerr << out.str() << "\n";
}
return 1;
}
@@ -4527,7 +4527,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
else
{
- std::cerr << out << "\n";
+ std::cerr << out.str() << "\n";
}
return 1;
}
@@ -4607,7 +4607,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
else
{
- std::cerr << out << "\n";
+ std::cerr << out.str() << "\n";
}
return 1;
}
@@ -4639,7 +4639,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
else
{
- std::cerr << out << "\n";
+ std::cerr << out.str() << "\n";
}
return 1;
}
@@ -4671,7 +4671,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
}
else
{
- std::cout << out << "\n";
+ std::cout << out.str() << "\n";
}
return retVal;
}
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index 572bcac..662a831 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -252,6 +252,9 @@ private:
};
#endif
+/* Poison this operator to avoid common mistakes. */
+extern void operator << (std::ostream&, const cmOStringStream&);
+
/** Standard documentation entry for cmDocumentation's formatting. */
struct cmDocumentationEntry
{