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

            Bug ID: 111538
           Summary: Unhelpful message when returning initializer list when
                    deducing the return type
           Product: gcc
           Version: 13.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: barry.revzin at gmail dot com
  Target Milestone: ---

Consider:

auto f(bool c) {
    if (c) {
        return 2;
    } else {
        return {};
    }
}

This code is ill-formed, but the error gcc 13 gives is:

<source>:5:17: error: returning initializer list
    5 |         return {};
      |                 ^

But returning an initializer list is fine... sometimes. It's just not fine
here, specifically. So would be nice if the error reflected that. Maybe
something to the effect of:

"error: returning an initializer list from a function with deduced return type
is not allowed"
  • [Bug c++/111538] New: Unhelpful... barry.revzin at gmail dot com via Gcc-bugs

Reply via email to