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