https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120499
Bug ID: 120499 Summary: import std: indirect use of an exported class using a vector yields undefined symbol Product: gcc Version: 15.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nico at josuttis dot de Target Milestone: --- ***** Module file: export module Coll; import std; export class Coll { std::vector<int> vals; }; export Coll createColl() { return Coll{}; } ***** main file: import std; import Coll; int main() { auto coll = createColl(); } Yields into: /cygdrive/p/gcc/gcc151/bin/g++151 --std=c++23 -O2 -Wall -Wextra -fmodules -fsearch-include-path -fmodules -fsearch-include-path bits/std.cc -xc++ collmod.cppm testcoll.cpp -o collmodraw.exe /bin/ld: /cygdrive/c/Users/nico2/AppData/Local/Temp/ccSwGTq6.o:testcoll.cpp:(.text.startup+0x31): undefined reference to `_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev' collect2: error: ld returned 1 exit status Module std built with: /cygdrive/p/gcc/gcc151/bin/g++151 --std=c++23 -O2 -Wall -Wextra -fmodules -fsearch-include-path -fmodule-only -c bits/std.cc