https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114630

            Bug ID: 114630
           Summary: [modules] building module with submodule causes
                    corrupt gcm
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nickbegg at gmail dot com
  Target Milestone: ---

Building module code with a submodule produces - failed to load pendings for
‘std::__format::__formatter_int’

This is similar to PR99426. Using test code very similar to PR113930 and
PR114229. this is compiling with a trunk debug gcc, with the patch proposed for
PR99426 applied. 

% /home/nick/inst/gcc-trunk-debug/bin/g++ --version
g++ (GCC) 14.0.1 20240405 (experimental)

Test code - 

//  modA.mpp
module;

#include <format>

export module modA;
import modB;

//  modB.mpp
module;

#include <format>

export module modB;

//  main.cpp
#include <format>

import modA;

//

Compiling trips over when loading modA when compiling main.cpp. Output -

modB.mpp:

 /home/nick/inst/gcc-trunk-debug/bin/g++   -g -std=gnu++23 -Wall -Wextra
-freport-bug --param=ggc-min-expand=10000 -MD -MT
CMakeFiles/moduleMin.dir/modB.mpp.o -MF CMakeFiles/moduleMin.dir/modB.mpp.o.d
-fmodules-ts -fmodule-mapper=CMakeFiles/moduleMin.dir/modB.mpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/moduleMin.dir/modB.mpp.o -c
/home/nick/src/moduleMin/modB.mpp

modA.mpp:

/home/nick/inst/gcc-trunk-debug/bin/g++   -g -std=gnu++23 -Wall -Wextra
-freport-bug --param=ggc-min-expand=10000 -MD -MT
CMakeFiles/moduleMin.dir/modA.mpp.o -MF CMakeFiles/moduleMin.dir/modA.mpp.o.d
-fmodules-ts -fmodule-mapper=CMakeFiles/moduleMin.dir/modA.mpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/moduleMin.dir/modA.mpp.o -c
/home/nick/src/moduleMin/modA.mpp

main.cpp: 

/home/nick/inst/gcc-trunk-debug/bin/g++   -g -std=gnu++23 -Wall -Wextra
-freport-bug --param=ggc-min-expand=10000 -MD -MT
CMakeFiles/moduleMin.dir/main.cpp.o -MF CMakeFiles/moduleMin.dir/main.cpp.o.d
-fmodules-ts -fmodule-mapper=CMakeFiles/moduleMin.dir/main.cpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/moduleMin.dir/main.cpp.o -c
/home/nick/src/moduleMin/main.cpp

In module imported at /home/nick/src/moduleMin/main.cpp:3:1:
modA: error: failed to read compiled module cluster 3008: Bad file data
modA: note: compiled module file is ‘CMakeFiles/moduleMin.dir/modA.gcm’
modA: error: failed to read compiled module cluster 3009: Bad file data
In file included from /home/nick/src/moduleMin/main.cpp:1:
/home/nick/inst/gcc-trunk-debug/include/c++/14.0.1/format:1899:35: fatal error:
failed to load pendings for ‘std::__format::__formatter_int’
 1899 |         return _M_f._M_parse<char>(__pc);
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~
compilation terminated.

Reply via email to