diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-04-20 20:36:09 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-04-20 20:36:09 +0000 |
commit | 3251ceb90b3fec68e86d6dcfa58836e20a7205c3 (patch) | |
tree | e602b9cabd7c1534e834f1a04956b87ee6e81eb1 /lib/Frontend/PCHReader.cpp | |
parent | 2e828f06e5773c1bd700a26e778b841a8f8cc814 (diff) |
Write the identifier table into the PCH file as an on-disk hash table
that also includes the contents of the IdentifierInfo itself (the
various fields and flags, along with the chain of identifiers visible
at the top level that have that name).
We don't make any use of the hash table yet, except that our
identifier ID -> string mapping points into the hash table now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69625 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHReader.cpp')
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp index f1cb4d3cdc..e694a140d1 100644 --- a/lib/Frontend/PCHReader.cpp +++ b/lib/Frontend/PCHReader.cpp @@ -2089,9 +2089,10 @@ IdentifierInfo *PCHReader::DecodeIdentifierInfo(unsigned ID) { } if (IdentifierData[ID - 1] & 0x01) { - uint64_t Offset = IdentifierData[ID - 1]; + uint64_t Offset = IdentifierData[ID - 1] >> 1; IdentifierData[ID - 1] = reinterpret_cast<uint64_t>( - &Context.Idents.get(IdentifierTable + Offset)); + &Context.Idents.get(IdentifierTable + Offset)); + // FIXME: also read the contents of the IdentifierInfo. } return reinterpret_cast<IdentifierInfo *>(IdentifierData[ID - 1]); |