about summary refs log tree commit diff
path: root/src/libcore/ptr
AgeCommit message (Collapse)AuthorLines
2020-05-01Document unsafety for `*const T` and `*mut T`LeSeulArtichaut-4/+8
2020-04-30rename-unique: Rename Unique::empty() to Unique::dangling()cohenarthur-2/+1
rename-unique: Change calls and doc in raw_vec.rs rename-unique: Change empty() -> dangling() in const-ptr-unique-rpass.rs
2020-04-29Rollup merge of #71507 - CohenArthur:document-unsafe-libcore-ptr, ↵Dylan DPC-7/+45
r=Mark-Simulacrum Document unsafety in core::ptr Contributes to #66219 I have yet to document all the `unsafe` blocks in the lib and would like to know if I'm headed in the right direction r? @steveklabnik
2020-04-29safety-ptr: Add SAFETY on some unsafe blocks from libcore/ptrcohenarthur-3/+43
Add documentation example to slice_from_raw_parts_mut() Add SAFETY explanations to some unsafe blocks in libcore/ptr * libcore/ptr/mod.rs * libcore/ptr/unique.rs * libcore/ptr/non_null.rs safety-mod.rs: Add SAFETY to slice_from_raw_parts(), slice_from_raw_parts_mut() slice_from_raw_parts_mut: Add documentation example safety-ptr-unique.rs: Add SAFETY to new() and cast() safety-ptr-non_null.rs: Add SAFETY to new() safety-ptr-non_null.rs: Add SAFETY to cast() safety-ptr-non_null.rs: Add SAFETY to from() impls safety-ptr-unique.rs: Add SAFETY to from() impls safety-ptr-non_null.rs: Add SAFETY to new() safety-ptr-unique.rs: Add SAFETY to new() safety-ptr-mod.rs: Fix safety explanation https://github.com/rust-lang/rust/pull/71507#discussion_r414488884 safety-prt-non_null.rs: Fix SAFETY comment syntax safety-ptr-unique.rs: Fix syntax for empty() safety-ptr-non_null.rs: Fix misuse of non-null for align_of() safety-ptr-non_null.rs: Remove incorrect SAFETY comment safety-ptr-unique.rs: Remove unsound SAFETY comment safety-ptr-mod.rs: Add std comment on slice_from_raw_parts guarantee safety-ptr-unique.rs: Remove incorrect safety comment Creating a Unique from a NonNull has strict guarantees that the current implementation does not guarantee https://github.com/rust-lang/rust/pull/71507#discussion_r415035952 safety-ptr: Re-adding ignore-tidy directive
2020-04-26remove Unique::from for shared pointer typesRalf Jung-17/+0
2020-04-25Bump bootstrap compilerMark Rousskov-2/+0
2020-04-23doc-example: Refactor pointer name to avoid confusioncohenarthur-4/+2
Changed raw pointer name from ptr to raw_pointer to avoid confusion with the `use std::ptr` statement a few lines above. This way the crate name and pointer name are well differenciated.
2020-04-22Inline some function docs re-exported in `std::ptr`Dylan MacKenzie-0/+3
2020-04-14ptr: add tracking issue for len() method on raw slicesMatthias Schiffer-4/+4
2020-04-14ptr: introduce len() method on raw slicesMatthias Schiffer-2/+50
It is already possible to extract the pointer part of a raw slice by a simple cast, but retrieving the length is not possible without relying on the representation of the raw slice when it is not valid to convert the raw slice into a slice reference (i.e. the pointer is null or unaligned). Introduce a len() method on raw slices to add this missing feature.
2020-04-14ptr: implement "const_slice_ptr" and "mut_slice_ptr" lang itemsMatthias Schiffer-0/+8
2020-04-03Replace max/min_value() with MAX/MIN assoc constsLinus Färnstrand-4/+4
2020-03-14debug-assert ptr sanity in ptr::writeRalf Jung-3/+1
2020-03-06fix various typosMatthias Krüger-10/+10
2020-02-29Auto merge of #69208 - RalfJung:debug-assert, r=Mark-Simulacrumbors-1/+13
debug_assert a few more raw pointer methods Makes progress for https://github.com/rust-lang/rust/issues/53871
2020-02-27disable debug assertion in ptr::write for nowRalf Jung-1/+3
2020-02-16debug_assert a few more raw pointer methodsRalf Jung-1/+11
2020-02-16Improve #Safety of core::ptr::drop_in_placeAmos Onn-1/+4
Added missing conditions: - Valid for writes - Valid for destructing
2020-02-15Improve #Safety in various methods in core::ptrAmos Onn-0/+8
For all methods which read a value of type T, `read`, `read_unaligned`, `read_volatile` and `replace`, added missing constraint: The value they point to must be properly initialized
2020-02-15Improve #Safety of core::ptr::replaceAmos Onn-1/+1
Added missing condition: `dst` must be readable
2020-02-15Improve #Safety in various methods in core::ptrAmos Onn-2/+2
s/for reads and writes/for both ...
2020-02-03Optimize core::ptr::align_offsetAmos Onn-2/+1
- As explained in the comment inside mod_inv, it is valid to work mod `usize::max_value()` right until the end.
2020-02-03Optimize core::ptr::align_offsetAmos Onn-13/+20
- When calculating the inverse, it's enough to work `mod a/g` instead of `mod a`.
2020-02-03Optimize core::ptr::align_offsetAmos Onn-2/+2
- Stopping condition inside mod_inv can be >= instead of > - Remove intrinsics::unchecked_rem, we are working modulu powers-of-2 so we can simply mask
2020-01-28Auto merge of #68234 - CAD97:slice-from-raw-parts, r=KodrAusbors-6/+5
Stabilize ptr::slice_from_raw_parts[_mut] Closes #36925, the tracking issue. Initial impl: #60667 r? @rust-lang/libs In addition to stabilizing, I've adjusted the example of `ptr::slice_from_raw_parts` to use `slice_from_raw_parts` instead of `slice_from_raw_parts_mut`, which was unnecessary for the example as written.
2020-01-18get rid of real_drop_in_place againRalf Jung-12/+2
2020-01-15Fix incorrect slice->ptr conversion in slice_from_raw_parts docsCAD97-1/+1
2020-01-14Stabilize ptr::slice_from_raw_parts[_mut]CAD97-6/+5
2020-01-09doc: add Null-unchecked version section to mut pointer as_mut methodTrevor Spiteri-0/+14
The as_ref method already has a Null-unchecked version section, its example is a modification of the example in the main as_ref section. Similarly the example in this commit is a modification of the example in main as_mut section.
2019-12-27Clean up const-hack from #63810jumbatm-4/+1
2019-12-22Format the worldMark Rousskov-88/+108
2019-12-22Rollup merge of #67480 - rossmacarthur:fix-41260-avoid-issue-0-part-2, r=CentrilMazdak Farrokhzad-17/+17
Require issue = "none" over issue = "0" in unstable attributes These changes make the use of `issue = "none"` required in unstable attributes throughout the compiler. Notes: - #66299 is now in beta so `issue = "none"` is accepted. - The `tidy` tool now fails on `issue = "0"`. - Tests that used `issue = "0"` were changed to use `issue = "none"`, except for _one_ that asserts `issue = "0"` can still be used. - The compiler still allows `issue = "0"` because some submodules require it, this could be disallowed once these are updated. Resolves #41260 r? @varkor
2019-12-21Rollup merge of #67462 - DutchGhost:const_slice_from_raw_parts, r=dtolnayMazdak Farrokhzad-2/+4
Make ptr::slice_from_raw_parts a const fn available under a feature flag A first step in the direction of https://github.com/rust-lang/rust/issues/67456 . This makes `ptr::slice_from_raw_parts` and `ptr::slice_from_raw_parts_mut` available as a const fn under a feature flag.
2019-12-21Require issue = "none" over issue = "0" in unstable attributesRoss MacArthur-17/+17
2019-12-20Make ptr::slice_from_raw_parts a const fn available under a feature flagDodo-2/+4
2019-12-19Split up ptr/mod.rs in libcore, one with implementation detail for const ptr ↵Christoph Schmidler-1691/+1685
and the other with mut ptr
2019-12-18Propagate cfg bootstrapMark Rousskov-30/+10
2019-12-13Require stable/unstable annotations for the constness of all stable ↵Oliver Scherer-2/+30
functions with a `const` modifier
2019-12-06Format libcore with rustfmt (including tests and benches)David Tolnay-91/+143
2019-12-06Suppress libcore/ptr/mod.rs filelength lintDavid Tolnay-0/+1
2019-11-29Rollup merge of #66379 - CreepySkeleton:patch-1, r=RalfJungRalf Jung-14/+24
Rephrase docs in for ptr These methods can be supplied with NULL just fine, this is the whole point of `Option<&T>` return type.
2019-11-27Use intra-doc linksCreepySkeleton-2/+2
2019-11-27Elaborate on std::ptr::{as_ref,as_mod} and clarify docsCreepySkeleton-14/+24
2019-11-26Format libcore with rustfmtDavid Tolnay-30/+23
This commit applies rustfmt with default settings to files in src/libcore *that are not involved in any currently open PR* to minimize merge conflicts. The list of files involved in open PRs was determined by querying GitHub's GraphQL API with this script: https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8 With the list of files from the script in `outstanding_files`, the relevant commands were: $ find src/libcore -name '*.rs' | xargs rustfmt --edition=2018 $ rg libcore outstanding_files | xargs git checkout -- Repeating this process several months apart should get us coverage of most of the rest of libcore.
2019-11-12Snap cfgsMark Rousskov-16/+0
2019-11-07Rollup merge of #63793 - oli-obk:🧹, r=dtolnayMazdak Farrokhzad-0/+6
Have tidy ensure that we document all `unsafe` blocks in libcore cc @rust-lang/libs I documented a few and added ignore flags on the other files. We can incrementally document the files, but won't regress any files this way.
2019-11-06Have tidy ensure that we document all `unsafe` blocks in libcoreOliver Scherer-0/+6
2019-11-05Apply suggestions from code reviewRalf Jung-2/+2
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-11-05expand slice from_raw_part docsRalf Jung-0/+4
2019-11-05link from raw slice creation methods to safety requirementsRalf Jung-5/+14