passenger 6.2.1 → 6.2.2

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 (270) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +37 -15
  3. data/build/cxx_tests.rb +2 -0
  4. data/build/support/cxx_dependency_map.rb +3 -63
  5. data/src/agent/Core/Config.h +1 -1
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Shared/ApiServerUtils.h +1 -1
  8. data/src/agent/Watchdog/Config.h +1 -1
  9. data/src/apache2_module/Hooks.cpp +13 -0
  10. data/src/apache2_module/Utils.h +14 -0
  11. data/src/cxx_supportlib/Constants.h +1 -1
  12. data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
  13. data/src/cxx_supportlib/InstanceDirectory.h +30 -3
  14. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  15. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  16. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  17. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  18. data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
  19. data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
  20. data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
  21. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
  22. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
  23. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  25. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
  30. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
  31. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  32. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
  33. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  34. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
  35. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  36. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
  37. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  38. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
  39. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
  40. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
  41. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
  43. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
  47. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
  48. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
  49. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
  50. data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
  59. data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
  61. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
  63. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
  71. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
  72. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
  73. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
  75. data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
  78. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
  80. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
  131. data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
  136. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
  138. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
  147. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
  148. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
  149. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
  150. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
  152. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
  153. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
  155. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
  156. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
  158. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
  169. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
  171. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
  175. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
  176. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
  177. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
  186. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
  198. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  200. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
  205. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
  209. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
  213. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
  216. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
  217. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
  218. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
  220. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
  222. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
  226. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
  228. data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
  231. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
  237. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
  241. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
  242. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
  245. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
  246. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
  247. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
  250. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  260. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
  261. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
  262. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
  263. data/src/nginx_module/ContentHandler.c +35 -0
  264. data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
  265. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
  266. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
  267. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  268. metadata +73 -8
  269. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
  270. /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
@@ -0,0 +1,149 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // (C) Copyright Ion Gaztanaga 2025-2025. Distributed under the Boost
4
+ // Software License, Version 1.0. (See accompanying file
5
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/libs/container for documentation.
8
+ //
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ #ifndef BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
11
+ #define BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
12
+
13
+ #ifndef BOOST_CONFIG_HPP
14
+ # include <boost/config.hpp>
15
+ #endif
16
+
17
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
18
+ # pragma once
19
+ #endif
20
+
21
+ // Platform detection
22
+ #if defined(_WIN32) && !defined(__CYGWIN__)
23
+ #define BOOST_CONTAINER_HAS_ALIGNED_MALLOC
24
+ #elif BOOST_CXX_VERSION >= 201703L
25
+ #define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
26
+ #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
27
+ //Note: in most C++ compilers __STDC_VERSION__ is not defined, but just in case
28
+ #define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
29
+ #else
30
+ #include <unistd.h> //Include it to detect POSIX features
31
+ #if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L)
32
+ #define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
33
+ #elif defined(__APPLE__)
34
+ //All recent Apple OSes (macOS 10.6+, iOS 3.0+, tvOS 9.0+, watchOS 2.0+) support posix_memalign
35
+ #define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
36
+ #elif defined(__ANDROID__)
37
+ #if (__ANDROID_API__ >= 28)
38
+ #define BOOST_CONTAINER_HAS_ALIGNED_ALLOC
39
+ #else
40
+ #define BOOST_CONTAINER_HAS_POSIX_MEMALIGN
41
+ #endif
42
+ #endif
43
+ #endif
44
+
45
+ // Include
46
+ #if defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
47
+ #include <malloc.h>
48
+ #elif defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
49
+ #include <stdlib.h>
50
+ #elif defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC)
51
+ #include <stdlib.h>
52
+ #else
53
+ #include <stdlib.h> //for malloc
54
+ #endif
55
+
56
+ namespace boost {
57
+ namespace container {
58
+ namespace dtl {
59
+
60
+ #if defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
61
+
62
+ inline void* aligned_allocate(std::size_t al, std::size_t sz)
63
+ {
64
+ void *ptr;
65
+ // posix_memalign requires aligned multiple of void*
66
+ if (al < sizeof(void*))
67
+ al = sizeof(void*);
68
+ int ret = posix_memalign(&ptr, al, sz);
69
+ if (ret != 0)
70
+ return 0;
71
+ return ptr;
72
+ }
73
+
74
+ #elif defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC)
75
+
76
+ inline void* aligned_allocate(std::size_t al, std::size_t sz)
77
+ {
78
+ // Some aligned_allocate are based on posix_memalign so require also minimal alignment
79
+ if (al < sizeof(void*))
80
+ al = sizeof(void*);
81
+
82
+ // aligned_allocate requires size to be a multiple of alignment
83
+ std::size_t rounded_size = std::size_t(sz + al - 1u) & ~std::size_t(al - 1);
84
+
85
+ //Check for rounded size overflow
86
+ return rounded_size ? ::aligned_alloc(al, rounded_size) : 0;
87
+ }
88
+
89
+ #elif defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
90
+
91
+ inline void* aligned_allocate(std::size_t al, std::size_t sz)
92
+ {
93
+ return _aligned_malloc(sz, al);
94
+ }
95
+
96
+ #else
97
+
98
+ inline void* aligned_allocate(std::size_t al, std::size_t sz)
99
+ {
100
+ //Make room for a back pointer metadata
101
+ void* const mptr = malloc(sz + sizeof(void*) + al);
102
+ if (!mptr)
103
+ return 0;
104
+
105
+ //Now align the returned pointer (which will be aligned at least to sizeof(void*)
106
+ const std::size_t raw_addr = reinterpret_cast<std::size_t>(mptr);
107
+ const std::size_t offset = sizeof(void*);
108
+ void *const ptr = reinterpret_cast<void*>((raw_addr + offset + al - 1u) & ~(al - 1u));
109
+
110
+ // Store the original pointer just before the aligned address
111
+ void** const backpointer = reinterpret_cast<void**>(ptr) - 1;
112
+ *backpointer = mptr;
113
+ return ptr;
114
+ }
115
+
116
+ #endif
117
+
118
+ #if defined(BOOST_CONTAINER_HAS_ALIGNED_ALLOC) || defined(BOOST_CONTAINER_HAS_POSIX_MEMALIGN)
119
+
120
+ inline void aligned_deallocate(void* ptr)
121
+ {
122
+ if (!ptr)
123
+ return;
124
+ free(ptr);
125
+ }
126
+
127
+ #elif defined(BOOST_CONTAINER_HAS_ALIGNED_MALLOC)
128
+
129
+ inline void aligned_deallocate(void* ptr)
130
+ {
131
+ _aligned_free(ptr); //_aligned_free supports NULL ptr
132
+ }
133
+
134
+ #else
135
+
136
+ inline void aligned_deallocate(void* ptr)
137
+ {
138
+ // Obtain backpointer data and free it
139
+ void** storage = reinterpret_cast<void**>(ptr) - 1;
140
+ free(*storage);
141
+ }
142
+
143
+ #endif//
144
+
145
+ } //namespace dtl {
146
+ } //namespace container {
147
+ } //namespace boost {
148
+
149
+ #endif //#ifndef BOOST_CONTAINER_DETAIL_ALIGNED_ALLOCATION_HPP
@@ -22,6 +22,7 @@
22
22
  #include <boost/move/adl_move_swap.hpp>
23
23
  #include <boost/move/utility_core.hpp>
24
24
  #include <boost/container/detail/mpl.hpp>
25
+ #include <boost/assert.hpp>
25
26
 
26
27
  namespace boost {
27
28
  namespace container {
@@ -54,6 +55,40 @@ template<class AllocatorType>
54
55
  inline void move_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type)
55
56
  { l = ::boost::move(r); }
56
57
 
58
+ template<class SizeType, class LimitSizeType, bool = sizeof(SizeType)<= sizeof(LimitSizeType)>
59
+ struct limit_by_stored_size_type
60
+ {
61
+ static BOOST_CONTAINER_FORCEINLINE SizeType clamp(SizeType val)
62
+ { return val; }
63
+
64
+ static BOOST_CONTAINER_FORCEINLINE void set(LimitSizeType &val, SizeType v)
65
+ { val = v; }
66
+
67
+ template <class F>
68
+ BOOST_CONTAINER_FORCEINLINE static void call_if_overflows(SizeType, F)
69
+ {}
70
+ };
71
+
72
+ template<class SizeType, class LimitSizeType>
73
+ struct limit_by_stored_size_type<SizeType, LimitSizeType, false>
74
+ {
75
+ static BOOST_CONTAINER_FORCEINLINE SizeType clamp(SizeType val)
76
+ { return val <= LimitSizeType(-1) ? val : LimitSizeType(-1); }
77
+
78
+ static void set(LimitSizeType &dst, SizeType val)
79
+ {
80
+ BOOST_ASSERT(LimitSizeType(-1) >= val);
81
+ dst = static_cast<LimitSizeType>(val);
82
+ }
83
+
84
+ template <class F>
85
+ BOOST_CONTAINER_FORCEINLINE static void call_if_overflows(SizeType v, F f)
86
+ {
87
+ if(LimitSizeType(-1) < v)
88
+ f();
89
+ }
90
+ };
91
+
57
92
  } //namespace dtl {
58
93
  } //namespace container {
59
94
  } //namespace boost {
@@ -284,6 +284,7 @@ int boost_cont_malloc_check(void);
284
284
  boost_cont_command_ret_t boost_cont_allocation_command
285
285
  ( allocation_type command
286
286
  , size_t sizeof_object
287
+ , size_t alignof_object
287
288
  , size_t limit_objects
288
289
  , size_t preferred_objects
289
290
  , size_t *received_objects
@@ -0,0 +1,133 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // (C) Copyright Ion Gaztanaga 2026. Distributed under the Boost
4
+ // Software License, Version 1.0. (See accompanying file
5
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/libs/container for documentation.
8
+ //
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ #ifndef BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
11
+ #define BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
12
+
13
+ #ifndef BOOST_CONFIG_HPP
14
+ # include <boost/config.hpp>
15
+ #endif
16
+
17
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
18
+ # pragma once
19
+ #endif
20
+
21
+ #include <boost/container/detail/config_begin.hpp>
22
+ #include <boost/container/detail/workaround.hpp>
23
+ #include <boost/assert.hpp>
24
+ #include <boost/cstdint.hpp>
25
+
26
+ //_BitScan{Forward,Reverse}[64] used by the bit helpers below. The 64-bit
27
+ //variants only exist on x64/ARM64; the 32-bit ones are also available on x86
28
+ //and ARM, where the 64-bit value is scanned as two 32-bit halves.
29
+ #if defined(BOOST_MSVC) && \
30
+ (defined(_M_X64) || defined(_M_ARM64) || defined(_M_IX86) || defined(_M_ARM))
31
+ # include <intrin.h>
32
+ #endif
33
+
34
+ namespace boost {
35
+ namespace container {
36
+ namespace dtl {
37
+
38
+ //! Count trailing zero bits of a 64-bit value.
39
+ //! Precondition: x != 0 (the result is undefined otherwise).
40
+ BOOST_CONTAINER_FORCEINLINE int unchecked_countr_zero(boost::uint64_t x)
41
+ {
42
+ #if defined(BOOST_MSVC) && (defined(_M_X64) || defined(_M_ARM64))
43
+ unsigned long r;
44
+ _BitScanForward64(&r, x);
45
+ return (int)r;
46
+ #elif defined(BOOST_GCC) || defined(BOOST_CLANG)
47
+ return (int)__builtin_ctzll(x);
48
+ #elif defined(BOOST_MSVC) && (defined(_M_IX86) || defined(_M_ARM))
49
+ //32-bit MSVC targets lack _BitScanForward64: scan the two 32-bit halves.
50
+ unsigned long r;
51
+ if (_BitScanForward(&r, (unsigned long)x))
52
+ return (int)r;
53
+ _BitScanForward(&r, (unsigned long)(x >> 32));
54
+ return (int)r + 32;
55
+ #else
56
+ //O(1) branchless fallback for compilers without intrinsics, using
57
+ //mod-37 perfect-hash table on 32-bit halves
58
+ //(avoids 64-bit multiplies, friendlier to exotic 32-bit-only targets)
59
+ static const unsigned char mod37[37] =
60
+ { 32, 0, 1, 26, 2, 23, 27, 0, 3, 16, 24, 30, 28, 11, 0, 13, 4, 7, 17, 0
61
+ , 25, 22, 31, 15, 29, 10, 12, 6, 0, 21, 14, 9, 5, 20, 8, 19, 18 };
62
+ boost::uint32_t lo = (boost::uint32_t)x;
63
+ if (lo)
64
+ return mod37[((boost::uint32_t)(0u - lo) & lo) % 37u];
65
+ boost::uint32_t hi = (boost::uint32_t)(x >> 32);
66
+ return 32 + mod37[((boost::uint32_t)(0u - hi) & hi) % 37u];
67
+ #endif
68
+ }
69
+
70
+ //! Count trailing one bits of a 64-bit value.
71
+ //! Precondition: x != (uint64_t)-1 (the result is undefined otherwise).
72
+ BOOST_CONTAINER_FORCEINLINE int unchecked_countr_one(boost::uint64_t x)
73
+ {
74
+ return unchecked_countr_zero(~x);
75
+ }
76
+
77
+ //! Count leading zero bits of a 64-bit value.
78
+ //! Precondition: x != 0 (the result is undefined otherwise).
79
+ BOOST_CONTAINER_FORCEINLINE int unchecked_countl_zero(boost::uint64_t x)
80
+ {
81
+ #if defined(BOOST_MSVC) && (defined(_M_X64) || defined(_M_ARM64))
82
+ unsigned long r;
83
+ _BitScanReverse64(&r, x);
84
+ return (int)(63 - r);
85
+ #elif defined(BOOST_GCC) || defined(BOOST_CLANG)
86
+ return (int)__builtin_clzll(x);
87
+ #elif defined(BOOST_MSVC) && (defined(_M_IX86) || defined(_M_ARM))
88
+ //32-bit MSVC targets lack _BitScanReverse64: scan the two 32-bit halves.
89
+ unsigned long r;
90
+ if (_BitScanReverse(&r, (unsigned long)(x >> 32)))
91
+ return 31 - (int)r;
92
+ _BitScanReverse(&r, (unsigned long)x);
93
+ return 63 - (int)r;
94
+ #else
95
+ //O(1) branchless fallback for compilers without intrinsics, using
96
+ //smear-right + mod-37 perfect-hash table on 32-bit halves
97
+ static const unsigned char mod37[37] =
98
+ { 32, 31, 6, 30, 9, 5, 0, 29, 16, 8, 2, 4, 21, 0, 19, 28, 25, 15, 0, 7
99
+ , 10, 1, 17, 3, 22, 20, 26, 0, 11, 18, 23, 27, 12, 24, 13, 14, 0 };
100
+ boost::uint32_t hi = (boost::uint32_t)(x >> 32);
101
+ if (hi) {
102
+ hi |= hi >> 1; hi |= hi >> 2; hi |= hi >> 4; hi |= hi >> 8; hi |= hi >> 16;
103
+ return mod37[hi % 37u];
104
+ }
105
+ boost::uint32_t lo = (boost::uint32_t)x;
106
+ lo |= lo >> 1; lo |= lo >> 2; lo |= lo >> 4; lo |= lo >> 8; lo |= lo >> 16;
107
+ return 32 + mod37[lo % 37u];
108
+ #endif
109
+ }
110
+
111
+ //! Count the number of set bits of a 64-bit value.
112
+ BOOST_CONTAINER_FORCEINLINE int popcount(boost::uint64_t x)
113
+ {
114
+ #if defined(BOOST_GCC) || defined(BOOST_CLANG)
115
+ return (int)__builtin_popcountll(x);
116
+ #elif defined(BOOST_MSVC) && defined(_M_X64)
117
+ return (int)__popcnt64(x);
118
+ #else
119
+ //Portable SWAR population count.
120
+ x = x - ((x >> 1) & boost::uint64_t(0x5555555555555555));
121
+ x = (x & boost::uint64_t(0x3333333333333333)) + ((x >> 2) & boost::uint64_t(0x3333333333333333));
122
+ x = (x + (x >> 4)) & boost::uint64_t(0x0f0f0f0f0f0f0f0f);
123
+ return (int)((x * boost::uint64_t(0x0101010101010101)) >> 56);
124
+ #endif
125
+ }
126
+
127
+ } //namespace dtl {
128
+ } //namespace container {
129
+ } //namespace boost {
130
+
131
+ #include <boost/container/detail/config_end.hpp>
132
+
133
+ #endif //BOOST_CONTAINER_DETAIL_BIT_UTILITIES_HPP
@@ -32,12 +32,12 @@ class equal_to_value
32
32
  const value_type &t_;
33
33
 
34
34
  public:
35
- inline explicit equal_to_value(const value_type &t)
35
+ BOOST_CONTAINER_FORCEINLINE explicit equal_to_value(const value_type &t)
36
36
  : t_(t)
37
37
  {}
38
38
 
39
39
  template <class U>
40
- inline bool operator()(const U &t)const
40
+ BOOST_CONTAINER_FORCEINLINE bool operator()(const U &t)const
41
41
  {
42
42
  return t_ == t;
43
43
  }
@@ -55,7 +55,7 @@ class equal_to_value_first
55
55
  {}
56
56
 
57
57
  template <class U>
58
- inline bool operator()(const U &t)const
58
+ BOOST_CONTAINER_FORCEINLINE bool operator()(const U &t)const
59
59
  {
60
60
  return t_ == t.first;
61
61
  }
@@ -149,6 +149,21 @@ struct key_node_pred
149
149
  };
150
150
 
151
151
 
152
+ template<class Pred>
153
+ class not_pred
154
+ {
155
+ BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS Pred m_p;
156
+
157
+ public:
158
+ BOOST_CONTAINER_FORCEINLINE explicit not_pred(const Pred &p)
159
+ : m_p(p)
160
+ {}
161
+
162
+ template <class U>
163
+ BOOST_CONTAINER_FORCEINLINE bool operator()(const U &u) const
164
+ { return !m_p(u); }
165
+ };
166
+
152
167
  } //namespace container {
153
168
  } //namespace boost {
154
169
 
@@ -59,3 +59,8 @@
59
59
  #pragma GCC diagnostic ignored "-Wsign-conversion"
60
60
  #endif
61
61
  #endif
62
+
63
+ #if defined(BOOST_CLANG)
64
+ #pragma clang diagnostic push
65
+ #pragma clang diagnostic ignored "-Wpass-failed" // ignore some missed optimization warnings
66
+ #endif
@@ -14,3 +14,7 @@
14
14
  #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
15
15
  #pragma GCC diagnostic pop
16
16
  #endif
17
+
18
+ #if defined(BOOST_CLANG)
19
+ #pragma clang diagnostic pop
20
+ #endif
@@ -150,7 +150,7 @@ namespace dtl {
150
150
  typedef Cont<U, typename void_or_portable_rebind_alloc<V, A, U>::type, P0, P1, P2, P3, P4, P5, P6, P7, P8> type;
151
151
  };
152
152
 
153
- #endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
153
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
154
154
 
155
155
  //for small_vector,static_vector
156
156
 
@@ -535,11 +535,22 @@ inline typename dtl::disable_if_memtransfer_copy_constructible<I, F, F>::type
535
535
  {
536
536
  F back = r;
537
537
  BOOST_CONTAINER_TRY{
538
+ //GCC's value-range analysis issues a spurious -Wmaybe-uninitialized here
539
+ //when this copy-construct loop is inlined into a fixed-capacity container's
540
+ //(e.g. static_vector) copy constructor after a near-end single-element
541
+ //insert: it cannot prove the just-built trailing slot is initialized.
542
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
543
+ #pragma GCC diagnostic push
544
+ #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
545
+ #endif
538
546
  while (n) {
539
547
  --n;
540
548
  allocator_traits<Allocator>::construct(a, boost::movelib::iterator_to_raw_pointer(r), *f);
541
549
  ++f; ++r;
542
550
  }
551
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
552
+ #pragma GCC diagnostic pop
553
+ #endif
543
554
  }
544
555
  BOOST_CONTAINER_CATCH(...){
545
556
  for (; back != r; ++back){
@@ -1619,7 +1630,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
1619
1630
  //Old values destroyed automatically with "old_values_destroyer"
1620
1631
  //when "old_values_destroyer" goes out of scope unless the have trivial
1621
1632
  //destructor after move.
1622
- if(trivial_dctr_after_move)
1633
+ BOOST_IF_CONSTEXPR(trivial_dctr_after_move)
1623
1634
  old_values_destroyer.release();
1624
1635
  }
1625
1636
  //raw_before is so big that divides old_end
@@ -1649,7 +1660,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
1649
1660
  remaining_pos = ::boost::container::move_forward_overlapping(remaining_pos, old_finish, old_start);
1650
1661
  (void)remaining_pos;
1651
1662
  //Once moved, avoid calling the destructors if trivial after move
1652
- if(!trivial_dctr_after_move) {
1663
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
1653
1664
  boost::container::destroy_alloc(a, remaining_pos, old_finish);
1654
1665
  }
1655
1666
  }
@@ -1720,7 +1731,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
1720
1731
  B const new_first(make_iterator_uadvance(next, new_1st_range));
1721
1732
  B const p = ::boost::container::move_forward_overlapping(pos, old_finish, new_first);
1722
1733
  (void)p;
1723
- if(!trivial_dctr_after_move)
1734
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move)
1724
1735
  boost::container::destroy_alloc(a, p, old_finish);
1725
1736
  }
1726
1737
  }
@@ -1771,7 +1782,7 @@ void expand_backward_forward_and_insert_alloc_move_backward
1771
1782
  //trivial_dctr_after_move is true
1772
1783
  //Destroy remaining moved elements from old_end except if they
1773
1784
  //have trivial destructor after being moved
1774
- if(!trivial_dctr_after_move) {
1785
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
1775
1786
  boost::container::destroy_alloc(a, move_end, old_finish);
1776
1787
  }
1777
1788
  }
@@ -1922,7 +1933,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
1922
1933
  //Old values destroyed automatically with "old_values_destroyer"
1923
1934
  //when "old_values_destroyer" goes out of scope unless the have trivial
1924
1935
  //destructor after move.
1925
- if(trivial_dctr_after_move)
1936
+ BOOST_IF_CONSTEXPR(trivial_dctr_after_move)
1926
1937
  old_values_destroyer.release();
1927
1938
  }
1928
1939
  //raw_before is so big that divides old_end
@@ -1948,7 +1959,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
1948
1959
  BOOST_ASSERT(old_start != old_finish);
1949
1960
  boost::container::move_backward_overlapping(old_start, pre_pos_raw, old_finish);
1950
1961
  old_values_destroyer.release();
1951
- if (!trivial_dctr_after_move) {
1962
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
1952
1963
  boost::container::destroy_alloc(a, old_start, new_start);
1953
1964
  }
1954
1965
  }
@@ -1987,7 +1998,7 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
1987
1998
  //Destroy remaining moved elements from old_begin except if they
1988
1999
  //have trivial destructor after being moved
1989
2000
  old_values_destroyer.release();
1990
- if (!trivial_dctr_after_move) {
2001
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
1991
2002
  boost::container::destroy_alloc(a, old_start, p);
1992
2003
  }
1993
2004
  }
@@ -2014,9 +2025,8 @@ inline void expand_backward_forward_and_insert_alloc_move_forward
2014
2025
  insertion_proxy.copy_n_and_update(a, new_beg_pos, n);
2015
2026
  B const p = ::boost::container::move_backward_overlapping(old_start, pos, new_beg_pos);
2016
2027
  old_values_destroyer.release();
2017
-
2018
- if (!trivial_dctr_after_move) {
2019
- (void)p;
2028
+ (void)p;
2029
+ BOOST_IF_CONSTEXPR(!trivial_dctr_after_move) {
2020
2030
  boost::container::destroy_alloc(a, old_start, p);
2021
2031
  }
2022
2032
  }