diff options
| author | Vadzim Dambrouski <pftbest@gmail.com> | 2016-12-12 21:56:52 +0300 |
|---|---|---|
| committer | Vadzim Dambrouski <pftbest@gmail.com> | 2016-12-12 21:56:52 +0300 |
| commit | 9d764fc3c1607b2f5f84b73d48cbddfef33fa37e (patch) | |
| tree | 9912219f1a8796389b719977279528be16a2a6ba /src | |
| parent | b4b1e5ece21fb497877350c3d6defa143c88076c (diff) | |
| download | rust-9d764fc3c1607b2f5f84b73d48cbddfef33fa37e.tar.gz rust-9d764fc3c1607b2f5f84b73d48cbddfef33fa37e.zip | |
Do not generate '@' character in symbol names.
MSP430 assembler does not like '@' character in symbol names, so we should only use alphanumerics when we generate a new name. Fixes #38116
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_data_structures/base_n.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans/context.rs | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_data_structures/base_n.rs b/src/librustc_data_structures/base_n.rs index bf3e682f86f..4359581a897 100644 --- a/src/librustc_data_structures/base_n.rs +++ b/src/librustc_data_structures/base_n.rs @@ -14,6 +14,8 @@ use std::str; pub const MAX_BASE: u64 = 64; +pub const ALPHANUMERIC_ONLY: u64 = 62; + const BASE_64: &'static [u8; MAX_BASE as usize] = b"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@$"; diff --git a/src/librustc_trans/context.rs b/src/librustc_trans/context.rs index 8b98eb57814..6435b20eeaa 100644 --- a/src/librustc_trans/context.rs +++ b/src/librustc_trans/context.rs @@ -971,7 +971,7 @@ impl<'b, 'tcx> CrateContext<'b, 'tcx> { let mut name = String::with_capacity(prefix.len() + 6); name.push_str(prefix); name.push_str("."); - base_n::push_str(idx as u64, base_n::MAX_BASE, &mut name); + base_n::push_str(idx as u64, base_n::ALPHANUMERIC_ONLY, &mut name); name } } |
