r283906 - Fix the build with MSVC 2013 after r283856
Reid Kleckner via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 11 10:24:09 PDT 2016
Author: rnk
Date: Tue Oct 11 12:24:09 2016
New Revision: 283906
URL: http://llvm.org/viewvc/llvm-project?rev=283906&view=rev
Log:
Fix the build with MSVC 2013 after r283856
Modified:
cfe/trunk/lib/Frontend/CacheTokens.cpp
Modified: cfe/trunk/lib/Frontend/CacheTokens.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CacheTokens.cpp?rev=283906&r1=283905&r2=283906&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CacheTokens.cpp (original)
+++ cfe/trunk/lib/Frontend/CacheTokens.cpp Tue Oct 11 12:24:09 2016
@@ -60,8 +60,10 @@ public:
class PTHEntryKeyVariant {
union {
const FileEntry *FE;
- StringRef Path;
+ // FIXME: Use "StringRef Path;" when MSVC 2013 is dropped.
+ const char *PathPtr;
};
+ size_t PathSize;
enum { IsFE = 0x1, IsDE = 0x2, IsNoExist = 0x0 } Kind;
FileData *Data;
@@ -69,15 +71,17 @@ public:
PTHEntryKeyVariant(const FileEntry *fe) : FE(fe), Kind(IsFE), Data(nullptr) {}
PTHEntryKeyVariant(FileData *Data, StringRef Path)
- : Path(Path), Kind(IsDE), Data(new FileData(*Data)) {}
+ : PathPtr(Path.data()), PathSize(Path.size()), Kind(IsDE),
+ Data(new FileData(*Data)) {}
explicit PTHEntryKeyVariant(StringRef Path)
- : Path(Path), Kind(IsNoExist), Data(nullptr) {}
+ : PathPtr(Path.data()), PathSize(Path.size()), Kind(IsNoExist),
+ Data(nullptr) {}
bool isFile() const { return Kind == IsFE; }
StringRef getString() const {
- return Kind == IsFE ? FE->getName() : Path;
+ return Kind == IsFE ? FE->getName() : StringRef(PathPtr, PathSize);
}
unsigned getKind() const { return (unsigned) Kind; }
More information about the cfe-commits
mailing list