https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125356
Bug ID: 125356
Summary: failed to read compiled module cluster. Bad file data
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: leander.schulten at tetys dot de
Target Milestone: ---
I tried it with gcc trunc:
https://godbolt.org/z/W8r18fdbP
env.cpp:
```c++
#pragma once
namespace env
{
// must be static inline
static inline void parse_bool()
{
// without this the code compiles (must be an lambda)
auto equal_case_insensitive = []() {};
}
struct prefix
{
void register_variable()
{
parse_bool();
}
};
} // namespace env
```
environment.cpp:
```c++
module;
#include <env.hpp>
export module runtimeCore;
export {
template <typename VarType>
struct EnvironmentVariableBase
{
EnvironmentVariableBase(){
env::prefix{}.register_variable();
}
};
}
```
paths.cpp:
```c++
module;
// this does not help
// #include <env.hpp>
export module test;
import runtimeCore;
struct PathEnvironment
{
EnvironmentVariableBase<bool> loadConfig;
};
```
Output:
```
[1/6] /opt/compiler-explorer/gcc-snapshot/bin/g++ -I/app/.
-fdiagnostics-color=always -O2 -g -DNDEBUG -std=gnu++23 -E -x c++
/app/paths.cpp -MT CMakeFiles/test_target.dir/paths.cpp.o.ddi -MD -MF
CMakeFiles/test_target.dir/paths.cpp.o.ddi.d -fmodules-ts
-fdeps-file=CMakeFiles/test_target.dir/paths.cpp.o.ddi
-fdeps-target=CMakeFiles/test_target.dir/paths.cpp.o -fdeps-format=p1689r5 -o
CMakeFiles/test_target.dir/paths.cpp.o.ddi.i
[2/6] /opt/compiler-explorer/gcc-snapshot/bin/g++ -I/app/.
-fdiagnostics-color=always -O2 -g -DNDEBUG -std=gnu++23 -E -x c++
/app/environment.cpp -MT CMakeFiles/test_target.dir/environment.cpp.o.ddi -MD
-MF CMakeFiles/test_target.dir/environment.cpp.o.ddi.d -fmodules-ts
-fdeps-file=CMakeFiles/test_target.dir/environment.cpp.o.ddi
-fdeps-target=CMakeFiles/test_target.dir/environment.cpp.o
-fdeps-format=p1689r5 -o CMakeFiles/test_target.dir/environment.cpp.o.ddi.i
[3/6] /opt/compiler-explorer/cmake/bin/cmake -E cmake_ninja_dyndep
--tdi=CMakeFiles/test_target.dir/CXXDependInfo.json --lang=CXX --modmapfmt=gcc
--dd=CMakeFiles/test_target.dir/CXX.dd @CMakeFiles/test_target.dir/CXX.dd.rsp
[4/6] /opt/compiler-explorer/gcc-snapshot/bin/g++ -I/app/.
-fdiagnostics-color=always -O2 -g -DNDEBUG -std=gnu++23 -MD -MT
CMakeFiles/test_target.dir/environment.cpp.o -MF
CMakeFiles/test_target.dir/environment.cpp.o.d -fmodules-ts
-fmodule-mapper=CMakeFiles/test_target.dir/environment.cpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/test_target.dir/environment.cpp.o -c
/app/environment.cpp
[5/6] /opt/compiler-explorer/gcc-snapshot/bin/g++ -I/app/.
-fdiagnostics-color=always -O2 -g -DNDEBUG -std=gnu++23 -MD -MT
CMakeFiles/test_target.dir/paths.cpp.o -MF
CMakeFiles/test_target.dir/paths.cpp.o.d -fmodules-ts
-fmodule-mapper=CMakeFiles/test_target.dir/paths.cpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/test_target.dir/paths.cpp.o -c
/app/paths.cpp
FAILED: CMakeFiles/test_target.dir/paths.cpp.o
CMakeFiles/test_target.dir/test.gcm
/opt/compiler-explorer/gcc-snapshot/bin/g++ -I/app/.
-fdiagnostics-color=always -O2 -g -DNDEBUG -std=gnu++23 -MD -MT
CMakeFiles/test_target.dir/paths.cpp.o -MF
CMakeFiles/test_target.dir/paths.cpp.o.d -fmodules-ts
-fmodule-mapper=CMakeFiles/test_target.dir/paths.cpp.o.modmap -MD
-fdeps-format=p1689r5 -x c++ -o CMakeFiles/test_target.dir/paths.cpp.o -c
/app/paths.cpp
In module imported at /app/paths.cpp:8:1:
runtimeCore: error: failed to read compiled module cluster 1: Bad file data
runtimeCore: note: compiled module file is
'CMakeFiles/test_target.dir/runtimeCore.gcm'
runtimeCore: error: failed to read compiled module cluster 2: Bad file data
runtimeCore: error: failed to read compiled module cluster 3: Bad file data
paths.cpp:12:5: fatal error: failed to load binding
'::EnvironmentVariableBase@runtimeCore'
12 | EnvironmentVariableBase<bool> loadConfig;
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
```