aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/IdentifierTable.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-10-16 23:37:27 +0000
committerTed Kremenek <kremenek@apple.com>2007-10-16 23:37:27 +0000
commitbfa82c4c23ce96fdcf357a8f7ef70a9b71b69144 (patch)
treeb9e50af5b4b3f0dfe0b35cd54d570a3cec010927 /include/clang/Basic/IdentifierTable.h
parent2a35fa9b5e0f9d9429c04adb2e1249b6fd425e7a (diff)
Started work on clang object serialization. Experimental
serialization logic as well as driver code is now in Driver/SerializationTest.cpp. The status of this code is that it should be used by no clients. Added --test-pickling option to driver to run the serialization code. Modified IdentifierInfo and IdentifierTable to have friend classes that permit object serialization. Such friendship may not be needed in the final design. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43052 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/IdentifierTable.h')
-rw-r--r--include/clang/Basic/IdentifierTable.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/clang/Basic/IdentifierTable.h b/include/clang/Basic/IdentifierTable.h
index 6d8f001376..25a6b94e72 100644
--- a/include/clang/Basic/IdentifierTable.h
+++ b/include/clang/Basic/IdentifierTable.h
@@ -21,7 +21,9 @@
#include <string>
#include <cassert>
+
namespace llvm {
+ template<typename T> class IntrospectionTrait;
template <typename T> struct DenseMapInfo;
}
@@ -136,6 +138,9 @@ public:
template<typename T>
T *getFETokenInfo() const { return static_cast<T*>(FETokenInfo); }
void setFETokenInfo(void *T) { FETokenInfo = T; }
+
+ // For serialization and profiling.
+ template<typename T> friend class llvm::IntrospectionTrait;
};
/// IdentifierTable - This table implements an efficient mapping from strings to
@@ -176,6 +181,9 @@ public:
/// PrintStats - Print some statistics to stderr that indicate how well the
/// hashing is doing.
void PrintStats() const;
+
+ // For serialization and profiling.
+ template<typename T> friend class llvm::IntrospectionTrait;
private:
void AddKeywords(const LangOptions &LangOpts);
};