https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127194
Bug ID: 127194
Summary: failed to load pendings when using std::inplace_vector
with modules
Product: gcc
Version: 16.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: andrey.antufyev at yandex dot ru
Target Milestone: ---
Works with array, vector and list, but not with inplace_vector.
Also, different combinations of lines in main give different errors (see
comments).
Using iostreams instead of print results in a fatal error: failed to load
pendings for ‘__gnu_cxx::__normal_iterator’.
mymodule.cppm
```cpp
module;
#include <inplace_vector>
export module mymodule;
export auto make() {
return std::inplace_vector<int, 64>{};
}
```
main.cpp
```cpp
#include <print>
import mymodule;
int main() {
// comment both lines for fatal error: failed to load pendings for
‘__gnu_cxx::__normal_iterator’
// uncomment println for fatal error: failed to load pendings for
‘std::reverse_iterator’
// uncomment return for fatal error: failed to load binding
‘::make@mymodule’
std::println("Hello, world!");
// return make().size();
}
```
g++ -std=c++26 -fmodules mymodule.cppm main.cpp
```shell
In module imported at main.cpp:2:1:
/usr/include/c++/16/array: In instantiation of ‘struct
std::array<std::__format::_Arg_t, 0>’:
/usr/include/c++/16/format:5253:2: required from ‘class
std::__format::_Checking_scanner<char>’
5253 | _M_types{ { __format::__to_arg_t_enum<_CharT, _Args>()... } };
| ^~~~~~~~
/usr/include/c++/16/format:5435:4: required from ‘consteval
std::basic_format_string<_CharT, _Args>::basic_format_string(const _Tp&) [with
_Tp = char [14]; _CharT = char; _Args = {}]’
5435 | __scanner(_M_str);
| ^~~~~~~~~
main.cpp:9:18: required from here
9 | std::println("Hello, world!");
| ^~~~~~~~~~~~~~~
mymodule: error: failed to read compiled module cluster 1131: Bad file data
mymodule: note: compiled module file is ‘gcm.cache/mymodule.gcm’
mymodule: error: failed to read compiled module cluster 1134: Bad file data
In file included from /usr/include/c++/16/format:46,
from /usr/include/c++/16/print:43,
from main.cpp:1:
/usr/include/c++/16/array:113:55: fatal error: failed to load pendings for
‘std::reverse_iterator’
113 | typedef std::reverse_iterator<iterator> reverse_iterator;
| ^~~~~~~~~~~~~~~~
compilation terminated.
```
g++ -v
```shell
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/16/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure
--enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust,cobol
--enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues
--with-build-config=bootstrap-lto --with-gcc-major-version-only
--with-linker-hash-style=gnu --with-system-zlib --enable-cet=auto
--enable-checking=release --enable-clocale=gnu --enable-default-pie
--enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object
--enable-libstdcxx-backtrace --enable-link-serialization=1
--enable-linker-build-id --enable-lto --enable-multilib --enable-plugin
--enable-shared --enable-threads=posix --disable-fixincludes --disable-libssp
--disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.2.1 20260810 (GCC)
```