summaryrefslogtreecommitdiff
path: root/src/ast/dump.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2018-07-04 21:00:12 +0800
committerJohn Hodge <tpg@ucc.asn.au>2018-07-04 21:00:12 +0800
commit35c11b8e48fc92ad4b0992cf0b73f3e570468874 (patch)
treedef7988d111ccc0295e47a8ddacad43515e6e361 /src/ast/dump.cpp
parent169fc6e5cc4482d509f2829ef302c135f983c1ea (diff)
downloadmrust-35c11b8e48fc92ad4b0992cf0b73f3e570468874.tar.gz
All - Dump full contents of asm! in AST/MIR
Diffstat (limited to 'src/ast/dump.cpp')
-rw-r--r--src/ast/dump.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/ast/dump.cpp b/src/ast/dump.cpp
index 73b332c0..f1481abf 100644
--- a/src/ast/dump.cpp
+++ b/src/ast/dump.cpp
@@ -76,8 +76,28 @@ public:
m_os << n.m_name << "!( /* TODO: Macro TT */ )";
}
virtual void visit(AST::ExprNode_Asm& n) override {
- m_os << "asm!(";
- m_os << ")";
+ m_os << "asm!( \"" << n.m_text << "\"";
+ m_os << " :";
+ for(const auto& v : n.m_output)
+ {
+ m_os << " \"" << v.name << "\" (";
+ AST::NodeVisitor::visit(v.value);
+ m_os << "),";
+ }
+ m_os << " :";
+ for(const auto& v : n.m_input)
+ {
+ m_os << " \"" << v.name << "\" (";
+ AST::NodeVisitor::visit(v.value);
+ m_os << "),";
+ }
+ m_os << " :";
+ for(const auto& v : n.m_clobbers)
+ m_os << " \"" << v << "\",";
+ m_os << " :";
+ for(const auto& v : n.m_flags)
+ m_os << " \"" << v << "\",";
+ m_os << " )";
}
virtual void visit(AST::ExprNode_Flow& n) override {
m_expr_root = false;