/* PR middle-end/36520 */ /* Testcase by Richard Guenther */ typedef __SIZE_TYPE__ size_t; typedef unsigned short int sa_family_t; struct cmsghdr { size_t cmsg_len; __extension__ unsigned char __cmsg_data []; }; typedef unsigned int uint32_t; struct in6_addr { union { uint32_t u6_addr32[4]; } in6_u; }; struct sockaddr_in { sa_family_t sin_family; }; struct in6_pktinfo { struct in6_addr ipi6_addr; }; typedef union { struct sockaddr_in sin; } sockaddr_any; static sockaddr_any src_addr; inline struct cmsghdr * cmsg_put(struct cmsghdr *cm, int type, void *data, size_t len) { memcpy(((cm)->__cmsg_data), data, len); } int hop_sendmsg(int fd) { struct cmsghdr *cm; if (src_addr.sin.sin_family) { if (src_addr.sin.sin_family == 2) { struct in6_pktinfo info; cm = cmsg_put(cm, 50, &info, sizeof(info)); } } }