summaryrefslogtreecommitdiff
path: root/include/ruby/3/attr
diff options
context:
space:
mode:
Diffstat (limited to 'include/ruby/3/attr')
-rw-r--r--include/ruby/3/attr/alloc_size.h1
-rw-r--r--include/ruby/3/attr/artificial.h1
-rw-r--r--include/ruby/3/attr/cold.h1
-rw-r--r--include/ruby/3/attr/const.h2
-rw-r--r--include/ruby/3/attr/constexpr.h1
-rw-r--r--include/ruby/3/attr/deprecated.h2
-rw-r--r--include/ruby/3/attr/diagnose_if.h2
-rw-r--r--include/ruby/3/attr/enum_extensibility.h1
-rw-r--r--include/ruby/3/attr/error.h1
-rw-r--r--include/ruby/3/attr/flag_enum.h1
-rw-r--r--include/ruby/3/attr/forceinline.h2
-rw-r--r--include/ruby/3/attr/format.h1
-rw-r--r--include/ruby/3/attr/maybe_unused.h1
-rw-r--r--include/ruby/3/attr/nodiscard.h1
-rw-r--r--include/ruby/3/attr/noexcept.h1
-rw-r--r--include/ruby/3/attr/noinline.h1
-rw-r--r--include/ruby/3/attr/nonnull.h1
-rw-r--r--include/ruby/3/attr/noreturn.h2
-rw-r--r--include/ruby/3/attr/pure.h2
-rw-r--r--include/ruby/3/attr/restrict.h3
-rw-r--r--include/ruby/3/attr/returns_nonnull.h1
-rw-r--r--include/ruby/3/attr/warning.h1
-rw-r--r--include/ruby/3/attr/weakref.h1
23 files changed, 31 insertions, 0 deletions
diff --git a/include/ruby/3/attr/alloc_size.h b/include/ruby/3/attr/alloc_size.h
index 251a19f7f3..5d4ece08a1 100644
--- a/include/ruby/3/attr/alloc_size.h
+++ b/include/ruby/3/attr/alloc_size.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_ALLOC_SIZE.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((alloc_size))` */
#if RUBY3_HAS_ATTRIBUTE(alloc_size)
diff --git a/include/ruby/3/attr/artificial.h b/include/ruby/3/attr/artificial.h
index a9f305daab..f5450e3467 100644
--- a/include/ruby/3/attr/artificial.h
+++ b/include/ruby/3/attr/artificial.h
@@ -34,6 +34,7 @@
* case it gets vital to know where the inlining happened in the callee.
* See also https://stackoverflow.com/a/21936099
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((artificial))` */
#if RUBY3_HAS_ATTRIBUTE(artificial)
diff --git a/include/ruby/3/attr/cold.h b/include/ruby/3/attr/cold.h
index 5b5263feb0..3822f0a975 100644
--- a/include/ruby/3/attr/cold.h
+++ b/include/ruby/3/attr/cold.h
@@ -21,6 +21,7 @@
* @brief Defines #RUBY3_ATTR_COLD.
*/
#include "ruby/3/compiler_is.h"
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((cold))` */
#if RUBY3_COMPILER_IS(SunPro)
diff --git a/include/ruby/3/attr/const.h b/include/ruby/3/attr/const.h
index d97495c647..6c36e9aab2 100644
--- a/include/ruby/3/attr/const.h
+++ b/include/ruby/3/attr/const.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_CONST.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/declspec_attribute.h"
/** Wraps (or simulates) `__attribute__((const))` */
diff --git a/include/ruby/3/attr/constexpr.h b/include/ruby/3/attr/constexpr.h
index 582d9fd000..576ec7fb8f 100644
--- a/include/ruby/3/attr/constexpr.h
+++ b/include/ruby/3/attr/constexpr.h
@@ -22,6 +22,7 @@
*/
#include "ruby/3/has/feature.h"
#include "ruby/3/compiler_is.h"
+#include "ruby/3/token_paste.h"
/** @cond INTERNAL_MACRO */
#if ! defined(__cplusplus)
diff --git a/include/ruby/3/attr/deprecated.h b/include/ruby/3/attr/deprecated.h
index 9f939a5e8c..5c3f508ffc 100644
--- a/include/ruby/3/attr/deprecated.h
+++ b/include/ruby/3/attr/deprecated.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_DEPRECATED.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
#include "ruby/3/has/declspec_attribute.h"
diff --git a/include/ruby/3/attr/diagnose_if.h b/include/ruby/3/attr/diagnose_if.h
index 488c3ec7ad..2f09abc94d 100644
--- a/include/ruby/3/attr/diagnose_if.h
+++ b/include/ruby/3/attr/diagnose_if.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_DIAGNOSE_IF.
*/
+#include "ruby/3/has/attribute.h"
+#include "ruby/3/warning_push.h"
/** Wraps (or simulates) `__attribute__((diagnose_if))` */
#if RUBY3_COMPILER_BEFORE(Clang, 5, 0, 0)
diff --git a/include/ruby/3/attr/enum_extensibility.h b/include/ruby/3/attr/enum_extensibility.h
index a56d1a54b8..15a5b063f2 100644
--- a/include/ruby/3/attr/enum_extensibility.h
+++ b/include/ruby/3/attr/enum_extensibility.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief #RUBY3_ATTR_ENUM_EXTENSIBILITY.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((enum_extensibility))` */
#if RUBY3_HAS_ATTRIBUTE(enum_extensibility)
diff --git a/include/ruby/3/attr/error.h b/include/ruby/3/attr/error.h
index ee5e3290ae..53628259a0 100644
--- a/include/ruby/3/attr/error.h
+++ b/include/ruby/3/attr/error.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_ERROR.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((error))` */
#if RUBY3_HAS_ATTRIBUTE(error)
diff --git a/include/ruby/3/attr/flag_enum.h b/include/ruby/3/attr/flag_enum.h
index 7165347bd7..2081c9c3ed 100644
--- a/include/ruby/3/attr/flag_enum.h
+++ b/include/ruby/3/attr/flag_enum.h
@@ -21,6 +21,7 @@
* @brief Defines #RUBY3_ATTR_FLAG_ENUM.
* @see https://clang.llvm.org/docs/AttributeReference.html#flag_enum
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((flag_enum)` */
#if RUBY3_HAS_ATTRIBUTE(flag_enum)
diff --git a/include/ruby/3/attr/forceinline.h b/include/ruby/3/attr/forceinline.h
index 3c865e9c4b..bd622eddce 100644
--- a/include/ruby/3/attr/forceinline.h
+++ b/include/ruby/3/attr/forceinline.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_FORCEINLINE.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
/**
* Wraps (or simulates) `__forceinline`. MSVC complains on declarations like
diff --git a/include/ruby/3/attr/format.h b/include/ruby/3/attr/format.h
index c234034afe..2624179bda 100644
--- a/include/ruby/3/attr/format.h
+++ b/include/ruby/3/attr/format.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_FORMAT.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((format))` */
#if RUBY3_HAS_ATTRIBUTE(format)
diff --git a/include/ruby/3/attr/maybe_unused.h b/include/ruby/3/attr/maybe_unused.h
index f814804e9f..71904dffa4 100644
--- a/include/ruby/3/attr/maybe_unused.h
+++ b/include/ruby/3/attr/maybe_unused.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_MAYBE_UNUSED.
*/
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
diff --git a/include/ruby/3/attr/nodiscard.h b/include/ruby/3/attr/nodiscard.h
index 0142d22bd4..6168bb9002 100644
--- a/include/ruby/3/attr/nodiscard.h
+++ b/include/ruby/3/attr/nodiscard.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NODISCARD.
*/
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
diff --git a/include/ruby/3/attr/noexcept.h b/include/ruby/3/attr/noexcept.h
index a99ca0b35c..aff3b2cb1b 100644
--- a/include/ruby/3/attr/noexcept.h
+++ b/include/ruby/3/attr/noexcept.h
@@ -61,6 +61,7 @@
* Itanium C++ ABI has zero-cost exception handling), but does impact on
* generated binary size. This is bad.
*/
+#include "ruby/3/compiler_since.h"
#include "ruby/3/has/feature.h"
/** Wraps (or simulates) C++11 `noexcept` */
diff --git a/include/ruby/3/attr/noinline.h b/include/ruby/3/attr/noinline.h
index e5eca8eaef..4437f8a32f 100644
--- a/include/ruby/3/attr/noinline.h
+++ b/include/ruby/3/attr/noinline.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NOINLINE.
*/
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/declspec_attribute.h"
/** Wraps (or simulates) `__declspec(noinline)` */
diff --git a/include/ruby/3/attr/nonnull.h b/include/ruby/3/attr/nonnull.h
index 4c2f3f1ca0..01b5820c1b 100644
--- a/include/ruby/3/attr/nonnull.h
+++ b/include/ruby/3/attr/nonnull.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NONNULL.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((nonnull))` */
#if RUBY3_HAS_ATTRIBUTE(nonnull)
diff --git a/include/ruby/3/attr/noreturn.h b/include/ruby/3/attr/noreturn.h
index 2b7051428d..999a76b8e5 100644
--- a/include/ruby/3/attr/noreturn.h
+++ b/include/ruby/3/attr/noreturn.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NORETURN.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
#include "ruby/3/has/cpp_attribute.h"
#include "ruby/3/has/declspec_attribute.h"
diff --git a/include/ruby/3/attr/pure.h b/include/ruby/3/attr/pure.h
index 038fd2abdb..b9ab3622ca 100644
--- a/include/ruby/3/attr/pure.h
+++ b/include/ruby/3/attr/pure.h
@@ -20,6 +20,8 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_PURE.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
#include "ruby/assert.h"
/** Wraps (or simulates) `__attribute__((pure))` */
diff --git a/include/ruby/3/attr/restrict.h b/include/ruby/3/attr/restrict.h
index f6d7936b3a..95c85f45ce 100644
--- a/include/ruby/3/attr/restrict.h
+++ b/include/ruby/3/attr/restrict.h
@@ -20,6 +20,9 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_RESTRICT.
*/
+#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/attribute.h"
+#include "ruby/3/token_paste.h"
/* :FIXME: config.h includes conflicting `#define restrict`. MSVC can be
* detected using `RUBY3_COMPILER_SINCE()`, but Clang & family cannot use
diff --git a/include/ruby/3/attr/returns_nonnull.h b/include/ruby/3/attr/returns_nonnull.h
index eb8db1d045..786e7e72ee 100644
--- a/include/ruby/3/attr/returns_nonnull.h
+++ b/include/ruby/3/attr/returns_nonnull.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_RETURNS_NONNULL.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((returns_nonnull))` */
#if defined(_Ret_nonnull_)
diff --git a/include/ruby/3/attr/warning.h b/include/ruby/3/attr/warning.h
index 0c64e6a834..a83537e209 100644
--- a/include/ruby/3/attr/warning.h
+++ b/include/ruby/3/attr/warning.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_WARNING.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((warning))` */
#if RUBY3_HAS_ATTRIBUTE(warning)
diff --git a/include/ruby/3/attr/weakref.h b/include/ruby/3/attr/weakref.h
index a540266219..e9c38f92e7 100644
--- a/include/ruby/3/attr/weakref.h
+++ b/include/ruby/3/attr/weakref.h
@@ -20,6 +20,7 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_WEAKREF.
*/
+#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((weakref))` */
#if RUBY3_HAS_ATTRIBUTE(weakref)