blob: bd357edceddf9f7e9ae7f85e25a2d99c63af1ea5 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Andy Gibbs8e8fb3b2012-10-19 12:44:48 +00002// expected-no-diagnostics
Steve Naroffc7938082008-06-03 22:06:04 +00003typedef long unsigned int __darwin_size_t;
4typedef long __darwin_ssize_t;
5typedef __darwin_size_t size_t;
6typedef __darwin_ssize_t ssize_t;
7
8struct cmsghdr {};
9
10#if 0
11This code below comes from the following system headers:
Mike Stump1eb44332009-09-09 15:08:12 +000012sys/socket.h:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct
Steve Naroffc7938082008-06-03 22:06:04 +000013cmsghdr)) + __DARWIN_ALIGN(l))
14
Mike Stump1eb44332009-09-09 15:08:12 +000015i386/_param.h:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p)
Steve Naroffc7938082008-06-03 22:06:04 +000016+ __DARWIN_ALIGNBYTES) &~ __DARWIN_ALIGNBYTES)
17#endif
18
19ssize_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 Stumpd1969d82009-07-22 00:43:08 +000023 return 0;
Steve Naroffc7938082008-06-03 22:06:04 +000024}
25