https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88363
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- Interestingly, C++ definition of /integer type/ does not include enumerated types so there the change had the opposite effect: code that was previously accepted now gets a warning. Ironically, Clang accepts and optimizes the code in C mode but rejects it in mode with: t.c:4:30: error: 'alloc_align' attribute argument may only refer to a function parameter of integer type __attribute__ ((alloc_align (1))) void* fA (enum A); ^ ~~~~~~