diff options
Diffstat (limited to 'lib/Lex/Pragma.cpp')
-rw-r--r-- | lib/Lex/Pragma.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp index 8b46f71..856b3bd 100644 --- a/lib/Lex/Pragma.cpp +++ b/lib/Lex/Pragma.cpp @@ -286,26 +286,25 @@ void Preprocessor::HandlePragmaDependency(Token &DependencyTok) { return; // Reserve a buffer to get the spelling. - llvm::SmallVector<char, 128> FilenameBuffer; + llvm::SmallString<128> FilenameBuffer; FilenameBuffer.resize(FilenameTok.getLength()); const char *FilenameStart = &FilenameBuffer[0]; unsigned Len = getSpelling(FilenameTok, FilenameStart); - const char *FilenameEnd = FilenameStart+Len; - bool isAngled = GetIncludeFilenameSpelling(FilenameTok.getLocation(), - FilenameStart, FilenameEnd); + llvm::StringRef Filename(FilenameStart, Len); + bool isAngled = + GetIncludeFilenameSpelling(FilenameTok.getLocation(), Filename); // If GetIncludeFilenameSpelling set the start ptr to null, there was an // error. - if (FilenameStart == 0) + if (Filename.empty()) return; // Search include directories for this file. const DirectoryLookup *CurDir; - const FileEntry *File = LookupFile(FilenameStart, FilenameEnd, + const FileEntry *File = LookupFile(Filename, FilenameTok.getLocation(), isAngled, 0, CurDir); if (File == 0) { - Diag(FilenameTok, diag::err_pp_file_not_found) - << std::string(FilenameStart, FilenameEnd); + Diag(FilenameTok, diag::err_pp_file_not_found) << Filename; return; } |