};
/// EmitASTBitcodeBuffer - Emit a translation unit to a buffer.
-bool EmitASTBitcodeBuffer(const TranslationUnit& TU,
+bool EmitASTBitcodeBuffer(const ASTContext &Ctx,
std::vector<unsigned char>& Buffer);
/// ReadASTBitcodeBuffer - Reconsitute a translation unit from a buffer.
}
}
-bool clang::EmitASTBitcodeBuffer(const TranslationUnit& TU,
+bool clang::EmitASTBitcodeBuffer(const ASTContext &Ctx,
std::vector<unsigned char>& Buffer) {
// Create bitstream.
llvm::BitstreamWriter Stream(Buffer);
llvm::Serializer Sezr(Stream);
// Emit the translation unit.
- TU.getContext().EmitAll(Sezr);
+ Ctx.EmitAll(Sezr);
}
return true;
std::vector<unsigned char> Buffer;
Buffer.reserve(256*1024);
- EmitASTBitcodeBuffer(TU,Buffer);
+ EmitASTBitcodeBuffer(TU.getContext(), Buffer);
// Write the bits to disk.
if (FILE* fp = fopen(FName.c_str(),"wb")) {
std::vector<unsigned char> Buffer;
Buffer.reserve(256*1024);
- EmitASTBitcodeBuffer(TU,Buffer);
+ EmitASTBitcodeBuffer(TU.getContext(), Buffer);
// Write the bits to disk.
if (FILE* fp = fopen(FName.c_str(),"wb")) {
private:
bool Serialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint,
- TranslationUnit& TU);
+ ASTContext &Ctx);
bool Deserialize(llvm::sys::Path& Filename, llvm::sys::Path& FNameDeclPrint);
};
bool SerializationTest::Serialize(llvm::sys::Path& Filename,
llvm::sys::Path& FNameDeclPrint,
- TranslationUnit& TU) {
+ ASTContext &Ctx) {
{
// Pretty-print the decls to a temp file.
std::string Err;
assert (Err.empty() && "Could not open file for printing out decls.");
llvm::OwningPtr<ASTConsumer> FilePrinter(CreateASTPrinter(&DeclPP));
- for (TranslationUnit::iterator I=TU.begin(), E=TU.end(); I!=E; ++I)
+ TranslationUnitDecl *TUD = Ctx.getTranslationUnitDecl();
+ for (DeclContext::decl_iterator I = TUD->decls_begin(), E =TUD->decls_end();
+ I != E; ++I)
FilePrinter->HandleTopLevelDecl(*I);
}
std::vector<unsigned char> Buffer;
Buffer.reserve(256*1024);
- EmitASTBitcodeBuffer(TU,Buffer);
+ EmitASTBitcodeBuffer(Ctx, Buffer);
// Write the bits to disk.
if (FILE* fp = fopen(Filename.c_str(),"wb")) {
}
// Serialize and then deserialize the ASTs.
- bool status = Serialize(ASTFilename, FNameDeclBefore, TU);
+ bool status = Serialize(ASTFilename, FNameDeclBefore, TU.getContext());
assert (status && "Serialization failed.");
status = Deserialize(ASTFilename, FNameDeclAfter);
assert (status && "Deserialization failed.");