Skip to content

Commit 5ca9374

Browse files
committed
Test legacy mangling of bool, char and integer constants
The existing v0 tests have been slightly adjusted for compatibility with legacy mangler, which requires an item to have an ancestor in a value namespace or a type namespace to produce a symbol for it. In v0 mangling this results in an extra `Nv` component.
1 parent 9f8f0a6 commit 5ca9374

4 files changed

+194
-96
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
error: symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$1f17h[HASH]E)
2+
--> $DIR/const-generics-demangling.rs:13:5
3+
|
4+
LL | #[rustc_symbol_name]
5+
| ^^^^^^^^^^^^^^^^^^^^
6+
7+
error: demangling(c::Unsigned<11_u8>::f::h[HASH])
8+
--> $DIR/const-generics-demangling.rs:13:5
9+
|
10+
LL | #[rustc_symbol_name]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: demangling-alt(c::Unsigned<11_u8>::f)
14+
--> $DIR/const-generics-demangling.rs:13:5
15+
|
16+
LL | #[rustc_symbol_name]
17+
| ^^^^^^^^^^^^^^^^^^^^
18+
19+
error: symbol-name(_ZN1c22Signed$LT$.152_i16$GT$1f17h[HASH]E)
20+
--> $DIR/const-generics-demangling.rs:26:5
21+
|
22+
LL | #[rustc_symbol_name]
23+
| ^^^^^^^^^^^^^^^^^^^^
24+
25+
error: demangling(c::Signed<.152_i16>::f::h[HASH])
26+
--> $DIR/const-generics-demangling.rs:26:5
27+
|
28+
LL | #[rustc_symbol_name]
29+
| ^^^^^^^^^^^^^^^^^^^^
30+
31+
error: demangling-alt(c::Signed<.152_i16>::f)
32+
--> $DIR/const-generics-demangling.rs:26:5
33+
|
34+
LL | #[rustc_symbol_name]
35+
| ^^^^^^^^^^^^^^^^^^^^
36+
37+
error: symbol-name(_ZN1c13Bool$LT$_$GT$1f17h[HASH]E)
38+
--> $DIR/const-generics-demangling.rs:39:5
39+
|
40+
LL | #[rustc_symbol_name]
41+
| ^^^^^^^^^^^^^^^^^^^^
42+
43+
error: demangling(c::Bool<_>::f::h[HASH])
44+
--> $DIR/const-generics-demangling.rs:39:5
45+
|
46+
LL | #[rustc_symbol_name]
47+
| ^^^^^^^^^^^^^^^^^^^^
48+
49+
error: demangling-alt(c::Bool<_>::f)
50+
--> $DIR/const-generics-demangling.rs:39:5
51+
|
52+
LL | #[rustc_symbol_name]
53+
| ^^^^^^^^^^^^^^^^^^^^
54+
55+
error: symbol-name(_ZN1c13Char$LT$_$GT$1f17h[HASH]E)
56+
--> $DIR/const-generics-demangling.rs:52:5
57+
|
58+
LL | #[rustc_symbol_name]
59+
| ^^^^^^^^^^^^^^^^^^^^
60+
61+
error: demangling(c::Char<_>::f::h[HASH])
62+
--> $DIR/const-generics-demangling.rs:52:5
63+
|
64+
LL | #[rustc_symbol_name]
65+
| ^^^^^^^^^^^^^^^^^^^^
66+
67+
error: demangling-alt(c::Char<_>::f)
68+
--> $DIR/const-generics-demangling.rs:52:5
69+
|
70+
LL | #[rustc_symbol_name]
71+
| ^^^^^^^^^^^^^^^^^^^^
72+
73+
error: aborting due to 12 previous errors
74+
Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,62 @@
11
// build-fail
2-
// compile-flags: -C symbol-mangling-version=v0 --crate-name=c
3-
// normalize-stderr-test: "c\[.*?\]" -> "c[HASH]"
2+
// revisions: legacy v0
3+
// compile-flags: --crate-name=c
4+
//[legacy]compile-flags: -C symbol-mangling-version=legacy -Z unstable-options
5+
// [v0]compile-flags: -C symbol-mangling-version=v0
6+
//[legacy]normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]"
7+
// [v0]normalize-stderr-test: "c\[.*?\]" -> "c[HASH]"
48
#![feature(rustc_attrs)]
59

610
pub struct Unsigned<const F: u8>;
711

8-
#[rustc_symbol_name]
9-
//~^ ERROR symbol-name(_RMCs
10-
//~| ERROR demangling(<c[
11-
//~| ERROR demangling-alt(<c::Unsigned<11>>)
12-
impl Unsigned<11> {}
12+
impl Unsigned<11> {
13+
#[rustc_symbol_name]
14+
//[v0]~^ ERROR symbol-name(_RNvMCs
15+
//[v0]~| ERROR demangling(<c[
16+
//[v0]~| ERROR demangling-alt(<c::Unsigned<11>>::f)
17+
//[legacy]~^^^^ ERROR symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$
18+
//[legacy]~| ERROR demangling(c::Unsigned<11_u8>::f::
19+
//[legacy]~| ERROR demangling-alt(c::Unsigned<11_u8>::f)
20+
fn f() {}
21+
}
1322

1423
pub struct Signed<const F: i16>;
1524

16-
#[rustc_symbol_name]
17-
//~^ ERROR symbol-name(_RMs_Cs
18-
//~| ERROR demangling(<c[
19-
//~| ERROR demangling-alt(<c::Signed<-152>>)
20-
impl Signed<-152> {}
25+
impl Signed<-152> {
26+
#[rustc_symbol_name]
27+
//[v0]~^ ERROR symbol-name(_RNvMs_Cs
28+
//[v0]~| ERROR demangling(<c[
29+
//[v0]~| ERROR demangling-alt(<c::Signed<-152>>::f)
30+
//[legacy]~^^^^ ERROR symbol-name(_ZN1c22Signed$LT$.152_i16$GT$
31+
//[legacy]~| ERROR demangling(c::Signed<.152_i16>::f::
32+
//[legacy]~| ERROR demangling-alt(c::Signed<.152_i16>::f)
33+
fn f() {}
34+
}
2135

2236
pub struct Bool<const F: bool>;
2337

24-
#[rustc_symbol_name]
25-
//~^ ERROR symbol-name(_RMs0_Cs
26-
//~| ERROR demangling(<c[
27-
//~| ERROR demangling-alt(<c::Bool<true>>)
28-
impl Bool<true> {}
38+
impl Bool<true> {
39+
#[rustc_symbol_name]
40+
//[v0]~^ ERROR symbol-name(_RNvMs0_Cs
41+
//[v0]~| ERROR demangling(<c[
42+
//[v0]~| ERROR demangling-alt(<c::Bool<true>>::f)
43+
//[legacy]~^^^^ ERROR symbol-name(_ZN1c13Bool$LT$_$GT$
44+
//[legacy]~| ERROR demangling(c::Bool<_>::f::
45+
//[legacy]~| ERROR demangling-alt(c::Bool<_>::f)
46+
fn f() {}
47+
}
2948

3049
pub struct Char<const F: char>;
3150

32-
#[rustc_symbol_name]
33-
//~^ ERROR symbol-name(_RMs1_Cs
34-
//~| ERROR demangling(<c[
35-
//~| ERROR demangling-alt(<c::Char<'∂'>>)
36-
impl Char<'∂'> {}
51+
impl Char<'∂'> {
52+
#[rustc_symbol_name]
53+
//[v0]~^ ERROR symbol-name(_RNvMs1_Cs
54+
//[v0]~| ERROR demangling(<c[
55+
//[v0]~| ERROR demangling-alt(<c::Char<'∂'>>::f)
56+
//[legacy]~^^^^ ERROR symbol-name(_ZN1c13Char$LT$_$GT$
57+
//[legacy]~| ERROR demangling(c::Char<_>::f::
58+
//[legacy]~| ERROR demangling-alt(c::Char<_>::f)
59+
fn f() {}
60+
}
3761

3862
fn main() {}

src/test/ui/symbol-names/const-generics-demangling.stderr

Lines changed: 0 additions & 74 deletions
This file was deleted.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
error: symbol-name(_RNvMCsCRATE_HASH_1cINtB<REF>_8UnsignedKhb_E1f)
2+
--> $DIR/const-generics-demangling.rs:13:5
3+
|
4+
LL | #[rustc_symbol_name]
5+
| ^^^^^^^^^^^^^^^^^^^^
6+
7+
error: demangling(<c[HASH]::Unsigned<11u8>>::f)
8+
--> $DIR/const-generics-demangling.rs:13:5
9+
|
10+
LL | #[rustc_symbol_name]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: demangling-alt(<c::Unsigned<11>>::f)
14+
--> $DIR/const-generics-demangling.rs:13:5
15+
|
16+
LL | #[rustc_symbol_name]
17+
| ^^^^^^^^^^^^^^^^^^^^
18+
19+
error: symbol-name(_RNvMs_CsCRATE_HASH_1cINtB<REF>_6SignedKsn98_E1f)
20+
--> $DIR/const-generics-demangling.rs:26:5
21+
|
22+
LL | #[rustc_symbol_name]
23+
| ^^^^^^^^^^^^^^^^^^^^
24+
25+
error: demangling(<c[HASH]::Signed<-152i16>>::f)
26+
--> $DIR/const-generics-demangling.rs:26:5
27+
|
28+
LL | #[rustc_symbol_name]
29+
| ^^^^^^^^^^^^^^^^^^^^
30+
31+
error: demangling-alt(<c::Signed<-152>>::f)
32+
--> $DIR/const-generics-demangling.rs:26:5
33+
|
34+
LL | #[rustc_symbol_name]
35+
| ^^^^^^^^^^^^^^^^^^^^
36+
37+
error: symbol-name(_RNvMs0_CsCRATE_HASH_1cINtB<REF>_4BoolKb1_E1f)
38+
--> $DIR/const-generics-demangling.rs:39:5
39+
|
40+
LL | #[rustc_symbol_name]
41+
| ^^^^^^^^^^^^^^^^^^^^
42+
43+
error: demangling(<c[HASH]::Bool<true>>::f)
44+
--> $DIR/const-generics-demangling.rs:39:5
45+
|
46+
LL | #[rustc_symbol_name]
47+
| ^^^^^^^^^^^^^^^^^^^^
48+
49+
error: demangling-alt(<c::Bool<true>>::f)
50+
--> $DIR/const-generics-demangling.rs:39:5
51+
|
52+
LL | #[rustc_symbol_name]
53+
| ^^^^^^^^^^^^^^^^^^^^
54+
55+
error: symbol-name(_RNvMs1_CsCRATE_HASH_1cINtB<REF>_4CharKc2202_E1f)
56+
--> $DIR/const-generics-demangling.rs:52:5
57+
|
58+
LL | #[rustc_symbol_name]
59+
| ^^^^^^^^^^^^^^^^^^^^
60+
61+
error: demangling(<c[HASH]::Char<'∂'>>::f)
62+
--> $DIR/const-generics-demangling.rs:52:5
63+
|
64+
LL | #[rustc_symbol_name]
65+
| ^^^^^^^^^^^^^^^^^^^^
66+
67+
error: demangling-alt(<c::Char<'∂'>>::f)
68+
--> $DIR/const-generics-demangling.rs:52:5
69+
|
70+
LL | #[rustc_symbol_name]
71+
| ^^^^^^^^^^^^^^^^^^^^
72+
73+
error: aborting due to 12 previous errors
74+

0 commit comments

Comments
 (0)