[PATCH] D134267: [C++] [Modules] Support one phase compilation model for named modules
Chuanqi Xu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 11 02:07:02 PDT 2022
ChuanqiXu added a comment.
In D134267#3848876 <https://reviews.llvm.org/D134267#3848876>, @iains wrote:
> If we are going to **//require//** the serialisation/deserialisation for correctness then IMO we should have an error for an incorrect compilation.
Of course.
> I still feel that deserialisation should do deserialisation, and Sema should be doing the diagnoses when it tries to use a decl (in fact, I would expect that to be required for correctness in the C++20 scheme, since the point of use is significant). I will defer to folks who know the history better - but this seems like a layering bug to me still.
Another reason I forgot to mention is that the deserialization need to do merging. It is common in practice that a similar declarations lives in multiple module files (e.g., by GMF). Then if the deserialization needs to merge things, it is naturally that the deserilizer need to do ODR checks. But if you feel like the merging job belongs to Sema too, I think it might not be bad/wrong.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134267/new/
https://reviews.llvm.org/D134267
More information about the cfe-commits
mailing list