Auto merge of #85057 - Dylan-DPC:rollup-efaseq2, r=Dylan-DPC
Rollup of 6 pull requests Successful merges: - #76808 (Improve diagnostics for functions in `struct` definitions) - #84887 (Remove SpanInterner::get) - #85034 (fix null pointer error messages) - #85038 (Don't stop running rustdoc-gui tests at first failure) - #85044 (Use `path.exists()` instead of `fs::metadata(path).is_ok()`) - #85052 (rustdoc: Link to the docs on namespaces when an unknown disambiguator is found) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
abf3ec5b33
16 changed files with 192 additions and 97 deletions
|
@ -170,22 +170,25 @@ impl fmt::Display for InvalidProgramInfo<'_> {
|
|||
/// Details of why a pointer had to be in-bounds.
|
||||
#[derive(Debug, Copy, Clone, TyEncodable, TyDecodable, HashStable)]
|
||||
pub enum CheckInAllocMsg {
|
||||
/// We are access memory.
|
||||
MemoryAccessTest,
|
||||
/// We are doing pointer arithmetic.
|
||||
PointerArithmeticTest,
|
||||
/// None of the above -- generic/unspecific inbounds test.
|
||||
InboundsTest,
|
||||
}
|
||||
|
||||
impl fmt::Display for CheckInAllocMsg {
|
||||
/// When this is printed as an error the context looks like this
|
||||
/// "{test name} failed: pointer must be in-bounds at offset..."
|
||||
/// "{msg}pointer must be in-bounds at offset..."
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(
|
||||
f,
|
||||
"{}",
|
||||
match *self {
|
||||
CheckInAllocMsg::MemoryAccessTest => "memory access",
|
||||
CheckInAllocMsg::PointerArithmeticTest => "pointer arithmetic",
|
||||
CheckInAllocMsg::InboundsTest => "inbounds test",
|
||||
CheckInAllocMsg::MemoryAccessTest => "memory access failed: ",
|
||||
CheckInAllocMsg::PointerArithmeticTest => "pointer arithmetic failed: ",
|
||||
CheckInAllocMsg::InboundsTest => "",
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -299,18 +302,18 @@ impl fmt::Display for UndefinedBehaviorInfo<'_> {
|
|||
}
|
||||
PointerOutOfBounds { ptr, msg, allocation_size } => write!(
|
||||
f,
|
||||
"{} failed: pointer must be in-bounds at offset {}, \
|
||||
"{}pointer must be in-bounds at offset {}, \
|
||||
but is outside bounds of {} which has size {}",
|
||||
msg,
|
||||
ptr.offset.bytes(),
|
||||
ptr.alloc_id,
|
||||
allocation_size.bytes()
|
||||
),
|
||||
DanglingIntPointer(_, CheckInAllocMsg::InboundsTest) => {
|
||||
write!(f, "null pointer is not allowed for this operation")
|
||||
DanglingIntPointer(0, CheckInAllocMsg::InboundsTest) => {
|
||||
write!(f, "null pointer is not a valid pointer for this operation")
|
||||
}
|
||||
DanglingIntPointer(i, msg) => {
|
||||
write!(f, "{} failed: 0x{:x} is not a valid pointer", msg, i)
|
||||
write!(f, "{}0x{:x} is not a valid pointer", msg, i)
|
||||
}
|
||||
AlignmentCheckFailed { required, has } => write!(
|
||||
f,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue