Package: g++-14 Version: 14.2.0-3 Severity: normal Dear Maintainer,
* What led up to the situation? When trying to import a module in a C++ source file when --std=c++23 was specified when the module was compiled and --std=c++26 is specified when the source file is compiled the compiler shows the following error message: Module: error: language dialect differs ‘C++23/coroutines’, expected ‘C++26/coroutines’ Module: error: failed to read compiled module: Bad file data Module: note: compiled module file is ‘gcm.cache/Module.gcm’ Module: fatal error: returning to the gate for a mechanical issue compilation terminated. When --std=c++26 was specified when the module was compiled the compiler does not show an error message. * What exactly did you do (or not do) that was effective (or ineffective)? The following source file (e.g., interface.cc) defines the module: module Module; export int value; and the module is used in the following source file (e.g., fun.cc): import Module; void fun() { value = 10; } 'interface.cc' was compiled using using g++ --std=c++23 -fmodules-ts -c interface.cc 'fun.cc' was compiled using using g++ --std=c++26 -fmodules-ts -c fun.cc * What was the outcome of this action? when compiling 'interface.cc' and 'fun.cc' using the mentioned g++ commands the abovementioned error is reported. When using c++26 when compiling interface.cc and c++23 when compiling fun.cc a comparable error is reported. When specifying the same standard (either c++23 or c++26 when compiling both files no error is reported. * What outcome did you expect instead? Normally specifying a more recent C++ standard then files compiled with an older standard can still be used. I would have expected the same situation when compiling/using modules. Maybe it's just the switch from c++23 to c++26, and will the error disappear when combining c++26 and the standard following c++26, but if not, then we may have to recompile all already compiled modules or all source files using modules once a new standard becomes available, which is -let's say- inconvenient. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 6.10.6-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages g++-14 depends on: ii g++-14-x86-64-linux-gnu 14.2.0-3 ii gcc-14 14.2.0-3 ii gcc-14-base 14.2.0-3 g++-14 recommends no packages. Versions of packages g++-14 suggests: pn g++-14-multilib <none> pn gcc-14-doc <none> -- no debconf information