diff options
author | Reid Kleckner <rnk@google.com> | 2016-10-11 17:24:09 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2016-10-11 17:24:09 +0000 |
commit | 25717350e56f77f05cb8b34005d018cf0d8c2627 (patch) | |
tree | f3affcf163e8b31c6635d7ccd22741000bd62026 /clang/lib/Frontend | |
parent | 8253e15ef3555cac0bde3e1c3aa15d94da081e0b (diff) | |
download | bcm5719-llvm-25717350e56f77f05cb8b34005d018cf0d8c2627.tar.gz bcm5719-llvm-25717350e56f77f05cb8b34005d018cf0d8c2627.zip |
Fix the build with MSVC 2013 after r283856
llvm-svn: 283906
Diffstat (limited to 'clang/lib/Frontend')
-rw-r--r-- | clang/lib/Frontend/CacheTokens.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Frontend/CacheTokens.cpp b/clang/lib/Frontend/CacheTokens.cpp index 91dd492a80e..72e8f68dc05 100644 --- a/clang/lib/Frontend/CacheTokens.cpp +++ b/clang/lib/Frontend/CacheTokens.cpp @@ -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; } |