Add the -Z randomize-layout flag · Issue #457 · rust-lang/compiler-team (original) (raw)

Proposal

Adds the -Z randomize-layout flag and infrastructure required for it. The randomize layout flag randomizes/shuffles/otherwise makes unpredictable the layout of repr(Rust) types, which do not have a specified layout. This is to aid in debugging programs, detecting undefined behavior and running crater experiments. This does not affect any types with specified layouts, such as #[repr(C)] or #[repr(transparent)] types. This is strictly an opt-in flag and will not affect current stable code unless the end user explicitly uses the -Z randomize-layout flag with a nightly compiler.

Mentors or Reviewers

@eddyb

Process

The main points of the Major Change Process are as follows:

You can read more about Major Change Proposals on forge.

Comments

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.