https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128083
--- Comment #3 from Zhongteng Gui <dragon-archer at outlook dot com> ---
(In reply to Jonathan Wakely from comment #1)
> It's not entirely redundant, because we still aim for compatibility with
> much older releases and if something affects that, it's relevant.
>
> You can use -Wabi=n to say you don't care about differences against older
> releases, or -Wno-psabi
I doubt if there'll really be anyone do a sudden upgrade from GCC 4.x to GCC
17+. And even if so, there is likely more breaking changes. For example, GCC
5.1 use C++11 abi for std::string and std::list, it's true that it'll warn if
you explicitly enables -Wabi-tag, but usually nobody do so, as it's not
included in -Wall or -Wextra.
The note here is different, it's triggered by default, even without -Wall. It
can be triggered by default (as long as you don't default to -march=x86-64-v3
or higher) with the following simple snippet
struct aligned_value {
unsigned char bytes[32];
} __attribute__((aligned(32)));
static int check_value(struct aligned_value value)
{
return 0;
}
1.c: In function ‘check_value’:
1.c:5:12: note: the ABI for passing parameters with 32-byte alignment has
changed in GCC 4.6
5 | static int check_value(struct aligned_value value)
| ^~~~~~~~~~~