1. It breaks compilers without support for __attribute__ 2. It breaks system headers that declare variables named __unused (eg. musl libc).