aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorMarc Poulhiès <dkm@kataplop.net>2023-09-18 22:16:06 +0200
committerPhilip Herron <philip.herron@embecosm.com>2023-09-18 22:11:00 +0000
commit612a48a8891fe80d71a0ae1c7d7f450f2e5d78fc (patch)
tree9ccaca2154bb13745f57b5d9e3ad2bb516e21b84 /gcc/rust
parentf9455fb91bebfeadd54050cb90c2061487d47c20 (diff)
downloadgcc-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/rust')
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc19
-rw-r--r--gcc/rust/hir/rust-hir-dump.h6
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