https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102317
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The optimize attribute is how different options are represented in LTO compilation, so it grew over years from perhaps initial debugging use to something that is used everywhere. And we definitely aren't going to add further and further attributes that match just a small subset of the optimize and/or target attributes, especially when they'd need to use the same infrastructure under the hood anyway. If you don't want to use optimize attribute, there is always the option to just do the arithmetics in unsigned types in the few selected functions where you don't want the sanitization, and if you really want use -fwrapv-pointer together with -fsanitize=integer-signed-overflow and throw away -fno-strict-overflow.