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