Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Use the unsigned integer types for bitwise intrinsics. #13506

Closed
wants to merge 1 commit into from

Conversation

huonw
Copy link
Member

@huonw huonw commented Apr 14, 2014

Use the unsigned integer types for bitwise intrinsics.

Exposing ctpop, ctlz, cttz and bswap as taking signed i8/i16/... is just
exposing the internal LLVM names pointlessly (LLVM doesn't have "signed
integers" or "unsigned integers", it just has sized integer types
with (un)signed operations).

These operations are semantically working with raw bytes, which the
unsigned types model better.

pub fn bswap16(x: i16) -> i16;
pub fn bswap32(x: i32) -> i32;
pub fn bswap64(x: i64) -> i64;
// remove this after a snap, and merge the extern block above
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Could you add NOTE here to make this pop-up in make tidy ?

I use to grep for stage0 when doing a snapshot but it's still useful to use NOTE and make tidy

@alexcrichton
Copy link
Member

r=me, but it appears that there are failing tests on travis

Exposing ctpop, ctlz, cttz and bswap as taking signed i8/i16/... is just
exposing the internal LLVM names pointlessly (LLVM doesn't have "signed
integers" or "unsigned integers", it just has sized integer types
with (un)signed *operations*).

These operations are semantically working with raw bytes, which the
unsigned types model better.
alexcrichton added a commit to alexcrichton/rust that referenced this pull request Apr 16, 2014
Closes rust-lang#13546 (workcache: Don't assume gcc exists on all platforms)
Closes rust-lang#13545 (std: Remove pub use globs)
Closes rust-lang#13530 (test: Un-ignore smallest-hello-world.rs)
Closes rust-lang#13529 (std: Un-ignore some float tests on windows)
Closes rust-lang#13528 (green: Add a helper macro for booting libgreen)
Closes rust-lang#13526 (Remove RUST_LOG="::help" from the docs)
Closes rust-lang#13524 (dist: Make Windows installer uninstall first. Closes rust-lang#9563)
Closes rust-lang#13521 (Change AUTHORS section in the man pages)
Closes rust-lang#13519 (Update GitHub's Rust projects page.)
Closes rust-lang#13518 (mk: Change windows to install from stage2)
Closes rust-lang#13516 (liburl doc: insert missing hyphen)
Closes rust-lang#13514 (rustdoc: Better sorting criteria for searching.)
Closes rust-lang#13512 (native: Fix a race in select())
Closes rust-lang#13506 (Use the unsigned integer types for bitwise intrinsics.)
Closes rust-lang#13502 (Add a default impl for Set::is_superset)
@huonw huonw deleted the bitwise-byte-intrinsics branch July 11, 2014 05:54
flip1995 pushed a commit to flip1995/rust that referenced this pull request Oct 18, 2024
…rednet

unused_result_ok: added in Clippy 1.82.0, not 1.70.0

changelog: none

Fix rust-lang#13497
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants