This project is mirrored from https://github.com/abseil/abseil-cpp.git. Pull mirroring updated .
  1. 20 May, 2022 1 commit
  2. 19 May, 2022 1 commit
  3. 18 May, 2022 2 commits
  4. 17 May, 2022 5 commits
    • Abseil Team's avatar
      Cast away an unused variable to play nice with -Wunused-but-set-variable. · 9df63a8b
      Abseil Team authored
      PiperOrigin-RevId: 449351955
      Change-Id: Id30280107bb29f7d715327b99a2c954809513a48
      9df63a8b
    • Dino Radakovic's avatar
      Use NullSafeStringView for const char* args to absl::StrCat, treating null pointers as "" · e92505d8
      Dino Radakovic authored
      Fixes #1167
      
      PiperOrigin-RevId: 449328725
      Change-Id: I813785db77b94efa49eeeff4c93449334c380935
      e92505d8
    • Andy Getzendanner's avatar
      raw_logging: Extract the inlined no-hook-registered behavior for LogPrefixHook... · 7d3b4c86
      Andy Getzendanner authored
      raw_logging: Extract the inlined no-hook-registered behavior for LogPrefixHook to a default implementation.
      
      PiperOrigin-RevId: 449306617
      Change-Id: Ia3e87d2edcae7e9874998f21a0e2ff245e48fd96
      7d3b4c86
    • Abseil Team's avatar
      absl: fix use-after-free in Mutex/CondVar · 9444b11e
      Abseil Team authored
      Both Mutex and CondVar signal PerThreadSem/Waiter after satisfying the wait condition,
      as the result the waiting thread may return w/o waiting on the
      PerThreadSem/Waiter at all. If the waiting thread then exits, it currently
      destroys Waiter object. As the result Waiter::Post can be called on
      already destroyed object.
      PerThreadSem/Waiter must be type-stable after creation and must not be destroyed.
      The futex-based implementation is the only one that is not affected by the bug
      since there is effectively nothing to destroy (maybe only UBSan/ASan
      could complain about calling methods on a destroyed object).
      
      Here is the problematic sequence of events:
      
      1: void Mutex::Block(PerThreadSynch *s) {
      2:   while (s->state.load(std::memory_order_acquire) == PerThreadSynch::kQueued) {
      3:     if (!DecrementSynchSem(this, s, s->waitp->timeout)) {
      
      4: PerThreadSynch *Mutex::Wakeup(PerThreadSynch *w) {
      5:   ...
      6:   w->state.store(PerThreadSynch::kAvailable, std::memory_order_release);
      7:   IncrementSynchSem(this, w);
      8:   ...
      9: }
      
      Consider line 6 is executed, then line 2 observes kAvailable and
      line 3 is not called. The thread executing Mutex::Block returns from
      the method, acquires the mutex, releases the mutex, exits and destroys
      PerThreadSem/Waiter.
      Now Mutex::Wakeup resumes and executes line 7 on the destroyed object. Boom!
      
      CondVar uses a similar pattern.
      
      Moreover the semaphore-based Waiter implementation is not even destruction-safe
      (the Waiter cannot be used to signal own destruction). So even if Mutex/CondVar
      would always pair Waiter::Post with Waiter::Wait before destroying PerThreadSem/Waiter,
      it would still be subject to use-after-free bug on the semaphore.
      
      PiperOrigin-RevId: 449159939
      Change-Id: I497134fa8b6ce1294a422827c5f0de0e897cea31
      9444b11e
    • Abseil Team's avatar
      absl: fix live-lock in CondVar · aac2279f
      Abseil Team authored
      CondVar::WaitWithTimeout can live-lock when timeout is racing with Signal/SignalAll
      and Signal/SignalAll thread is not scheduled due to priorities, affinity or other
      scheduler artifacts. This could lead to stalls of up to tens of seconds in some cases.
      PiperOrigin-RevId: 449159670
      Change-Id: I64bbd277c1f91964cfba3306ba8a80eeadf85f64
      aac2279f
  5. 16 May, 2022 1 commit
  6. 13 May, 2022 1 commit
  7. 12 May, 2022 3 commits
    • Abseil Team's avatar
      Internal change · f7a250aa
      Abseil Team authored
      PiperOrigin-RevId: 448361090
      Change-Id: Iec6063b88a778dfe815081612650eaa456503265
      f7a250aa
    • Benjamin Barenblat's avatar
      Fix an msan warning in cord_ringbuffer_test · 3af16ffe
      Benjamin Barenblat authored
      Stop the absl::Cord destructor from running on the constinit cord in
      CordTest.ConstinitConstructor. This allows inspecting the cord at any point
      while the test is exiting, which is important for the semantics of the test.
      
      PiperOrigin-RevId: 448327386
      Change-Id: Icef9faa2b63f1f0ae60b3430dcf6184f5dead885
      3af16ffe
    • Abseil Team's avatar
      Fix spelling error "charachter" · 9aa7d0bd
      Abseil Team authored
      PiperOrigin-RevId: 448159349
      Change-Id: I6b25a90d8a3b6d3a888274d156aa696d77fb042d
      9aa7d0bd
  8. 11 May, 2022 1 commit
  9. 10 May, 2022 1 commit
    • Abseil Team's avatar
      Fixes for C++20 support when not using std::optional. · 50739475
      Abseil Team authored
      * Avoid warnings due to deprecation of volatile return types.
      
      Also fix up optional_test.cc due to ABSL_USES_STD_OPTIONAL always being
      false in its body.
      
      Bug: chromium:1284275
      PiperOrigin-RevId: 447796238
      Change-Id: If050206c979c6c08af22e71ff0ea91e7f7932f0c
      50739475
  10. 05 May, 2022 1 commit
  11. 04 May, 2022 5 commits
  12. 03 May, 2022 2 commits
  13. 02 May, 2022 1 commit
  14. 29 Apr, 2022 1 commit
  15. 25 Apr, 2022 2 commits
  16. 22 Apr, 2022 2 commits
  17. 21 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 7c6608d0
      Abseil Team authored
      --
      6d4e969ad240d248bfeb644b3b76fffae0f07882 by Christian Blichmann <cblichmann@google.com>:
      
      cmake: Fix description of `ABSL_USE_EXTERNAL_GOOGLETEST` option
      
      There is no `add_subproject()` in CMake.
      
      PiperOrigin-RevId: 443087953
      Change-Id: I30c2118638f99ad1389ae197e2c81d1e5f298882
      GitOrigin-RevId: 6d4e969ad240d248bfeb644b3b76fffae0f07882
      7c6608d0
  18. 19 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 3dccef2a
      Abseil Team authored
      --
      6457ad659de86ce4cae1e9f7cb03a701c6c2851e by Abseil Team <absl-team@google.com>:
      
      Introduced ErrnoToStatusCode and ErrnoToStatus to abseil.
      
      PiperOrigin-RevId: 442903450
      Change-Id: I9c062b34a3811216f43eef56e631eada3b4e3e84
      GitOrigin-RevId: 6457ad659de86ce4cae1e9f7cb03a701c6c2851e
      3dccef2a
  19. 18 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · c27ab068
      Abseil Team authored
      --
      3d018c03a34bf273a4b24b3584ed77f0a6d21686 by Abseil Team <absl-team@google.com>:
      
      Fix a spelling typo (s/boundries/boundaries).
      
      PiperOrigin-RevId: 442041877
      Change-Id: I608020697d37b85316bb9a0838e4b457659c926c
      
      --
      518b8119e51db24ce7fb0fd2fe537ec43825c3e6 by Dino Radakovic <dinor@google.com>:
      
      absl/types/internal/variant: Make include guard uppercase
      
      https://google.github.io/styleguide/cppguide.html#The__define_Guard
      
      PiperOrigin-RevId: 441911692
      Change-Id: I9837dd07f20204d8253f20627b0917a34dc21825
      
      --
      b91696c38310a7cae8c1ea9e2d479495f5dc3f69 by Greg Falcon <gfalcon@google.com>:
      
      Add an internal-only API to wrap __builtin_prefetch() if available.
      
      This private API is intended for future use by the Abseil implementation.  Like any internal-namespaced function, it may be changed or removed at any time.
      
      PiperOrigin-RevId: 441894616
      Change-Id: Iaa48bd4680b373f4a0d5afab0cb35e2a1908595f
      
      --
      0f01e8b0551a662e02dff60840c54320f987315f by Derek Mauro <dmauro@google.com>:
      
      C++20: Use the standard `constinit` keyword for `ABSL_CONST_INIT` when available
      
      PiperOrigin-RevId: 441778874
      Change-Id: I70c616469752ff23b326b1c615437599f42cc6aa
      GitOrigin-RevId: 3d018c03a34bf273a4b24b3584ed77f0a6d21686
      c27ab068
  20. 14 Apr, 2022 1 commit
  21. 12 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · ac1398a6
      Abseil Team authored
      --
      f4c7e510922668c68be4aa79a00867c3d3ca9f95 by Derek Mauro <dmauro@google.com>:
      
      Many improvements to LeakChecker builds
      
      The presence of the LeakChecker is now detected when possible. GCC
      users using LeakChecker in standalone mode still need to use
      -DLEAK_CHECKER. This is now documented in the header.
      
      The hacky targets used for testing leak checking have been removed in
      favor of testing in AddressSanitizer mode on Kokoro.
      
      Fixes #885
      Fixes #1153
      
      PiperOrigin-RevId: 441203393
      Change-Id: Ibe64ef6b104bcaf31839ff7184e558cc86abdd1c
      
      --
      5c70a23aa83b8152ab95d2cf21662fc63c80ef7d by Abseil Team <absl-team@google.com>:
      
      Add a benchmark for stacktrace
      
      PiperOrigin-RevId: 441196473
      Change-Id: I4c9aa2e797aa2cae09abfaaee3abe5c09eb62fc4
      
      --
      50b406052273b9d5bad04a7860a96e4d5d956c02 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 441114481
      Change-Id: I667af7a50d5631ca91289dd24c91ba90233e0184
      
      --
      568b4eaac120b420bce5290179d407d2b57d5bae by Dino Radakovic <dinor@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 440894155
      Change-Id: Ia587ffc65a8321126585fb363b7c0ca8cc2a0da2
      
      --
      d53948eace4f3a10ac5a6c1496dc51b81adc412c by Abseil Team <absl-team@google.com>:
      
      Explicitly give internal linkage to symbols which are not used outside of their
      translation units.
      
      PiperOrigin-RevId: 440424519
      Change-Id: I531c5e229d443375483b7550a34f48042589a99b
      GitOrigin-RevId: f4c7e510922668c68be4aa79a00867c3d3ca9f95
      ac1398a6
  22. 07 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · e854df09
      Abseil Team authored
      --
      0c8848ebedc07470c7ab647a5bb8949481540ce9 by Dino Radakovic <dinor@google.com>:
      
      Define absl::base_internal::invoke using std::invoke when C++ >= 17
      
      PiperOrigin-RevId: 439880834
      Change-Id: I3622fcf473501d54c57575118a11d54c19573446
      GitOrigin-RevId: 0c8848ebedc07470c7ab647a5bb8949481540ce9
      e854df09
  23. 06 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 9fed77a6
      Abseil Team authored
      --
      ef2bf829c333f378ecc12f3259e3187cdb75a3d5 by Abseil Team <absl-team@google.com>:
      
      debugging: fix the VDSO symbol name used for unwinding on RISC-V Linux
      
      The name listed in `man vdso` is incorrect. Instead, use the name from `linux-5.16/arch/riscv/kernel/vdso/rt_sigreturn.S`
      
      PiperOrigin-RevId: 439654174
      Change-Id: Ib39d066f416681720068e806e828a2c76a14a532
      
      --
      43dfad824afd36cfc3e5049b4fea71a2bccb066c by Benjamin Barenblat <bbaren@google.com>:
      
      Check printf format strings in str_format_convert_test
      
      Add ABSL_PRINTF_ATTRIBUTE to appropriate functions in
      strings/internal/str_format/convert_test. Correct
      TypedFormatConvertTest.Char, which was accidentally passing values of
      types larger than int to StrPrint.
      
      PiperOrigin-RevId: 439388148
      Change-Id: I6cde4e8e0c6455064138192430f07f4c990be0bc
      
      --
      f84b4ab2c3b070c8af0c82742ac7a8a4bf443bca by Derek Mauro <dmauro@google.com>:
      
      Use __builtin_memcmp in the absl::string_view implementation
      starting with MSVC 16.9, where it first appeared
      
      This enables more constexpr operations
      
      PiperOrigin-RevId: 439317316
      Change-Id: Iaf1ce76b60901d4b2d5b96be5900c56572f57b15
      GitOrigin-RevId: ef2bf829c333f378ecc12f3259e3187cdb75a3d5
      9fed77a6
  24. 04 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 6f43f5bb
      Abseil Team authored
      --
      afa44fa0245a1cfb1824ef9697b3fa77fa9615c9 by Laramie Leavitt <lar@google.com>:
      
      Comment CMakeLists.txt about internal absl_cc_library() targets.
      
      From what I can tell, these are the CMake targets that are public:
      
          absl::algorithm
          absl::algorithm_container
          absl::base
          absl::core_headers
          absl::dynamic_annotations
          absl::log_severity
          absl::cleanup
          absl::btree
          absl::fixed_array
          absl::flat_hash_map
          absl::flat_hash_set
          absl::inlined_vector
          absl::node_hash_map
          absl::node_hash_set
          absl::debugging
          absl::failure_signal_handler
          absl::leak_check
          absl::leak_check_disable
          absl::stacktrace
          absl::symbolize
          absl::flags
          absl::flags_commandlineflag
          absl::flags_config
          absl::flags_marshalling
          absl::flags_parse
          absl::flags_reflection
          absl::flags_usage
          absl::bind_front
          absl::function_ref
          absl::hash
          absl::hash_testing
          absl::memory
          absl::meta
          absl::type_traits
          absl::bits
          absl::int128
          absl::numeric
          absl::numeric_representation
          absl::exponential_biased
          absl::periodic_sampler
          absl::sample_recorder
          absl::random_bit_gen_ref
          absl::random_distributions
          absl::random_mocking_bit_gen
          absl::random_random
          absl::random_seed_gen_exception
          absl::random_seed_sequences
          absl::status
          absl::statusor
          absl::cord
          absl::cord_test_helpers
          absl::str_format
          absl::strings
          absl::synchronization
          absl::civil_time
          absl::time
          absl::time_zone
          absl::any
          absl::bad_any_cast
          absl::bad_optional_access
          absl::bad_variant_access
          absl::compare
          absl::optional
          absl::span
          absl::variant
          absl::utility
      
      PiperOrigin-RevId: 438702788
      Change-Id: Icf611c35e88f03cd2493a95f61617605305d4e8e
      
      --
      a99f60847578e6c0df6befadb29a01c86def0d21 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438647928
      Change-Id: I141eadd17d6e8607df25ebc893aecefa0239a72f
      
      --
      b23e77e8f62a77023188594390c9e491c507d22c by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438628502
      Change-Id: I40c4297716c8c1621ba8b02a22393bfcbefb5b5e
      GitOrigin-RevId: afa44fa0245a1cfb1824ef9697b3fa77fa9615c9
      6f43f5bb
  25. 31 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 4dcae40a
      Abseil Team authored
      --
      b984c7c1cbee4253192c833046bfcfa16dca8ccf by Dino Radakovic <dinor@google.com>:
      
      Restrict visibility of absl/flags:commandlineflag_internal
      
      PiperOrigin-RevId: 438591894
      Change-Id: I12a6392b2c7f9f1263c741dfd6c43ae22e903aad
      
      --
      81315601aab70bb6ac2d17655a727d7f9ee2ff95 by Justin Lebar <jlebar@google.com>:
      
      Update example in str_join.h to use a lambda.
      
      PiperOrigin-RevId: 438390035
      Change-Id: Icc707b972e5a369a71ad774004fdf0a17a9b33a7
      
      --
      1c3c7921224e505faca8617b073f657d3737219f by Dino Radakovic <dinor@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438386036
      Change-Id: I6066da1b5a1ddf5af265944a31ed298297b4f2e1
      
      --
      2d6885f78481f04e0e7ee86060aec15b677144f3 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438378389
      Change-Id: If70dd9114114eb44e85afccd521e7fb7e1436b88
      
      --
      7f8282ddee7fcd032e01cbfe65c11c2d166cceb8 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438374554
      Change-Id: I993367952af1dc83bd5aa0ae19a64c024f457fdd
      
      --
      ce65ba28f6031e45db8fa5118a05410f5166fd7a by Abseil Team <absl-team@google.com>:
      
      Spelling gardening: Heterogeneous has an "e" after the "n".
      
      PiperOrigin-RevId: 438374411
      Change-Id: If1a9098a5d04338837998883739c7b555efa62b4
      GitOrigin-RevId: b984c7c1cbee4253192c833046bfcfa16dca8ccf
      4dcae40a
  26. 30 Mar, 2022 1 commit
    • Fabrice Fontaine's avatar
      Fix build with uclibc-ng (#1145) · b9ad9bbf
      Fabrice Fontaine authored
      uclibc-ng doesn't provide getauxval which results in the following build
      failure on arm or ppc with any user of abseil-cpp such as grpc:
      
      /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libabsl_random_internal_randen_hwaes.so.2111.0.0: undefined reference to `getauxval'
      
      To fix this build failure, check that __UCLIBC__ is not defined before
      using getauxval (as Babel is not able to check function availability)
      
      Fixes:
       - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02
      
      Signed-off-by: default avatarFabrice Fontaine <fontaine.fabrice@gmail.com>
      b9ad9bbf