https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120962
Bug ID: 120962
Summary: " XXX references internal linkage entity YYY" when
compiling a module interface
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: markus.parker at arcor dot de
Target Milestone: ---
The following module interface file does not compile:
export module moduleTest;
namespace {
void bar(){}
}
template<class T>
struct scalar_traits {
static void type_bar (const T& t) {
bar();
}
};
export int foo() {
return 0;
}
Compiling yields:
/xxx # g++ -c -std=c++20 -fmodules-ts ModuleTest.cxx
ModuleTest.cxx:11:15: error: 'template<class T> static void
scalar_traits<T>::type_bar(const T&)' references internal linkage entity 'void
{anonymous}::bar()'
11 | static void type_bar (const T& t) {
| ^~~~~~~~
ModuleTest.cxx:3:9: error: failed to write compiled module: Bad file data
3 | export module moduleTest;
| ^~~~~~
ModuleTest.cxx:3:9: note: compiled module file is 'gcm.cache/moduleTest.gcm'
/xxx #
If scalar_traits is not a template struct or void bar() is not within an
anonymous namespace, the code compiles.
This seems similar to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112621, but
if I understand correctly, this should be fixed in 14.2.
/xxx # gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-alpine-linux-musl/14.2.0/lto-wrapper
Target: x86_64-alpine-linux-musl
Configured with: /home/buildozer/aports/main/gcc/src/gcc-14.2.0/configure
--prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl
--target=x86_64-alpine-linux-musl --enable-checking=release --disable-cet
--disable-fixed-point --disable-libstdcxx-pch --disable-multilib --disable-nls
--disable-werror --disable-symvers --enable-__cxa_atexit --enable-default-pie
--enable-default-ssp --enable-languages=c,c++,d,objc,go,fortran,ada
--enable-link-serialization=2 --enable-linker-build-id --disable-libssp
--disable-libsanitizer --enable-shared --enable-threads --enable-tls
--with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
--with-system-zlib --with-linker-hash-style=gnu --with-pkgversion='Alpine
14.2.0'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.2.0 (Alpine 14.2.0)