modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/pr44043.c (about)

     1  typedef unsigned char __u8;
     2  typedef unsigned short __u16;
     3  typedef unsigned int __u32;
     4  typedef unsigned long __kernel_size_t;
     5  typedef __kernel_size_t size_t;
     6  typedef __u8 uint8_t;
     7  typedef __u16 __be16;
     8  typedef __u32 __be32;
     9  struct msghdr {
    10      struct iovec * msg_iov;
    11      unsigned msg_flags;
    12  };
    13  enum { IPPROTO_ICMP = 1 };
    14  struct sk_buff { };
    15  static inline __attribute__((always_inline)) struct dst_entry *
    16  skb_dst(const struct sk_buff *skb)
    17  {
    18  };
    19  enum nf_inet_hooks { NF_INET_LOCAL_OUT };
    20  struct net_device {
    21      unsigned mtu;
    22  };
    23  static inline __attribute__((always_inline)) int
    24  NF_HOOK_THRESH(uint8_t pf, unsigned int hook, struct sk_buff *skb,
    25  	       struct net_device *in, struct net_device *out,
    26  	       int (*okfn)(struct sk_buff *), int thresh)
    27  {
    28    int ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, thresh);
    29    if (ret == 1)
    30      ret = okfn(skb);
    31    return ret;
    32  }
    33  static inline __attribute__((always_inline)) int
    34  NF_HOOK(uint8_t pf, unsigned int hook, struct sk_buff *skb,
    35  	struct net_device *in, struct net_device *out,
    36  	int (*okfn)(struct sk_buff *))
    37  {
    38    return NF_HOOK_THRESH(pf, hook, skb, in, out, okfn, (-((int)(~0U>>1)) - 1));
    39  }
    40  struct dst_entry {
    41      struct net_device *dev;
    42      int (*output)(struct sk_buff*);
    43  };
    44  static inline __attribute__((always_inline)) int dst_output(struct sk_buff *skb) {
    45      return skb_dst(skb)->output(skb);
    46  };
    47  struct iphdr {
    48      __u8 protocol;
    49  };
    50  struct inet_sock {
    51      __be16 inet_dport;
    52      __u8 recverr: 1,     hdrincl: 1;
    53      struct { } cork;
    54  };
    55  struct icmphdr {
    56      __u8 type;
    57  };
    58  struct rtable {
    59      union { struct dst_entry dst; } u;
    60      __be32 rt_dst;
    61  };
    62  struct sock;
    63  struct inet_sock *inet_sk (struct sock *);
    64  struct net *sock_net (struct sock *);
    65  void *skb_transport_header (struct sk_buff *);
    66  static int raw_send_hdrinc(struct sock *sk, void *from, size_t length,
    67  			   struct rtable *rt,    unsigned int flags)
    68  {
    69    struct inet_sock *inet = inet_sk(sk);
    70    struct net *net = sock_net(sk);
    71    struct iphdr *iph;
    72    struct sk_buff *skb;
    73    if (length > rt->u.dst.dev->mtu) 
    74      ip_local_error(sk, 90, rt->rt_dst, inet->inet_dport, rt->u.dst.dev->mtu);
    75    if (flags&0x10)
    76      goto out;
    77    if (iph->protocol == IPPROTO_ICMP)
    78      icmp_out_count(net, ((struct icmphdr *)skb_transport_header(skb))->type);
    79    NF_HOOK(2, NF_INET_LOCAL_OUT, skb, ((void *)0), rt->u.dst.dev,
    80  	  dst_output);
    81  out:
    82    while (0);
    83  }
    84  int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
    85  {
    86    raw_send_hdrinc(sk, msg->msg_iov, len, (void *)0, msg->msg_flags);
    87  }