r232159 - Make a module "use" also count as use of all its submodules

David Blaikie dblaikie at gmail.com
Fri Mar 13 07:27:13 PDT 2015


On Mar 13, 2015 4:31 AM, "Daniel Jasper" <djasper at google.com> wrote:
>
> Author: djasper
> Date: Fri Mar 13 06:26:16 2015
> New Revision: 232159
>
> URL: http://llvm.org/viewvc/llvm-project?rev=232159&view=rev
> Log:
> Make a module "use" also count as use of all its submodules
>
> Added:
>     cfe/trunk/test/Modules/Inputs/declare-use/sub.h
> Modified:
>     cfe/trunk/lib/Lex/ModuleMap.cpp
>     cfe/trunk/test/Modules/Inputs/declare-use/module.map
>     cfe/trunk/test/Modules/declare-use1.cpp
>
> Modified: cfe/trunk/lib/Lex/ModuleMap.cpp
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/ModuleMap.cpp?rev=232159&r1=232158&r2=232159&view=diff
>
==============================================================================
> --- cfe/trunk/lib/Lex/ModuleMap.cpp (original)
> +++ cfe/trunk/lib/Lex/ModuleMap.cpp Fri Mar 13 06:26:16 2015
> @@ -208,9 +208,11 @@ ModuleMap::findHeaderInUmbrellaDirs(cons
>  // Returns true if RequestingModule directly uses RequestedModule.
>  static bool directlyUses(const Module *RequestingModule,
>                           const Module *RequestedModule) {
> -  return std::find(RequestingModule->DirectUses.begin(),
> -                   RequestingModule->DirectUses.end(),
> -                   RequestedModule) !=
RequestingModule->DirectUses.end();
> +  for (const Module* DirectUse : RequestingModule->DirectUses) {

This could be written using std::any_of - just a thought, not necessarily
better, but might be.

> +    if (RequestedModule->isSubModuleOf(DirectUse))
> +      return true;
> +  }
> +  return false;
>  }
>
>  static bool violatesPrivateInclude(Module *RequestingModule,
>
> Modified: cfe/trunk/test/Modules/Inputs/declare-use/module.map
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/declare-use/module.map?rev=232159&r1=232158&r2=232159&view=diff
>
==============================================================================
> --- cfe/trunk/test/Modules/Inputs/declare-use/module.map (original)
> +++ cfe/trunk/test/Modules/Inputs/declare-use/module.map Fri Mar 13
06:26:16 2015
> @@ -39,6 +39,7 @@ module XG {
>    use XE
>    use XJ
>    use XK
> +  use XN
>  }
>
>  module XH {
> @@ -66,5 +67,11 @@ module XM {
>    textual header "m2.h"
>  }
>
> +module XN {
> +  module sub {
> +    header "sub.h"
> +  }
> +}
> +
>  module XS {
>  }
>
> Added: cfe/trunk/test/Modules/Inputs/declare-use/sub.h
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/declare-use/sub.h?rev=232159&view=auto
>
==============================================================================
> --- cfe/trunk/test/Modules/Inputs/declare-use/sub.h (added)
> +++ cfe/trunk/test/Modules/Inputs/declare-use/sub.h Fri Mar 13 06:26:16
2015
> @@ -0,0 +1,4 @@
> +#ifndef SUB_H
> +#define SUB_H
> +const int sub = 42;
> +#endif
>
> Modified: cfe/trunk/test/Modules/declare-use1.cpp
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/declare-use1.cpp?rev=232159&r1=232158&r2=232159&view=diff
>
==============================================================================
> --- cfe/trunk/test/Modules/declare-use1.cpp (original)
> +++ cfe/trunk/test/Modules/declare-use1.cpp Fri Mar 13 06:26:16 2015
> @@ -5,4 +5,5 @@
>  #include "e.h"
>  #include "f.h" // expected-error {{module XG does not depend on a module
exporting 'f.h'}}
>  #include "i.h"
> -const int g2 = g1 + e + f + aux_i;
> +#include "sub.h"
> +const int g2 = g1 + e + f + aux_i + sub;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150313/c1dab334/attachment.html>


More information about the cfe-commits mailing list