maybe we should change sys::fs::make_absolute?
On 19 June 2013 13:17, Edwin Vane <[email protected]> wrote: > Author: revane > Date: Wed Jun 19 12:17:31 2013 > New Revision: 184322 > > URL: http://llvm.org/viewvc/llvm-project?rev=184322&view=rev > Log: > cpp11-migrate: Fix parsing of '.' for header include/excludes > > sys::fs::make_absolute was turning '.' into '<path>/.' which broke prefix > comparison logic. Stripping these extra chars fixes the problem. > > > Modified: > clang-tools-extra/trunk/cpp11-migrate/Core/IncludeExcludeInfo.cpp > > Modified: clang-tools-extra/trunk/cpp11-migrate/Core/IncludeExcludeInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/cpp11-migrate/Core/IncludeExcludeInfo.cpp?rev=184322&r1=184321&r2=184322&view=diff > ============================================================================== > --- clang-tools-extra/trunk/cpp11-migrate/Core/IncludeExcludeInfo.cpp > (original) > +++ clang-tools-extra/trunk/cpp11-migrate/Core/IncludeExcludeInfo.cpp Wed Jun > 19 12:17:31 2013 > @@ -58,10 +58,18 @@ error_code parseCLInput(StringRef Line, > E = Tokens.end(); > I != E; ++I) { > // Convert each path to its absolute path. > - SmallString<64> AbsolutePath = I->rtrim(); > - if (error_code Err = sys::fs::make_absolute(AbsolutePath)) > + SmallString<64> Path = I->rtrim(); > + if (error_code Err = sys::fs::make_absolute(Path)) > return Err; > - List.push_back(std::string(AbsolutePath.str())); > + > + // sys::fs::make_absolute will turn "." into "<pwd>/.". Need to strip > "/." > + // off or it interferes with prefix checking. > + if (Path.endswith("/.")) > + List.push_back(Path.slice(0, Path.size() - 2).str()); > + else > + List.push_back(Path.str()); > + > + llvm::errs() << "Parse: " <<List.back() << "\n"; > } > return error_code::success(); > } > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
