diff --git a/objdiff-core/Cargo.toml b/objdiff-core/Cargo.toml index 2a0b6a2..366b47a 100644 --- a/objdiff-core/Cargo.toml +++ b/objdiff-core/Cargo.toml @@ -81,6 +81,8 @@ std = [ ] mips = [ "any-arch", + "dep:cpp_demangle", + "dep:cwdemangle", "dep:rabbitizer", ] ppc = [ diff --git a/objdiff-core/src/arch/mips.rs b/objdiff-core/src/arch/mips.rs index 73e7cc4..e36cc15 100644 --- a/objdiff-core/src/arch/mips.rs +++ b/objdiff-core/src/arch/mips.rs @@ -286,6 +286,13 @@ impl Arch for ArchMips { }) } + fn demangle(&self, name: &str) -> Option { + cpp_demangle::Symbol::new(name) + .ok() + .and_then(|s| s.demangle(&cpp_demangle::DemangleOptions::default()).ok()) + .or_else(|| cwdemangle::demangle(name, &cwdemangle::DemangleOptions::default())) + } + fn reloc_name(&self, flags: RelocationFlags) -> Option<&'static str> { match flags { RelocationFlags::Elf(r_type) => match r_type {