Page MenuHomeFreeBSD

tcp_bbr: avoid gcc -Werror=pointer-to-int-cast on 32-bit arch
ClosedPublic

Authored by rlibby on Jun 26 2024, 7:50 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Dec 21, 5:13 PM
Unknown Object (File)
Sun, Dec 21, 2:53 PM
Unknown Object (File)
Thu, Dec 11, 12:29 PM
Unknown Object (File)
Nov 28 2025, 9:59 PM
Unknown Object (File)
Nov 25 2025, 12:34 PM
Unknown Object (File)
Nov 20 2025, 4:30 PM
Unknown Object (File)
Nov 19 2025, 2:28 AM
Unknown Object (File)
Nov 13 2025, 7:32 PM

Details

Test Plan

make buildkernel on amd64 and i386, examine warnings

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 58368
Build 55256: arc lint + arc unit

Event Timeline

rlibby added reviewers: rrs, tuexen.

Why is an uint64_t not good enough to hold a pointer? Aren't pointers 32-bit or 64-bit on all architectures FreeBSD supports?

Why is an uint64_t not good enough to hold a pointer? Aren't pointers 32-bit or 64-bit on all architectures FreeBSD supports?

Yeah, uint64_t is always wide enough. gcc's issue on 32-bit arch is that it doesn't like to see a 32-bit pointer cast directly to a 64-bit integer. It issues -Wpointer-to-int-cast, which is an error with our flags. This patch works around that by first casting to an integer type that is the same width as a pointer. From there there is no complaint about the conversion to uint64_t. The patch is intended to be a functional nop, for both 32-bit and 64-bit arch.

Same deal in D45752. Related issue in reverse in D45750.

This revision is now accepted and ready to land.Jun 26 2024, 8:51 PM