diff options
| author | bors <bors@rust-lang.org> | 2022-01-02 15:49:23 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-01-02 15:49:23 +0000 |
| commit | 8f3238f898163f09726c3d2b2cc9bafb09da26f3 (patch) | |
| tree | 417bdb60d3e22106f6a1a0b570d643cf4ee1e32c /src/test | |
| parent | 03360be6b77a37947e6ef6c54777b7b96728de69 (diff) | |
| parent | ff94b3b12b30d1a52d594cb48f80efa39a6029a6 (diff) | |
| download | rust-8f3238f898163f09726c3d2b2cc9bafb09da26f3.tar.gz rust-8f3238f898163f09726c3d2b2cc9bafb09da26f3.zip | |
Auto merge of #90128 - joshtriplett:stabilize-symbol-mangling-version, r=wesleywiser
Stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0 This allows selecting `v0` symbol-mangling without an unstable option. Selecting `legacy` still requires -Z unstable-options. This does not change the default symbol-mangling-version. See https://github.com/rust-lang/rust/pull/89917 for a pull request changing the default. Rationale, from #89917: Rust's current mangling scheme depends on compiler internals; loses information about generic parameters (and other things) which makes for a worse experience when using external tools that need to interact with Rust symbol names; is inconsistent; and can contain . characters which aren't universally supported. Therefore, Rust has defined its own symbol mangling scheme which is defined in terms of the Rust language, not the compiler implementation; encodes information about generic parameters in a reversible way; has a consistent definition; and generates symbols that only use the characters A-Z, a-z, 0-9, and _. Support for the new Rust symbol mangling scheme has been added to upstream tools that will need to interact with Rust symbols (e.g. debuggers). This pull request allows enabling the new v0 symbol-mangling-version. See #89917 for references to the implementation of v0, and for references to the tool changes to decode Rust symbols.
Diffstat (limited to 'src/test')
20 files changed, 29 insertions, 29 deletions
diff --git a/src/test/codegen/inline-hint.rs b/src/test/codegen/inline-hint.rs index a2571c2e532..ad41badf381 100644 --- a/src/test/codegen/inline-hint.rs +++ b/src/test/codegen/inline-hint.rs @@ -1,7 +1,7 @@ // Checks that closures, constructors, and shims except // for a drop glue receive inline hint by default. // -// compile-flags: -Cno-prepopulate-passes -Zsymbol-mangling-version=v0 +// compile-flags: -Cno-prepopulate-passes -Csymbol-mangling-version=v0 #![crate_type = "lib"] pub fn f() { diff --git a/src/test/run-make-fulldeps/a-b-a-linker-guard/Makefile b/src/test/run-make-fulldeps/a-b-a-linker-guard/Makefile index 54526e8ef23..4a9b3d70933 100644 --- a/src/test/run-make-fulldeps/a-b-a-linker-guard/Makefile +++ b/src/test/run-make-fulldeps/a-b-a-linker-guard/Makefile @@ -8,8 +8,8 @@ # and will probably get removed once `legacy` is gone. all: - $(RUSTC) a.rs --cfg x -C prefer-dynamic -Z symbol-mangling-version=legacy - $(RUSTC) b.rs -C prefer-dynamic -Z symbol-mangling-version=legacy + $(RUSTC) a.rs --cfg x -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy + $(RUSTC) b.rs -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy $(call RUN,b) - $(RUSTC) a.rs --cfg y -C prefer-dynamic -Z symbol-mangling-version=legacy + $(RUSTC) a.rs --cfg y -C prefer-dynamic -Z unstable-options -C symbol-mangling-version=legacy $(call FAIL,b) diff --git a/src/test/run-make-fulldeps/share-generics-dylib/Makefile b/src/test/run-make-fulldeps/share-generics-dylib/Makefile index c6b5efcb4cd..282cb2461f6 100644 --- a/src/test/run-make-fulldeps/share-generics-dylib/Makefile +++ b/src/test/run-make-fulldeps/share-generics-dylib/Makefile @@ -11,7 +11,7 @@ -include ../../run-make-fulldeps/tools.mk -COMMON_ARGS=-Cprefer-dynamic -Zshare-generics=yes -Ccodegen-units=1 -Zsymbol-mangling-version=v0 +COMMON_ARGS=-Cprefer-dynamic -Zshare-generics=yes -Ccodegen-units=1 -Csymbol-mangling-version=v0 all: $(RUSTC) instance_provider_a.rs $(COMMON_ARGS) --crate-type=rlib diff --git a/src/test/ui/lifetimes/issue-84604.rs b/src/test/ui/lifetimes/issue-84604.rs index df8368da0a0..b315ef05190 100644 --- a/src/test/ui/lifetimes/issue-84604.rs +++ b/src/test/ui/lifetimes/issue-84604.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags: -Zsymbol-mangling-version=v0 +// compile-flags: -Csymbol-mangling-version=v0 pub fn f<T: ?Sized>() {} pub trait Frob<T: ?Sized> {} diff --git a/src/test/ui/panics/issue-47429-short-backtraces.rs b/src/test/ui/panics/issue-47429-short-backtraces.rs index 35ecfc0b271..c34e00bab7c 100644 --- a/src/test/ui/panics/issue-47429-short-backtraces.rs +++ b/src/test/ui/panics/issue-47429-short-backtraces.rs @@ -14,8 +14,8 @@ // NOTE(eddyb) output differs between symbol mangling schemes // revisions: legacy v0 -// [legacy] compile-flags: -Zsymbol-mangling-version=legacy -// [v0] compile-flags: -Zsymbol-mangling-version=v0 +// [legacy] compile-flags: -Zunstable-options -Csymbol-mangling-version=legacy +// [v0] compile-flags: -Csymbol-mangling-version=v0 fn main() { panic!() diff --git a/src/test/ui/polymorphization/closure_in_upvar/fn.rs b/src/test/ui/polymorphization/closure_in_upvar/fn.rs index b0b39dbd3df..e1030858814 100644 --- a/src/test/ui/polymorphization/closure_in_upvar/fn.rs +++ b/src/test/ui/polymorphization/closure_in_upvar/fn.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags:-Zpolymorphize=on -Zsymbol-mangling-version=v0 +// compile-flags:-Zpolymorphize=on -Csymbol-mangling-version=v0 fn foo(f: impl Fn()) { let x = |_: ()| (); diff --git a/src/test/ui/polymorphization/closure_in_upvar/fnmut.rs b/src/test/ui/polymorphization/closure_in_upvar/fnmut.rs index ba75f6c5a10..62164ff9485 100644 --- a/src/test/ui/polymorphization/closure_in_upvar/fnmut.rs +++ b/src/test/ui/polymorphization/closure_in_upvar/fnmut.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags:-Zpolymorphize=on -Zsymbol-mangling-version=v0 +// compile-flags:-Zpolymorphize=on -Csymbol-mangling-version=v0 fn foo(f: impl Fn()) { // Mutate an upvar from `x` so that it implements `FnMut`. diff --git a/src/test/ui/polymorphization/closure_in_upvar/fnonce.rs b/src/test/ui/polymorphization/closure_in_upvar/fnonce.rs index e9761ad0bcb..7a364882fb8 100644 --- a/src/test/ui/polymorphization/closure_in_upvar/fnonce.rs +++ b/src/test/ui/polymorphization/closure_in_upvar/fnonce.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags:-Zpolymorphize=on -Zsymbol-mangling-version=v0 +// compile-flags:-Zpolymorphize=on -Csymbol-mangling-version=v0 fn foo(f: impl Fn()) { // Move a non-copy type into `x` so that it implements `FnOnce`. diff --git a/src/test/ui/polymorphization/closure_in_upvar/other.rs b/src/test/ui/polymorphization/closure_in_upvar/other.rs index 7614aa83fcd..27d59ec8899 100644 --- a/src/test/ui/polymorphization/closure_in_upvar/other.rs +++ b/src/test/ui/polymorphization/closure_in_upvar/other.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags:-Zpolymorphize=on -Zsymbol-mangling-version=v0 +// compile-flags:-Zpolymorphize=on -Csymbol-mangling-version=v0 fn y_uses_f(f: impl Fn()) { let x = |_: ()| (); diff --git a/src/test/ui/polymorphization/symbol-ambiguity.rs b/src/test/ui/polymorphization/symbol-ambiguity.rs index d97bae183d9..6277a902fa2 100644 --- a/src/test/ui/polymorphization/symbol-ambiguity.rs +++ b/src/test/ui/polymorphization/symbol-ambiguity.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags: -Zpolymorphize=on -Zsymbol-mangling-version=v0 +// compile-flags: -Zpolymorphize=on -Csymbol-mangling-version=v0 pub(crate) struct Foo<'a, I, E>(I, &'a E); diff --git a/src/test/ui/symbol-names/basic.rs b/src/test/ui/symbol-names/basic.rs index a6fbe98e6ed..65a63262810 100644 --- a/src/test/ui/symbol-names/basic.rs +++ b/src/test/ui/symbol-names/basic.rs @@ -1,7 +1,7 @@ // build-fail // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy - //[v0]compile-flags: -Z symbol-mangling-version=v0 +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy + //[v0]compile-flags: -C symbol-mangling-version=v0 #![feature(rustc_attrs)] diff --git a/src/test/ui/symbol-names/const-generics-demangling.rs b/src/test/ui/symbol-names/const-generics-demangling.rs index d44c8f0abae..5c40c391a9e 100644 --- a/src/test/ui/symbol-names/const-generics-demangling.rs +++ b/src/test/ui/symbol-names/const-generics-demangling.rs @@ -1,5 +1,5 @@ // build-fail -// compile-flags: -Z symbol-mangling-version=v0 --crate-name=c +// compile-flags: -C symbol-mangling-version=v0 --crate-name=c // normalize-stderr-test: "c\[.*?\]" -> "c[HASH]" #![feature(rustc_attrs)] diff --git a/src/test/ui/symbol-names/const-generics-str-demangling.rs b/src/test/ui/symbol-names/const-generics-str-demangling.rs index 300f6510380..619b34f2559 100644 --- a/src/test/ui/symbol-names/const-generics-str-demangling.rs +++ b/src/test/ui/symbol-names/const-generics-str-demangling.rs @@ -1,5 +1,5 @@ // build-fail -// compile-flags: -Z symbol-mangling-version=v0 --crate-name=c +// compile-flags: -C symbol-mangling-version=v0 --crate-name=c // normalize-stderr-test: "c\[.*?\]" -> "c[HASH]" #![feature(adt_const_params, rustc_attrs)] #![allow(incomplete_features)] diff --git a/src/test/ui/symbol-names/const-generics-structural-demangling.rs b/src/test/ui/symbol-names/const-generics-structural-demangling.rs index 73de48fed6c..df09ba494a7 100644 --- a/src/test/ui/symbol-names/const-generics-structural-demangling.rs +++ b/src/test/ui/symbol-names/const-generics-structural-demangling.rs @@ -1,5 +1,5 @@ // build-fail -// compile-flags: -Z symbol-mangling-version=v0 --crate-name=c +// compile-flags: -C symbol-mangling-version=v0 --crate-name=c // NOTE(eddyb) we need `core` for `core::option::Option`, normalize away its // disambiguator hash, which can/should change (including between stage{1,2}). diff --git a/src/test/ui/symbol-names/const-generics.rs b/src/test/ui/symbol-names/const-generics.rs index 2d136e6a99a..1242126e0cc 100644 --- a/src/test/ui/symbol-names/const-generics.rs +++ b/src/test/ui/symbol-names/const-generics.rs @@ -1,7 +1,7 @@ // check-pass // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy --crate-type=lib -//[v0]compile-flags: -Z symbol-mangling-version=v0 --crate-type=lib +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy --crate-type=lib +//[v0]compile-flags: -C symbol-mangling-version=v0 --crate-type=lib // `char` pub struct Char<const F: char>; diff --git a/src/test/ui/symbol-names/impl1.rs b/src/test/ui/symbol-names/impl1.rs index f20cb1c01fd..86f0a8b0bef 100644 --- a/src/test/ui/symbol-names/impl1.rs +++ b/src/test/ui/symbol-names/impl1.rs @@ -1,7 +1,7 @@ // build-fail // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy - //[v0]compile-flags: -Z symbol-mangling-version=v0 +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy + //[v0]compile-flags: -C symbol-mangling-version=v0 //[legacy]normalize-stderr-test: "h[\w]{16}E?\)" -> "<SYMBOL_HASH>)" #![feature(auto_traits, rustc_attrs)] diff --git a/src/test/ui/symbol-names/issue-60925.rs b/src/test/ui/symbol-names/issue-60925.rs index 57114ca1f15..ab0a3a7df1d 100644 --- a/src/test/ui/symbol-names/issue-60925.rs +++ b/src/test/ui/symbol-names/issue-60925.rs @@ -1,7 +1,7 @@ // build-fail // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy - //[v0]compile-flags: -Z symbol-mangling-version=v0 +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy + //[v0]compile-flags: -C symbol-mangling-version=v0 #![feature(rustc_attrs)] diff --git a/src/test/ui/symbol-names/issue-75326.rs b/src/test/ui/symbol-names/issue-75326.rs index d1bc152af5c..4a1f5a21263 100644 --- a/src/test/ui/symbol-names/issue-75326.rs +++ b/src/test/ui/symbol-names/issue-75326.rs @@ -1,7 +1,7 @@ // build-fail // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy -//[v0]compile-flags: -Z symbol-mangling-version=v0 +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy +//[v0]compile-flags: -C symbol-mangling-version=v0 //[legacy]normalize-stderr-test: "h[\w{16}]+" -> "SYMBOL_HASH" #![feature(rustc_attrs)] diff --git a/src/test/ui/symbol-names/issue-76365.rs b/src/test/ui/symbol-names/issue-76365.rs index c2e9f92f7b5..932057b6590 100644 --- a/src/test/ui/symbol-names/issue-76365.rs +++ b/src/test/ui/symbol-names/issue-76365.rs @@ -1,7 +1,7 @@ // check-pass // revisions: legacy v0 -//[legacy]compile-flags: -Z symbol-mangling-version=legacy --crate-type=lib -//[v0]compile-flags: -Z symbol-mangling-version=v0 --crate-type=lib +//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy --crate-type=lib +//[v0]compile-flags: -C symbol-mangling-version=v0 --crate-type=lib pub struct Bar<const F: bool>; diff --git a/src/test/ui/symbol-names/trait-objects.rs b/src/test/ui/symbol-names/trait-objects.rs index 502afebcb5a..5bcbc08413f 100644 --- a/src/test/ui/symbol-names/trait-objects.rs +++ b/src/test/ui/symbol-names/trait-objects.rs @@ -2,7 +2,7 @@ // build-fail // revisions: v0 -//[v0]compile-flags: -Z symbol-mangling-version=v0 +//[v0]compile-flags: -C symbol-mangling-version=v0 //[v0]normalize-stderr-test: "core\[.*?\]" -> "core[HASH]" #![feature(rustc_attrs)] |
