Ruby 4.0.5p0 (2026-05-20 revision 64336ffd0ee9e1f4c05891695a3d7b49cb709721)
noalias.h
Go to the documentation of this file.
1#ifndef RBIMPL_ATTR_NOALIAS_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_ATTR_NOALIAS_H
51
53#if RBIMPL_COMPILER_BEFORE(Clang, 12, 0, 0)
54# /*
55# * `::llvm::Attribute::ArgMemOnly` was buggy before. Maybe because nobody
56# * actually seriously used it. It seems they somehow mitigated the situation
57# * in LLVM 12. Still not found the exact changeset which fiexed the
58# * attribute, though.
59# *
60# * :FIXME: others (armclang, xlclang, ...) can also be affected?
61# */
62# define RBIMPL_ATTR_NOALIAS() /* void */
63#elif RBIMPL_HAS_DECLSPEC_ATTRIBUTE(noalias)
64# define RBIMPL_ATTR_NOALIAS() __declspec(noalias)
65#else
66# define RBIMPL_ATTR_NOALIAS() /* void */
67#endif
68
69#endif /* RBIMPL_ATTR_NOALIAS_H */
Defines RBIMPL_COMPILER_SINCE.
Defines RBIMPL_HAS_DECLSPEC_ATTRIBUTE.