diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-10-23 22:18:37 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-10-23 22:18:37 +0000 |
commit | c637e6b7afeebc6b4f751e4373715b6a8ea77272 (patch) | |
tree | af7d80893b0a99bd38fad34dc0a5019436b557f5 /include/clang/Basic/TokenKinds.h | |
parent | b9b00ad6260b17c18195ff4a54c8b3abbf33fcc9 (diff) |
Implemented serialization for IdentifierInfo and IdentifierTable.
Updated serialization test code in the driver to test serialization of
these types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43266 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/TokenKinds.h')
-rw-r--r-- | include/clang/Basic/TokenKinds.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/clang/Basic/TokenKinds.h b/include/clang/Basic/TokenKinds.h index e51f0c7f8a..2e213bddf1 100644 --- a/include/clang/Basic/TokenKinds.h +++ b/include/clang/Basic/TokenKinds.h @@ -48,4 +48,33 @@ const char *getTokenName(enum TokenKind Kind); } // end namespace tok } // end namespace clang +//===----------------------------------------------------------------------===// +// Serialization traits. +//===----------------------------------------------------------------------===// + +namespace llvm { + template <typename T> struct SerializeTrait; + class Serializer; + class Deserializer; + +template<> +struct SerializeTrait<clang::tok::TokenKind> { + static void Serialize(llvm::Serializer& S, clang::tok::TokenKind X); + static void Deserialize(llvm::Deserializer& D, clang::tok::TokenKind& X); +}; + +template<> +struct SerializeTrait<clang::tok::PPKeywordKind> { + static void Serialize(llvm::Serializer& S, clang::tok::PPKeywordKind X); + static void Deserialize(llvm::Deserializer& D, clang::tok::PPKeywordKind& X); +}; + +template<> +struct SerializeTrait<clang::tok::ObjCKeywordKind> { + static void Serialize(llvm::Serializer& S, clang::tok::ObjCKeywordKind X); + static void Deserialize(llvm::Deserializer& D, clang::tok::ObjCKeywordKind& X); +}; + +} // end namespace llvm + #endif |