urnathan added a comment. In D120397#3340256 <https://reviews.llvm.org/D120397#3340256>, @erichkeane wrote:
> Linkage stuff is where I get lost quickly, hopefully @urnathan can comment > here. Codewise I think this looks right. looks right to me too -- take the linkage from the most general template. ================ Comment at: clang/test/Modules/inconsist-export-template.cpp:1-2 +// RUN: %clang_cc1 -std=c++20 %s -fsyntax-only -verify +// expected-no-diagnostics +export module m; ---------------- dblaikie wrote: > This test doesn't appear to test anything - it verifies that this file > produces no diagnostics, but not that it has any other/particular behavior. > > Should this be testing codegen to verify that the correct linkage was used on > the resulting IR functions? > > Are there other ways of observing the particular language-level linkage of > the entities to confirm it's as expected? yes, this should be a codegen test (clang/test/CodeGenCXX/Modules/cxx20-$something.cpp? ================ Comment at: clang/test/Modules/inconsist-export-template.cpp:19-23 +// FIXME: We should reject following specialization, +// since it tries to export a name which is already introduced. +export template <> +void f1<int>() { + ---------------- I don't think we should be testing for ill-formed code here. We want to verify that explicit instantiations, explicit specializations and implicit instantiations all get the expected linkage -- both external linkage on exported entities, module linkage on non-exported module-purview entities. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D120397/new/ https://reviews.llvm.org/D120397 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits