[Bug c++/126354] Returning from [[noreturn]] function not rejected in constant evaluation

"cvs-commit at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126354

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <[email protected]>:

https://gcc.gnu.org/g:571aae1dc596ec58bca11534800a857109dce498

commit r17-2664-g571aae1dc596ec58bca11534800a857109dce498
Author: Jakub Jelinek <[email protected]>
Date:   Thu Jul 23 15:42:10 2026 +0200

    c++: Diagnose return from [[noreturn]] function during constant evaluation
[PR126354]

    This PR complains about g++ not diagnosing return from [[noreturn]]
    function (which is UB) during constant evaluation.

    This patch diagnoses that.
    I haven't included the [[noreturn]] function name in the diagnostics
    as it is printed in the context:
    /home/jakub/src/gcc/gcc/testsuite/g++.dg/cpp1y/pr126354.C:18:24:   in
'constexpr' expansion of 'bar()'
    /home/jakub/src/gcc/gcc/testsuite/g++.dg/cpp1y/pr126354.C:15:7:   in
'constexpr' expansion of 'foo(false)'
    /home/jakub/src/gcc/gcc/testsuite/g++.dg/cpp1y/pr126354.C:15:7: error:
'[[noreturn]]' call returns
    But if you think it is better to emit
    error ("%<[[noreturn]]%> %qD call returns", fun);
    instead, I can certainly do that.

    2026-07-23  Jakub Jelinek  <[email protected]>

            PR c++/126354
            * constexpr.cc (cxx_eval_call_expression): Diagnose return from
            [[noreturn]] function.

            * g++.dg/cpp1y/pr126354.C: New test.
            * g++.dg/cpp26/pr126354.C: New test.

    Reviewed-by: Jason Merrill <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.