[all-commits] [llvm/llvm-project] 9992b3: [libc++][Modules] Remove explicit exports from mod...

Ian Anderson via All-commits all-commits at lists.llvm.org
Wed Jul 5 09:52:17 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9992b386bf3c4972494c5e4f571dff24db59a383
  Author: Ian Anderson <iana at apple.com>
  Date:   2023-07-05 (Wed, 05 Jul 2023)

  Changed paths:
    M libcxx/include/module.modulemap.in

  Log Message:
  [libc++][Modules] Remove explicit exports from modules that `export *`

This may be a clang bug, but explicit exports interfere with `export *`, especially in local submodule visibility mode. For example, exporting `depr.stdint_h` from `cstdint` causes std::int32_t to become an "unresolved using declaration" in LSV if `cstdint` and `stdint.h` are promoted to top level modules. This was previously worked around by exporting `Darwin.C.stdint` in `depr.stdint_h`, but that only works on Apple platforms, and it stops working when `cstdint` and `stdint.h` are promoted to top level modules.

Remove all of the explicit `export` statements in modules that have `export *`.

Reviewed By: ldionne, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D153212

More information about the All-commits mailing list