diff options
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 1 | ||||
-rw-r--r-- | clang/lib/Frontend/DependencyFile.cpp | 21 |
2 files changed, 4 insertions, 18 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 75bf7e40417..77d28d85ef8 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -264,6 +264,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA, const char *DepFile; if (Arg *MF = Args.getLastArg(options::OPT_MF)) { DepFile = MF->getValue(); + llvm::errs()<<"Your depfile is "<<DepFile<<"\n"; C.addFailureResultFile(DepFile, &JA); } else if (Output.getType() == types::TY_Dependencies) { DepFile = Output.getFilename(); diff --git a/clang/lib/Frontend/DependencyFile.cpp b/clang/lib/Frontend/DependencyFile.cpp index c5c34490d71..93d4a803469 100644 --- a/clang/lib/Frontend/DependencyFile.cpp +++ b/clang/lib/Frontend/DependencyFile.cpp @@ -51,15 +51,8 @@ struct DepCollectorPPCallbacks : public PPCallbacks { if (!FE) return; - StringRef Filename = FE->getName(); - - // Remove leading "./" (or ".//" or "././" etc.) - while (Filename.size() > 2 && Filename[0] == '.' && - llvm::sys::path::is_separator(Filename[1])) { - Filename = Filename.substr(1); - while (llvm::sys::path::is_separator(Filename[0])) - Filename = Filename.substr(1); - } + StringRef Filename = + llvm::sys::path::remove_leading_dotslash(FE->getName()); DepCollector.maybeAddDependency(Filename, /*FromModule*/false, FileType != SrcMgr::C_User, @@ -295,15 +288,7 @@ void DFGImpl::FileChanged(SourceLocation Loc, if (!FileMatchesDepCriteria(Filename.data(), FileType)) return; - // Remove leading "./" (or ".//" or "././" etc.) - while (Filename.size() > 2 && Filename[0] == '.' && - llvm::sys::path::is_separator(Filename[1])) { - Filename = Filename.substr(1); - while (llvm::sys::path::is_separator(Filename[0])) - Filename = Filename.substr(1); - } - - AddFilename(Filename); + AddFilename(llvm::sys::path::remove_leading_dotslash(Filename)); } void DFGImpl::InclusionDirective(SourceLocation HashLoc, |