about summary refs log tree commit diff
diff options
context:
space:
mode:
authorantoyo <antoyo@users.noreply.github.com>2025-02-03 09:51:15 -0500
committerGitHub <noreply@github.com>2025-02-03 09:51:15 -0500
commitc325b82453236ca7cb5c6cc2368333c38ab7d141 (patch)
tree5a6bfd54733e1922e98d860a2abb633c64906f33
parentefb5185912a654fa3faf6257b327d5c4d1c78f44 (diff)
parentad2be68b490180012d7775a2ae3e0fd8e9cabda4 (diff)
downloadrust-c325b82453236ca7cb5c6cc2368333c38ab7d141.tar.gz
rust-c325b82453236ca7cb5c6cc2368333c38ab7d141.zip
Merge pull request #612 from fluxchief/master
Make globals always have 2+ chars as suffix
-rw-r--r--src/context.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/context.rs b/src/context.rs
index c81c53359fd..2a33beef63b 100644
--- a/src/context.rs
+++ b/src/context.rs
@@ -606,7 +606,10 @@ impl<'b, 'tcx> CodegenCx<'b, 'tcx> {
         let mut name = String::with_capacity(prefix.len() + 6);
         name.push_str(prefix);
         name.push('.');
-        name.push_str(&(idx as u64).to_base(ALPHANUMERIC_ONLY));
+        // Offset the index by the base so that always at least two characters
+        // are generated. This avoids cases where the suffix is interpreted as
+        // size by the assembler (for m68k: .b, .w, .l).
+        name.push_str(&(idx as u64 + ALPHANUMERIC_ONLY as u64).to_base(ALPHANUMERIC_ONLY));
         name
     }
 }