[PATCH] D120540: [Driver] Enable to use C++20 modules standalone by -fcxx-modules

Iain Sandoe via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 4 01:10:09 PST 2022


iains added a comment.

1. I agree 100% that the driver needs to be able to process in "c++20 modules mode"; there is some handling of sources that should be changed accordingly.

2. I believe that it is a general objective of the tooling folks (roughly SG15 participants) that C++20 modules should (eventually) be considered automatic for C++20+

3. There is at least one request from tooling folks that there should be an option to disable modules (even when in C++20  mode); this is a practical measure to avoid the case that it is impossible to build a TU because of some potential modules-related bug ...

4. IMO it becomes increasingly important to try and decouple the clang modules from C++20 modules as much as possible.

So .. I was going to suggest that we might introduce -fmodules= {none, clang, c++20, ...} 
with defaults picked:

   fmodules => clang (i.e. the current meaning)
  
  !fmodules && C++20+ => c++20 (i.e. the objective of (2) above
  Where there are other flags that imply C++20 that can switch c++20 mode as well
  
  otherwise the default would be "none"

.. this provides for (3) ... since -std=c++20 -fmodules=none could be used.

I do not have a patch for this proposal as of this time (my current patches assume (2) but do not meet the objective of (3))


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D120540/new/

https://reviews.llvm.org/D120540



More information about the cfe-commits mailing list