musl/include
Szabolcs Nagy e9e2b66e68 math: new type cast logic in tgmath.h
* return type logic is simplified a bit and fixed (see below)
* return type of conj and cproj were wrong on int arguments
* added comments about the pending issues
(usually we don't have comments in public headers but this is
not the biggest issue with tgmath.h)

casting the result to the right type cannot be done in c99
(c11 _Generic can solve this but that is not widely supported),
so the typeof extension of gcc is used and that the ?: operator
has special semantics when one of the operands is a null
pointer constant

the standard is very strict about the definition of null
pointer constants so typeof with ?: is still not enough so
compiler specific workaround is used for now

on gcc '!1.0' is a null pointer constant so we can use the old
__IS_FP logic (eventhough it's non-standard)

on clang (and on gcc as well) 'sizeof(void)-1' is a null
pointer constant so we can use
 !(sizeof(*(0?(int*)0:(void*)__IS_FP(x)))-1)
(this is non-standard as well), the old logic is used by
default and this new one on clang
2012-12-19 04:05:30 +01:00
..
arpa remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
net default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
netinet tcp.h: add SOL_TCP, analoguous to udp.h 2012-12-06 17:02:19 +01:00
netpacket add netpacket/packet.h 2011-06-09 21:47:24 -04:00
scsi add scsi headers scsi.h and sg.h 2012-12-05 12:35:24 -05:00
sys add some missing macros to sys/shm.h 2012-12-15 00:43:27 -05:00
aio.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
alloca.h alloca cannot be a function. #define it to the gcc builtin if possible 2012-04-09 15:06:58 -04:00
ar.h some extra legacy header stuff 2012-05-06 16:35:32 -04:00
assert.h assert() is supposed to have type void 2012-10-17 02:47:11 -04:00
byteswap.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
complex.h make CMPLX macros available in complex.h in non-c11 mode as well 2012-12-11 22:44:36 +01:00
cpio.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
crypt.h replace old and ugly crypt implementation 2012-06-29 00:56:37 -04:00
ctype.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
dirent.h feature test macros: make _GNU_SOURCE enable everything 2012-12-03 16:57:01 -05:00
dlfcn.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
elf.h microblaze TLS relocation support, completely untested 2012-10-15 21:01:48 -04:00
endian.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
err.h fix redundant _Noreturn def in err.h 2012-09-08 18:16:33 -04:00
errno.h remove useless "extern" keywords in headers 2012-01-26 10:53:37 -05:00
fcntl.h fix F_DUPFD_CLOEXEC being defined twice 2012-12-06 22:45:56 +01:00
features.h add _ALL_SOURCE as an alias for _GNU_SOURCE/enable-everything 2012-12-03 17:02:56 -05:00
fenv.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
float.h fix DECIMAL_DIG definitions 2012-03-21 12:42:48 -04:00
fnmatch.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
ftw.h remove unneeded judgemental commentary from ftw.h 2012-09-07 23:55:11 -04:00
getopt.h add getopt reset support 2012-09-30 20:00:38 -04:00
glob.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
grp.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
iconv.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
inttypes.h fix a couple issues in the inttypes.h PRI/SCN macros 2012-12-02 15:18:05 -05:00
iso646.h add previously-missing ios646.h 2011-02-14 21:59:38 -05:00
langinfo.h extensive header cleanup for standards conformance & correctness 2011-02-14 18:41:25 -05:00
lastlog.h some extra legacy header stuff 2012-05-06 16:35:32 -04:00
libgen.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
libintl.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
limits.h fix missing limits when only _BSD_SOURCE is defined 2012-11-26 12:05:33 -05:00
link.h add dl_iterate_phdr interface 2012-10-31 21:27:48 -04:00
locale.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
malloc.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
math.h math: remove long double version of bessel functions from math.h 2012-12-11 22:57:39 +01:00
memory.h add memory.h, bogus legacy alias for string.h 2012-03-01 01:34:58 -05:00
mntent.h add profile for getmntent_r 2011-04-13 15:24:26 -04:00
monetary.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
mqueue.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
netdb.h avoid breakage if somebody wrongly defines empty feature test macros 2012-11-01 03:49:43 -04:00
nl_types.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
paths.h header file fixes: multiple include guard consistency and correctness 2012-06-15 21:52:53 -04:00
poll.h fix typo introduced in poll.h 2012-09-09 16:27:26 -04:00
pthread.h add stub versions of some missing optional pthread interfaces 2012-11-17 18:42:16 -05:00
pty.h fix __cplusplus extern "C" closing brace in pty.h (typo?) 2011-11-10 21:01:24 -05:00
pwd.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
regex.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
resolv.h header file fixes: multiple include guard consistency and correctness 2012-06-15 21:52:53 -04:00
sched.h add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
search.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
semaphore.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
setjmp.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
shadow.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
signal.h add sigandset and sigorset (needed for qemu) 2012-12-06 20:51:32 +01:00
spawn.h fix some restrict-qualifier mismatches in newly added interfaces 2012-11-27 09:44:30 -05:00
stdalign.h implement "low hanging fruit" from C11 2012-08-25 23:15:13 -04:00
stdarg.h use compiler builtins for variadic macros when available 2011-04-27 23:41:48 -04:00
stdbool.h make stdbool.h conform to c99 2011-09-20 14:51:56 -04:00
stddef.h use __builtin_offsetof to implement offsetof when possible 2012-12-05 00:00:42 -05:00
stdint.h fix signedness errors in stdint.h constant macros 2012-06-08 11:11:44 -04:00
stdio_ext.h stdio_ext.h needs to include stdio.h, at least to get FILE... 2012-08-24 16:16:30 -04:00
stdio.h feature test macros: make _GNU_SOURCE enable everything 2012-12-03 16:57:01 -05:00
stdlib.h fix issues with wait constants in stdlib.h 2012-10-21 19:15:11 -04:00
stdnoreturn.h add stdnoreturn.h (C11) 2012-09-08 00:14:25 -04:00
string.h feature test macros: make _GNU_SOURCE enable everything 2012-12-03 16:57:01 -05:00
strings.h more locale_t interfaces (string stuff) and header updates 2012-02-06 21:51:02 -05:00
stropts.h add isastream (obsolete STREAMS junk) 2012-05-06 09:03:19 -04:00
syscall.h header file fixes: multiple include guard consistency and correctness 2012-06-15 21:52:53 -04:00
sysexits.h add sysexits.h legacy header 2011-04-05 15:40:36 -04:00
syslog.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
tar.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
termios.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
tgmath.h math: new type cast logic in tgmath.h 2012-12-19 04:05:30 +01:00
time.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
ucontext.h fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate 2012-11-25 23:04:23 -05:00
ulimit.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
unistd.h syscall() declaration belongs in unistd.h, not sys/syscall.h 2012-12-10 16:40:45 -05:00
utime.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
utmp.h some extra legacy header stuff 2012-05-06 16:35:32 -04:00
utmpx.h utmpx.h is no longer under standards, so expose ut_exit structure 2011-04-12 12:03:33 -04:00
wchar.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
wctype.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
wordexp.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00