diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc index 9e9157667c09..342c62e58a1b 100644 --- a/gcc/rust/hir/rust-hir-dump.cc +++ b/gcc/rust/hir/rust-hir-dump.cc @@ -68,6 +68,18 @@ BoundPolarityString (BoundPolarity polarity) return "unknown"; } +/** + * Static member used to dump HIR from the debugger to stderr. + * + * @param v The HIR node to dump + */ +void +Dump::debug (FullVisitable &v) +{ + Dump dump (std::cerr); + v.accept_vis (dump); +} + void Dump::go (HIR::Crate &e) { @@ -2390,3 +2402,10 @@ Dump::visit (BareFunctionType &e) } // namespace HIR } // namespace Rust + +// In the global namespace to make it easier to call from debugger +void +debug (Rust::HIR::FullVisitable &v) +{ + Rust::HIR::Dump::debug (v); +} diff --git a/gcc/rust/hir/rust-hir-dump.h b/gcc/rust/hir/rust-hir-dump.h index a2bc4cbab55e..947feaeae8ba 100644 --- a/gcc/rust/hir/rust-hir-dump.h +++ b/gcc/rust/hir/rust-hir-dump.h @@ -32,6 +32,8 @@ namespace HIR { class Dump : public HIRFullVisitor { public: + static void debug (FullVisitable &v); + Dump (std::ostream &stream); void go (HIR::Crate &crate); @@ -248,4 +250,8 @@ class Dump : public HIRFullVisitor } // namespace HIR } // namespace Rust +// In the global namespace to make it easier to call from debugger +void +debug (Rust::HIR::FullVisitable &v); + #endif // !RUST_HIR_DUMP_H