mpark wrote: > > > If you did `-fmodule-file=<name>=<pcm>` for header units, I think it is > > > better to upstream that first. I think it is more fundamental. > > > > > > We don't do anything special downstream. As far as I know it already works > > today. > > If `-fmodule-file=<name>=<pcm>` already works for header units, it is helpful > to update the documents.
Well, it "works" but my understanding is that it's not officially supported today in Clang. My understanding is that header units technically are anonymous, and therefore don't have a module name. Is that correct? What we do downstream roughly is to just give the header unit a module name corresponding to its path. ``` clang++ -std=c++23 --precompile -xc++-user-header lib.h -fmodule-name=lib.h -o lib.pcm ``` then to use it, provide: `-fmodule-file=lib.h=lib.pcm` and `-fmodule-map-file=lib.modulemap` that looks like: ``` module "lib.h" { header "lib.h" export * } ``` This makes it such that an `import "lib.h"` does what we want with respect to lazy loading and such. Given that we're hacking around an unofficial implementation detail in a sense... I'm not sure it makes sense to document it per se 😕 What do you think? https://github.com/llvm/llvm-project/pull/135147 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits