https://bugs.llvm.org/show_bug.cgi?id=39655

            Bug ID: 39655
           Summary: Modules: Support umbrella modules with inferred
                    submodule declaration in -frewrite-imports
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Modules
          Assignee: unassignedclangb...@nondot.org
          Reporter: dblai...@gmail.com
                CC: dgre...@apple.com, llvm-bugs@lists.llvm.org,
                    richard-l...@metafoo.co.uk

foo.h:
  inline void foo() {}

module.modulemap:
  module dot {
  umbrella "."
  module * { export * }
  }

use.cpp:
  #include "foo.h"
  int main() { foo(); }  

$ clang++ -fmodules -fimplicit-module-maps -fmodules-cache-path=cache \
    -I . use.cpp -frewrite-imports -E -o use-rewrite.cpp

$ clang++-tot -fmodules use-rewrite.cpp
<module-includes>:1:30: error: submodule A.'foo' not declared in module map
#pragma clang module begin A.foo
                             ^
While building module 'A' imported from use-rewrite.cpp:1:
In file included from <module-includes>:2:
/usr/local/google/home/blaikie/dev/scratch/implicit_modules_sample/./foo.h:2:22:
error: no matching '#pragma clang module begin' for this
      '#pragma clang module end'
#pragma clang module end /*A.foo*/
                     ^
use.cpp:1:29: fatal error: module 'A' not found
#pragma clang module import A.foo /* clang -frewrite-includes: implicit import
*/
                     ~~~~~~~^
3 errors generated.


But without the inferred-submodule-declaration, this example compiles and
rewrites-imports correctly - similarly with an explicit sudmodule declaration
seems to work correctly too.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to