У меня недавно было похожее предупреждение псевдонима в системе HPUX при попытке написать код для получения MAC-адреса машины
&(((struct sockaddr_in *)addr)->sin_addr)
жалуется на строгие правила наложения имен
Это код в некотором контексте
char ip[INET6_ADDRSTRLEN] = {0};
strucut sockaddr *addr
...
get addr from ioctl(socket,SOCGIFCONF...) call
...
inet_ntop(AF_INET, &(((struct sockaddr_in *)addr)->sin_addr),ip,sizeof ip);
Я преодолел предупреждение о псевдонимах, выполнив следующее
struct sockaddr_in sin;
memcpy(&sin,addr,sizeof(struct sockaddr));
inet_ntop(AF_INET, &sin.sin_addr,ip,sizeof ip);
И хотя это потенциально опасно, я добавил следующие строки перед ним
static_assert(sizeof(sockaddr)==sizeof(sockaddr_in));
Я не уверен, что это что-то будет считаться плохой практикой, но это сработало и было кросс-платформенным для других * Nix-разновидностей и компиляторов