Author: rsmith Date: Wed Mar 8 18:58:22 2017 New Revision: 297349 URL: http://llvm.org/viewvc/llvm-project?rev=297349&view=rev Log: Fix handling of -fmodule-map-file=X where X has no directory component.
Added: cfe/trunk/test/Modules/module_map_cwd.c Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=297349&r1=297348&r2=297349&view=diff ============================================================================== --- cfe/trunk/lib/Lex/HeaderSearch.cpp (original) +++ cfe/trunk/lib/Lex/HeaderSearch.cpp Wed Mar 8 18:58:22 2017 @@ -172,8 +172,10 @@ std::string HeaderSearch::getModuleFileN // // To avoid false-negatives, we form as canonical a path as we can, and map // to lower-case in case we're on a case-insensitive file system. - auto *Dir = - FileMgr.getDirectory(llvm::sys::path::parent_path(ModuleMapPath)); + std::string Parent = llvm::sys::path::parent_path(ModuleMapPath); + if (Parent.empty()) + Parent = "."; + auto *Dir = FileMgr.getDirectory(Parent); if (!Dir) return std::string(); auto DirName = FileMgr.getCanonicalName(Dir); Added: cfe/trunk/test/Modules/module_map_cwd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/module_map_cwd.c?rev=297349&view=auto ============================================================================== --- cfe/trunk/test/Modules/module_map_cwd.c (added) +++ cfe/trunk/test/Modules/module_map_cwd.c Wed Mar 8 18:58:22 2017 @@ -0,0 +1,9 @@ +// RUN: rm -rf %t +// RUN: mkdir %t +// RUN: echo 'module X { header "x.h" }' > %t/map +// RUN: echo 'extern int n;' > %t/x.h +// RUN: cd %t +// RUN: %clang_cc1 %s -fmodules -fmodule-map-file=map -fmodules-cache-path=. -verify -I. +// expected-no-diagnostics +#include "x.h" +int *m = &n; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits