[libcxx-commits] [libcxx] [libc++] Fix ABI tag mismatches during C++20 module deserialization (PR #213495)
Damian Höster via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Aug 4 12:03:56 PDT 2026
================
@@ -88,7 +88,8 @@ _LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS
# if _LIBCPP_HAS_UNICODE
template <class = void> // TODO PRINT template or availability markup fires too eagerly (http://llvm.org/PR61563).
-_LIBCPP_HIDE_FROM_ABI void __vprint_unicode(ostream& __os, string_view __fmt, format_args __args, bool __write_nl) {
+_LIBCPP_HIDE_FROM_ABI inline void
----------------
damster101 wrote:
Yes, "inline linkage" is not a thing, I meant external linkage with ODR exemption gained from implicit inline. Which is how `__vprint_unicode` is treated in case of header include, while in case of module import you get no implicit inline and module linkage.
Explicit inline overrides both default context rules and makes the linkage and symbol generation identical regardless.
https://github.com/llvm/llvm-project/pull/213495
More information about the libcxx-commits
mailing list