[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