about summary refs log tree commit diff
path: root/src/libstd/rt
diff options
context:
space:
mode:
authorP1start <rewi-github@whanau.org>2015-01-22 20:12:57 +1300
committerP1start <rewi-github@whanau.org>2015-02-04 15:32:59 +1300
commitcfe18fb83627859e1730d31ae9126c494077c3ba (patch)
tree1266dae00df76082b84526d892892f3b3fd4fe1c /src/libstd/rt
parent7858cb432d3f2efc0374424cb2b51518f697c172 (diff)
downloadrust-cfe18fb83627859e1730d31ae9126c494077c3ba.tar.gz
rust-cfe18fb83627859e1730d31ae9126c494077c3ba.zip
Fix Unicode name mangling
`{` and `}` aren’t valid characters on ARM.

This also fixes a small bug where `)` (**r**ight **p**arenthesis) and `*`
(**r**aw **p**ointer) would both mangle to `$RP$`, making `)` show up as `*` in
backtraces.
Diffstat (limited to 'src/libstd/rt')
-rw-r--r--src/libstd/rt/backtrace.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libstd/rt/backtrace.rs b/src/libstd/rt/backtrace.rs
index 905cc06c4f0..2af5a486d0d 100644
--- a/src/libstd/rt/backtrace.rs
+++ b/src/libstd/rt/backtrace.rs
@@ -57,22 +57,22 @@ mod test {
 
     #[test]
     fn demangle_dollars() {
-        t!("_ZN4$UP$E", "Box");
-        t!("_ZN8$UP$testE", "Boxtest");
-        t!("_ZN8$UP$test4foobE", "Boxtest::foob");
-        t!("_ZN10$u{20}test4foobE", " test::foob");
+        t!("_ZN4$RP$E", ")");
+        t!("_ZN8$RF$testE", "&test");
+        t!("_ZN8$BP$test4foobE", "*test::foob");
+        t!("_ZN9$u20$test4foobE", " test::foob");
     }
 
     #[test]
     fn demangle_many_dollars() {
-        t!("_ZN14test$u{20}test4foobE", "test test::foob");
-        t!("_ZN12test$UP$test4foobE", "testBoxtest::foob");
+        t!("_ZN13test$u20$test4foobE", "test test::foob");
+        t!("_ZN12test$BP$test4foobE", "test*test::foob");
     }
 
     #[test]
     fn demangle_windows() {
         t!("ZN4testE", "test");
-        t!("ZN14test$u{20}test4foobE", "test test::foob");
-        t!("ZN12test$UP$test4foobE", "testBoxtest::foob");
+        t!("ZN13test$u20$test4foobE", "test test::foob");
+        t!("ZN12test$RF$test4foobE", "test&test::foob");
     }
 }