aboutsummaryrefslogtreecommitdiff
path: root/tools/clang-cc/SerializationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/clang-cc/SerializationTest.cpp')
-rw-r--r--tools/clang-cc/SerializationTest.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/tools/clang-cc/SerializationTest.cpp b/tools/clang-cc/SerializationTest.cpp
index fcc047e015..aa3163f556 100644
--- a/tools/clang-cc/SerializationTest.cpp
+++ b/tools/clang-cc/SerializationTest.cpp
@@ -74,7 +74,21 @@ bool SerializationTest::Serialize(llvm::sys::Path& Filename,
}
// Serialize the translation unit.
- return EmitASTBitcodeFile(TU,Filename);
+
+ // Reserve 256K for bitstream buffer.
+ std::vector<unsigned char> Buffer;
+ Buffer.reserve(256*1024);
+
+ EmitASTBitcodeBuffer(TU,Buffer);
+
+ // Write the bits to disk.
+ if (FILE* fp = fopen(Filename.c_str(),"wb")) {
+ fwrite((char*)&Buffer.front(), sizeof(char), Buffer.size(), fp);
+ fclose(fp);
+ return true;
+ }
+
+ return false;
}
bool SerializationTest::Deserialize(llvm::sys::Path& Filename,