https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87667
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- I think the warning is correct. A scoped enumeration type is not subject to integral promotion, so the argument is not promoted to int. When the body of printf tries to read an int from the argument the behaviour is undefined.