Auto merge of #120112 - matthiaskrgr:rollup-48o3919, r=matthiaskrgr
Rollup of 9 pull requests Successful merges: - #119582 (bootstrap: handle vendored sources when remapping crate paths) - #119730 (docs: fix typos) - #119828 (Improved collapse_debuginfo attribute, added command-line flag) - #119869 (replace `track_errors` usages with bubbling up `ErrorGuaranteed`) - #120037 (Remove `next_root_ty_var`) - #120094 (tests/ui/asm/inline-syntax: adapt for LLVM 18) - #120096 (Set RUSTC_BOOTSTRAP=1 consistently) - #120101 (change `.unwrap()` to `?` on write where `fmt::Result` is returned) - #120102 (Fix typo in munmap_partial.rs) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
92d727796b
61 changed files with 767 additions and 251 deletions
31
tests/debuginfo/collapse-debuginfo-external-attr.rs
Normal file
31
tests/debuginfo/collapse-debuginfo-external-attr.rs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
// ignore-lldb
|
||||
#![feature(collapse_debuginfo)]
|
||||
|
||||
// Test that local macro debug info is not collapsed with #[collapse_debuginfo(external)]
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:run
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#one_callsite[...]
|
||||
// gdb-command:continue
|
||||
|
||||
fn one() {
|
||||
println!("one");
|
||||
}
|
||||
|
||||
#[collapse_debuginfo(external)]
|
||||
macro_rules! outer {
|
||||
() => {
|
||||
one(); // #one_callsite
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ret = 0; // #break
|
||||
outer!();
|
||||
std::process::exit(ret);
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
// ignore-lldb
|
||||
#![feature(collapse_debuginfo)]
|
||||
|
||||
// Test that macro attribute #[collapse_debuginfo(no)]
|
||||
// overrides "collapse_macro_debuginfo=external" flag
|
||||
|
||||
// compile-flags:-g -Z collapse_macro_debuginfo=external
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:run
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#one_callsite[...]
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-command:continue
|
||||
|
||||
fn one() {
|
||||
println!("one");
|
||||
}
|
||||
|
||||
#[collapse_debuginfo(no)]
|
||||
macro_rules! outer {
|
||||
() => {
|
||||
one(); // #one_callsite
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ret = 0; // #break
|
||||
outer!();
|
||||
std::process::exit(ret);
|
||||
}
|
||||
26
tests/debuginfo/collapse-debuginfo-external-flag.rs
Normal file
26
tests/debuginfo/collapse-debuginfo-external-flag.rs
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
// ignore-lldb
|
||||
#![feature(collapse_debuginfo)]
|
||||
|
||||
// Test that println macro debug info is collapsed with "collapse_macro_debuginfo=external" flag
|
||||
|
||||
// compile-flags:-g -Z collapse_macro_debuginfo=external
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:run
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#println_callsite[...]
|
||||
// gdb-command:continue
|
||||
|
||||
macro_rules! outer {
|
||||
() => {
|
||||
println!("one"); // #println_callsite
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ret = 0; // #break
|
||||
outer!();
|
||||
std::process::exit(ret);
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
// Test that line numbers are not replaced with those of the outermost expansion site when the
|
||||
// `collapse_debuginfo` feature is active and the attribute is not provided.
|
||||
|
||||
// compile-flags:-g
|
||||
// compile-flags:-g -Z collapse_macro_debuginfo=no
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
|
|
|
|||
57
tests/debuginfo/collapse-debuginfo-with-yes-flag.rs
Normal file
57
tests/debuginfo/collapse-debuginfo-with-yes-flag.rs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
// ignore-lldb
|
||||
#![feature(collapse_debuginfo)]
|
||||
|
||||
// Test that line numbers are replaced with those of the outermost expansion site when the
|
||||
// `collapse_debuginfo` feature is active and the command line flag is provided.
|
||||
|
||||
// compile-flags:-g -Z collapse_macro_debuginfo=yes
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:run
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#loc1[...]
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#loc2[...]
|
||||
// gdb-command:next
|
||||
// gdb-command:frame
|
||||
// gdb-check:[...]#loc3[...]
|
||||
// gdb-command:continue
|
||||
|
||||
fn one() {
|
||||
println!("one");
|
||||
}
|
||||
fn two() {
|
||||
println!("two");
|
||||
}
|
||||
fn three() {
|
||||
println!("three");
|
||||
}
|
||||
fn four() {
|
||||
println!("four");
|
||||
}
|
||||
|
||||
macro_rules! outer {
|
||||
($b:block) => {
|
||||
one();
|
||||
inner!();
|
||||
$b
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! inner {
|
||||
() => {
|
||||
two();
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ret = 0; // #break
|
||||
outer!({ // #loc1
|
||||
three(); // #loc2
|
||||
four(); // #loc3
|
||||
});
|
||||
std::process::exit(ret);
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
Each of these needs to be in a separate file,
|
||||
because the `span_delayed_bug` ICE in rustdoc won't be triggerred
|
||||
because the `span_delayed_bug` ICE in rustdoc won't be triggered
|
||||
if even a single other error was emitted.
|
||||
|
||||
However, conceptually they are all testing basically the same thing.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ LL | .intel_syntax noprefix
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:32:15
|
||||
--> $DIR/inline-syntax.rs:38:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix", "nop");
|
||||
| ^
|
||||
|
|
@ -25,7 +25,7 @@ LL | .intel_syntax noprefix
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:35:15
|
||||
--> $DIR/inline-syntax.rs:42:15
|
||||
|
|
||||
LL | asm!(".intel_syntax aaa noprefix", "nop");
|
||||
| ^
|
||||
|
|
@ -37,7 +37,7 @@ LL | .intel_syntax aaa noprefix
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:38:15
|
||||
--> $DIR/inline-syntax.rs:46:15
|
||||
|
|
||||
LL | asm!(".att_syntax noprefix", "nop");
|
||||
| ^
|
||||
|
|
@ -49,7 +49,7 @@ LL | .att_syntax noprefix
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:41:15
|
||||
--> $DIR/inline-syntax.rs:50:15
|
||||
|
|
||||
LL | asm!(".att_syntax bbb noprefix", "nop");
|
||||
| ^
|
||||
|
|
@ -61,7 +61,7 @@ LL | .att_syntax bbb noprefix
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:44:15
|
||||
--> $DIR/inline-syntax.rs:54:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix; nop");
|
||||
| ^
|
||||
|
|
@ -73,7 +73,7 @@ LL | .intel_syntax noprefix; nop
|
|||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:50:13
|
||||
--> $DIR/inline-syntax.rs:61:13
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
|
|
|||
90
tests/ui/asm/inline-syntax.arm_llvm_18.stderr
Normal file
90
tests/ui/asm/inline-syntax.arm_llvm_18.stderr
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
error: unknown directive
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:1
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:1
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:38:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix", "nop");
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:2
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:42:15
|
||||
|
|
||||
LL | asm!(".intel_syntax aaa noprefix", "nop");
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:2
|
||||
|
|
||||
LL | .intel_syntax aaa noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:46:15
|
||||
|
|
||||
LL | asm!(".att_syntax noprefix", "nop");
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:2
|
||||
|
|
||||
LL | .att_syntax noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:50:15
|
||||
|
|
||||
LL | asm!(".att_syntax bbb noprefix", "nop");
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:2
|
||||
|
|
||||
LL | .att_syntax bbb noprefix
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:54:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix; nop");
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:1:2
|
||||
|
|
||||
LL | .intel_syntax noprefix; nop
|
||||
| ^
|
||||
|
||||
error: unknown directive
|
||||
--> $DIR/inline-syntax.rs:61:13
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
|
||||
note: instantiated into assembly here
|
||||
--> <inline asm>:2:13
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// revisions: x86_64 arm
|
||||
// revisions: x86_64 arm arm_llvm_18
|
||||
//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu
|
||||
//[x86_64] check-pass
|
||||
//[x86_64] needs-llvm-components: x86
|
||||
|
|
@ -8,6 +8,12 @@
|
|||
//[arm] compile-flags: --target armv7-unknown-linux-gnueabihf
|
||||
//[arm] build-fail
|
||||
//[arm] needs-llvm-components: arm
|
||||
//[arm] ignore-llvm-version: 18 - 99
|
||||
// Newer LLVM produces extra error notes.
|
||||
//[arm_llvm_18] compile-flags: --target armv7-unknown-linux-gnueabihf
|
||||
//[arm_llvm_18] build-fail
|
||||
//[arm_llvm_18] needs-llvm-components: arm
|
||||
//[arm_llvm_18] min-llvm-version: 18
|
||||
// needs-asm-support
|
||||
|
||||
#![feature(no_core, lang_items, rustc_attrs)]
|
||||
|
|
@ -32,18 +38,23 @@ pub fn main() {
|
|||
asm!(".intel_syntax noprefix", "nop");
|
||||
//[x86_64]~^ WARN avoid using `.intel_syntax`
|
||||
//[arm]~^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^ ERROR unknown directive
|
||||
asm!(".intel_syntax aaa noprefix", "nop");
|
||||
//[x86_64]~^ WARN avoid using `.intel_syntax`
|
||||
//[arm]~^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^ ERROR unknown directive
|
||||
asm!(".att_syntax noprefix", "nop");
|
||||
//[x86_64]~^ WARN avoid using `.att_syntax`
|
||||
//[arm]~^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^ ERROR unknown directive
|
||||
asm!(".att_syntax bbb noprefix", "nop");
|
||||
//[x86_64]~^ WARN avoid using `.att_syntax`
|
||||
//[arm]~^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^ ERROR unknown directive
|
||||
asm!(".intel_syntax noprefix; nop");
|
||||
//[x86_64]~^ WARN avoid using `.intel_syntax`
|
||||
//[arm]~^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^ ERROR unknown directive
|
||||
|
||||
asm!(
|
||||
r"
|
||||
|
|
@ -52,6 +63,7 @@ pub fn main() {
|
|||
);
|
||||
//[x86_64]~^^^ WARN avoid using `.intel_syntax`
|
||||
//[arm]~^^^^ ERROR unknown directive
|
||||
//[arm_llvm_18]~^^^^^ ERROR unknown directive
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
warning: avoid using `.intel_syntax`, Intel syntax is the default
|
||||
--> $DIR/inline-syntax.rs:58:14
|
||||
--> $DIR/inline-syntax.rs:70:14
|
||||
|
|
||||
LL | global_asm!(".intel_syntax noprefix", "nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
@ -7,37 +7,37 @@ LL | global_asm!(".intel_syntax noprefix", "nop");
|
|||
= note: `#[warn(bad_asm_style)]` on by default
|
||||
|
||||
warning: avoid using `.intel_syntax`, Intel syntax is the default
|
||||
--> $DIR/inline-syntax.rs:32:15
|
||||
--> $DIR/inline-syntax.rs:38:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix", "nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: avoid using `.intel_syntax`, Intel syntax is the default
|
||||
--> $DIR/inline-syntax.rs:35:15
|
||||
--> $DIR/inline-syntax.rs:42:15
|
||||
|
|
||||
LL | asm!(".intel_syntax aaa noprefix", "nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
|
||||
--> $DIR/inline-syntax.rs:38:15
|
||||
--> $DIR/inline-syntax.rs:46:15
|
||||
|
|
||||
LL | asm!(".att_syntax noprefix", "nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: avoid using `.att_syntax`, prefer using `options(att_syntax)` instead
|
||||
--> $DIR/inline-syntax.rs:41:15
|
||||
--> $DIR/inline-syntax.rs:50:15
|
||||
|
|
||||
LL | asm!(".att_syntax bbb noprefix", "nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: avoid using `.intel_syntax`, Intel syntax is the default
|
||||
--> $DIR/inline-syntax.rs:44:15
|
||||
--> $DIR/inline-syntax.rs:54:15
|
||||
|
|
||||
LL | asm!(".intel_syntax noprefix; nop");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: avoid using `.intel_syntax`, Intel syntax is the default
|
||||
--> $DIR/inline-syntax.rs:50:13
|
||||
--> $DIR/inline-syntax.rs:61:13
|
||||
|
|
||||
LL | .intel_syntax noprefix
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ struct Bar;
|
|||
impl Foo<char> for Bar {
|
||||
fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
//~^ ERROR: the trait bound `impl Foo<u8>: Foo<char>` is not satisfied [E0277]
|
||||
//~| ERROR: the trait bound `Bar: Foo<u8>` is not satisfied [E0277]
|
||||
//~| ERROR: impl has stricter requirements than trait
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,28 @@ note: required by a bound in `Foo::{opaque#0}`
|
|||
LL | fn foo<F2>(self) -> impl Foo<T>;
|
||||
| ^^^^^^ required by this bound in `Foo::{opaque#0}`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
error[E0276]: impl has stricter requirements than trait
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:8:16
|
||||
|
|
||||
LL | fn foo<F2>(self) -> impl Foo<T>;
|
||||
| -------------------------------- definition of `foo` from trait
|
||||
...
|
||||
LL | fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
| ^^^^^^^ impl has extra requirement `F2: Foo<u8>`
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
||||
error[E0277]: the trait bound `Bar: Foo<u8>` is not satisfied
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:8:34
|
||||
|
|
||||
LL | fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
| ^^^^^^^^^^^^ the trait `Foo<u8>` is not implemented for `Bar`
|
||||
...
|
||||
LL | self
|
||||
| ---- return type was inferred to be `Bar` here
|
||||
|
|
||||
= help: the trait `Foo<char>` is implemented for `Bar`
|
||||
= help: for that trait implementation, expected `char`, found `u8`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0276, E0277.
|
||||
For more information about an error, try `rustc --explain E0276`.
|
||||
|
|
|
|||
|
|
@ -7,6 +7,16 @@ LL | impl<T: Default> A for T {
|
|||
LL | impl<T: Default + ~const Sup> const A for T {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/specializing-constness-2.rs:27:5
|
||||
|
|
||||
LL | <T as A>::a();
|
||||
| ^^^^^^^^^^^^^ expected `host`, found `true`
|
||||
|
|
||||
= note: expected constant `host`
|
||||
found constant `true`
|
||||
|
||||
For more information about this error, try `rustc --explain E0119`.
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0119, E0308.
|
||||
For more information about an error, try `rustc --explain E0119`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue