passenger 6.1.0 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +32 -2
  3. data/Rakefile +6 -13
  4. data/bin/passenger-install-apache2-module +15 -19
  5. data/bin/passenger-install-nginx-module +42 -44
  6. data/bin/passenger-status +9 -10
  7. data/build/common_library.rb +4 -4
  8. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  9. data/build/test_basics.rb +4 -3
  10. data/dev/copy_boost_headers +54 -40
  11. data/dev/ruby_server.rb +1 -1
  12. data/src/agent/Core/Config.h +1 -1
  13. data/src/agent/Core/Controller/Config.h +1 -1
  14. data/src/agent/Watchdog/Config.h +1 -1
  15. data/src/cxx_supportlib/Constants.h +1 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  17. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  18. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  19. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  20. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  21. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  22. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  23. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  24. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  25. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  26. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  30. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  31. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  32. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  33. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  34. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  35. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  36. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  37. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  38. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  39. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  40. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  42. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  43. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  44. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  45. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  46. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  47. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  48. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  49. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  50. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  51. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  52. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  53. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  54. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  115. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  116. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  117. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  120. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  121. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  123. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  129. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  131. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  135. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  136. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  139. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  142. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  144. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  145. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  148. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  149. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  156. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  157. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  160. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  161. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  169. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  170. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  171. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  172. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  174. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  181. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  182. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  183. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  184. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  185. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  186. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  187. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  189. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  190. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  191. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  196. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  198. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  203. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  204. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  206. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  207. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  212. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  216. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  219. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  220. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  221. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  223. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  224. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  226. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  229. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  232. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  235. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  236. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  237. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  249. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  250. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  251. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  252. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  253. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  254. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  255. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  256. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  257. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  259. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  261. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  264. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  267. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  268. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  271. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  273. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  299. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  314. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  315. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  316. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  317. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  319. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  320. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  321. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  326. data/src/nginx_module/ContentHandler.c +2 -0
  327. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  328. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  329. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  330. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  331. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  332. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  333. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  334. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  335. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
  336. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
  337. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
  338. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  339. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  340. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  341. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  342. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  343. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  344. metadata +26 -99
  345. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  346. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  347. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  348. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  349. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  350. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  351. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  352. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  353. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  354. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  355. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  356. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  357. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  358. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  359. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  360. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  361. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  362. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  363. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  364. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  365. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  366. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  367. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  368. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  369. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  370. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  371. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  372. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  373. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  374. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  375. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  376. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  377. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  378. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  379. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  380. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  381. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  382. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  383. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  403. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  404. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  405. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  406. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  407. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  415. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  423. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  424. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  425. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  426. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  427. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  428. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  429. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  430. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  431. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  432. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  433. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  434. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  435. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  436. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  437. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  438. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  439. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  440. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
@@ -3,7 +3,7 @@
3
3
  * (See accompanying file LICENSE_1_0.txt or copy at
4
4
  * http://www.boost.org/LICENSE_1_0.txt)
5
5
  *
6
- * Copyright (c) 2020 Andrey Semashev
6
+ * Copyright (c) 2020-2025 Andrey Semashev
7
7
  */
8
8
  /*!
9
9
  * \file atomic/detail/extra_ops_gcc_aarch64.hpp
@@ -15,7 +15,7 @@
15
15
  #define BOOST_ATOMIC_DETAIL_EXTRA_OPS_GCC_AARCH64_HPP_INCLUDED_
16
16
 
17
17
  #include <cstddef>
18
- #include <boost/cstdint.hpp>
18
+ #include <cstdint>
19
19
  #include <boost/memory_order.hpp>
20
20
  #include <boost/atomic/detail/config.hpp>
21
21
  #include <boost/atomic/detail/platform.hpp>
@@ -38,79 +38,79 @@ template< typename Base >
38
38
  struct extra_operations_gcc_aarch64_common :
39
39
  public Base
40
40
  {
41
- typedef Base base_type;
42
- typedef typename base_type::storage_type storage_type;
41
+ using base_type = Base;
42
+ using storage_type = typename base_type::storage_type;
43
43
 
44
44
  // Note: For opaque operations prefer operations returning the resulting values instead of the original values
45
45
  // as these operations require less registers. That is unless LSE is available, in which case
46
46
  // it is better to use the dedicated atomic instructions. The LSE check is done in the base_type,
47
47
  // where needed (e.g. for 128-bit operations there are no LSE instructions).
48
- static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
48
+ static BOOST_FORCEINLINE void opaque_negate(storage_type volatile& storage, memory_order order) noexcept
49
49
  {
50
50
  base_type::negate(storage, order);
51
51
  }
52
52
 
53
- static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
53
+ static BOOST_FORCEINLINE void opaque_complement(storage_type volatile& storage, memory_order order) noexcept
54
54
  {
55
55
  base_type::bitwise_complement(storage, order);
56
56
  }
57
57
 
58
- static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
58
+ static BOOST_FORCEINLINE void opaque_add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
59
59
  {
60
60
  base_type::add(storage, v, order);
61
61
  }
62
62
 
63
- static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
63
+ static BOOST_FORCEINLINE void opaque_sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
64
64
  {
65
65
  base_type::sub(storage, v, order);
66
66
  }
67
67
 
68
- static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
68
+ static BOOST_FORCEINLINE void opaque_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
69
69
  {
70
70
  base_type::bitwise_and(storage, v, order);
71
71
  }
72
72
 
73
- static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
73
+ static BOOST_FORCEINLINE void opaque_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
74
74
  {
75
75
  base_type::bitwise_or(storage, v, order);
76
76
  }
77
77
 
78
- static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
78
+ static BOOST_FORCEINLINE void opaque_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
79
79
  {
80
80
  base_type::bitwise_xor(storage, v, order);
81
81
  }
82
82
 
83
- static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
83
+ static BOOST_FORCEINLINE bool negate_and_test(storage_type volatile& storage, memory_order order) noexcept
84
84
  {
85
85
  return !!base_type::negate(storage, order);
86
86
  }
87
87
 
88
- static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
88
+ static BOOST_FORCEINLINE bool add_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
89
89
  {
90
90
  return !!base_type::add(storage, v, order);
91
91
  }
92
92
 
93
- static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
93
+ static BOOST_FORCEINLINE bool sub_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
94
94
  {
95
95
  return !!base_type::sub(storage, v, order);
96
96
  }
97
97
 
98
- static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
98
+ static BOOST_FORCEINLINE bool and_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
99
99
  {
100
100
  return !!base_type::bitwise_and(storage, v, order);
101
101
  }
102
102
 
103
- static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
103
+ static BOOST_FORCEINLINE bool or_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
104
104
  {
105
105
  return !!base_type::bitwise_or(storage, v, order);
106
106
  }
107
107
 
108
- static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
108
+ static BOOST_FORCEINLINE bool xor_and_test(storage_type volatile& storage, storage_type v, memory_order order) noexcept
109
109
  {
110
110
  return !!base_type::bitwise_xor(storage, v, order);
111
111
  }
112
112
 
113
- static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
113
+ static BOOST_FORCEINLINE bool complement_and_test(storage_type volatile& storage, memory_order order) noexcept
114
114
  {
115
115
  return !!base_type::bitwise_complement(storage, order);
116
116
  }
@@ -123,13 +123,14 @@ template< typename Base, bool Signed >
123
123
  struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
124
124
  public extra_operations_generic< Base, 1u, Signed >
125
125
  {
126
- typedef extra_operations_generic< Base, 1u, Signed > base_type;
127
- typedef typename base_type::storage_type storage_type;
126
+ using base_type = extra_operations_generic< Base, 1u, Signed >;
127
+ using storage_type = typename base_type::storage_type;
128
128
 
129
- static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
129
+ static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
130
130
  {
131
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
131
132
  storage_type original, result;
132
- uint32_t tmp;
133
+ std::uint32_t tmp;
133
134
 
134
135
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
135
136
  __asm__ __volatile__\
@@ -146,14 +147,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
146
147
 
147
148
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
148
149
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
150
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
149
151
 
150
152
  return original;
151
153
  }
152
154
 
153
- static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
155
+ static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
154
156
  {
157
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
155
158
  storage_type result;
156
- uint32_t tmp;
159
+ std::uint32_t tmp;
157
160
 
158
161
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
159
162
  __asm__ __volatile__\
@@ -170,16 +173,18 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
170
173
 
171
174
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
172
175
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
176
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
173
177
 
174
178
  return result;
175
179
  }
176
180
 
177
181
  #if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
178
182
 
179
- static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
183
+ static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
180
184
  {
185
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
181
186
  storage_type result;
182
- uint32_t tmp;
187
+ std::uint32_t tmp;
183
188
 
184
189
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
185
190
  __asm__ __volatile__\
@@ -196,14 +201,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
196
201
 
197
202
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
198
203
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
204
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
199
205
 
200
206
  return result;
201
207
  }
202
208
 
203
- static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
209
+ static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
204
210
  {
211
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
205
212
  storage_type result;
206
- uint32_t tmp;
213
+ std::uint32_t tmp;
207
214
 
208
215
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
209
216
  __asm__ __volatile__\
@@ -220,14 +227,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
220
227
 
221
228
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
222
229
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
230
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
223
231
 
224
232
  return result;
225
233
  }
226
234
 
227
- static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
235
+ static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
228
236
  {
237
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
229
238
  storage_type result;
230
- uint32_t tmp;
239
+ std::uint32_t tmp;
231
240
 
232
241
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
233
242
  __asm__ __volatile__\
@@ -244,14 +253,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
244
253
 
245
254
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
246
255
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
256
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
247
257
 
248
258
  return result;
249
259
  }
250
260
 
251
- static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
261
+ static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
252
262
  {
263
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
253
264
  storage_type result;
254
- uint32_t tmp;
265
+ std::uint32_t tmp;
255
266
 
256
267
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
257
268
  __asm__ __volatile__\
@@ -268,14 +279,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
268
279
 
269
280
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
270
281
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
282
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
271
283
 
272
284
  return result;
273
285
  }
274
286
 
275
- static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
287
+ static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
276
288
  {
289
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
277
290
  storage_type result;
278
- uint32_t tmp;
291
+ std::uint32_t tmp;
279
292
 
280
293
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
281
294
  __asm__ __volatile__\
@@ -292,14 +305,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
292
305
 
293
306
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
294
307
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
308
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
295
309
 
296
310
  return result;
297
311
  }
298
312
 
299
- static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
313
+ static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
300
314
  {
315
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
301
316
  storage_type original, result;
302
- uint32_t tmp;
317
+ std::uint32_t tmp;
303
318
 
304
319
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
305
320
  __asm__ __volatile__\
@@ -316,14 +331,16 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
316
331
 
317
332
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
318
333
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
334
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
319
335
 
320
336
  return original;
321
337
  }
322
338
 
323
- static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
339
+ static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
324
340
  {
341
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
325
342
  storage_type result;
326
- uint32_t tmp;
343
+ std::uint32_t tmp;
327
344
 
328
345
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
329
346
  __asm__ __volatile__\
@@ -340,6 +357,7 @@ struct extra_operations_gcc_aarch64< Base, 1u, Signed > :
340
357
 
341
358
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
342
359
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
360
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
343
361
 
344
362
  return result;
345
363
  }
@@ -358,13 +376,14 @@ template< typename Base, bool Signed >
358
376
  struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
359
377
  public extra_operations_generic< Base, 2u, Signed >
360
378
  {
361
- typedef extra_operations_generic< Base, 2u, Signed > base_type;
362
- typedef typename base_type::storage_type storage_type;
379
+ using base_type = extra_operations_generic< Base, 2u, Signed >;
380
+ using storage_type = typename base_type::storage_type;
363
381
 
364
- static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
382
+ static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
365
383
  {
384
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
366
385
  storage_type original, result;
367
- uint32_t tmp;
386
+ std::uint32_t tmp;
368
387
 
369
388
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
370
389
  __asm__ __volatile__\
@@ -381,14 +400,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
381
400
 
382
401
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
383
402
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
403
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
384
404
 
385
405
  return original;
386
406
  }
387
407
 
388
- static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
408
+ static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
389
409
  {
410
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
390
411
  storage_type result;
391
- uint32_t tmp;
412
+ std::uint32_t tmp;
392
413
 
393
414
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
394
415
  __asm__ __volatile__\
@@ -405,16 +426,18 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
405
426
 
406
427
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
407
428
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
429
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
408
430
 
409
431
  return result;
410
432
  }
411
433
 
412
434
  #if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
413
435
 
414
- static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
436
+ static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
415
437
  {
438
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
416
439
  storage_type result;
417
- uint32_t tmp;
440
+ std::uint32_t tmp;
418
441
 
419
442
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
420
443
  __asm__ __volatile__\
@@ -431,14 +454,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
431
454
 
432
455
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
433
456
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
457
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
434
458
 
435
459
  return result;
436
460
  }
437
461
 
438
- static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
462
+ static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
439
463
  {
464
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
440
465
  storage_type result;
441
- uint32_t tmp;
466
+ std::uint32_t tmp;
442
467
 
443
468
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
444
469
  __asm__ __volatile__\
@@ -455,14 +480,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
455
480
 
456
481
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
457
482
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
483
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
458
484
 
459
485
  return result;
460
486
  }
461
487
 
462
- static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
488
+ static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
463
489
  {
490
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
464
491
  storage_type result;
465
- uint32_t tmp;
492
+ std::uint32_t tmp;
466
493
 
467
494
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
468
495
  __asm__ __volatile__\
@@ -479,14 +506,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
479
506
 
480
507
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
481
508
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
509
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
482
510
 
483
511
  return result;
484
512
  }
485
513
 
486
- static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
514
+ static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
487
515
  {
516
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
488
517
  storage_type result;
489
- uint32_t tmp;
518
+ std::uint32_t tmp;
490
519
 
491
520
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
492
521
  __asm__ __volatile__\
@@ -503,14 +532,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
503
532
 
504
533
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
505
534
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
535
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
506
536
 
507
537
  return result;
508
538
  }
509
539
 
510
- static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
540
+ static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
511
541
  {
542
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
512
543
  storage_type result;
513
- uint32_t tmp;
544
+ std::uint32_t tmp;
514
545
 
515
546
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
516
547
  __asm__ __volatile__\
@@ -527,14 +558,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
527
558
 
528
559
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
529
560
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
561
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
530
562
 
531
563
  return result;
532
564
  }
533
565
 
534
- static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
566
+ static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
535
567
  {
568
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
536
569
  storage_type original, result;
537
- uint32_t tmp;
570
+ std::uint32_t tmp;
538
571
 
539
572
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
540
573
  __asm__ __volatile__\
@@ -551,14 +584,16 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
551
584
 
552
585
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
553
586
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
587
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
554
588
 
555
589
  return original;
556
590
  }
557
591
 
558
- static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
592
+ static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
559
593
  {
594
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
560
595
  storage_type result;
561
- uint32_t tmp;
596
+ std::uint32_t tmp;
562
597
 
563
598
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
564
599
  __asm__ __volatile__\
@@ -575,6 +610,7 @@ struct extra_operations_gcc_aarch64< Base, 2u, Signed > :
575
610
 
576
611
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
577
612
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
613
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
578
614
 
579
615
  return result;
580
616
  }
@@ -593,13 +629,14 @@ template< typename Base, bool Signed >
593
629
  struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
594
630
  public extra_operations_generic< Base, 4u, Signed >
595
631
  {
596
- typedef extra_operations_generic< Base, 4u, Signed > base_type;
597
- typedef typename base_type::storage_type storage_type;
632
+ using base_type = extra_operations_generic< Base, 4u, Signed >;
633
+ using storage_type = typename base_type::storage_type;
598
634
 
599
- static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
635
+ static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
600
636
  {
637
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
601
638
  storage_type original, result;
602
- uint32_t tmp;
639
+ std::uint32_t tmp;
603
640
 
604
641
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
605
642
  __asm__ __volatile__\
@@ -616,14 +653,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
616
653
 
617
654
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
618
655
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
656
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
619
657
 
620
658
  return original;
621
659
  }
622
660
 
623
- static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
661
+ static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
624
662
  {
663
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
625
664
  storage_type result;
626
- uint32_t tmp;
665
+ std::uint32_t tmp;
627
666
 
628
667
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
629
668
  __asm__ __volatile__\
@@ -640,16 +679,18 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
640
679
 
641
680
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
642
681
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
682
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
643
683
 
644
684
  return result;
645
685
  }
646
686
 
647
687
  #if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
648
688
 
649
- static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
689
+ static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
650
690
  {
691
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
651
692
  storage_type result;
652
- uint32_t tmp;
693
+ std::uint32_t tmp;
653
694
 
654
695
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
655
696
  __asm__ __volatile__\
@@ -666,14 +707,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
666
707
 
667
708
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
668
709
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
710
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
669
711
 
670
712
  return result;
671
713
  }
672
714
 
673
- static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
715
+ static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
674
716
  {
717
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
675
718
  storage_type result;
676
- uint32_t tmp;
719
+ std::uint32_t tmp;
677
720
 
678
721
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
679
722
  __asm__ __volatile__\
@@ -690,14 +733,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
690
733
 
691
734
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
692
735
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
736
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
693
737
 
694
738
  return result;
695
739
  }
696
740
 
697
- static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
741
+ static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
698
742
  {
743
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
699
744
  storage_type result;
700
- uint32_t tmp;
745
+ std::uint32_t tmp;
701
746
 
702
747
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
703
748
  __asm__ __volatile__\
@@ -714,14 +759,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
714
759
 
715
760
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
716
761
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
762
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
717
763
 
718
764
  return result;
719
765
  }
720
766
 
721
- static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
767
+ static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
722
768
  {
769
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
723
770
  storage_type result;
724
- uint32_t tmp;
771
+ std::uint32_t tmp;
725
772
 
726
773
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
727
774
  __asm__ __volatile__\
@@ -738,14 +785,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
738
785
 
739
786
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
740
787
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
788
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
741
789
 
742
790
  return result;
743
791
  }
744
792
 
745
- static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
793
+ static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
746
794
  {
795
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
747
796
  storage_type result;
748
- uint32_t tmp;
797
+ std::uint32_t tmp;
749
798
 
750
799
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
751
800
  __asm__ __volatile__\
@@ -762,14 +811,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
762
811
 
763
812
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
764
813
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
814
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
765
815
 
766
816
  return result;
767
817
  }
768
818
 
769
- static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
819
+ static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
770
820
  {
821
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
771
822
  storage_type original, result;
772
- uint32_t tmp;
823
+ std::uint32_t tmp;
773
824
 
774
825
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
775
826
  __asm__ __volatile__\
@@ -786,14 +837,16 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
786
837
 
787
838
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
788
839
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
840
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
789
841
 
790
842
  return original;
791
843
  }
792
844
 
793
- static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
845
+ static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
794
846
  {
847
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
795
848
  storage_type result;
796
- uint32_t tmp;
849
+ std::uint32_t tmp;
797
850
 
798
851
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
799
852
  __asm__ __volatile__\
@@ -810,6 +863,7 @@ struct extra_operations_gcc_aarch64< Base, 4u, Signed > :
810
863
 
811
864
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
812
865
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
866
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
813
867
 
814
868
  return result;
815
869
  }
@@ -828,13 +882,14 @@ template< typename Base, bool Signed >
828
882
  struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
829
883
  public extra_operations_generic< Base, 8u, Signed >
830
884
  {
831
- typedef extra_operations_generic< Base, 8u, Signed > base_type;
832
- typedef typename base_type::storage_type storage_type;
885
+ using base_type = extra_operations_generic< Base, 8u, Signed >;
886
+ using storage_type = typename base_type::storage_type;
833
887
 
834
- static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
888
+ static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
835
889
  {
890
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
836
891
  storage_type original, result;
837
- uint32_t tmp;
892
+ std::uint32_t tmp;
838
893
 
839
894
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
840
895
  __asm__ __volatile__\
@@ -851,14 +906,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
851
906
 
852
907
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
853
908
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
909
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
854
910
 
855
911
  return original;
856
912
  }
857
913
 
858
- static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
914
+ static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
859
915
  {
916
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
860
917
  storage_type result;
861
- uint32_t tmp;
918
+ std::uint32_t tmp;
862
919
 
863
920
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
864
921
  __asm__ __volatile__\
@@ -875,16 +932,18 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
875
932
 
876
933
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
877
934
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
935
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
878
936
 
879
937
  return result;
880
938
  }
881
939
 
882
940
  #if !defined(BOOST_ATOMIC_DETAIL_AARCH64_HAS_LSE)
883
941
 
884
- static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
942
+ static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
885
943
  {
944
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
886
945
  storage_type result;
887
- uint32_t tmp;
946
+ std::uint32_t tmp;
888
947
 
889
948
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
890
949
  __asm__ __volatile__\
@@ -901,14 +960,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
901
960
 
902
961
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
903
962
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
963
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
904
964
 
905
965
  return result;
906
966
  }
907
967
 
908
- static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
968
+ static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
909
969
  {
970
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
910
971
  storage_type result;
911
- uint32_t tmp;
972
+ std::uint32_t tmp;
912
973
 
913
974
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
914
975
  __asm__ __volatile__\
@@ -925,14 +986,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
925
986
 
926
987
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
927
988
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
989
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
928
990
 
929
991
  return result;
930
992
  }
931
993
 
932
- static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
994
+ static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
933
995
  {
996
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
934
997
  storage_type result;
935
- uint32_t tmp;
998
+ std::uint32_t tmp;
936
999
 
937
1000
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
938
1001
  __asm__ __volatile__\
@@ -949,14 +1012,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
949
1012
 
950
1013
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
951
1014
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1015
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
952
1016
 
953
1017
  return result;
954
1018
  }
955
1019
 
956
- static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1020
+ static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
957
1021
  {
1022
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
958
1023
  storage_type result;
959
- uint32_t tmp;
1024
+ std::uint32_t tmp;
960
1025
 
961
1026
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
962
1027
  __asm__ __volatile__\
@@ -973,14 +1038,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
973
1038
 
974
1039
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
975
1040
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1041
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
976
1042
 
977
1043
  return result;
978
1044
  }
979
1045
 
980
- static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1046
+ static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
981
1047
  {
1048
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
982
1049
  storage_type result;
983
- uint32_t tmp;
1050
+ std::uint32_t tmp;
984
1051
 
985
1052
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
986
1053
  __asm__ __volatile__\
@@ -997,14 +1064,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
997
1064
 
998
1065
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
999
1066
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1067
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1000
1068
 
1001
1069
  return result;
1002
1070
  }
1003
1071
 
1004
- static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1072
+ static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
1005
1073
  {
1074
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1006
1075
  storage_type original, result;
1007
- uint32_t tmp;
1076
+ std::uint32_t tmp;
1008
1077
 
1009
1078
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1010
1079
  __asm__ __volatile__\
@@ -1021,14 +1090,16 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
1021
1090
 
1022
1091
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1023
1092
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1093
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1024
1094
 
1025
1095
  return original;
1026
1096
  }
1027
1097
 
1028
- static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1098
+ static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
1029
1099
  {
1100
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1030
1101
  storage_type result;
1031
- uint32_t tmp;
1102
+ std::uint32_t tmp;
1032
1103
 
1033
1104
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1034
1105
  __asm__ __volatile__\
@@ -1045,6 +1116,7 @@ struct extra_operations_gcc_aarch64< Base, 8u, Signed > :
1045
1116
 
1046
1117
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1047
1118
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1119
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1048
1120
 
1049
1121
  return result;
1050
1122
  }
@@ -1063,15 +1135,16 @@ template< typename Base, bool Signed >
1063
1135
  struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1064
1136
  public extra_operations_generic< Base, 16u, Signed >
1065
1137
  {
1066
- typedef extra_operations_generic< Base, 16u, Signed > base_type;
1067
- typedef typename base_type::storage_type storage_type;
1068
- typedef typename base_type::storage_union storage_union;
1138
+ using base_type = extra_operations_generic< Base, 16u, Signed >;
1139
+ using storage_type = typename base_type::storage_type;
1140
+ using storage_union = typename base_type::storage_union;
1069
1141
 
1070
- static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1142
+ static BOOST_FORCEINLINE storage_type fetch_negate(storage_type volatile& storage, memory_order order) noexcept
1071
1143
  {
1144
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1072
1145
  storage_union original;
1073
1146
  storage_union result;
1074
- uint32_t tmp;
1147
+ std::uint32_t tmp;
1075
1148
 
1076
1149
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1077
1150
  __asm__ __volatile__\
@@ -1093,14 +1166,16 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1093
1166
 
1094
1167
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1095
1168
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1169
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1096
1170
 
1097
1171
  return original.as_storage;
1098
1172
  }
1099
1173
 
1100
- static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1174
+ static BOOST_FORCEINLINE storage_type negate(storage_type volatile& storage, memory_order order) noexcept
1101
1175
  {
1176
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1102
1177
  storage_union result;
1103
- uint32_t tmp;
1178
+ std::uint32_t tmp;
1104
1179
 
1105
1180
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1106
1181
  __asm__ __volatile__\
@@ -1121,15 +1196,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1121
1196
 
1122
1197
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1123
1198
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1199
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1124
1200
 
1125
1201
  return result.as_storage;
1126
1202
  }
1127
1203
 
1128
- static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1204
+ static BOOST_FORCEINLINE storage_type add(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1129
1205
  {
1206
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1130
1207
  storage_union result;
1131
1208
  storage_union value = { v };
1132
- uint32_t tmp;
1209
+ std::uint32_t tmp;
1133
1210
 
1134
1211
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1135
1212
  __asm__ __volatile__\
@@ -1148,15 +1225,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1148
1225
 
1149
1226
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1150
1227
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1228
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1151
1229
 
1152
1230
  return result.as_storage;
1153
1231
  }
1154
1232
 
1155
- static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1233
+ static BOOST_FORCEINLINE storage_type sub(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1156
1234
  {
1235
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1157
1236
  storage_union result;
1158
1237
  storage_union value = { v };
1159
- uint32_t tmp;
1238
+ std::uint32_t tmp;
1160
1239
 
1161
1240
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1162
1241
  __asm__ __volatile__\
@@ -1175,15 +1254,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1175
1254
 
1176
1255
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1177
1256
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1257
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1178
1258
 
1179
1259
  return result.as_storage;
1180
1260
  }
1181
1261
 
1182
- static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1262
+ static BOOST_FORCEINLINE storage_type bitwise_and(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1183
1263
  {
1264
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1184
1265
  storage_union result;
1185
1266
  storage_union value = { v };
1186
- uint32_t tmp;
1267
+ std::uint32_t tmp;
1187
1268
 
1188
1269
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1189
1270
  __asm__ __volatile__\
@@ -1202,15 +1283,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1202
1283
 
1203
1284
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1204
1285
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1286
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1205
1287
 
1206
1288
  return result.as_storage;
1207
1289
  }
1208
1290
 
1209
- static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1291
+ static BOOST_FORCEINLINE storage_type bitwise_or(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1210
1292
  {
1293
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1211
1294
  storage_union result;
1212
1295
  storage_union value = { v };
1213
- uint32_t tmp;
1296
+ std::uint32_t tmp;
1214
1297
 
1215
1298
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1216
1299
  __asm__ __volatile__\
@@ -1229,15 +1312,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1229
1312
 
1230
1313
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1231
1314
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1315
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1232
1316
 
1233
1317
  return result.as_storage;
1234
1318
  }
1235
1319
 
1236
- static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) BOOST_NOEXCEPT
1320
+ static BOOST_FORCEINLINE storage_type bitwise_xor(storage_type volatile& storage, storage_type v, memory_order order) noexcept
1237
1321
  {
1322
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1238
1323
  storage_union result;
1239
1324
  storage_union value = { v };
1240
- uint32_t tmp;
1325
+ std::uint32_t tmp;
1241
1326
 
1242
1327
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1243
1328
  __asm__ __volatile__\
@@ -1256,15 +1341,17 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1256
1341
 
1257
1342
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1258
1343
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1344
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1259
1345
 
1260
1346
  return result.as_storage;
1261
1347
  }
1262
1348
 
1263
- static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1349
+ static BOOST_FORCEINLINE storage_type fetch_complement(storage_type volatile& storage, memory_order order) noexcept
1264
1350
  {
1351
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1265
1352
  storage_union original;
1266
1353
  storage_union result;
1267
- uint32_t tmp;
1354
+ std::uint32_t tmp;
1268
1355
 
1269
1356
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1270
1357
  __asm__ __volatile__\
@@ -1284,14 +1371,16 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1284
1371
 
1285
1372
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1286
1373
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1374
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1287
1375
 
1288
1376
  return original.as_storage;
1289
1377
  }
1290
1378
 
1291
- static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) BOOST_NOEXCEPT
1379
+ static BOOST_FORCEINLINE storage_type bitwise_complement(storage_type volatile& storage, memory_order order) noexcept
1292
1380
  {
1381
+ BOOST_ATOMIC_DETAIL_TSAN_RELEASE(&storage, order);
1293
1382
  storage_union result;
1294
- uint32_t tmp;
1383
+ std::uint32_t tmp;
1295
1384
 
1296
1385
  #define BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN(ld_mo, st_mo)\
1297
1386
  __asm__ __volatile__\
@@ -1310,6 +1399,7 @@ struct extra_operations_gcc_aarch64< Base, 16u, Signed > :
1310
1399
 
1311
1400
  BOOST_ATOMIC_DETAIL_AARCH64_MO_SWITCH(order)
1312
1401
  #undef BOOST_ATOMIC_DETAIL_AARCH64_MO_INSN
1402
+ BOOST_ATOMIC_DETAIL_TSAN_ACQUIRE(&storage, order);
1313
1403
 
1314
1404
  return result.as_storage;
1315
1405
  }