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