1/* PR middle-end/36520 */ 2/* Testcase by Richard Guenther <rguenth@gcc.gnu.org> */ 3 4typedef __SIZE_TYPE__ size_t; 5typedef unsigned short int sa_family_t; 6struct cmsghdr { 7 size_t cmsg_len; 8 __extension__ unsigned char __cmsg_data []; 9}; 10typedef unsigned int uint32_t; 11struct in6_addr { 12 union { 13 uint32_t u6_addr32[4]; 14 } in6_u; 15}; 16struct sockaddr_in { 17 sa_family_t sin_family; 18}; 19struct in6_pktinfo { 20 struct in6_addr ipi6_addr; 21}; 22typedef union { 23 struct sockaddr_in sin; 24} sockaddr_any; 25static sockaddr_any src_addr; 26 27inline struct cmsghdr * cmsg_put(struct cmsghdr *cm, int type, void *data, size_t len) 28{ 29 memcpy(((cm)->__cmsg_data), data, len); 30} 31 32int hop_sendmsg(int fd) { 33 struct cmsghdr *cm; 34 if (src_addr.sin.sin_family) { 35 if (src_addr.sin.sin_family == 2) { 36 struct in6_pktinfo info; 37 cm = cmsg_put(cm, 50, &info, sizeof(info)); 38 } 39 } 40} 41