modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20080613-1.c (about) 1 /* PR middle-end/36520 */ 2 /* Testcase by Richard Guenther <rguenth@gcc.gnu.org> */ 3 4 typedef __SIZE_TYPE__ size_t; 5 typedef unsigned short int sa_family_t; 6 struct cmsghdr { 7 size_t cmsg_len; 8 __extension__ unsigned char __cmsg_data []; 9 }; 10 typedef unsigned int uint32_t; 11 struct in6_addr { 12 union { 13 uint32_t u6_addr32[4]; 14 } in6_u; 15 }; 16 struct sockaddr_in { 17 sa_family_t sin_family; 18 }; 19 struct in6_pktinfo { 20 struct in6_addr ipi6_addr; 21 }; 22 typedef union { 23 struct sockaddr_in sin; 24 } sockaddr_any; 25 static sockaddr_any src_addr; 26 27 inline struct cmsghdr * cmsg_put(struct cmsghdr *cm, int type, void *data, size_t len) 28 { 29 memcpy(((cm)->__cmsg_data), data, len); 30 } 31 32 int 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 }