Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

exec/async_scope.hpp: "invalid use of void expression" in on_empty() with nvcc 12.9 and gcc-12 host compiler

Ouverte
#2,304 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
54/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
cpp
Domaine
compilers

Piste de recherche

Start by reading exec/async_scope.hpp around lines 823–825, especially on_empty(), and compare the related inline_scheduler fix in #2288. Run the standalone repro.cu compile command with nvcc 12.9 and gcc-12 to confirm the failure. Done means establishing whether this compiler combination is supported and whether the issue can be resolved in async_scope.hpp.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Including <exec/async_scope.hpp> fails to compile under nvcc with gcc-12 as the host compiler. We observed this in HPX's CUDA CI, where a .cu test pulls in the header through hpx/execution.hpp.

Environment

  • nvcc: CUDA 12.9
  • host compiler: gcc-12
  • stdexec: main

Error
exec/async_scope.hpp:823-825
return when_empty(just());
error: invalid use of void expression

Observed in

Standalone repro (not yet verified outside HPX CI)
// repro.cu
#include <exec/async_scope.hpp>
int main() {}

nvcc -std=c++20 -ccbin g++-12 -I<stdexec>/include -c repro.cu

Notes

  • The same error on this line was reported as GCC bug 114393, so this may be a gcc-12 front-end problem that nvcc exposes.
  • A similar nvcc failure in inline_scheduler (#2284) was fixed with a CUDACC guard in #2288. This looks like a separate problem in async_scope.

Questions

  • Is nvcc with gcc-12 a supported combination for exec/async_scope.hpp?
  • Would a CUDACC guard or a workaround in on_empty() (for example an explicit return type) be acceptable, as in #2288?
Langage dominant
C++
Étoiles
2.5k
Forks
276
Merge moyen
1 j 16 h
PR mergées (30 j)
45

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NVIDIA/stdexec

Toutes les issues de NVIDIA/stdexec

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.