re2 1.23.0 → 1.23.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 (280) hide show
  1. package/README.md +2 -0
  2. package/binding.gyp +3 -2
  3. package/package.json +5 -5
  4. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
  5. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
  6. package/vendor/abseil-cpp/CMakeLists.txt +2 -2
  7. package/vendor/abseil-cpp/MODULE.bazel +2 -2
  8. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
  9. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
  10. package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
  11. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
  12. package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
  13. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
  14. package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
  15. package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
  16. package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
  17. package/vendor/abseil-cpp/absl/base/casts.h +128 -2
  18. package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
  19. package/vendor/abseil-cpp/absl/base/config.h +13 -37
  20. package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  21. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
  22. package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  23. package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
  24. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  25. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
  26. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
  27. package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
  28. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
  29. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
  30. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
  31. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  32. package/vendor/abseil-cpp/absl/base/macros.h +40 -17
  33. package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
  34. package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
  35. package/vendor/abseil-cpp/absl/base/options.h +1 -27
  36. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
  37. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
  38. package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
  39. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
  40. package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
  41. package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
  42. package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
  43. package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
  44. package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
  45. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
  46. package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
  47. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
  48. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
  49. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
  50. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
  51. package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
  52. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
  53. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
  54. package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  55. package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
  56. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
  57. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
  58. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
  59. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
  60. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
  61. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
  62. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
  63. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
  64. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
  65. package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  66. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
  67. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
  68. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
  69. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
  70. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
  71. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
  72. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
  73. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
  74. package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
  75. package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
  76. package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
  77. package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
  78. package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
  79. package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
  80. package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
  81. package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
  82. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  83. package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
  84. package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
  85. package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  86. package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
  87. package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
  88. package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
  89. package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
  90. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
  91. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
  92. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
  93. package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
  94. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
  95. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  96. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
  97. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
  98. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
  99. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
  100. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
  101. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
  102. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  103. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  104. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
  105. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
  106. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
  107. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
  108. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  109. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
  110. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
  111. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
  112. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
  113. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
  114. package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
  115. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
  116. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  117. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
  118. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  119. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
  120. package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
  121. package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
  122. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  123. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
  124. package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
  125. package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
  126. package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
  127. package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
  128. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
  129. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
  130. package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
  131. package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
  132. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
  133. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
  134. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
  135. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
  136. package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
  137. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
  138. package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
  139. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
  140. package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
  141. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
  142. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
  143. package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
  144. package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
  145. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
  146. package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  147. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
  148. package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
  149. package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
  150. package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
  151. package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
  152. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  153. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
  154. package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
  155. package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
  156. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
  157. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  158. package/vendor/abseil-cpp/absl/log/log.h +2 -2
  159. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
  160. package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
  161. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  162. package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
  163. package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
  164. package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
  165. package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
  166. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
  167. package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
  168. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  169. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  170. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
  171. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
  172. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
  173. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
  174. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
  175. package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
  176. package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
  177. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
  178. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
  179. package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
  180. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
  181. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
  182. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
  183. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
  184. package/vendor/abseil-cpp/absl/status/status.cc +4 -0
  185. package/vendor/abseil-cpp/absl/status/status.h +5 -0
  186. package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
  187. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
  188. package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
  189. package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
  190. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
  191. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
  192. package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
  193. package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
  194. package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
  195. package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
  196. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  197. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
  198. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
  199. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
  200. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
  201. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
  202. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
  203. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
  204. package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  205. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
  206. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
  207. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
  208. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  209. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
  210. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
  211. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
  212. package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
  213. package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
  214. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
  215. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
  216. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
  217. package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
  218. package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
  219. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
  220. package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
  221. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
  222. package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
  223. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
  224. package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
  225. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
  226. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
  227. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  228. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
  229. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
  230. package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
  231. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  232. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
  233. package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
  234. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
  235. package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
  236. package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
  237. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
  238. package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
  239. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
  240. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
  241. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  242. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
  243. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  244. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  245. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  246. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  247. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  248. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  249. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
  250. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
  251. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
  252. package/vendor/abseil-cpp/absl/time/time.cc +4 -4
  253. package/vendor/abseil-cpp/absl/time/time.h +10 -10
  254. package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
  255. package/vendor/abseil-cpp/absl/types/compare.h +62 -61
  256. package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
  257. package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
  258. package/vendor/abseil-cpp/absl/types/optional.h +2 -2
  259. package/vendor/abseil-cpp/absl/types/span.h +10 -2
  260. package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
  261. package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
  262. package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
  263. package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
  264. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
  265. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
  266. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
  267. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
  268. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
  269. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
  270. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
  271. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
  272. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
  273. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
  274. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
  275. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
  276. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
  277. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
  278. package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
  279. package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
  280. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
@@ -27,6 +27,7 @@
27
27
  #include "gtest/gtest.h"
28
28
  #include "absl/base/attributes.h"
29
29
  #include "absl/base/config.h"
30
+ #include "absl/base/internal/errno_saver.h"
30
31
  #include "absl/base/optimization.h"
31
32
  #include "absl/types/span.h"
32
33
 
@@ -93,15 +94,23 @@ TEST(StackTrace, HugeFrame) {
93
94
  // This is a separate function to avoid inlining.
94
95
  ABSL_ATTRIBUTE_NOINLINE static void FixupNoFixupEquivalenceNoInline() {
95
96
  #if !ABSL_HAVE_ATTRIBUTE_WEAK
96
- GTEST_SKIP() << "Need weak symbol support";
97
- #endif
98
- #if defined(__riscv)
99
- GTEST_SKIP() << "Skipping test on RISC-V due to pre-existing failure";
100
- #endif
101
- #if defined(_WIN32)
97
+ const char* kSkipReason = "Need weak symbol support";
98
+ #elif defined(__riscv)
99
+ const char* kSkipReason =
100
+ "Skipping test on RISC-V due to pre-existing failure";
101
+ #elif defined(_WIN32)
102
102
  // TODO(b/434184677): Add support for fixups on Windows if needed
103
- GTEST_SKIP() << "Skipping test on Windows due to lack of support for fixups";
103
+ const char* kSkipReason =
104
+ "Skipping test on Windows due to lack of support for fixups";
105
+ #else
106
+ const char* kSkipReason = nullptr;
104
107
  #endif
108
+
109
+ // This conditional is to avoid an unreachable code warning.
110
+ if (kSkipReason != nullptr) {
111
+ GTEST_SKIP() << kSkipReason;
112
+ }
113
+
105
114
  bool can_rely_on_frame_pointers = false;
106
115
  if (!can_rely_on_frame_pointers) {
107
116
  GTEST_SKIP() << "Frame pointers are required, but not guaranteed in OSS";
@@ -232,13 +241,20 @@ TEST(StackTrace, FixupNoFixupEquivalence) { FixupNoFixupEquivalenceNoInline(); }
232
241
 
233
242
  TEST(StackTrace, FixupLowStackUsage) {
234
243
  #if !ABSL_HAVE_ATTRIBUTE_WEAK
235
- GTEST_SKIP() << "Skipping test on MSVC due to weak symbols";
236
- #endif
237
- #if defined(_WIN32)
244
+ const char* kSkipReason = "Skipping test on MSVC due to weak symbols";
245
+ #elif defined(_WIN32)
238
246
  // TODO(b/434184677): Add support for fixups on Windows if needed
239
- GTEST_SKIP() << "Skipping test on Windows due to lack of support for fixups";
247
+ const char* kSkipReason =
248
+ "Skipping test on Windows due to lack of support for fixups";
249
+ #else
250
+ const char* kSkipReason = nullptr;
240
251
  #endif
241
252
 
253
+ // This conditional is to avoid an unreachable code warning.
254
+ if (kSkipReason != nullptr) {
255
+ GTEST_SKIP() << kSkipReason;
256
+ }
257
+
242
258
  const Cleanup restore_state([enable_fixup = g_enable_fixup,
243
259
  fixup_calls = g_fixup_calls,
244
260
  should_fixup_calls = g_should_fixup_calls]() {
@@ -275,13 +291,20 @@ TEST(StackTrace, FixupLowStackUsage) {
275
291
 
276
292
  TEST(StackTrace, CustomUnwinderPerformsFixup) {
277
293
  #if !ABSL_HAVE_ATTRIBUTE_WEAK
278
- GTEST_SKIP() << "Need weak symbol support";
279
- #endif
280
- #if defined(_WIN32)
294
+ const char* kSkipReason = "Need weak symbol support";
295
+ #elif defined(_WIN32)
281
296
  // TODO(b/434184677): Add support for fixups on Windows if needed
282
- GTEST_SKIP() << "Skipping test on Windows due to lack of support for fixups";
297
+ const char* kSkipReason =
298
+ "Skipping test on Windows due to lack of support for fixups";
299
+ #else
300
+ const char* kSkipReason = nullptr;
283
301
  #endif
284
302
 
303
+ // This conditional is to avoid an unreachable code warning.
304
+ if (kSkipReason != nullptr) {
305
+ GTEST_SKIP() << kSkipReason;
306
+ }
307
+
285
308
  constexpr int kSkip = 1; // Skip our own frame, whose return PCs won't match
286
309
  constexpr auto kStackCount = 1;
287
310
 
@@ -414,6 +437,7 @@ const void* g_return_address = nullptr;
414
437
  bool g_sigusr2_raised = false;
415
438
 
416
439
  void SigUsr2Handler(int, siginfo_t*, void* uc) {
440
+ absl::base_internal::ErrnoSaver errno_saver;
417
441
  // Many platforms don't support this by default.
418
442
  bool support_is_expected = false;
419
443
  constexpr int kMaxStackDepth = 64;
@@ -26,33 +26,20 @@
26
26
 
27
27
  extern "C" {
28
28
  const char* emscripten_pc_get_function(const void* pc);
29
+ void* emscripten_stack_snapshot();
29
30
  }
30
31
 
31
- // clang-format off
32
- EM_JS(bool, HaveOffsetConverter, (),
33
- { return typeof wasmOffsetConverter !== 'undefined'; });
34
- // clang-format on
35
-
36
32
  namespace absl {
37
33
  ABSL_NAMESPACE_BEGIN
38
34
 
39
- void InitializeSymbolizer(const char*) {
40
- if (!HaveOffsetConverter()) {
41
- ABSL_RAW_LOG(INFO,
42
- "Symbolization unavailable. Rebuild with -sWASM=1 "
43
- "and -sUSE_OFFSET_CONVERTER=1.");
44
- }
45
- }
35
+ void InitializeSymbolizer(const char*) {}
46
36
 
47
37
  bool Symbolize(const void* pc, char* out, int out_size) {
48
- // Check if we have the offset converter necessary for pc_get_function.
49
- // Without it, the program will abort().
50
- if (!HaveOffsetConverter()) {
51
- return false;
52
- }
53
38
  if (pc == nullptr || out_size <= 0) {
54
39
  return false;
55
40
  }
41
+ // Need to capture a snapshot first.
42
+ emscripten_stack_snapshot();
56
43
  const char* func_name = emscripten_pc_get_function(pc);
57
44
  if (func_name == nullptr) {
58
45
  return false;
@@ -107,8 +107,6 @@ static ABSL_PER_THREAD_TLS_KEYWORD char
107
107
  #endif
108
108
 
109
109
  #if !defined(__EMSCRIPTEN__)
110
- static void *GetPCFromFnPtr(void *ptr) { return ptr; }
111
-
112
110
  // Used below to hopefully inhibit some compiler/linker optimizations
113
111
  // that may remove kHpageTextPadding, kPadding0, and kPadding1 from
114
112
  // the binary.
@@ -119,12 +117,6 @@ static constexpr size_t kHpageSize = 1 << 21;
119
117
  const char kHpageTextPadding[kHpageSize * 4] ABSL_ATTRIBUTE_SECTION_VARIABLE(
120
118
  .text) = "";
121
119
 
122
- #else
123
- static void *GetPCFromFnPtr(void *ptr) {
124
- return EM_ASM_PTR(
125
- { return wasmOffsetConverter.convert(wasmTable.get($0).name, 0); }, ptr);
126
- }
127
-
128
120
  #endif // !defined(__EMSCRIPTEN__)
129
121
 
130
122
  static char try_symbolize_buffer[4096];
@@ -174,12 +166,10 @@ void ABSL_ATTRIBUTE_NOINLINE TestWithReturnAddress() {
174
166
 
175
167
  TEST(Symbolize, Cached) {
176
168
  // Compilers should give us pointers to them.
177
- EXPECT_STREQ("nonstatic_func",
178
- TrySymbolize(GetPCFromFnPtr((void *)(&nonstatic_func))));
169
+ EXPECT_STREQ("nonstatic_func", TrySymbolize((void*)(&nonstatic_func)));
179
170
  // The name of an internal linkage symbol is not specified; allow either a
180
171
  // mangled or an unmangled name here.
181
- const char *static_func_symbol =
182
- TrySymbolize(GetPCFromFnPtr((void *)(&static_func)));
172
+ const char* static_func_symbol = TrySymbolize((void*)(&static_func));
183
173
  EXPECT_TRUE(strcmp("static_func", static_func_symbol) == 0 ||
184
174
  strcmp("static_func()", static_func_symbol) == 0);
185
175
 
@@ -189,50 +179,38 @@ TEST(Symbolize, Cached) {
189
179
  TEST(Symbolize, Truncation) {
190
180
  constexpr char kNonStaticFunc[] = "nonstatic_func";
191
181
  EXPECT_STREQ("nonstatic_func",
192
- TrySymbolizeWithLimit(GetPCFromFnPtr((void *)(&nonstatic_func)),
182
+ TrySymbolizeWithLimit((void*)(&nonstatic_func),
193
183
  strlen(kNonStaticFunc) + 1));
194
184
  EXPECT_STREQ("nonstatic_...",
195
- TrySymbolizeWithLimit(GetPCFromFnPtr((void *)(&nonstatic_func)),
185
+ TrySymbolizeWithLimit((void*)(&nonstatic_func),
196
186
  strlen(kNonStaticFunc) + 0));
197
187
  EXPECT_STREQ("nonstatic...",
198
- TrySymbolizeWithLimit(GetPCFromFnPtr((void *)(&nonstatic_func)),
188
+ TrySymbolizeWithLimit((void*)(&nonstatic_func),
199
189
  strlen(kNonStaticFunc) - 1));
200
- EXPECT_STREQ("n...", TrySymbolizeWithLimit(
201
- GetPCFromFnPtr((void *)(&nonstatic_func)), 5));
202
- EXPECT_STREQ("...", TrySymbolizeWithLimit(
203
- GetPCFromFnPtr((void *)(&nonstatic_func)), 4));
204
- EXPECT_STREQ("..", TrySymbolizeWithLimit(
205
- GetPCFromFnPtr((void *)(&nonstatic_func)), 3));
206
- EXPECT_STREQ(
207
- ".", TrySymbolizeWithLimit(GetPCFromFnPtr((void *)(&nonstatic_func)), 2));
208
- EXPECT_STREQ(
209
- "", TrySymbolizeWithLimit(GetPCFromFnPtr((void *)(&nonstatic_func)), 1));
210
- EXPECT_EQ(nullptr, TrySymbolizeWithLimit(
211
- GetPCFromFnPtr((void *)(&nonstatic_func)), 0));
190
+ EXPECT_STREQ("n...", TrySymbolizeWithLimit((void*)(&nonstatic_func), 5));
191
+ EXPECT_STREQ("...", TrySymbolizeWithLimit((void*)(&nonstatic_func), 4));
192
+ EXPECT_STREQ("..", TrySymbolizeWithLimit((void*)(&nonstatic_func), 3));
193
+ EXPECT_STREQ(".", TrySymbolizeWithLimit((void*)(&nonstatic_func), 2));
194
+ EXPECT_STREQ("", TrySymbolizeWithLimit((void*)(&nonstatic_func), 1));
195
+ EXPECT_EQ(nullptr, TrySymbolizeWithLimit((void*)(&nonstatic_func), 0));
212
196
  }
213
197
 
214
198
  TEST(Symbolize, SymbolizeWithDemangling) {
215
199
  Foo::func(100);
216
200
  #ifdef __EMSCRIPTEN__
217
201
  // Emscripten's online symbolizer is more precise with arguments.
218
- EXPECT_STREQ("Foo::func(int)",
219
- TrySymbolize(GetPCFromFnPtr((void *)(&Foo::func))));
202
+ EXPECT_STREQ("Foo::func(int)", TrySymbolize((void*)(&Foo::func)));
220
203
  #else
221
- EXPECT_STREQ("Foo::func()",
222
- TrySymbolize(GetPCFromFnPtr((void *)(&Foo::func))));
204
+ EXPECT_STREQ("Foo::func()", TrySymbolize((void*)(&Foo::func)));
223
205
  #endif
224
206
  }
225
207
 
226
208
  TEST(Symbolize, SymbolizeSplitTextSections) {
227
- EXPECT_STREQ("unlikely_func()",
228
- TrySymbolize(GetPCFromFnPtr((void *)(&unlikely_func))));
229
- EXPECT_STREQ("hot_func()", TrySymbolize(GetPCFromFnPtr((void *)(&hot_func))));
230
- EXPECT_STREQ("startup_func()",
231
- TrySymbolize(GetPCFromFnPtr((void *)(&startup_func))));
232
- EXPECT_STREQ("exit_func()",
233
- TrySymbolize(GetPCFromFnPtr((void *)(&exit_func))));
234
- EXPECT_STREQ("regular_func()",
235
- TrySymbolize(GetPCFromFnPtr((void *)(&regular_func))));
209
+ EXPECT_STREQ("unlikely_func()", TrySymbolize((void*)(&unlikely_func)));
210
+ EXPECT_STREQ("hot_func()", TrySymbolize((void*)(&hot_func)));
211
+ EXPECT_STREQ("startup_func()", TrySymbolize((void*)(&startup_func)));
212
+ EXPECT_STREQ("exit_func()", TrySymbolize((void*)(&exit_func)));
213
+ EXPECT_STREQ("regular_func()", TrySymbolize((void*)(&regular_func)));
236
214
  }
237
215
 
238
216
  // Tests that verify that Symbolize stack footprint is within some limit.
@@ -630,5 +608,12 @@ int main(int argc, char **argv) {
630
608
  #endif
631
609
  #endif
632
610
 
611
+ #if !defined(__EMSCRIPTEN__)
612
+ // All of these test cases rely on symbolizing function pointers.
613
+ // On most platforms, function pointers directly map to PC.
614
+ // In WebAssembly, function pointers are indices into the function table
615
+ // and there is no longer a mapping from function index back into the
616
+ // file offset for symbolization.
633
617
  return RUN_ALL_TESTS();
618
+ #endif // !defined(__EMSCRIPTEN__)
634
619
  }
@@ -15,7 +15,6 @@
15
15
  // See "Retrieving Symbol Information by Address":
16
16
  // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680578(v=vs.85).aspx
17
17
 
18
- #include <ntstatus.h>
19
18
  #include <windows.h>
20
19
  #include <winternl.h>
21
20
 
@@ -58,10 +57,9 @@ void InitializeSymbolizer(const char*) {
58
57
  // NTSTATUS (0xC0000004), which can happen when a module load occurs during
59
58
  // the SymInitialize call. In this case, we should try calling SymInitialize
60
59
  // again.
60
+ constexpr DWORD kStatusInfoLengthMismatch = DWORD{0xC0000004};
61
61
  syminitialize_error = GetLastError();
62
- // Both NTSTATUS and DWORD are 32-bit numbers, which makes the cast safe.
63
- if (syminitialize_error !=
64
- static_cast<DWORD>(STATUS_INFO_LENGTH_MISMATCH)) {
62
+ if (syminitialize_error != kStatusInfoLengthMismatch) {
65
63
  break;
66
64
  }
67
65
  }
@@ -168,6 +168,7 @@ cc_library(
168
168
  linkopts = ABSL_DEFAULT_LINKOPTS,
169
169
  visibility = [
170
170
  "//absl/flags:__pkg__",
171
+ "//absl/flags/rust:__pkg__",
171
172
  ],
172
173
  deps = [
173
174
  ":commandlineflag",
@@ -59,10 +59,19 @@ ABSL_NAMESPACE_END
59
59
 
60
60
  // Internal implementation of ABSL_DECLARE_FLAG to allow macro expansion of its
61
61
  // arguments. Clients must use ABSL_DECLARE_FLAG instead.
62
+ //
63
+ // The non-MSVC implementation declares the flag twice. This is to allow
64
+ // applying attributes to the second declaration. However, this causes a
65
+ // compile error (C4273) in MSVC if a `__declspec` is prepended to the macro.
66
+ #if defined(_MSC_VER)
67
+ #define ABSL_DECLARE_FLAG_INTERNAL(type, name) \
68
+ extern absl::Flag<type> FLAGS_##name
69
+ #else
62
70
  #define ABSL_DECLARE_FLAG_INTERNAL(type, name) \
63
71
  extern absl::Flag<type> FLAGS_##name; \
64
72
  namespace absl /* block flags in namespaces */ {} \
65
73
  /* second redeclaration is to allow applying attributes */ \
66
74
  extern absl::Flag<type> FLAGS_##name
75
+ #endif // _MSC_VER
67
76
 
68
77
  #endif // ABSL_FLAGS_DECLARE_H_
@@ -241,7 +241,8 @@ ABSL_NAMESPACE_END
241
241
  /* default value argument. That keeps temporaries alive */ \
242
242
  /* long enough for NonConst to work correctly. */ \
243
243
  static constexpr absl::string_view Value( \
244
- absl::string_view absl_flag_help = ABSL_FLAG_IMPL_FLAGHELP(txt)) { \
244
+ absl::string_view absl_flag_help ABSL_ATTRIBUTE_LIFETIME_BOUND = \
245
+ ABSL_FLAG_IMPL_FLAGHELP(txt)) { \
245
246
  return absl_flag_help; \
246
247
  } \
247
248
  static std::string NonConst() { return std::string(Value()); } \
@@ -58,7 +58,7 @@ class FlagStateInterface {
58
58
  virtual ~FlagStateInterface();
59
59
 
60
60
  // Restores the flag originated this object to the saved state.
61
- virtual void Restore() const = 0;
61
+ virtual void Restore() && = 0;
62
62
  };
63
63
 
64
64
  } // namespace flags_internal
@@ -26,6 +26,7 @@
26
26
  #include <memory>
27
27
  #include <string>
28
28
  #include <typeinfo>
29
+ #include <utility>
29
30
  #include <vector>
30
31
 
31
32
  #include "absl/base/attributes.h"
@@ -139,8 +140,8 @@ class FlagState : public flags_internal::FlagStateInterface {
139
140
  friend class FlagImpl;
140
141
 
141
142
  // Restores the flag to the saved state.
142
- void Restore() const override {
143
- if (!flag_impl_.RestoreState(*this)) return;
143
+ void Restore() && override {
144
+ if (!std::move(flag_impl_).RestoreState(*this)) return;
144
145
 
145
146
  ABSL_INTERNAL_LOG(INFO,
146
147
  absl::StrCat("Restore saved value of ", flag_impl_.Name(),
@@ -45,22 +45,7 @@ namespace flags_internal {
45
45
  // AbslParseFlag specializations for boolean type.
46
46
 
47
47
  bool AbslParseFlag(absl::string_view text, bool* dst, std::string*) {
48
- const char* kTrue[] = {"1", "t", "true", "y", "yes"};
49
- const char* kFalse[] = {"0", "f", "false", "n", "no"};
50
- static_assert(sizeof(kTrue) == sizeof(kFalse), "true_false_equal");
51
-
52
- text = absl::StripAsciiWhitespace(text);
53
-
54
- for (size_t i = 0; i < ABSL_ARRAYSIZE(kTrue); ++i) {
55
- if (absl::EqualsIgnoreCase(text, kTrue[i])) {
56
- *dst = true;
57
- return true;
58
- } else if (absl::EqualsIgnoreCase(text, kFalse[i])) {
59
- *dst = false;
60
- return true;
61
- }
62
- }
63
- return false; // didn't match a legal input
48
+ return SimpleAtob(absl::StripAsciiWhitespace(text), dst);
64
49
  }
65
50
 
66
51
  // --------------------------------------------------------------------
@@ -206,8 +206,10 @@ bool ArgsList::ReadFromFlagfile(const std::string& flag_file_name) {
206
206
 
207
207
  std::string line;
208
208
  bool success = true;
209
+ int line_number = 0;
209
210
 
210
211
  while (std::getline(flag_file, line)) {
212
+ line_number++;
211
213
  absl::string_view stripped = absl::StripLeadingAsciiWhitespace(line);
212
214
 
213
215
  if (stripped.empty() || stripped[0] == '#') {
@@ -229,8 +231,8 @@ bool ArgsList::ReadFromFlagfile(const std::string& flag_file_name) {
229
231
  }
230
232
 
231
233
  flags_internal::ReportUsageError(
232
- absl::StrCat("Unexpected line in the flagfile ", flag_file_name, ": ",
233
- line),
234
+ absl::StrCat("Unexpected line ", line_number, " in the flagfile ",
235
+ flag_file_name),
234
236
  true);
235
237
 
236
238
  success = false;
@@ -827,7 +827,7 @@ TEST_F(ParseDeathTest, TestInvalidFlagfiles) {
827
827
  flagfile_flag),
828
828
  };
829
829
  EXPECT_DEATH_IF_SUPPORTED(InvokeParse(in_args5),
830
- "Unexpected line in the flagfile .*: \\*bin\\*");
830
+ "Unexpected line 2 in the flagfile .*");
831
831
  }
832
832
 
833
833
  // --------------------------------------------------------------------
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include <atomic>
21
21
  #include <string>
22
+ #include <utility>
22
23
 
23
24
  #include "absl/base/config.h"
24
25
  #include "absl/base/no_destructor.h"
@@ -320,9 +321,9 @@ class FlagSaverImpl {
320
321
  }
321
322
 
322
323
  // Restores the saved flag states into the flag registry.
323
- void RestoreToRegistry() {
324
+ void RestoreToRegistry() && {
324
325
  for (const auto& flag_state : backup_registry_) {
325
- flag_state->Restore();
326
+ std::move(*flag_state).Restore();
326
327
  }
327
328
  }
328
329
 
@@ -340,7 +341,7 @@ FlagSaver::FlagSaver() : impl_(new flags_internal::FlagSaverImpl) {
340
341
  FlagSaver::~FlagSaver() {
341
342
  if (!impl_) return;
342
343
 
343
- impl_->RestoreToRegistry();
344
+ std::move(*impl_).RestoreToRegistry();
344
345
  delete impl_;
345
346
  }
346
347
 
@@ -104,8 +104,10 @@ cc_library(
104
104
  linkopts = ABSL_DEFAULT_LINKOPTS,
105
105
  deps = [
106
106
  ":any_invocable",
107
+ "//absl/base:config",
107
108
  "//absl/base:core_headers",
108
109
  "//absl/meta:type_traits",
110
+ "//absl/utility",
109
111
  ],
110
112
  )
111
113
 
@@ -117,8 +119,10 @@ cc_test(
117
119
  deps = [
118
120
  ":any_invocable",
119
121
  ":function_ref",
122
+ "//absl/base:config",
120
123
  "//absl/container:test_instance_tracker",
121
124
  "//absl/memory",
125
+ "//absl/utility",
122
126
  "@googletest//:gtest",
123
127
  "@googletest//:gtest_main",
124
128
  ],
@@ -87,9 +87,11 @@ absl_cc_library(
87
87
  COPTS
88
88
  ${ABSL_DEFAULT_COPTS}
89
89
  DEPS
90
+ absl::config
90
91
  absl::core_headers
91
92
  absl::any_invocable
92
93
  absl::meta
94
+ absl::utility
93
95
  PUBLIC
94
96
  )
95
97
 
@@ -101,9 +103,11 @@ absl_cc_test(
101
103
  COPTS
102
104
  ${ABSL_TEST_COPTS}
103
105
  DEPS
106
+ absl::config
104
107
  absl::function_ref
105
108
  absl::memory
106
109
  absl::test_instance_tracker
110
+ absl::utility
107
111
  GTest::gmock_main
108
112
  )
109
113
 
@@ -39,6 +39,7 @@
39
39
  #include <type_traits>
40
40
  #include <utility>
41
41
 
42
+ #include "absl/base/attributes.h"
42
43
  #include "absl/base/config.h"
43
44
  #include "absl/base/nullability.h"
44
45
  #include "absl/functional/internal/any_invocable.h"
@@ -159,7 +160,7 @@ ABSL_NAMESPACE_BEGIN
159
160
  // AnyInvocable<void()> empty;
160
161
  // empty(); // WARNING: Undefined behavior!
161
162
  template <class Sig>
162
- class ABSL_NULLABILITY_COMPATIBLE AnyInvocable
163
+ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
163
164
  : private internal_any_invocable::Impl<Sig> {
164
165
  private:
165
166
  static_assert(
@@ -171,6 +172,7 @@ class ABSL_NULLABILITY_COMPATIBLE AnyInvocable
171
172
  public:
172
173
  // The return type of Sig
173
174
  using result_type = typename Impl::result_type;
175
+ using absl_internal_is_view = std::false_type;
174
176
 
175
177
  // Constructors
176
178