https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93513
Bug ID: 93513 Summary: internal compiler error internal compiler error: unexpected expression ‘(char)(e)’ of kind cast_expr Product: gcc Version: 9.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: andij.cr at gmail dot com Target Milestone: --- compiling this c++ code enum class error {}; template <typename F> void afunction(F) { error{char(0)}; } with g++ 9.2 with std=c++17 or std=c++20 will give internal compiler error: unexpected expression ‘(char)(0)’ of kind cast_expr 4 | error{char(0)}; | ^ in contrast, with std=c++14: error: cannot convert ‘char’ to ‘error’ in initialization 4 | error{char(0)}; | ^~~~~~~ | | | char checking with compiler explorer, it seems that gcc 8.3 does not generate this error: https://gcc.godbolt.org/z/yZ9ckH