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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to