[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)
Chuanqi Xu via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 8 18:25:14 PDT 2024
================
@@ -2527,7 +2527,7 @@ class BitsUnpacker {
inline bool shouldSkipCheckingODR(const Decl *D) {
return D->getASTContext().getLangOpts().SkipODRCheckInGMF &&
- D->isFromGlobalModule();
+ (D->isFromGlobalModule() || !D->isInNamedModule());
----------------
ChuanqiXu9 wrote:
They are different (and unfortunate) abstract layers. For example, according to the standard, everything not in a named module should be treated in the global module. However, in clang, in several places, we can't simply write `!isInNamedModule()` since we have clang modules and PCHs.
In clang we tried to be close to the wording of the spec but there are places (not limited to modules) they are not strictly the same.
https://github.com/llvm/llvm-project/pull/111160
More information about the cfe-commits
mailing list