[all-commits] [llvm/llvm-project] 6e4f87: re-land [C++20][Modules] Introduce an implementati...
Iain Sandoe via All-commits
all-commits at lists.llvm.org
Tue Mar 28 20:23:10 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6e4f870a21e344fdcd61fe613b0aeeafb8a84ed2
https://github.com/llvm/llvm-project/commit/6e4f870a21e344fdcd61fe613b0aeeafb8a84ed2
Author: Iain Sandoe <iain at sandoe.co.uk>
Date: 2023-03-29 (Wed, 29 Mar 2023)
Changed paths:
M clang/include/clang/Basic/Module.h
M clang/include/clang/Lex/ModuleMap.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/Decl.cpp
M clang/lib/CodeGen/CGDeclCXX.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Lex/ModuleMap.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaModule.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/test/CXX/module/basic/basic.def.odr/p4.cppm
M clang/test/CXX/module/basic/basic.link/p2.cppm
M clang/test/CodeGenCXX/module-intializer.cpp
Log Message:
-----------
re-land [C++20][Modules] Introduce an implementation module.
We need to be able to distinguish individual TUs from the same module in cases
where TU-local entities either need to be hidden (or, for some cases of ADL in
template instantiation, need to be detected as exposures).
This creates a module type for the implementation which implicitly imports its
primary module interface per C++20:
[module.unit/8] 'A module-declaration that contains neither an export-keyword
nor a module-partition implicitly imports the primary module interface unit of
the module as if by a module-import-declaration.
Implementation modules are never serialized (-emit-module-interface for an
implementation unit is diagnosed and rejected).
Differential Revision: https://reviews.llvm.org/D126959
More information about the All-commits
mailing list