aaron.ballman added inline comments.

================
Comment at: clang/lib/Sema/SemaModule.cpp:282
+  StringRef FirstComponentName = Path[0].first->getName();
+  if (!getSourceManager().isInSystemHeader(Path[0].second) &&
+      (FirstComponentName == "std" ||
----------------
ChuanqiXu wrote:
> cor3ntin wrote:
> > ChuanqiXu wrote:
> > > std modules should be irreverent with system headers; The intuition of 
> > > the wording should be that the users can't declare modules like `std` or 
> > > `std.compat` to avoid possible conflicting. The approach I imaged may be 
> > > add a new compilation flags (call it `-fstd-modules`) now. And if the 
> > > compiler found a `std` module declaration without `-fstd-modules`, emit 
> > > an error.  
> > > 
> > > For now, I think we can skip the check for `-fstd-modules` and add it 
> > > back when we starts to support std modules actually.
> > The idea is that standard modules are built from system directories... it 
> > seems a better heuristic than adding a flag for the purpose of 1 
> > diagnostics ( maybe some other system library could in theory export std 
> > with no warning, but I'm not super worried about that being a concern in 
> > practice)
> > The idea is that standard modules are built from system directories...
> 
> This is not true. For example, if someday libc++ supports std modules, then 
> we need to build the std modules in our working directory, which is not 
> system directories. And **ideally**, we would distribute and install module 
> file in the system directories. But it is irreverent with the path of the 
> source file.
> then we need to build the std modules in our working directory, which is not 
> system directories.

`-isystem`, pragmas, and linemarkers are all ways around that -- I don't think 
we need a feature flag for this, unless I'm misunderstanding something.


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

https://reviews.llvm.org/D136953

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

Reply via email to