aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile/v0-mangle1.rs
blob: 04c546e351af4018b162b623540c3d4d4f53e4ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// { dg-additional-options -frust-mangling=v0 }
#[lang = "sized"]
pub trait Sized {}

pub fn foo() {}

pub mod module_a {
    pub fn bar() {}

    pub mod module_b {
        pub fn baz() {}
    }
}

struct S; // { dg-warning "struct is never constructed" }

// name starting with underscore.
pub fn _uc() {}

pub fn generic1<T>() {}

pub fn generic2<T, U, V>() {}

pub fn 初音ミク() {}

pub fn іржа() {}

pub fn1() {}

fn main() {
    // { dg-final { scan-assembler "_R.*NvC.*10v0_mangle13foo" } }
    // cf. rustc 1.72.0: _RNvCshIBIgX6Bzox_10v0_mangle13foo
    foo();

    // { dg-final { scan-assembler "_R.*NvNtC.*10v0_mangle18module_a3bar" } }
    // cf. rustc 1.72.0: _RNvNtCshIBIgX6Bzox_10v0_mangle18module_a3bar
    module_a::bar();

    // { dg-final { scan-assembler "_R.*NvNtNtC.*10v0_mangle18module_a8module_b3baz" } }
    // cf. rustc 1.72.0: _RNvNtNtCshIBIgX6Bzox_10v0_mangle18module_a8module_b3baz
    module_a::module_b::baz();

    // { dg-final { scan-assembler "_R.*NvC.*10v0_mangle13__uc" } }
    // cf. rustc 1.72.0: _RNvCshIBIgX6Bzox_10v0_mangle13__uc
    _uc();

    // { dg-final { scan-assembler "_R.*INvC.*10v0_mangle18generic1lE.*" } }
    // cf. rustc 1.72.0: _RINvCshIBIgX6Bzox_10v0_mangle18generic1lEB2_
    generic1::<i32>();

    // { dg-final { scan-assembler "_R.*INvC.*10v0_mangle18generic1NtC.*10v0_mangle11SE.*" } }
    // cf. rustc 1.72.0: _RINvCshIBIgX6Bzox_10v0_mangle18generic1NtB2_1SEB2_
    generic1::<S>();

    // { dg-final { scan-assembler "_R.*INvC.*10v0_mangle18generic2hfjE.*" } }
    // cf. rustc 1.72.0: _RINvCshIBIgX6Bzox_10v0_mangle18generic2hfjEB2_
    generic2::<u8, f32, usize>();

    // { dg-final { scan-assembler "_R.*NvC.*10v0_mangle1u13pck1ew32ihn2d" } }
    // cf. rustc 1.72.0: _RNvCshIBIgX6Bzox_10v0_mangle1u13pck1ew32ihn2d
    初音ミク();

    // { dg-final { scan-assembler "_R.*NvC.*10v0_mangle1u8_80al3a6f" } }
    // cf. rustc 1.72.0: _RNvCshIBIgX6Bzox_10v0_mangle1u8_80al3a6f
    іржа();

    // { dg-final { scan-assembler "_R.*NvC.*10v0_mangle1u5_1_w7t" } }
    // cf. rustc 1.72.0: _RNvCshIBIgX6Bzox_10v0_mangle1u5_1_w7t1();
}