2009-12-16 04:14:24 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
2012-10-19 20:44:48 +08:00
|
|
|
// expected-no-diagnostics
|
2008-06-04 06:06:04 +08:00
|
|
|
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:
|
2009-09-09 23:08:12 +08:00
|
|
|
sys/socket.h:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct
|
2008-06-04 06:06:04 +08:00
|
|
|
cmsghdr)) + __DARWIN_ALIGN(l))
|
|
|
|
|
2009-09-09 23:08:12 +08:00
|
|
|
i386/_param.h:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p)
|
2008-06-04 06:06:04 +08:00
|
|
|
+ __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;
|
2009-07-22 08:43:08 +08:00
|
|
|
return 0;
|
2008-06-04 06:06:04 +08:00
|
|
|
}
|
|
|
|
|