| // RUN: %clang_cc1 -fsyntax-only -Wno-pointer-to-int-cast -verify %s |
| // expected-no-diagnostics |
| typedef long unsigned int __darwin_size_t; |
| typedef long __darwin_ssize_t; |
| typedef __darwin_size_t size_t; |
| typedef __darwin_ssize_t ssize_t; |
| |
| struct cmsghdr {}; |
| |
| #if 0 |
| This code below comes from the following system headers: |
| sys/socket.h:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct |
| cmsghdr)) + __DARWIN_ALIGN(l)) |
| |
| i386/_param.h:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p) |
| + __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES) |
| #endif |
| |
| ssize_t sendFileDescriptor(int fd, void *data, size_t nbytes, int sendfd) { |
| union { |
| 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)))]; |
| } control_un; |
| return 0; |
| } |
| |