assert((V >> 16) == 0);
}
+static void Emit24(llvm::raw_ostream& Out, uint32_t V) {
+ Out << (unsigned char)(V);
+ Out << (unsigned char)(V >> 8);
+ Out << (unsigned char)(V >> 16);
+ assert((V >> 24) == 0);
+}
+
static void EmitBuf(llvm::raw_ostream& Out, const char* I, const char* E) {
for ( ; I != E ; ++I) Out << *I;
}
Emit8(Out, T.getKind());
Emit8(Out, T.getFlags());
- Emit32(Out, ResolveID(IM, idcount, T.getIdentifierInfo()));
+ Emit24(Out, ResolveID(IM, idcount, T.getIdentifierInfo()));
Emit32(Out, SMgr.getFullFilePos(T.getLocation()));
Emit16(Out, T.getLength());
}
using namespace clang;
-#define DISK_TOKEN_SIZE (2+4+4+2)
+#define DISK_TOKEN_SIZE (1+1+3+4+2)
//===----------------------------------------------------------------------===//
// Utility methods for reading from the mmap'ed PTH file.
uint32_t perID = ((uint32_t) CurPtrShadow[2])
| (((uint32_t) CurPtrShadow[3]) << 8)
- | (((uint32_t) CurPtrShadow[4]) << 16)
- | (((uint32_t) CurPtrShadow[5]) << 24);
+ | (((uint32_t) CurPtrShadow[4]) << 16);
- uint32_t FileOffset = ((uint32_t) CurPtrShadow[6])
- | (((uint32_t) CurPtrShadow[7]) << 8)
- | (((uint32_t) CurPtrShadow[8]) << 16)
- | (((uint32_t) CurPtrShadow[9]) << 24);
+ uint32_t FileOffset = ((uint32_t) CurPtrShadow[5])
+ | (((uint32_t) CurPtrShadow[6]) << 8)
+ | (((uint32_t) CurPtrShadow[7]) << 16)
+ | (((uint32_t) CurPtrShadow[8]) << 24);
- uint32_t Len = ((uint32_t) CurPtrShadow[10])
- | (((uint32_t) CurPtrShadow[11]) << 8);
+ uint32_t Len = ((uint32_t) CurPtrShadow[9])
+ | (((uint32_t) CurPtrShadow[10]) << 8);
CurPtr = (const char*) (CurPtrShadow + DISK_TOKEN_SIZE);