https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61296
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- If you hit the assumption beyond what ABI mandates on some public symbol issue in some older GCC version, then sure, if you have that public symbol defined by ICC, it will misbehave. But, if it is compiled with current GCC without your proposed changes, it will work fine, newer GCCs don't assume anything beyond ABI mandates alignments, unless they control the definition and uses bind locally to it, but still align as optimization as much or more as older GCC used to align. With your proposed changes that would be no longer true. What is so hard to understand on it?