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  }