gamesh411 added a comment. In D150647#4345345 <https://reviews.llvm.org/D150647#4345345>, @steakhal wrote:
>> In C++17 the initialization rules for enum classes are relaxed. > > In what way are they relaxed compared to regular enums? The initialization rules are relaxed compared to their pre-C++17 state, so now there is a possibility of an initialization for enum classes without explicitly mentioning the underlying type. I have updated the revision body. That all being said, there is another fundamental issue with this checker, namely that the possible value range is I think restricted to the ones explicitly mentioned in the enumerators. For example in the std::byte case even the old way of initializing gives a false positive. I am investigating the issue, and have found so far, that fixed underlying-typed and non-fixed underlying-typed enums behave differently, which is not considered in the checker code. Relevant info dump for future quoting: https://eel.is/c++draft/dcl.enum#5 https://eel.is/c++draft/dcl.enum#7 https://eel.is/c++draft/dcl.enum#8 https://eel.is/c++draft/expr.static.cast#10 https://eel.is/c++draft/conv.fpint Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150647/new/ https://reviews.llvm.org/D150647 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits