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)
```
  • [Bug c++/127194] New: failed... andrey.antufyev at yandex dot ru via Gcc-bugs

Reply via email to