commit | 98bbcffd0c72df930ae01e2ef73a3886e48b5c59 | [log] [tgz] |
---|---|---|
author | Patrick Walton <pcwalton@mimiga.net> | Fri Jun 18 12:06:58 2021 -0700 |
committer | GitHub <noreply@github.com> | Fri Jun 18 14:06:58 2021 -0500 |
tree | 44f8fa1e686215966d8e6ca1f9da6fab148265e9 | |
parent | 8282f4b52aafc25df810f8da925b59bb22406b26 [diff] |
Apply the recursion limit to the parser instead of just to the printer. (#49) Raphael Salas found more stack overflows involving very large symbols that failed while the parser was trying to skip over tokens. These are fixed by moving the recursion limiter from the printer to the parser, and updating the printer to use the parser's limiter. The failing cases are added as unit tests.
Demangling for Rust symbols, written in Rust.
You can add this as a dependency via your Cargo.toml
[dependencies] rustc-demangle = "0.1"
and then be sure to check out the crate documentation for usage.
You can also use this crate from other languages via the C API wrapper in the crates/capi
directory. This can be build with:
$ cargo build -p rustc-demangle-capi --release
You'll then find target/release/librustc_demangle.a
and target/release/librustc_demangle.so
(or a different name depending on your platform). These objects implement the interface specified in crates/capi/include/rustc_demangle.h
.
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rustc-demangle you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.