1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/missing
卜部昌平 4ff3f20540 add #include guard hack
According to MSVC manual (*1), cl.exe can skip including a header file
when that:

- contains #pragma once, or
- starts with #ifndef, or
- starts with #if ! defined.

GCC has a similar trick (*2), but it acts more stricter (e. g. there
must be _no tokens_ outside of #ifndef...#endif).

Sun C lacked #pragma once for a looong time.  Oracle Developer Studio
12.5 finally implemented it, but we cannot assume such recent version.

This changeset modifies header files so that each of them include
strictly one #ifndef...#endif.  I believe this is the most portable way
to trigger compiler optimizations. [Bug #16770]

*1: https://docs.microsoft.com/en-us/cpp/preprocessor/once
*2: https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html
2020-04-13 16:06:00 +09:00
..
acosh.c
alloca.c Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
cbrt.c
close.c
crt_externs.h
crypt.c
crypt.h add #include guard hack 2020-04-13 16:06:00 +09:00
des_tables.c
dtoa.c
dup2.c Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
erf.c
explicit_bzero.c NetBSD native support of explicit_bzero's like feature (#2145) 2019-08-17 14:17:30 +09:00
ffs.c
file.h add #include guard hack 2020-04-13 16:06:00 +09:00
fileblocks.c
finite.c
flock.c Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
hypot.c
isinf.c Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
isnan.c
langinfo.c
lgamma_r.c
memcmp.c missing/memcmp.c: suppress a -Wparentheses warning 2019-08-19 14:43:55 +09:00
memmove.c
mt19937.c Split mt19937.c 2019-02-07 08:53:12 +00:00
nan.c
nextafter.c
procstat_vm.c Get rid of false positive misspellings 2019-12-24 10:33:32 +09:00
setproctitle.c missing/setproctitle.c: remove nonsense NULL check 2019-10-12 21:14:20 +09:00
signbit.c
strchr.c
strerror.c
strlcat.c
strlcpy.c
strstr.c
tgamma.c Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
x86_64-chkstk.S Renamed assembly file like as e64f71f812 2019-11-18 18:42:22 +09:00