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

            Bug ID: 123944
           Summary: GCC incorrectly allows narrowing when
                    list-initializing a enum class
           Product: gcc
           Version: 15.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mingdeng7254 at gmail dot com
  Target Milestone: ---

GCC incorrectly accepts narrowing conversion when initializing a enum class
with fixed underlying type using list-initialization.

```cpp
enum class EnumWithFixedType : int { A = 1, B = 2 };

int main() {
    double value = 42.1;
    EnumWithFixedType e { value };
}
```

According to the standard, narrowing conversions are ill-formed in
list-initialization a enum class (https://eel.is/c++draft/dcl.init.list#3.8)).

Clang correctly emits an error, but GCC only warns.

A Godbolt link to the test case is here: https://godbolt.org/z/boWbhajT8

Reply via email to