1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/include/ruby/3/intern
卜部昌平 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
..
select
array.h
bignum.h
class.h
compar.h
complex.h
cont.h
dir.h
enum.h
enumerator.h
error.h
eval.h
file.h
gc.h
hash.h
io.h
load.h
marshal.h
numeric.h
object.h
parse.h
proc.h
process.h
random.h
range.h
rational.h
re.h
ruby.h
select.h
signal.h
sprintf.h
string.h
struct.h
thread.h
time.h
variable.h
vm.h