[gcc r14-8022] gccrs: Add debug helper to dump HIR
Arthur Cohen
cohenarthur@gcc.gnu.org
Tue Jan 16 18:14:17 GMT 2024
https://gcc.gnu.org/g:af2be5b555a902f4c77ba161a3dcf16902b442db
commit r14-8022-gaf2be5b555a902f4c77ba161a3dcf16902b442db
Author: Marc Poulhiès <dkm@kataplop.net>
Date: Mon Sep 18 22:16:06 2023 +0200
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>
Diff:
---
gcc/rust/hir/rust-hir-dump.cc | 19 +++++++++++++++++++
gcc/rust/hir/rust-hir-dump.h | 6 ++++++
2 files changed, 25 insertions(+)
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index 417e1172139..15f4763417d 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 79aa7806f81..a48394a4bca 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
More information about the Gcc-cvs
mailing list