Если что-то не так, фактическое псевдоним не происходит - объект, на который ссылается * (int *) CMSG_DATA (hdr), не является псевдонимом для hdr - это конец hdr Предупреждение неверное.
Вы можете обойти это с memcpy:
memcpy(CMSG_DATA(hdr), &fd2pass, sizeof(int));
Не использовать -fno-strict-aliasing: отключает оптимизации, предполагающие строгое псевдонимы; он может генерировать значительно худший код.
Технические подробности см. Ошибка glibc 16197 .