Author: rsmith
Date: Fri Jul 10 15:09:49 2015
New Revision: 241936

URL: http://llvm.org/viewvc/llvm-project?rev=241936&view=rev
Log:
[modules] Fix "prefer own module over others" rule when selecting a module for 
a header to work in the presence of module hierarchy.

Modified:
    cfe/trunk/lib/Lex/ModuleMap.cpp
    cfe/trunk/test/Modules/Inputs/explicit-build-prefer-self/map

Modified: cfe/trunk/lib/Lex/ModuleMap.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/ModuleMap.cpp?rev=241936&r1=241935&r2=241936&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/ModuleMap.cpp (original)
+++ cfe/trunk/lib/Lex/ModuleMap.cpp Fri Jul 10 15:09:49 2015
@@ -347,7 +347,7 @@ ModuleMap::KnownHeader ModuleMap::findMo
     // Iterate over all modules that 'File' is part of to find the best fit.
     for (KnownHeader &H : Known->second) {
       // Prefer a header from the current module over all others.
-      if (H.getModule() == CompilingModule)
+      if (H.getModule()->getTopLevelModule() == CompilingModule)
         return MakeResult(H);
       // Cannot use a module if it is unavailable.
       if (!H.getModule()->isAvailable())

Modified: cfe/trunk/test/Modules/Inputs/explicit-build-prefer-self/map
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/explicit-build-prefer-self/map?rev=241936&r1=241935&r2=241936&view=diff
==============================================================================
--- cfe/trunk/test/Modules/Inputs/explicit-build-prefer-self/map (original)
+++ cfe/trunk/test/Modules/Inputs/explicit-build-prefer-self/map Fri Jul 10 
15:09:49 2015
@@ -1,2 +1,2 @@
-module a { header "a.h" header "x.h" }
-module b { header "b.h" header "x.h" }
+module a { module h { header "a.h" } module x { header "x.h" } }
+module b { module h { header "b.h" } module x { header "x.h" } }


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to