According to [dcl.init.list]p7:
A narrowing conversion is an implicit conversion - ... - from an integer type or unscoped enumeration type to a floating-point type, except where the source is a constant expression and the actual value after conversion will fit into the target type and will produce the original value when converted back to the original type, or - ...
Currently clang does not handle the 'unscoped enumeration' case. This
patch fixes the corresponding check.