[ Th3_Err0r Bypassed ]




Upload:

Command:

liwaavux@216.73.217.112: ~ $
#ifndef RBIMPL_STDCKDINT_H                           /*-*-C++-*-vi:se ft=cpp:*/
#define RBIMPL_STDCKDINT_H
/**
 * @author     Ruby developers <ruby-core@ruby-lang.org>
 * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.
 *             Permission  is hereby  granted,  to  either redistribute  and/or
 *             modify this file, provided that  the conditions mentioned in the
 *             file COPYING are met.  Consult the file for details.
 * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are
 *             implementation details.   Don't take  them as canon.  They could
 *             rapidly appear then vanish.  The name (path) of this header file
 *             is also an  implementation detail.  Do not expect  it to persist
 *             at the place it is now.  Developers are free to move it anywhere
 *             anytime at will.
 * @note       To  ruby-core:  remember  that   this  header  can  be  possibly
 *             recursively included  from extension  libraries written  in C++.
 *             Do not  expect for  instance `__VA_ARGS__` is  always available.
 *             We assume C99  for ruby itself but we don't  assume languages of
 *             extension libraries.  They could be written in C++98.
 * @brief      C23 shim for <stdckdint.h>
 */
#include "ruby/internal/config.h"
#include "ruby/internal/cast.h"
#include "ruby/internal/has/builtin.h"
#include "ruby/internal/stdbool.h"

#ifdef __has_include
# if __has_include(<stdckdint.h>)
#  /* Conforming C23 situation; e.g. recent clang */
#  define RBIMPL_HAVE_STDCKDINT_H
# endif
#endif

#ifdef HAVE_STDCKDINT_H
# /* Some OSes (most notably FreeBSD) have this file. */
# define RBIMPL_HAVE_STDCKDINT_H
#endif

#ifdef __cplusplus
# /* It seems OS/Compiler provided stdckdint.h tend not support C++ yet.
#  * Situations could improve someday but in a meantime let us work around.
#  */
# undef RBIMPL_HAVE_STDCKDINT_H
#endif

#ifdef RBIMPL_HAVE_STDCKDINT_H
# /* Take that. */
# include <stdckdint.h>

#elif RBIMPL_HAS_BUILTIN(__builtin_add_overflow)
# define ckd_add(x, y, z) RBIMPL_CAST((bool)__builtin_add_overflow((y), (z), (x)))
# define ckd_sub(x, y, z) RBIMPL_CAST((bool)__builtin_sub_overflow((y), (z), (x)))
# define ckd_mul(x, y, z) RBIMPL_CAST((bool)__builtin_mul_overflow((y), (z), (x)))
# define __STDC_VERSION_STDCKDINT_H__ 202311L

#/* elif defined(__cplusplus) */
#/* :TODO: if we assume C++11 we can use `<type_traits>` to implement them. */

#else
# /* intentionally leave them undefined */
# /* to make `#ifdef ckd_add` etc. work as intended. */
# undef ckd_add
# undef ckd_sub
# undef ckd_mul
# undef __STDC_VERSION_STDCKDINT_H__
#endif

#endif /* RBIMPL_STDCKDINT_H */

Filemanager

Name Type Size Permission Actions
arithmetic Folder 0755
attr Folder 0755
compiler_is Folder 0755
core Folder 0755
encoding Folder 0755
has Folder 0755
intern Folder 0755
abi.h File 1.55 KB 0644
anyargs.h File 37.96 KB 0644
arithmetic.h File 2.07 KB 0644
assume.h File 3.17 KB 0644
cast.h File 2.28 KB 0644
compiler_is.h File 2.06 KB 0644
compiler_since.h File 2.72 KB 0644
config.h File 4.77 KB 0644
constant_p.h File 1.85 KB 0644
core.h File 1.83 KB 0644
ctype.h File 22.56 KB 0644
dllexport.h File 3.04 KB 0644
dosish.h File 3.16 KB 0644
error.h File 20.92 KB 0644
eval.h File 18.2 KB 0644
event.h File 6.21 KB 0644
fl_type.h File 32.88 KB 0644
gc.h File 28.07 KB 0644
glob.h File 4.98 KB 0644
globals.h File 9.77 KB 0644
interpreter.h File 9.45 KB 0644
iterator.h File 18.19 KB 0644
memory.h File 25.71 KB 0644
method.h File 7.08 KB 0644
module.h File 7.11 KB 0644
newobj.h File 6.09 KB 0644
scan_args.h File 18.48 KB 0644
special_consts.h File 11.95 KB 0644
static_assert.h File 3.21 KB 0644
stdalign.h File 4.58 KB 0644
stdbool.h File 1.69 KB 0644
stdckdint.h File 2.68 KB 0644
symbol.h File 13.28 KB 0644
value.h File 4.26 KB 0644
value_type.h File 14.21 KB 0644
variable.h File 11.81 KB 0644
warning_push.h File 4.91 KB 0644
xmalloc.h File 14.18 KB 0644