https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110581

            Bug ID: 110581
           Summary: Weird error message for returning from a [[noreturn]]
                    function in constant evaluation
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: de34 at live dot cn
  Target Milestone: ---

GCC rejects the following code snippet since GCC14, which is correct because
the code raises UB in constant evaluation (https://godbolt.org/z/neP1MKnxY)

[[noreturn]] constexpr void unreachable_like() {}
constexpr int x = (unreachable_like(), 0);

However, the current error message is weird and possibly misleading:
> error: lvalue-to-rvalue conversion of a volatile lvalue 'unreachable_like' 
> with type 'void()'

We should say something about `[[noreturn]]` insead superfluous `volatile`.

Reply via email to