Ruby 3.5.0dev (2025-02-22 revision 412997300569c1853c09813e4924b6df3d7e8669)
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.