Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Update internal absl to latest LTS #213

Merged
merged 12 commits into from
Jan 10, 2023
Merged

Update internal absl to latest LTS #213

merged 12 commits into from
Jan 10, 2023

Conversation

paleolimbot
Copy link
Collaborator

We have a new warning on the check page:

In member function 'std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_add(__int_type, std::memory_order) [with _ITp = int]',
    inlined from 'void absl::lts_20210324::cord_internal::Refcount::Increment()' at ../src/absl/strings/internal/cord_internal.h:80:21,
    inlined from 'static absl::lts_20210324::cord_internal::CordRep* absl::lts_20210324::cord_internal::CordRep::Ref(absl::lts_20210324::cord_internal::CordRep*)' at ../src/absl/strings/internal/cord_internal.h:526:26,
    inlined from 'absl::lts_20210324::cord_internal::CordRep* absl::lts_20210324::Cord::TakeRep() const &' at absl/strings/cord.cc:677:22,
    inlined from 'void absl::lts_20210324::Cord::AppendImpl(C&&) [with C = const absl::lts_20210324::Cord&]' at absl/strings/cord.cc:722:23:
d:\rtools43\x86_64-w64-mingw32.static.posix\lib\gcc\x86_64-w64-mingw32.static.posix\12.2.0\include\c++\bits\atomic_base.h:618:34: warning: 'unsigned int __atomic_fetch_add_4(volatile void*, unsigned int, int)' writing 4 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
  618 |       { return __atomic_fetch_add(&_M_i, __i, int(__m)); }
      |                ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

Unfortunately the "cord" header shows up in the btree_map (which is used in s2), and the "strings" absl component is used by a number of s2 internals as well. This PR is an attempt to update absl to see if that has been fixed.

@paleolimbot paleolimbot mentioned this pull request Jan 6, 2023
21 tasks
@edzer
Copy link
Member

edzer commented Jan 6, 2023

That fixed it locally for me (ubuntu), but win-builder still gives an install error - hard for me to understand that one!

@paleolimbot
Copy link
Collaborator Author

I'll look into it again this evening...I think both absl and R define a Free macro or function!

@codecov-commenter
Copy link

codecov-commenter commented Jan 7, 2023

Codecov Report

Merging #213 (826f625) into main (c317e8e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #213   +/-   ##
=======================================
  Coverage   94.02%   94.02%           
=======================================
  Files          46       46           
  Lines        3517     3517           
=======================================
  Hits         3307     3307           
  Misses        210      210           

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@paleolimbot
Copy link
Collaborator Author

It looks like there are a few extra format arguments to figure out, but that doesn't seem insurmountable (although may take another day or so for me to get to!)

@paleolimbot
Copy link
Collaborator Author

A few more with -Wpendantic from winbuilder:

Found the following significant warnings:
  ../src/absl/numeric/int128.h:106:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:120:21: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:121:30: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:136:22: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:137:31: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:162:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:163:40: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:283:57: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:350:20: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:351:38: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:366:21: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:390:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:391:40: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:461:3: warning: ISO C++ does not support '__int128' for 'v_' [-Wpedantic]
  ../src/absl/numeric/int128.h:518:48: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:574:36: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:578:45: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:660:28: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:662:54: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:663:37: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128.h:763:29: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:764:23: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:767:38: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:768:32: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:791:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:792:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:803:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:804:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:830:32: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:840:32: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:850:32: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:858:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:859:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:868:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:869:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:878:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:879:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:905:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:919:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:944:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:945:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:967:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:968:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:981:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:982:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:1006:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:1007:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:1011:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128.h:1012:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:24:45: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:24:11: warning: ISO C++ does not support '__int128' for 'BitCastToSigned' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:30:36: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:31:29: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:32:28: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:37:34: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:49:50: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:54:64: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:65:26: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:74:35: warning: ISO C++ does not support '__int128' for 'v' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:74:64: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:77:20: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:81:20: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:85:20: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:88:54: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:146:28: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:148:37: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:149:31: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:203:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:203:52: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:207:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:207:52: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:211:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:211:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:215:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:215:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:219:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:219:52: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:223:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:223:52: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:228:60: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:230:58: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:232:62: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:237:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:237:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:241:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:241:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:245:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:245:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:249:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:249:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:253:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:253:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:279:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:279:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:283:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:283:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:287:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:287:51: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:291:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/numeric/int128_have_intrinsic.inc:295:22: warning: ISO C++ does not support '__int128' for 'type name' [-Wpedantic]
  ../src/absl/container/internal/raw_hash_set.h:531:40: warning: overflow in conversion from 'int' to 'char' changes value from '128' to ''\37777777600'' [-Woverflow]

I'll have to look how I solved this before since it must have come up last time too.

@paleolimbot
Copy link
Collaborator Author

Ok! We're down to

  ../src/absl/container/internal/raw_hash_set.h:531:40: warning: overflow in conversion from 'int' to 'char' changes value from '128' to ''\37777777600'' [-Woverflow]
See 'd:/RCompile/CRANguest/R-devel/s2.Rcheck/00install.out' for details.

(on Winbuilder)

@paleolimbot
Copy link
Collaborator Author

This passes winbuilder...I also sent a check out to rhub::check_for_cran()!

@paleolimbot paleolimbot merged commit 800792e into main Jan 10, 2023
@paleolimbot paleolimbot deleted the absl-update branch January 10, 2023 13:59
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants