1 // RUN: %clang_cc1 -fsyntax-only -Wno-pointer-to-int-cast -verify %s
2 typedef long unsigned int __darwin_size_t
;
3 typedef long __darwin_ssize_t
;
4 typedef __darwin_size_t
size_t;
5 typedef __darwin_ssize_t ssize_t
;
10 This code below comes from the following system headers
:
11 sys
/socket
.h
:#define CMSG_SPACE(l) (__DARWIN_ALIGN(sizeof(struct
12 cmsghdr
)) + __DARWIN_ALIGN(l
))
14 i386
/_param
.h
:#define __DARWIN_ALIGN(p) ((__darwin_size_t)((char *)(p)
15 + __DARWIN_ALIGNBYTES
) &~ __DARWIN_ALIGNBYTES
)
18 ssize_t
sendFileDescriptor(int fd
, void *data
, size_t nbytes
, int sendfd
) {
20 // expected-warning@+1 {{folded to constant array}}
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)))];