diff options
author | Marc Poulhiès <dkm@kataplop.net> | 2023-09-18 22:16:06 +0200 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-09-18 22:11:00 +0000 |
commit | 612a48a8891fe80d71a0ae1c7d7f450f2e5d78fc (patch) | |
tree | 9ccaca2154bb13745f57b5d9e3ad2bb516e21b84 /gcc | |
parent | f9455fb91bebfeadd54050cb90c2061487d47c20 (diff) | |
download | gcc-612a48a8891fe80d71a0ae1c7d7f450f2e5d78fc.zip gcc-612a48a8891fe80d71a0ae1c7d7f450f2e5d78fc.tar.gz gcc-612a48a8891fe80d71a0ae1c7d7f450f2e5d78fc.tar.bz2 |
gccrs: Add debug helper to dump HIR
Add simple debug wrapper to dump HIR nodes on stderr.
Similar to what we already have for AST.
gcc/rust/ChangeLog:
* hir/rust-hir-dump.cc (Dump::debug): New.
(debug): New.
* hir/rust-hir-dump.h (debug): New.
Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.cc | 19 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.h | 6 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc index 9e91576..342c62e 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 a2bc4cb..947feae 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 @@ private: } // 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 |