Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
Andy Gibbs | 8e8fb3b | 2012-10-19 12:44:48 +0000 | [diff] [blame] | 2 | // expected-no-diagnostics |
Steve Naroff | c793808 | 2008-06-03 22:06:04 +0000 | [diff] [blame] | 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: |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 12 | sys/socket.h:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct |
Steve Naroff | c793808 | 2008-06-03 22:06:04 +0000 | [diff] [blame] | 13 | cmsghdr)) + __DARWIN_ALIGN(l)) |
| 14 | |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 15 | i386/_param.h:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p) |
Steve Naroff | c793808 | 2008-06-03 22:06:04 +0000 | [diff] [blame] | 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; |
Mike Stump | d1969d8 | 2009-07-22 00:43:08 +0000 | [diff] [blame] | 23 | return 0; |
Steve Naroff | c793808 | 2008-06-03 22:06:04 +0000 | [diff] [blame] | 24 | } |
| 25 | |