Internal compiler error on GCC with modules

Abierto
#2,148 1 comentario 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
cpp
Área
compilers

Línea de trabajo

Empieza reproduciendo el fallo con Test.cpp, GCC 16.1.1, -std=c++26 y -fmodules, y después compara el resultado con Clang. Inspecciona el fallo en __query.hpp, línea 177, y su relación con #2139; la tarea estará terminada cuando se haya aislado si el responsable es stdexec o GCC y se haya documentado un fix, workaround o upstream report confirmado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

When trying to compile the library with any modules on GCC (specifically GCC 16.1.1), I get an internal compiler error. For example, the following program Test.cpp

#include <stdexec/execution.hpp>

import std;

int main() {
    std::println("Hello, world!");
}

with the command g++ Test.cpp -o Test -std=c++26 -fmodules, I get this error:

In file included from /usr/include/stdexec/__detail/__env.hpp:22,
                 from /usr/include/stdexec/__detail/__debug.hpp:22,
                 from /usr/include/stdexec/__detail/__completion_signatures_of.hpp:21,
                 from /usr/include/stdexec/__detail/__as_awaitable.hpp:24,
                 from /usr/include/stdexec/execution.hpp:22,
                 from Test.cpp:1:
/usr/include/stdexec/__detail/__query.hpp:177:39: internal compiler error: Segmentation fault
  177 |   inline constexpr forwarding_query_t forwarding_query{};
      |                                       ^~~~~~~~~~~~~~~~
0x1929892 internal_error(char const*, ...)
        ???:0
0x1a3e403 duplicate_decls(tree_node*, tree_node*, bool, bool)
        ???:0
0x1beeb37 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int, tree_node*, tree_node*, tree_node**)
        ???:0
0x278bb31 c_parse_file()
        ???:0
0x2761230 c_common_parse_file()
        ???:0
/usr/lib/gcc/x86_64-pc-linux-gnu/16/cc1plus -quiet -D_GNU_SOURCE Test.cpp -quiet -dumpdir Test- -dumpbase Test.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=c++26 -fmodules -o /tmp/ccLyV9c4.s
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://github.com/CachyOS/CachyOS-PKGBUILDS/issues> for instructions.

This doesn't seem to happen on Clang, and perhaps this issue is better reported directly upstream on GCC (which I'm not really sure how to do), but I do think this is worth pointing out as the library is basically unusable on GCC with modules on my end.

This is in particular a problem because it also prevents any work on providing the stdexec library as a module (see #2139).

Lenguaje dominante
C++
Estrellas
2.4k
Forks
270
Merge medio
2 d 17 h
PR fusionados (30 d)
37

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA/stdexec

Todos los issues de NVIDIA/stdexec

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.