Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
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.