diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-17 03:55:43 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-17 03:55:43 +0000 |
commit | c141b51d78b40c7b0b04f27adfa70ec5bbddc49c (patch) | |
tree | a47b2391a4460b1be88b53a8c3d9fe4803ae786d | |
parent | e276cfc4e30dd3d85e3904ee270e85d5d0e309ad (diff) |
Switch PTH format from a 7 byte magic number to an 8 byte one, to avoid
misaligned reads throughout the file. Bump PTH format version to 10.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162076 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Lex/PTHManager.h | 2 | ||||
-rw-r--r-- | lib/Frontend/CacheTokens.cpp | 2 | ||||
-rw-r--r-- | lib/Lex/PTHLexer.cpp | 6 |
3 files changed, 5 insertions, 5 deletions
diff --git a/include/clang/Lex/PTHManager.h b/include/clang/Lex/PTHManager.h index 25a49038a8..44f9ab39f3 100644 --- a/include/clang/Lex/PTHManager.h +++ b/include/clang/Lex/PTHManager.h @@ -101,7 +101,7 @@ class PTHManager : public IdentifierInfoLookup { public: // The current PTH version. - enum { Version = 9 }; + enum { Version = 10 }; ~PTHManager(); diff --git a/lib/Frontend/CacheTokens.cpp b/lib/Frontend/CacheTokens.cpp index 58a6b8d19e..3e666132dc 100644 --- a/lib/Frontend/CacheTokens.cpp +++ b/lib/Frontend/CacheTokens.cpp @@ -447,7 +447,7 @@ Offset PTHWriter::EmitCachedSpellings() { void PTHWriter::GeneratePTH(const std::string &MainFile) { // Generate the prologue. - Out << "cfe-pth"; + Out << "cfe-pth" << '\0'; Emit32(PTHManager::Version); // Leave 4 words for the prologue. diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index f104f96708..67738e9075 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -452,14 +452,14 @@ PTHManager *PTHManager::Create(const std::string &file, const unsigned char *BufEnd = (unsigned char*)File->getBufferEnd(); // Check the prologue of the file. - if ((BufEnd - BufBeg) < (signed)(sizeof("cfe-pth") + 3 + 4) || - memcmp(BufBeg, "cfe-pth", sizeof("cfe-pth") - 1) != 0) { + if ((BufEnd - BufBeg) < (signed)(sizeof("cfe-pth") + 4 + 4) || + memcmp(BufBeg, "cfe-pth", sizeof("cfe-pth")) != 0) { Diags.Report(diag::err_invalid_pth_file) << file; return 0; } // Read the PTH version. - const unsigned char *p = BufBeg + (sizeof("cfe-pth") - 1); + const unsigned char *p = BufBeg + (sizeof("cfe-pth")); unsigned Version = ReadLE32(p); if (Version < PTHManager::Version) { |