1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | // expected-no-diagnostics |
3 | typedef long unsigned int __darwin_size_t; |
4 | typedef long __darwin_ssize_t; |
5 | typedef __darwin_size_t size_t; |
6 | typedef __darwin_ssize_t ssize_t; |
7 | |
8 | struct cmsghdr {}; |
9 | |
10 | #if 0 |
11 | This code below comes from the following system headers: |
12 | sys/socket.h:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct |
13 | cmsghdr)) + __DARWIN_ALIGN(l)) |
14 | |
15 | i386/_param.h:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p) |
16 | + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) |
17 | #endif |
18 | |
19 | ssize_t sendFileDescriptor(int fd, void *data, size_t nbytes, int sendfd) { |
20 | union { |
21 | char control[(((__darwin_size_t)((char *)(sizeof(struct cmsghdr)) + (sizeof(__darwin_size_t) - 1)) &~ (sizeof(__darwin_size_t) - 1)) + ((__darwin_size_t)((char *)(sizeof(int)) + (sizeof(__darwin_size_t) - 1)) &~ (sizeof(__darwin_size_t) - 1)))]; |
22 | } control_un; |
23 | return 0; |
24 | } |
25 | |
26 | |