diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-05-29 23:58:55 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-05-31 18:23:03 +0300 |
| commit | 654d0596d3f21c8f774c95324bf79e5d6fbb75d4 (patch) | |
| tree | 5820099a48e1e98ecda66c9e0e9cfe7ef7e5bd39 /src/librustc_codegen_utils | |
| parent | e89890514149d31872ba486bbce2f762a2d99f88 (diff) | |
| download | rust-654d0596d3f21c8f774c95324bf79e5d6fbb75d4.tar.gz rust-654d0596d3f21c8f774c95324bf79e5d6fbb75d4.zip | |
rustc_codegen_utils: test demangler output, not just symbol names.
Diffstat (limited to 'src/librustc_codegen_utils')
| -rw-r--r-- | src/librustc_codegen_utils/Cargo.toml | 1 | ||||
| -rw-r--r-- | src/librustc_codegen_utils/symbol_names_test.rs | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/librustc_codegen_utils/Cargo.toml b/src/librustc_codegen_utils/Cargo.toml index c75208b9e06..531c5abb147 100644 --- a/src/librustc_codegen_utils/Cargo.toml +++ b/src/librustc_codegen_utils/Cargo.toml @@ -13,6 +13,7 @@ test = false [dependencies] flate2 = "1.0" log = "0.4" +rustc-demangle = "0.1.15" syntax = { path = "../libsyntax" } syntax_pos = { path = "../libsyntax_pos" } diff --git a/src/librustc_codegen_utils/symbol_names_test.rs b/src/librustc_codegen_utils/symbol_names_test.rs index 27ae0b97e59..b935ccb7398 100644 --- a/src/librustc_codegen_utils/symbol_names_test.rs +++ b/src/librustc_codegen_utils/symbol_names_test.rs @@ -39,8 +39,12 @@ impl<'a, 'tcx> SymbolNamesTest<'a, 'tcx> { if attr.check_name(SYMBOL_NAME) { // for now, can only use on monomorphic names let instance = Instance::mono(tcx, def_id); - let name = self.tcx.symbol_name(instance); - tcx.sess.span_err(attr.span, &format!("symbol-name({})", name)); + let mangled = self.tcx.symbol_name(instance); + tcx.sess.span_err(attr.span, &format!("symbol-name({})", mangled)); + if let Ok(demangling) = rustc_demangle::try_demangle(&mangled.as_str()) { + tcx.sess.span_err(attr.span, &format!("demangling({})", demangling)); + tcx.sess.span_err(attr.span, &format!("demangling-alt({:#})", demangling)); + } } else if attr.check_name(DEF_PATH) { let path = tcx.def_path_str(def_id); tcx.sess.span_err(attr.span, &format!("def-path({})", path)); |
