summaryrefslogtreecommitdiffstats
path: root/clang/AST/DeclSerialization.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-11-01 22:25:41 +0000
committerTed Kremenek <kremenek@apple.com>2007-11-01 22:25:41 +0000
commit5e2eb261af52fbf265311f3a71209c505cf20075 (patch)
tree9ead84c95e2deb286d3df3e73aca3da315632a16 /clang/AST/DeclSerialization.cpp
parent478c6982a8068605c63ee39512b2ebd0713a2714 (diff)
downloadbcm5719-llvm-5e2eb261af52fbf265311f3a71209c505cf20075.tar.gz
bcm5719-llvm-5e2eb261af52fbf265311f3a71209c505cf20075.zip
Simplified Serialization code for SourceLocation and SourceRange, and
updated it to the recently updated Serialization API. Changed clients of SourceLocation serialization to call the appropriate new methods. Updated Decl serialization code to put new skeleton serialization code in place that is much better than the older trait-specialization approach. llvm-svn: 43625
Diffstat (limited to 'clang/AST/DeclSerialization.cpp')
-rw-r--r--clang/AST/DeclSerialization.cpp44
1 files changed, 5 insertions, 39 deletions
diff --git a/clang/AST/DeclSerialization.cpp b/clang/AST/DeclSerialization.cpp
index 9b2278a4beb..3a326f006b4 100644
--- a/clang/AST/DeclSerialization.cpp
+++ b/clang/AST/DeclSerialization.cpp
@@ -16,47 +16,13 @@
#include "llvm/Bitcode/Serialize.h"
#include "llvm/Bitcode/Deserialize.h"
-using llvm::SerializeTrait;
-using llvm::Deserializer;
-using llvm::Serializer;
using namespace clang;
-
-static void EmitEnumConstantDecl(Serializer& S, EnumConstantDecl& decl) {
- S.Emit(decl.getLocation());
- S.EmitPtr(decl.getIdentifier());
-// S.Emit(decl.getType()); FIXME
- S.EmitOwnedPtr<Stmt>(decl.getInitExpr());
- // S.Emit(decl.getInitVal()); FIXME
- S.EmitOwnedPtr<Decl>(decl.getNextDeclarator());
-}
-
-static void EmitFunctionDecl(Serializer& S, FunctionDecl& decl) {
- S.Emit(decl.getLocation());
- S.EmitPtr(decl.getIdentifier());
-// S.Emit(decl.getType()); FIXME
-// S.Emit(decl.getStorageClass()); FIXME
- S.EmitBool(decl.isInline());
- S.EmitOwnedPtr<Decl>(decl.getNextDeclarator());
+void Decl::Emit(llvm::Serializer& S) const {
+ assert ("FIXME: not implemented.");
}
-
-void SerializeTrait<Decl>::Emit(Serializer& S, Decl& decl) {
- assert (!decl.isInvalidDecl() && "Can only serialize valid decls.");
-
- S.EmitInt((unsigned) decl.getKind());
-
- switch (decl.getKind()) {
- default:
- assert (false && "Serialization not implemented for decl type.");
- return;
-
- case Decl::EnumConstant:
- EmitEnumConstantDecl(S,cast<EnumConstantDecl>(decl));
- return;
-
- case Decl::Function:
- EmitFunctionDecl(S,cast<FunctionDecl>(decl));
- return;
- }
+Decl* Decl::Materialize(llvm::Deserializer& D) {
+ assert ("FIXME: not implemented.");
+ return NULL;
}
OpenPOWER on IntegriCloud